Está en la página 1de 31

Explotacin con Metasploit Framework

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

www.Open-Sec.com

Metasploit Framework

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 Metasploit Framework1

utilidades

de

-spa load 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
& 'pen$Sec

5emo1 ;so <)sico de Metasploit

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%
& 'pen$Sec

5E-'1 5escu0riendo una .ulnera0ilidad

5E-'1 5escu0riendo una Culnera0ilidad


Cdigo Fuente de Fuzzer Sencillo en Python Co o result!do de l! ejecucin del script pode os o"ser#!r un! e$cepcin en ollyd"g% es i port!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 he os en#i!do en nuestr! peticin-% de igu!l odo el registro ESP tiene #!lor AAA.......A

Ejecucin del script

& 'pen$Sec

?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@

?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 ad acentes 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%
& 'pen$Sec

?Cmo crear un exploit@

A continuacin crearemos un exploit para una .ulnera0ilidad de 0u22er o.er2low%

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 oll d0, 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%

& 'pen$Sec

5E-'1 Controlando los /e,istros

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.

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. C!lcul! os el despl!z! iento con p!ttern/o33set de 0et!sploit utiliz!ndo los d!tos proporcion!dos en 4llyD"g. Pode os 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-

& '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 'll 50, 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 P thon como len,ua(e de pro,ramacin%

& 'pen$Sec

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!re os @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! se conect!r5 l! #(cti !% !de 5s en est! p!rte est!"lece os los "!dch!rs.

5E-'1 Creando un Exploit Sencillo

Ahor! tene os nuestro PA=>A4D gener!do% procede os ! 3ij!rnos en el t! !Ao% ,ue no e$ced! el t! !Ao ,ue tene os disponi"le p!r! nuestro e$ploit% y copi! os el PA=>4AD p!r! utiliz!rlo en nuestro e$ploit.

5E-'1 Creando un Exploit Sencillo


Pode os utiliz!r l! !plic!cin Findj pB.e$e p!r! u"ic!r l!s direcciones de e ori! ,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 inter edios ser5n llen!dos con N4Ps +D$8D-

& 'pen$Sec

5E-'1 Creando un Exploit Sencillo


Pone os en escuch! el puerto &&&& en el e,uipo del !t!c!nte. Ejecut! os el e$ploit

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*.

4"tene os un! shell de l! #(cti !.

& '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 Pa load


Espacio disponi0le Caracteres no .)lidos

Plata2orma '0(eti.os -todo Exploit

& 'pen$Sec

Demo: Creando un exploit con Metasploit Framework

EJP8'IT en

Metasploit
En el mtodo exploit, primero esta0lecemos conexin con la .:ctima%

8ue,o creamos un 0u22er llenamos los KLM primeros 0 tes 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 pa load seleccionado 3pa load%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% & 'pen$Sec

También podría gustarte