miércoles, septiembre 23, 2015

Cocinar una RAT {o Ransomware} para Windows (2 de 2)

En la primera parte de este artículo vimos lo sencillo que es inyectar un backdoor en un binario y ahora faltaría pasar a la fase de ejecución de los binarios maliciosos en la máquina de la víctima. Aquí en el mundo real existe una gran miriada de opciones que pueden ir desde adjuntar el shellcode como hemos hecho a un programa que el usuario quiera instalar - como el crack de un juego en la red P2P o un compilador para hacer aplicaciones para la AppStore -, a enviarlo por correo electrónico en una campaña de spam que adjunte el binario con alguna técnica de ingeniería social - como la de los paquetes de correo o las notificaciones de hacienda - o que lleve un enlace para descarga del mismo, o hacernos con nuestro propio Kit de Exploits y usar los bugs que sean posibles para ejecutarlo a través de los navegadores menos fortificados. Este es el juego del gato y el ratón entre el atacante y el sistema fortificado de la víctima (o no).

Figura 1: Cocinar una RAT {o Ransomware} para Windows 2ª parte

Sea como fuere, una vez que se consigue la ejecución, la víctima entrega todo los permisos de su sesión de usuario en su sistema operativo al binario. No sale ninguna alerta como en Android que te diga cuáles van a ser los recursos a los que va a tener acceso, tipo webcam, geo-localización o sistema de ficheros. No es necesario.

Figura 2: Máquinas de trabajo en la red de esta Prueba de Concepto

Todos los binarios que se ejecutan en el sistema tienen acceso a todas las partes a las que tenga acceso el usuario. Por eso es tan importante fortificar las cuentas que se utilizan para trabajar en Windows aprovechando todas las medidas de protección que tiene Windows.

Obtención de Shell y Elevación de Privilegios

Como vemos en la captura, una vez que el programa se ha ejecutado y en la terminal hemos establecido la conexión que automáticamente ha migrado a notepad.exe. Ahora tenemos la sesión pero necesitamos escalar privilegios para poder crear la persistencia. Si no fuera así una vez el usuario cerrara sesión perderíamos nuestra conexión.

Figura 3: Control de sesión en la máquina víctima con un Meterpreter

Destacar que Meterpreter trae infinidad de payloads pero la mayoría son detectados por los antivirus a la hora de subirlos a la máquina de la víctima. Por esta razón usaremos otro método para escalar privilegios como veremos en la captura (¡Gracias Pablo por compartir tu sapiencia sobre Metasploit!)

Figura 4: Elevación de Privilegios con exploit ms14-058

El resultado de la explotación nos devuelve otra sesión que podríamos configurar a nuestro gusto pero en este ejemplo hemos dejado por defecto. Por supuesto, si este sistema estuviera totalmente actualizado deberíamos esperar o buscar un nuevo método de elevación de privilegios. No obstante, aunque fuera con los permisos del usuario en el sistema seguiríamos teniendo control de la máquina. En este caso ha funcionado, así que comprobamos que realmente estamos con una sesión iniciada como usuario System.

Figura 5: Ejecución de la shell como usuario System

Aunque el comando getuid nunca falla, nada mejor que comprobarlo con una de las maravillas de Metasploit para sacar la contraseña en plano de la memoria de los usuarios conectados al sistema

Figura 6: Ejecución de Mimikatz para sacar usuarios y contraseñas. Solo funciona como System.

Hasta aquí tenemos control total sobre la máquina, pudiendo como ya se ha dicho grabar audio, vídeo, acceder al contenido completo del disco duro y dispositivos externos, ver el tráfico de red, volcar la memoria RAM, etcétera. Aquí, tendríamos una RAT completa ejecutada en el sistema, que podemos usar para hacer lo que queramos, como por ejemplo cifrar los archivos al estilo de un Ransomware o grabar en webcam al estilo de los sextorsionadores (¿Has tapado ya tu webcam para evitar el CreepWare?)

Obtención de persistencia en el sistema

Ahora, para conseguir una RAT permanenente en el sistema solo nos queda crear la persistencia para que con el reinicio del sistema no se pierda el control de este equipo. Como decía anteriormente, el script de Metasploit está mas que detectado por los antivirus así que usaremos nuestra segunda backdoor. La subimos al sistema con el comando upload de Meterpreter.

Figura 7: Subida del segundo binario creado en la primera parte de este artículo

Una vez subido, vamos a modificar las claves de registro para que inicie con el sistema.

Figura 8: Modificación de claves de registro para lograr la persistencia

Ya solo queda probar que realmente inicia la backdoor con el sistema. Con el comando reboot reiniciamos la máquina de la víctima y automáticamente vemos como al iniciar sesión el usuario vuelve a conectarnos automáticamente

Figura 9: Reinicio del sistema y obtención de shell otra vez

Por supuesto esto deja huellas en el sistema y podemos verlo con la herramienta msfconfig del propio sistema operativo de la víctima donde se ve que hay una nueva entrada en la ejecución inicial de Windows.

Figura 10: Entradas en Inicio de Windows vistas en msconfig de la víctima

Y para finalizar le mandamos un mensaje mediante una ventana emergente usando la poderosa herramienta railgun que nos proporciona Metasploit. Por supuesto, toda esta prueba de concepto se ha realizado en un entorno de máquinas virtuales totalmente bajo control.

Figura 11: Envío de mensaje a la máquina de la víctima vía Railgun

De esta manera se demuestra cuan inseguro puede llega a ser un ejecutable que no sabemos su procedencia, aun así teniendo un antivirus actualizado. Por supuesto la idea no es que un antivirus no sirva de nada, ya que si no lo tuviese la víctima todo sería aún mucho más sencillo. Hay que tener en cuenta que estamos hablando de un ataque dirigido y no masivo. Una de las fortalezas de los antivirus es la detección temprana de ataques masivos, con lo que la detección de una primera víctima ayuda a proteger al resto de los usuarios. En un APT el malware se crea sabiendo ya cuál es el antivirus de la víctima y habiendo hecho los deberes para saltárselo ya. Para luchar contra los APT hay que usar otras tecnologías.

Figura 12: Mensaje mostrado en la máquina de la víctima.

Recomiendo la lectura de Metasploit para Pentesters de Pablo González, donde un maestro del pentesting nos detalla muy bien una intrusión completa usando este famoso framework y si tenéis oportunidad, apuntaos a su próximo curso Online que comienza el próximo 2 de Octubre.

Un saludo!

Autor: Juan Felipe Díaz @JuanFelipeDV
SecForYou.com

2 comentarios:

faby dijo...

gracias,q importante y complicado lo q enseñas,he comprendido varias cosas!

faby dijo...

porque siempre esta mala la hora en tu blog?son las 1:26

Entrada destacada

Joinnovation & KeepCoding Connect: 2 Eventos para DOERS en #Madrid

Ayer fue el día de ver los proyectos de EQUINOX , el hackathon de ElevenPaths donde durante 24 horas se lanzan proyectos que normalmente ...

Entradas populares