Existen muchas maneras de comprometer un sistema operativo
Windows, pero quizás la más sencilla sigue siendo mediante ingeniería social. Ejecutar un archivo en tu equipo no deja de poner en peligro tu sistema si no tienes la suficiente confianza en la fuente. Eso es lo que han aprovechado en el pasado, y siguen aprovechando a día de hoy, las
campañas de Ransomware y los ataques que se utilizan para meter las famosas
RAT (Remote Administration Tools) en auditorías de seguridad.
|
Figura 1: Cocinar una RAT {o Ransomware} para Windows |
Mediante esta pequeña
Prueba de Concepto (PoC) veremos una manera rápida y muy sencilla de comprometer un sistema corriendo con
Microsoft Windows 7 para que los que están empezando en este mundo de la seguridad entiendan algunos conceptos básicos del funcionamiento de Windows y de
Metasploit. Básicamente usaremos un archivo .exe para adjuntarle una
shellcode de
meterpreter y posteriormente haremos una escalada de privilegios para asegurar la persistencia de nuestra backdoor y tener acceso permanente. Las herramientas usadas en el proceso serán
Shellter y
Metasploit en
Kali Linux.
Proceso de Construcción del Binario Malicioso
Lo primero que vamos a hacer será configurar el servidor donde recibiremos la
shell de
meterpreter. Si elegimos recibirla en una distribución
Kali Linux nos ahorraremos todo el proceso de instalación del framework de
Metasploit pero tendremos que configurar un servicio de
NO-IP para re-dirigir el tráfico a la dirección
IP dinámica que tengamos en cada momento.
En mi caso he preferido usar un
VPS que tengo para trastear bastante económico y realmente recomiendo esta opción, ya que estará disponible
24H y lo podemos aprovechar para otras cosas. Yo os recomiendo RamNode por su bajo precio. Recordad que
Metasploit necesita al menos
1GB de
RAM para funcionar sin problemas.
Una vez conectado por
SSH e instalado el framework de
Metasploit, configuramos el
handler con el puerto por el que escucharemos la conexión,
ExitSessionOn en
false para que no cierre la escucha una vez recibida y
AutoRunScript 'migrate -f' para que migre automáticamente a otro proceso. Finalmente lo dejamos ejecutando
|
Figura 2: Arranque de Metasploit en un Kali Linux montado en el VPS esperando una shell |
Pasemos a configurar los ejecutables. Yo he usado la herramienta para escanear dispositivos en red
WnetWatcher de Nirsoft para adjuntarle la
shellcode. Aquí el atacante usaría un ejecutable que se supone que la víctima ejecutaría sin sospechar.
Haremos dos versiones finales del troyano, una ejecutará la herramienta de
Nirsoft con la
shellcode para no parecer sospechoso y la otra simplemente lanzará la ejecución de la
shellcode. Este último será el que cree la persistencia en el sistema operativo comprometido.
Ejecutamos
Shellter con
Wine y nos va a pedir los siguientes parámetros y ya tendremos nuestro ejecutable modificado y listo:
Operation Mode → Auto
PE target → Ruta del ejecutable original
Enable Stealth Mode → Y (Ejecutará WnetWatcher además de la Shellcode)
Use a listed Payload or Custom → L
Select a payload by index → 1
|
Figura 3: Configuración de Shellter. Paso 1 |
|
Figura 4: Configuración de Shellter. Paso 2 |
|
Figura 5: Configuración de Shellter. Paso 3 |
|
Figura 6: Configuración de Shellter. Paso 4 |
Ahora toca crear el segundo que solo ejecutará la
shellcode, ya que será el que se inicie con el sistema.
Lo único que cambia con el anterior es la opción
stealth, donde pondremos
N, quedando de la siguiente manera:
Operation Mode → Auto
PE target → Ruta del ejecutable original
Enable Stealth Mode → N (Solo ejecutará la Shellcode)
Use a listed Payload or Custom → L
Select a payload by index → 1
|
Figura 7: Creación del segundo binario con Shellter |
Verificación de los binarios con el Antimalware de la víctima
Ya tenemos el servidor y los ejecutables configurados. Para no confundirnos con los ejecutables, el que ejecuta el programa
WnetWatcher lo llamaremos
WNetWatcher_cracked.exe y el que solo ejecuta la
shellcode se quedará como
WnetWatcher.exe.
|
Figura 8: Binarios creados con las Shells dentro |
Analicemos los ejecutables con el mismo antivirus que tiene la víctima instalada. En este caso usa una versión de
Avira para comprobar si van a ser detectados o no. Conocer los antivirus que se instalan en un equipo es parte de la información que se debe tener, y esto se puede sacar de muchas formas, como por ejemplo usando
DNS Cache Snooping buscando los dominios de actualización de las bases de firmas de cada antivirus.
|
Figura 8: Verificación con Avira del primer binario. No detectado. |
|
Figura 9: Verificación del segundo binario con Avira. No detectado. |
Hasta aquí se ha visto que es bastante sencillo generar dos ficheros maliciosos que tengan
shells para controlar un sistema informático. Por supuesto, quedan muchas derivadas hasta terminar esta prueba de concepto y en un entorno fortificado habría que salvar todavía muchas medidas de seguridad - si la empresa ha hecho los deberes -.
Habrá que conseguir llevar este fichero hasta la bandeja de entrada de la víctima, consiguiente para eso pasar las políticas de seguridad del correo electrónico de la compañía, las tecnologías
antispam/
antivirus que tengan en el servidor de correo, conseguir que el usuario caiga en un engaño de
spear phishing (o
spam masivo con trucos como los de correos o paquetes), y luego que el equipo no tenga una
fortificación extra en Windows con un firewall que evite las conexiones externas.Ya veremos más mañana
en la segunda parte.
Un saludo!
Autor: Juan Felipe Díaz (@JuanFelipeDV)
SecForYou.com
Grande Juan Felipe ;)
ResponderEliminarGracias Juan!
ResponderEliminarSaludos!
Deberias poner al final de la página un link a la tool shellter:
ResponderEliminarhttps://www.shellterproject.com/
Muy bueno!
ResponderEliminarMañana en la segunda parte detallo las fuentes y herramientas.
ResponderEliminarMe alegro que les haya gustado.
Un abrazo Pablo, tu tienes gran culpa de esto :D.
Juan Felipe Díaz
Muy bien explicado todo, muchas gracias!
ResponderEliminarEjecutaste el archivo con el avira u otro AV en marcha? ;)
ResponderEliminarYo tengo una pregunta,
ResponderEliminarPor que no reconoce el AV el archivo como malicioso? Es simplemente porque el avira es un antivirus "de carton"? O en el proceso se hacen tareas de camuflaje del "virus"?
Gracias!
Buenos días Chema, saludos desde México, ¿es posible comprar el libro de fortificación de Windows aquí? ¿Está disponible como compra electrónica? Gracias por tomarte el tiempo de leer y responder esto.
ResponderEliminarMuchas gracias Anónimo.
ResponderEliminarJonathan si que lo hice. Te animo a que sigas la guía y nos des feedback.
Javi, usé Avira porque para mi es uno de los más tediosos en estos temas. Simplemente eso. En una auditoría haría una máquina virtual con el antivirus del cliente por supuesto para probar antes. El proceso de ocultación se realiza con Shellter como podrás ver.
Mañana Chema pondrá la segunda parte pero si siguen con dudas no duden en agregarme a twitter y hablamos sin problemas.
Un saludo y gracias por el feedback.
Muy buen aporte
ResponderEliminarExcelente aporte
ResponderEliminarExcelente aporte
ResponderEliminarEsperando la part2
ResponderEliminarTe noto un tanto maligno chema ^^ pero gracias por el aporte
ResponderEliminar@Cristian, cómpralo en ehack.mx
ResponderEliminarMuy bueno tu articulo Juan, gracias por compartir el conocimiento.
ResponderEliminarGracias!!
Sirve para archivos Apk o solo los programas exe
ResponderEliminarÉste artículo solo trata archivos .exe.
ResponderEliminarCompartir el conocimiento es la base de internet. Gracias a que otros lo han hecho, sé lo que sé.
Buen día a todos!
Juan Felipe Díaz
Gracias por la información, excelente articulo juan, desde chile un abrazo..
Eliminar