Está en la página 1de 31

www.Open-Sec.

com
Explotacin con Metasploit
Framework
Csar Cuadra Pacheco, CISSP, CEH, CompTIA Securit!
Senior Securit Consultant " Penetration Tester
ccuadra#open$sec%com

Metasploit
Framework

& 'pen$Sec
Metasploit Framework
El Metasploit Framework, es una
herramienta para desarrollar e(ecutar exploits
contra una m)*uina remota% Fue creado
utili+ando el len,ua(e de pro,ramacin de
scriptin, Perl, aun*ue actualmente el
-etasploit Framework ha sido escrito de nue.o
completamente en el len,ua(e /u0%

& 'pen$Sec
Metasploit Framework
El Metasploit Framework, tiene .arios
componentes utilidades entre las cuales
destacan1

-s2cli 3Cliente de -etasploit4

-s2console 3Consola de -etasploit4

-s2we0 3Ser.idor e Inter2a+ we0 de -etasploit4

-s2,ui 3Inter2a+ ,r)2ica de -etasploit4

-s2opcode 3Cliente de la 0ase de datos


de 'PC'5ES de -etasploit4

& 'pen$Sec
Metasploit Framework
Continuacin de lista de utilidades de
Metasploit Framework1

-spaload 36enerador de PA78'A5S de


-etasploit4

Pattern9create 36enera una cadena con cierto


patrn, utili+ada para encontrar las direcciones
o22set4

Pattern9o22set 3Calcula el o22set de una cadena


espec:2ica4

5emo1 ;so <)sico de Metasploit

& 'pen$Sec
Creando Exploits...

ADVERTENCIAS

Practicar esto en la casa es peli,roso,


practicarlo en la o2icina es peor a=n> Se dar)
cuenta *ue su red no esta se,ura >>

'pen$Sec
muestra
estas
tcnicas
herramientas
unicamente
con 2ines
educati.os%

& 'pen$Sec
?Cmo se descu0ren los 2allos de
Se,uridad@

& 'pen$Sec
?Cmo se descu0ren los 2allos de
Se,uridad@

-ientras *ue para al,unos un Acuel,ueB del


sistema es slo eso, para otros es un 2allo de
se,uridad *ue podr:an apro.echar%

En la actualidad se ha hecho mu extendido el


uso de 2u++ers para descu0rir .ulnera0ilidades%

Se pueden descu0rir 2allos de se,uridad


mediante la re.isin de cdi,o 2uente%

Sometiendo a las aplicaciones a prue0as de


intrusin%

-uchas .eces se descu0ren 2allos de


se,uridad simplemente utili+ando el sistema%

5E-'1 5escu0riendo una
.ulnera0ilidad

& 'pen$Sec
5E-'1 5escu0riendo una
Culnera0ilidad
Cdigo Fuente de Fuzzer Sencillo en Python
Ejecucin del script
Coo result!do de l! ejecucin del script podeos o"ser#!r un! e$cepcin
en ollyd"g% es iport!nte not!r los registros ESP y EIP% donde EIP tiene el
#!lor &'&'&'&' el cu!l est! represent!do en he$!deci!l% en ASCII ser(!
)AAAA* +,ue heos en#i!do en nuestr! peticin-% de igu!l odo el registro
ESP tiene #!lor AAA.......A

?Du es un Exploit@
Es un pro,rama, sentencia o similar *ue apro.echa
una .ulnera0ilidad para comprometer la
con2idencialidad, inte,ridad Eo disponi0ilidad

?Du es <u22er '.er2low@

& 'pen$Sec
?Du es <u22er '.er2low@
Se,=n Fikipedia, un des0ordamiento de 0u22er es un
error de so2tware *ue se produce cuando se copia una
cantidad de datos so0re un )rea *ue no es lo
su2icientemente ,rande para contenerlos,
so0rescri0iendo de esta manera otras +onas de
memoria%
;n des0ordamiento de 0u22er ocurre cuando los datos
*ue se escri0en en un 0u22er corrompen a*uellos datos
en direcciones de memoria adacentes a los destinados
para el 0u22er, de0ido a una 2alta de .alidacin de los
datos de entrada% Esto se da com=nmente al
copiar cadenas de caracteres de un 0u22er a otro%

?Cmo crear un exploit@

A continuacin crearemos un exploit para una


.ulnera0ilidad de 0u22er o.er2low%

& 'pen$Sec
Al,unos Conceptos <)sicos
/e,istros del CP;

E<P 3extended 0ase pointer4

ESI 3extended source index4

E5I 3extended destination index4

ESP 3extended stack pointer4

EIP 3enhanced instruction pointer4 Apunta a la


