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