si,uiente instruccin a se e(ecutada%

& 'pen$Sec
Controlando los re,istros

Para examinar los re,istros la e(ecucin del


pro,rama .ulnera0le usaremos olld0, 3puede
usar al,=n otro de0u,,er4

5e0emos encontrar la 2orma de escri0ir el


re,istro EIP, para encontrar el o22set .amos a
hacer uso de pattern9create%r0
pattern9o22set%r0 de -etasploit%

5E-'1 Controlando los /e,istros

& 'pen$Sec
5E-'1 Controlando los /e,istros
Cre!ndo un p!trn de c!r!cteres con p!ttern/cre!te de 0et!sploit% p!r!
u"ic!r l!s direcciones +despl!z!ientos- de los registros del CP1.
En#i!os el p!trn de c!r!cteres gener!do !l ser#idor ! tr!#2s de nuestro
"u33er.
C!lcul!os el despl!z!iento con p!ttern/o33set de 0et!sploit utiliz!ndo los
d!tos proporcion!dos en 4llyD"g.
Podeos o"ser#!r ,ue ! p!rtir del c!r5cter nro &67 se inici! l! escritur! en el
registro EIP% y ,ue ! p!tir del c!r5cter &89 se inici! l! escritur! en el registro ESP.
Entonces nuestro "u33er ser5: A;&67 < EIP +son & "ytes- < & "ytes < ESP +!c! #! el
p!ylo!d-
Re#is!os los #!lores de los registros ESP y EIP en 4llyD"g% p!r! luego
ingres!rlos en p!ttern/o33set y c!lcul!r el despl!z!iento.

& 'pen$Sec
Creando un Exploit sencillo

;tili+aremos un PA78'A5 de -etasploit,


de0emos tener en cuenta los
0adchars3caracteres no permitidos4 el
espacio disponi0le para el Exploit%

<uscaremos la 2orma de indicar en el EIP *ue


e(ecute nuestro PA78'A5 3*ue se encuentra
en ESP4, para esto asi,namos a EIP una
direccin de memoria *ue apunte a una
instruccin G-P ESP, esto lo podemos u0icar
en la 0ase de datos de 'PC'5ES de
-etasploit, 0uscando con 'll50, o con
2ind(mpH%exe

& 'pen$Sec
Creando un Exploit sencillo

;tili+aremos I'Ps3Io 'peration Command4,


para indicar al CP; *ue contin=e con la
secuencia de e(ecucin%

Para este sencillo e(emplo utili+aremos Pthon


como len,ua(e de pro,ramacin%

5E-'1 Creando un Exploit Sencillo

5E-'1 Creando un Exploit Sencillo
Seleccion!os el PA=>4AD dese!do en l! inter3!z ?e" de 0et!sploit% en este
c!so utiliz!reos @indo?s Co!nd Shell% Re#erse TCP Inline% de"ido ! ,ue
nuestr! #(cti! tiene su 3ire?!ll !cti#!do
Por tr!t!rse de un! shell re#ers! +l! #(cti! se conect! con el !t!c!nte-%
necesit!os indic!r !l PA=>4AD l! direccin IP del !t!c!nte y el puerto !l cu!l
se conect!r5 l! #(cti!% !de5s en est! p!rte est!"leceos los "!dch!rs.
Ahor! teneos nuestro PA=>A4D gener!do% procedeos ! 3ij!rnos en el t!!Ao% ,ue no e$ced! el t!!Ao ,ue
teneos disponi"le p!r! nuestro e$ploit% y copi!os el PA=>4AD p!r! utiliz!rlo en nuestro e$ploit.

& 'pen$Sec
5E-'1 Creando un Exploit Sencillo
Podeos utiliz!r l! !plic!cin FindjpB.e$e p!r! u"ic!r l!s direcciones de eori! ,ue
contienen un! ll!!d! !l registro ESP +en nuestro c!so- p!r! escri"irl!s en el registro EIP.
Con l! direccin encontr!d!% #!os ! cre!r nuestro "u33er% de odo t!l
,ue el registro EIP se escri"! CC6B967D y en el registro ESP se escri"!
nuestro p!ylo!d% los esp!cios interedios ser5n llen!dos con N4Ps +D$8D-

& 'pen$Sec
5E-'1 Creando un Exploit Sencillo
Poneos en escuch! el puerto &&&& en el e,uipo del !t!c!nte. Ejecut!os el e$ploit
4"teneos un! shell de l! #(cti!.
As( se #e l! !plic!cin en l! #(cti! luego de ejecut!r el e$ploit% pueden 3ij!rse
en l! p!rte del log donde se en#(! un string "!st!nte l!rgo lleno de )A*.

& 'pen$Sec
?Cmo crearlo en -etasploit@
Estructura 0)sica de un exploit de -etasploit1

Comentario

5ependencia

5e2inicin de la clase

inclusiones

mtodo constructor

Iom0re del exploit

5escripcin del exploit

-)s datos so0re el exploit



& 'pen$Sec
Estructura 0)sica de un exploit de
Metasploit 3Cont%4

In2ormacin para ,enerar el Paload

Espacio disponi0le

Caracteres no .)lidos

Plata2orma

'0(eti.os

-todo Exploit

Demo: Creando un
exploit con Metasploit
Framework

& 'pen$Sec
EJP8'IT en
Metasploit

En el mtodo exploit, primero esta0lecemos conexin


con la .:ctima%

8ue,o creamos un 0u22er llenamos los KLM primeros


0tes con caracteres al2anumricos
3rand9text9alphanumeric3KLM44%

8ue,o aNadimos la direccin ret 3EIP4 al 0u22er


3Otar,et%retP%pack3QCQ44%

A continuacin a,re,amos K I'Ps 3make9nops3K44%

Finali+amos nuestro 0u22er a,re,ando el paload


seleccionado 3paload%encoded4%

E(ecutamos el mane(ador 3hadler4

7 2inalmente desconectamos%
Es importante seNalar *ue en Tar,ets nosotros
podemos a,re,ar otros o0(eti.os *ue no se encuentren
actualmente listados, por e(emplo Findows HRRS,
Findows JP SPS Spanish, etc, para esto de0emos
0uscar las direcciones de retorno a sea con un
de0u,,er, con 2ind(mpH, con metasploit o en al,una
0ase de datos de opcodes%

También podría gustarte