Está en la página 1de 37

,ac)bo- Linu- .

Iniciacin al /entesting 1*+%icin

Documento: Libro Nivel: Iniciacin Autor: Ismael Gonzlez D. Versin: 2.1 Lugar: Kontrol ! "#e $n%er&a' (ecurit' Localizacin: &&&.)ontrol .com

0ac)ing 1tico en a2licacones &eb

Backbox Linux 3 Iniciacin al Pentesting


/or Ismael Gonz1zles D. +ste libro se %istribu'e ba3o una licencia Reconocimiento-NoComercial-CompartirIgual

4.0 Internacional
Usted es libre de: 4o2iar ' re%istribuir el material en cual5uier me%io o 6ormato Bajo las condiciones siguientes: Attribution 7 Debe reconocer a%ecua%amente la autor8a9 2ro2orcionar un enlace a la licencia e in%icar si se #an realiza%o cambios. /ue%e #acerlo %e cual5uier manera razonable9 2ero no %e una manera 5ue sugiera 5ue tiene el a2o'o %el licencia%or o lo recibe 2or el uso 5ue #ace.

NonCommercial No puede utilizar el material para una finalidad comercial. ShareAlike Si remezcla, transforma o crea a partir del material, deber difundir sus contribuciones ba o la misma licencia !ue el original.

ndice de contenido
9Introduccin................................................................................................................5 Pentesting y Blackhat........................................................................................5 13Captulo 1 Primeros Pasos Con Backbo .................................................................! "erramientas y su uso.......................................................................................! Por donde empe#ar............................................................................................$ %b&eti'o 1( )tacar ser'idor *eb.......................................................................$ +scaneo de puertos con ,map..........................................................................9 15Captulo - B.s/ueda de 'ulnerabilidades...............................................................10 Introduccin....................................................................................................10 ,map como esc1ner de 'ulnerabilidades 2,3+ 4ulnscan5............................15 PoC( Prueba de concepto ,map 4ulnscan '1.6..............................................15 7urno de %8)3P............................................................................................1! 9anos a la obra( Primera prueba de concepto con %8)3P.....................19 !-Captulo 3 + plotacin...........................................................................................-1 Introduccin....................................................................................................-1 Identi:icando 'ulnerabilidades........................................................................-4ulnerando la BB;; y e trayendo in:ormacin......................................-3 3<=map( Prueba de concepto...................................................................-0 %bteniendo las tablas de la base de datos.................................................-> Captulo 0 Post?e plotacin........................................................................................-$ Introduccin....................................................................................................-$ =ectura de archi'os con 3<= .........................................................................-9 )cceso al ser'idor...........................................................................................36 +scalada de pri'ilegios..............................................................................36 )cceso indirecto al ser'idor( Base de datos..............................................36 Penetrando en 8ordpress................................................................................31 Creando un nue'o usuario en 8ordpress a tra'@s de mys/l.....................31 8p?users...................................................................................................38p?usermetada.........................................................................................3=ocal Aile Inclusion( un paso m1s cerca del control.......................................30 =AI a 8ordpress........................................................................................35

ndice de ilustraciones
Ilustracin 1( +scritorio Backbo =inu 3...........................................................................................$ Ilustracin -( Besultado obtenido tras un esc1ner de puertos con nmap............................................16 Ilustracin 3( Intento de acceso al panel de administracin de 9y3<= desde :uera de la red interna ............................................................................................................................................................11 Ilustracin 0( In:ormacin de los hosts y subdominios e trada con 7he"ar'ester...........................1Ilustracin 5( In:ormacin de un ser'idor *eb a tra'@s de *hat*eb.................................................13 Ilustracin >( Buscando 'ulnerabilidades con ,map C 4ulnscan......................................................1> Ilustracin !( +&emplo de DD 2Cross 3ite 3cripting5.........................................................................1> Ilustracin $( Con:iguracin Pro y de %8)3P E)P.........................................................................1$ Ilustracin 9( )ta/ue autom1tico a una FB= con %8)3P E)P........................................................19 Ilustracin 16( =eyenda de iconos......................................................................................................19 Ilustracin 11( Panel de resultados de las 'ulnerabilidades encontradas. %8)3P E)P...................-6 Ilustracin 1-( In:orme de 'ulnerabilidades locali#adas. %8)3P E)P............................................-Ilustracin 13( Aor#ando un error de sinta is en 3<=........................................................................-3 Ilustracin 10( %pciones b1sicas de s/lmap.......................................................................................-0 Ilustracin 15( %bteniendo Bases de datos con s/lmap.....................................................................-5 Ilustracin 1>( +numeracin de tablas. s/lmap..................................................................................-> Ilustracin 1!( +numeracin de columnas. 3/lmap...........................................................................-! Ilustracin 1$( %pciones para leer o descargar archi'os con s/lmap.................................................-9 Ilustracin 19( )rchi'o de con:iguracin de 8ordpress obtenido con s/lmap..................................36 Ilustracin -6( Cliente ;Bea'er. )ccediendo al seri'dor de Base de datos.......................................31 Ilustracin -1( 7abla *pGusers. Contiene los datos del usuario.........................................................3Ilustracin --( 7abla *pGusermetada. Contiene los datos /ue otorgan permisos al usuario.............33 Ilustracin -3( =ogin del backend de 8ordpress...............................................................................33 Ilustracin -0( Panel de administracin de 8ordpress.......................................................................30 Ilustracin -5( =ocal Aile Inclusion....................................................................................................35 Ilustracin ->( 3hell copiada en archi'o author.php del theme 7*enty 7*el'e de 8ordpress..........3> Ilustracin -!( Cdigo :uente de la p1gina principal de 8ordpress...................................................3> Ilustracin -$( 3hell c99( Panel de administracin ...........................................................................3!

Introduccin

+n el mun%o %e la seguri%a% in6ormtica e-isten una serie %e #erramientas es2eci6icas 5ue a'u%an a realizar las tareas lleva%as acabo tanto 2or 2arte %e un /entester en su au%itor8a %e seguri%a% como un 0ac)er en el la%o %el ,lac)#at. +valuar los riesgos %e una em2resa tal ' como se #ace en una au%itor8a %e seguri%a% ser8a 2rcticamente im2osible sin estas #erramientas. /uesto 5ue %entro %e la seguri%a% in6ormtica e-isten numerosas ramas9 e-isten %istribuciones Linu- 2recon6igura%as con to%as las #erramientas necesarias 2ara la realizacin %e una au%itor8a %e seguri%a%. Backbox, es una %istribucin Linu- basa%a en $buntu 2ara realizar %ic#as au%itor8as. +sta %istribucin tiene #erramientas es2ec86icas 2ara ca%a un a %e las ramas %e seguri%a%9 como: ,:s5ue%a %e %e in6ormacin9 ,:s5ue%a %e vulnerabili%a%es9 Anlisis 6orense9 esteganogra68a9 Ata5ues ;i<=i9 s2oo6ing9 etc. Algunas %e estas #erramientas se 2ue%en utilizar 2ara %istintas 6unciones %e2en%ien%o %el uso 5ue 5ueramos %arle. /or ello es %i68cil clasi6icar ca%a #erramienta %entro %e un mbito9 'a 5ue en algunos casos 2o%remos utilizar9 2or e3.: nma2 2ara realizar un escaneo %e 2uertos9 ' en otras ocasiones9 2o%remos utilizar esta misma #erramienta 2ara #acer una b:s5ue%a %e vulnerabili%a%es9 enumeracin %e DN(9 etc9 >%e2en%ien%o %el scri2t 5ue carguemos?. +ste Libro est en6oca%o a una au%itor8a &eb9 2or ello se #an %escarta%o to%as a5uellas #erramientas ' utili%a%es 5ue no se 2ue%an a2licar a esta rama %e la seguri%a%. A%ems %e 2rogramas en6oca%os a la automatizacin %e 2ruebas %e seguri%a% in6ormtica9 e-isten otro ti2o 2rogramas 5ue tambi1n nos a'u%an a realizar tareas ms a%ministrativas como son 2or una 2arte la recoleccin %e in6ormacin9 como 2or otra el in6orme 6inal 5ue se %ebe %e #acer in%ican%o en %etalle to%as las 2ruebas realiza%as. La recogi%a %e in6ormacin es una %e las 2artes ms im2ortantes 2ara un #ac)er. A 2artir %e 1sta se 2o%r 6ocalizar un ata5ue. /or ello el tener to%o bien %ocumenta%o ser 2rimor%ial. $na %e la caracter8sticas 5ue trae esta %istribucin es el anonimato &eb 5ue se 2ue%e realizar %e manera sim2le ' sencilla. "o%o 0ac)er 5ue 5ue no 5uiera %e3ar localiza%o su rastro se a'u%ar %e #erramientas como Vidalia9 T !9 Poli"o9 Pri#ox$9 etc. +stas #erramientas 2ermiten ocultar las cone-iones %el or%ena%or. ,ac)bo- Linu- viene 2re2ara%o 2ara 2o%er anonimizar to%as las cone-iones %el or%ena%or. A lo largo %e los ca28tulos %e este libro se ver en 2ro6un%i%a% las t1cnicas %el Anonimato. +n el caso %e una au%itor8a %e seguri%a% se 2o%r %eterminar si los sistemas %e la em2resa 5ue estamos au%itan%o9 sern ca2az %e %etectar una @cone-in realA %e una 5ue est1 utilizan%o t1cnicas %e anonimato. "o%as las 2ruebas %e conce2to9 as8 como el conteni%o mostra%o en este libro se #an #ec#o con el 6in %e enseBar la 6orma en la 5ue act:a un 0ac)er a la #ora %e 2er2etrar en un servi%or9 o en to%a una in6raestructura %e servi%ores ' sistemas in6ormticos.

Pentesting $ Black%at
CDu1 es el /entestingE /entesting es el traba3o 5ue realiza un 0ac)er 2ara %eterminar to%as las vulnerabili%a%es %e un sistema9 2rograma9 servi%or9 o em2resa. +l 2entester 2or su 2arte es a5uella 2ersona 5ue se encarga %e realizar una bater8a %e 2ruebas 2ara %es2u1s 2resentar un in6orme %etalla%o a la em2resa o servicio 2or el 5ue 6ue contrata%o. +ste traba3o se %enomina 0ac)er 1tico. $n contrato %e 0ac)er 1tico com2romete al 2entester o au%itor a ceBirse a las con%iciones %e su contrato. +sto 2ermite evaluar to%os los riesgos %e una em2resa sin 5ue 1sta se vea a6ecta%a 2or los %atos obteni%os

&a"'tulo ( /rimeros /asos 4on ,ac)bo-

)erra*ientas $ su uso
"o%as las #erramientas ' 2rogramas 5ue se encuentran en cual5uier %istribucin %e seguri%a% intentan agru2ar sus 2rogramas ' utili%a%es en 6uncin %e su uso ' %el or%en en el 5ue se #ar8a una au%itor8a %e seguri%a%. (in embargo9 al e-istir 2rogramas con varias 6unciones es %i68cil catalogar ca%a uno %e los 2rogramas en una categor8a 2re%etermina%a.

$na au%itor8a %e seguri%a% se realiza siguien%o el siguiente or%en: 1. 2. .. H. I. FecoleccinGreco2ilacin %e in6ormacin. ,:s5ue%a %e vulnerabili%a%es. +-2lotacin %e los sistemas. /ost e-2lotacin. In6orme e3ecutivo ' t1cnico.

Las mismas t1cnicas son utiliza%as 2or un ,lac)#at cuan%o se 5uiere atacar a un servi%or. (in embargo el ,lac)#at se asegura %e 5ue su sus cone-iones no %e3an rastro9 ' 2ara ello aBa%e %os 6ases ms en su recorri%oJ el anonimato ' la 2osterior eliminacin %e las 2osibles 2ruebas 5ue #a'an 2o%i%o 5ue%ar. 1. 2. .. H. I. K. L. FecoleccinGreco2ilacin %e in6ormacin. Anonimato. ,:s5ue%a %e vulnerabili%a%es. +-2lotacin %e los sistemas. /ost e-2lotacin. +liminacin %e 2ruebas. In6orme e3ecutivo ' t1cnico.

Las %istribuciones %e seguri%a% como 'a se #a comenta%o antes9 intentan aseme3arse al or%en en 5ue se #ar8a una au%itor8a. ,ien9 este %ato es mu' relativo9 #a' #erramientas 5ue estn en la categor8a %e +x"lotacin de Vulnerabilidades9 2ero 5ue 2er6ectamente nosotros 2o%emos utilizarla 2ara #acer una b:s5ue%a %e vulnerabili%a%es. 4omo 2or e3em2lo ,3a-9 5ue en este caso est en la seccin %e +x"lotacin %entro %e ,ac)bo-9 2ero 5ue nosotros 2o%remos utilizar 2ara otras 6unciones9 a%ems %e 2ara lanzar un ata5ue.

Capitulo 1 - Primeros pasos con Backbox

Ilustracin 1: Escritorio Backbox Linux 3 0a' 5ue tener en cuenta 5ue un ata5ue o una au%itor8a %e seguri%a% variar en 6uncin %el ti2o %e ata5ue. +s %ecir9 nosotros 2o%emos realizar un ata5ue %es%e 6uera %e la re% interna %e nuestro ob3etivo9 o bien9 2o%emos realizar un ata5ue %es%e la LAN %es%e la 5ue 5ueremos encontrar vulnerabili%a%es. $n claro e3em2lo %e esto es utilizar n*a" 2ara #acer un escaneo %e 2uertos a una I/ 2:blica 2ara %eterminar los servicios 5ue corren sobre la m5uina 5ue est %an%o alg:n ti2o %e servicio. M bien9 si nos encontramos %entro %e la 2ro2ia re% LAN9 2o%emos lanzar n*a" 2ara ver los e5ui2os ' la relacin %e 2uertos abiertos o cerra%os 5ue tiene ca%a m5uina %entro %el mismo segmento %e re%.

Por donde e*"e.ar


+s 2osible 5ue 5ue nosotros tengamos claro 5ue 5ueremos atacar a una %etermina%a m5uina9 2ero no sabemos como #acerlo9 ni 2or %on%e em2ezar. La clave %e esto es9 5ue con6orme se va'a obtenien%o in6ormacin el resto %e acontecimientos irn salien%o solos9 2or lo 5ue no %ebes 2reocu2arte. "ar%e o tem2rano tal vez a2arezca alguna vulnerabili%a% %e la 5ue a2rovec#arse. +n la gran ma'or8a %e las ocasiones cuan%o nos 2onemos a buscar in6ormacin %el ob3etivo nos encontramos con %iversas 6uentes9 unas llevan a otras9 ' as8 sucesivamente #asta 5ue llegamos a un 2unto en 5ue sin %arnos cuenta estamos casi %entro %el or%ena%or9 o el servi%or. $n escenario t82ico ser8a el %e atacar a un ob3etivo %es%e 6uera %e la re%9 ' una vez vulnera%o el sistema intentar acce%er a la re% interna ' e-2lotar los sistemas 5ue all8 se encuentren.

bjeti#o (: Atacar ser#idor ,eb


A5u8 nos 2ue%e surgir la 2rimera %u%a9 ' es CDu1 #erramienta es la a%ecua%a 2ara obtener in6ormacinE. La res2uesta 2ue%e ser mu' am2lia: e-isten muc#as #erramientas 2ara tal 8

Capitulo 1 - Primeros pasos con Backbox

2ro2sito9 2ero Ccul %ebo utilizarE N en el caso %e utilizar ms %e una C5u1 or%en #e %e seguirE. No tenemos 5ue volvernos locos con las #erramientas9 algunas nos servirn 2ara unas %etermina%as cosas ' otras 2ara otras9 ' en el caso %e 5uerer obtener in-or*acin9 como es el %e a#ora9 es 2osible 5ue unas #erramientas nos %en ms in6ormacin 5ue otras9 o 5ue sim2lemente a2orten in6ormacin %istinta. /ara 5ue os #agis una i%ea9 n*a" nos sirve 2ara >entre otras muc#as cosas? %etectar los 2uertos ' servicios 5ue corren en una o varias m5uinas. (i nosotros tenemos un servi%or &eb como ob3etivo9 2o%emos lanzar nma2 ' ver 5ue 2uertos tiene abierto. (in embargo esto es 2osible 5ue no nos %evuelva muc#os %atos 'a 5ue 2or lo general los servi%ores &eb >' 5ue estn e-2uestos a internet? slo tiene abierto el tr6ico 2or el 2uerto O . No veremos ms all %e esto. A#ora bien9 2o%emos a'u%arnos %e la #erramienta T%e)ar#ester 2ara ver 5ue otros %ominios ' sub%ominios 2ue%en com2oner el servi%or 2rinci2al al 5ue atacamosJ un blog9 un ="/9 un sub%ominio 2ara %esarrollo9 etc. /or tanto #acien%o uso %e ambas #erramientas ten%remos me3or resulta%o9 ' nunca #a' 5ue %e3ar %e la%o ninguna #erramienta 2or innecesaria 5ue 2arezca. /or e3em2lo /altego tambi1n es una #erramienta 2ara localizar sub%ominios al igual 5ue T%e)ar#ester9 slo 5ue 1sta nos muestra en un organigrama la 2osicin ' 6uncin %e ca%a servi%or9 en 6ormato 3err5uico9 sobre como est organiza%a la in6raestructura %e servi%ores %e nuestro ob3etivo. 4asi sin %arnos cuenta9 ' con tan solo . a2licaciones #emos obteni%o un gran n:mero %e in6ormacin. /ero 2ara verlo me3or9 llev1moslo acabo.

+scaneo de "uertos con 0*a"


+scenario: Mb3etivo: (ervi%or &eb "i2o %e ata5ue: obtener in6ormacin 0erramientas utiliza%as: n*a"9 T%e)ar#ester ' ,%at,eb

Lo 2rimero 5ue vamos #acer va a ser lanza un n*a" con el 6in %e encontrar alg:n 5ue otro 2uerto 5ue no sea el O . Panos a la obra9 la con6iguracin n*a" 2ara lanzar un 2rimer escaneo %e 2uertos va a ser QFegular (canQ es %ecir9 un sim2le R1n*a" ,,,2objeti#o2co*2

Capitulo 1 - Primeros pasos con Backbox

Ilustracin : !esulta"o obteni"o tras un esc#ner "e puertos con nmap "al ' como observamos el resulta%o es mu' bueno9 no solo #emos obteni%o ms 2uertos a%ems %el O 9 si no 5ue %e un 2rimer vistazo 2o%emos ver algunos servicios %e los 5ue seguramente com2onen la &eb9 o alguno %e los sub%ominio. Por +je*"lo: Vemos el 2uerto 3334 el cual "ertenece a /$s5l. (i #acemos la 2rueba %e intentar ver si el acceso est #abilita%o %e 6orma abierta9 2osiblemente el resulta%o sea 5ue no. +s #abitual ver cosas como estas9 %on%e e-iste un servicio9 2ero slo se 2ue%e acce%er a 1l si te encuentras en la misma re% local. De #ec#o es una me%i%a %e seguri%a% 5ue im2lanta P's5l 2ara evitar ata5ues %es%e el e-terior.

10

Capitulo 1 - Primeros pasos con Backbox

Ilustracin 3: Intento "e acceso al panel "e a"ministracin "e $%&'L "es"e (uera "e la re" interna /asemos al siguiente 2unto %e nuestra recoleccin %e in6ormacin9 5ue es ver la canti%a% %e sub%ominios ' servicios 5ue 2ue%e tener nuestro ob3etivo. /ara esto utilizaremos "#e0arvester. Fesumi%amente9 en lo 5ue consiste "#e0arvester es en buscar in6ormacin en los motores %e b:s5ue%a >Google9 ,ing9 (#o%an ...? 2ara encontrar sub%ominios e e<mails 5ue se #a'an #ec#o 2:blicos. +l coman%o a lanzar ser8a bastante sencillo9 in%ican%o el %ominio la canti%a% %e resulta%os 5ue 5ueremos 5ue nos %evuelva9 ' los motores %e b:s5ue%a en los 5ue 5ueremos 5ue bus5ue: 67 sudo T%e)ar#ester 8d objeti#o2es 8l 93 8b all

11

Capitulo 1 - Primeros pasos con Backbox

Ilustracin ): In(ormacin "e los *osts % sub"ominios extra+"a con ,*e-ar.ester Los &ebmaster suelen 2ensar 5ue cuanto ms conteni%o in%e-en los busca%ores ms visible estar su &eb en internet9 2or tanto ms visitas9 ' un ma'or n:mero %e cliente. +sto 5ue a sim2le vista 2arece no ser malo9 es un arma %e %oble 6ilo. Vien%o la imagen anterior nos encontramos con montn %e sub%ominios 5ue Google >' %ems busca%ores? #an consegui%o in%e-ar. 4on la in6ormacin 5ue #emos saca%o %e nma2 ' %e "#e0arvester9 2o%emos tener una ligera i%ea %e los servicios ' servi%ores 5ue tiene nuestro ob3etivo. Na sabemos 5ue la &eb 5ue 5uer8amos atacar en un 2rimer momento no tiene slo un servi%or e-2uesto a internet9 si no 5ue tiene numerosos 2uertos abiertos9 ' 5ue %is2one %e varios sub%ominios. (lo es cuestin %e tiem2o 5ue alguno %e estos servi%ores sea vulnerable a nuestro ata5ue. 4entr1monos en el servi%or 5ue 5uer8amos atacar ' sigamos buscan%o in6ormacin. 1

Capitulo 1 - Primeros pasos con Backbox

+s a5u8 %on%e nuestra b:s5ue%a 'a no es algo generaliza9 est ms en6oca%a a una sola ma5uina9 una sola i2 ' un solo 2uerto. Aun5ue %es2u1s tambi1n nos centraremos en otras m5uinas ' otros servi%ores9 lo 5ue nos interesa es sacar la ma'or in6ormacin 2osible %e la &eb a la 5ue estamos atacan%o. Des2u1s %e #aber utiliza%o n*a" ' T%e)ar#ester9 le llega el turno a ,%at,eb2 :%at,eb nos 2ermitir saber in6ormacin ms es2ec86ica sobre el %ominio 5ue estamos atacan%o. Lo 5ue #ar &#at&eb es9 escanear un i2G%ominio en busca %e to%a in6ormacin :til 2ara nuestro ata5ue. 4omo 2ue%e ser9 ti2o %e servi%or9 sistema o2erativo9 tecnolog8a en la 5ue est basa%a la &eb9 etc.

Ilustracin /: In(ormacin "e un ser.i"or 0eb a tra.1s "e 0*at0eb +ste ti2o %e in6ormacin es tan valiosa como la anterior. Gracias a ;#at&eb 2o%remos %eterminar las versiones %e las a2licaciones con las 5ue est construi%a la &eb. /or tanto9 si la &eb %is2one %e versiones no actualiza%as es mu' 2osible 5ue sea vulnerable. Fecor%a% 5ue los &ebmaster suelen ser bastante cui%a%oso con la 2arte visible %e su &eb9 2ero no con la 5ue no se ve9 el bac)en%. +s mu' 6cil %e encontrar servi%ores &eb con una versin %e 2#2 o m's5l %es<actualiza%a. :%at,eb al tratarse %e un escner &eb tiene %istintos gra%os %e agresin a la #ora %e #acer sus b:s5ue%as. (ien%o ca2az %e %eterminar la versin %e sistemas %e ,,DD >como 'a #emos %ic#o antes?9 la versin %e servi%or &eb %e a2ac#e >2or e3em2lo? o la versin %el gestor %e conteni%os con la 5ue est monta%a9 como 2ue%e ser ;or%2ress. A%ems tambi1n utiliza un vector %e ata5ue basa%o en Google Dor)9 2or lo 5ue tambi1n se basa en 2osibles servi%ores o in6ormacin sensible e-2uesta a Google. 13

&a"'tulo ; ,:s5ue%a %e vulnerabili%a%es

Introduccin
$na vez 5ue 'a tenemos bastante in6ormacin %el ob3etivo al 5ue 5ueremos atacar es #ora %e %ar un 2aso ms e intentar buscar alg:n ti2o %e vulnerabili%a% 5ue nos %e acceso al sistema. 4omo 'a #emos comenta%o antes9 no siem2re las categor8as 5ue nos o6recen las Distros %e seguri%a% se corres2on%en con el 2roceso %e un +t%ical )ack9 'a 5ue muc#as %e las #erramientas sirven 2ara #acer ms %e una 6uncin. +n este tema utilizaremos alguna 5ue otra #erramienta 5ue no se encuentra %entro %e la seccin %e ,:s5ue%a %e Vulnerabili%a%es9 2ero 5ue sin embargo nos servir %e igual manera. Las #erramientas 5ue utilizaremos 2ara buscar vulnerabili%a%es no son ms 5ue escneres %e vulnerabili%a%es. /rogramas 5ue estn %iseBa%os 2ara automatizar una serie %e 6unciones ' 5ue estn 2ensa%as 2ara a'u%arnos a no tener 5ue #acer b:s5ue%as manuales %e ca%a ti2o %e vulnerabili%a%. De un %etermina%o servicio. +l 2rinci2al inconveniente %e este ti2o %e b:s5ue%a es 5ue9 la gran ma'or8a %e las a2licaciones #acen 6alsos 2ositivos. +so signi6ica9 5ue aun5ue el 2rograma encuentre una vulnerabili%a% no siem2re a %e ser e-2lotable.

Capitulo

2 B3s4ue"a "e .ulnerabili"a"es

0*a" co*o esc<ner de #ulnerabilidades =0>+ Vulnscan?


4asi se 2o%r8a %ecir 5ue nma2 es la #erramienta in%is2ensable 2ara cual5uier #ac)er gracias a la canti%a% %e scri2t 5ue estn %esarrolla%os 2ara ello9 ' 5ue son con6igurables a nuestro gusto. De igual manera 5ue utilizamos nma2 2ara recolectar in6ormacin lo #aremos esta vez 2ero 2ara buscar vulnerabili%a%es. +sto es 2osible a un scri2t %esarrolla%o es2ec86icamente 2ara realizar esta 6uncin. +l scri2t consiste en #acer una b:s5ue%a %e las vulnerabili%a%es 'a encontra%as en un re2ositorio %e %ic#as vulnerabili%a%es. >+ste re2ositorio es actualizable %es%e ca%a una %e las 2ginas o6iciales %es%e las 5ue se re2ortan las vulnerabili%a%es?. Las bases de datos son: cve.csv osv%b.csv sci2vul%b.csv secunia.csv securit'6ocus.csv securit'trac)er.csv

+l scri2t 5ue est basa%o en nma2 N(+ >nma2 scrit2ting engine? %ebemos %e ba3arlo e instalar lo. /or %e6ecto no viene instala%o con nma2. La manera %e instalar es co2ian%o la car2eta com2leta %e N(+ Vulnscan en la ruta %on%e se encuentran el resto %e scri2t 2ara nma2. /or %e6ecto: @usr@s%are@n*a"@scri"ts /gina o6icial %e %escarga: &&&.sci2.c#GenGElabs.2 1. K2I

Po&: Prueba de conce"to 0*a" Vulnscan #(23


+l 2armetro es bastante sencillo una vez 5ue se tiene instala%o el scri2t. ,asta con 2oner los 2armetros 5ue solemos 2oner #abitualmente #acien%o re6erencia al scri2t: nmap -T4 -v -v -F --script vuln --script-args vulnscandb=securityfocus.csv &&&.sitio&eb.com Lo 5ue estamos consiguien%o con estos 2armetros es %ecir a nma2 5ue 5ueremos 5ue lance un escaneo bsico9 mostrn%onos los errores ' los resulta%os. In%icn%ole a%ems 5ue 5ueremos 5ue utilice un scri2t >vuln? ' aBa%ien%o la base %e %atos %one 5ueremos 5ue #aga sus b:s5ue%as. +l resulta%o como com2robamos es bastante bueno9 #emos obteni%o un 6allo %e S(( >4ross (ite (cri2ting?

1/

Capitulo

2 B3s4ue"a "e .ulnerabili"a"es

Ilustracin 5: Buscan"o .ulnerabili"a"es con 6map 7 8ulnscan

Nma2 nos est sirvien%o 2ara buscar vulnerabili%a%es9 sin embargo eso no 5uiere %ecir 5ue a'a a realizar el ata5ue 2or nosotros. +so s89 nos %ar to%a la in6ormacin necesaria. "anto es as89 5ue nos muestra la url com2leta a la 5ue %ebemos atacar 2ara e-2lotar %ic#a vulnerabili%a%. Aun5ue la e-2lotacin %e vulnerabili%a%es las veremos en el siguiente tema9 5uiero mostrar como la vulnerabili%a% %e nma2 es com2letamente e-2lotable ' no nos #a %a%o un 6also 2ositivo.

Ilustracin 9: E:emplo "e ;; <Cross &ite &criptin=>

15

Capitulo

2 B3s4ue"a "e .ulnerabili"a"es

Algo 5ue %ebemos tener en cuenta es saber 5ue9 2or muc#o 5ue ca%a #erramientas est un 2oco ms en6oca%a 2ara un ti2o %e 6uncin es bueno combinarlas entre ellas. De na%a sirve tener muc#as in6ormacin %e nuestro ob3etivo si luego no sabemos como buscar vulnerabili%a%es. N lo mismo 2asa a la #ora %e buscar vulnerabili%a%es9 %e na%a sirve encontrar vulnerabili%a%es si luego no sabemos e-2lotarlas. 4omento esto 2or 5ue a lo largo %e este tema iremos vien%o como encontrar vulnerabili%a%es ' como saber encontrar la manera %e e-2lotarlas. /osteriormente en el tema %e e-2lotacin %e vulnerabili%a%es nos centraremos ms en como conseguir escalar 2rivilegios9 #acernos con el control %e la m5uina9 etc. /ero %e una manera muc#o ms concreta ' sabien%o casi a un 1 T 5ue nuestro ob3etivo es vulnerable a ese ata5ue. /uesto 5ue esto es una 2rimera toma %e contacto con el 2entesting ' ms concretamente con ,ac)bo-9 no vamos a 2ararnos a e-2licar ca%a una %e las #erramientas 5ue trae el (M. +so s89 nos centraremos en las 5ue me3ores resulta%os #emos obteni%o a la #ora %e realizar una au%itor8a. +l siguiente turno le toca a M;A(/.

Turno de

:A>P

M;A(/ 2o%r8amos %ecir 5ue es una #erramienta 5ue traba3a como 2ro-'. Cesto 5ue 5uiere %ecirE Nosotros 2o%emos utilizar M;A(/ 2ara 5ue interce2te to%o el tra6ico %e nuestro navega%or9 ' 2ara ello slo #emos %e con6igurar el navega%or 2ara 5ue salga 2or un 2ro-'. +ste 2ro-' ser la %ireccin local %e tu m5uina 12L. . .19 ' el 2uerto ser el 5ue se le #a'a asigna%o a M;A(/9 5ue 2or %e6ecto es el O O1. "ambi1n 2o%emos utilizar M;A(/ como cual5uier otro escner. (im2lemente metien%o la %ireccin a la 5ue 2reten%emos atacar. M;A(/ se encargar %e #acer un b:s5ue%a %e to%as las vulnerabili%a%es 2osibles.

19

Capitulo

2 B3s4ue"a "e .ulnerabili"a"es

Ilustracin 8: Con(i=uracin Prox% "e ?@A&P BAP /ero esto lo veremos %es2u1s... La %i6erencia ra%ica en nuestro 2ro2io criterio9 es %ecir9 el ata5ue va a ser el mismo9 sin embargo 2o%remos utilizarlo %e la manera 5ue nos sea ms cmo%a. (i utilizamos M;A(/ como 2ro-'9 estaremos obligan%o al navega%or a 5ue to%as las %irecciones 2asen 2reviamente 2or M;A(/. +sto 2ue%e ser un 2oco catico si a la misma vez 5ue estamos atacan%o una &eb9 tambi1n estamos visitan%o otras 5ue no tienen na%a 5ue ver con el ata5ue. M;A(/ las recoger ' las analizar %e igual manera. +so s89 si sabemos esto 2reviamente9 ten%remos el ata5ue muc#o ms controla%o. Na 5ue 2o%remos en6ocar o centrar en a5uella 2arte %on%e 5ueremos o creemos 5ue 2o%emos encontrar una vulnerabil%ia%. +l otro m1to%o %e ata5ue es ms %irecto aun5ue tambi1n es un arma %e %oble 6ilo. 0ablamos %e un ata5ue 5ue se realiza %irectamente sobre la &eb 5ue nosotros le in%i5uemos. +sto inclu'e to%o ti2o %e b:s5ue%a %e vulnerabili%a%es9 recorri%o %e url9 etc. /or tanto es un 2oco ms llamativo 2ara los =;9 ID(GI/(9 etc.

18

Capitulo

2 B3s4ue"a "e .ulnerabili"a"es

Ilustracin 9: Ata4ue autom#tico a una C!L con ?@A&P BAP La manera %e traba3ar %e M;A(/9 2ara este caso ser recorrer to%as las $FL %el %ominio 5ue nosotros le #emos in%ica%o ' en ca%a una %e ellas intentar #acer alguna com2robacin 2ara ver si es e-2lotable o no. +ste ti2o %e ata5ue es 6cilmente %etectable 2or los =; o los ID(. Na 5ue se estar8a realizan%o 2ruebas malintenciona%as %es%e nuestra I/.

/anos a la obra: Pri*era "rueba de conce"to con

:A>P

/ara ver el gran 2otencial %e la #erramienta lo 5ue #emos #ec#o #a si%o lanzar un ata5ue %irecto #acia una 2gina. +s2eran%o 5ue nos re2ortara alguna vulnerabili%a%9 ' 5ue 1sta no 6uera un 6also 2ositivo. 4uan%o se lanza un ata5ue %irecto %es%e M;A(/9 ' 2rcticamente %es%e cual5uier escner %e vulnerabili%a%es9 el 2roceso es lento ' re5uiere %e bastantes recursos %el 2rocesa%or ' la memoria. (olo es cuestin9 %e es2erar a 5ue el ata5ue 6inalice ' luego ir vien%o 5ue re2orte %e vulnerabili%a%es #a obteni%o. +n el caso %e M;A(/ e-isten cuatro iconos con los 5ue 2o%remos %i6erenciar los ti2o %e alertas 5ue #a i%o encontran%o. M me3or %ic#o el gra%o %e vulnerabili%a%.

Ilustracin 10: Le%en"a "e iconos Ti"os de alerta segAn el color: !ojo: Vulnerabili%a% cr8tica. 0aranja: 4ritici%a% me%ia A*arilla: Vulnerabili%a% ba3a. A.ul: Alertas in6ormativas Na%a me3or 5ue ver el resulta%o obteni%o %el ata5ue 2ara enten%erlo bien. 4on tan solo un 2ar %e @clicA conseguimos algunas 5ue otras vulnerabili%a%es9 %e las cueles 2 %e ellas son cr8ticas ' encontra%as en ms %e un lugar %e la 2gina9 tal ' como muestra la 19

Capitulo

2 B3s4ue"a "e .ulnerabili"a"es

imagen: &ross >ite >cri"ting =B>>? 6ue encontra%o en 1K lugares %e la 2gina. >CL injection 6ue encontra%a en otros I lugares %e la 2gina.

Ilustracin 11: Panel "e resulta"os "e las .ulnerabili"a"es encontra"asD ?@A&P BAP (abien%o esto ' con las #erramientas a%ecua%as9 'a casi estamos listo 2ara realizar un ata5ue en to%a regla ' em2ezar a obtener %atos 2riva%os %el ob3etivo al 5ue estamos atacan%o 2ara %es2u1s re2ortarlo en nuestra au%itor8a %e et%ical %ack2

&a"'tulo 3 +-2lotacin

Introduccin
+ste tema ser 2osiblemente uno %e los ms atractivos. +n 1l vamos a ver como %arle uso a to%a la in6ormacin 5ue #emos reco2ila%o anteriormente ' 5ue nos ser %e gran a'u%a. (i #acemos un breve resumen 'a tenemosJ los 2uertos abiertos a los 5ue vamos a atacar9 el ti2o %e tecnolog8a9 ' alguna 5ue otra vulnerabili%a%. (abien%o esto slo es cuestin %e centrarnos en la vulnerabili%a% 5ue 5ueremos e-2lotar9 elegir la #erramienta ' llevarlo acabo. Algunas 2ruebas bsicas 5ue se %eben #acer antes %e intentar vulnerar un sistema es %escartar si las vulnerabili%a%es 5ue %evolvi :A>P DAP son 6alsos 2ositivos o realmente son vulnerabili%a%es e-2lotables. +n algunas ocasiones el saber si una &eb es vulnerable a una %e estas 6allas es mu' sencillo. Por eje*"lo: en el caso %e una vulnerabili%a% >CL injection ser8a cuestin %e intro%ucir una comilla sim2le >Q? 2ara ver si se 2ro%uce el error. (i e-iste error 2or 2arte %el servi%or es altamente 2robable 5ue 2o%amos realizar un ata5ue sobre la ,,DD. Mtro 6allo %e seguri%a% 5ue se suele encontrar a menu%o son los llama%os B>> (Cross Site Scripting) 5ue 2ara reconocerlos solo #ar 6alta intro%ucir un 2e5ueBo @scri2tA al 6inal %e la url con el ob3etivo %e alterar la in6ormacin %e la 2gina &eb. ,asn%onos en la>s? vulnerabili%a%>es? 5ue 'a encontramos 2o%emos em2ezar a %escartar 6alsos 2ositivos.

Cap+tulo 3 2 Explotacin

Identi-icando #ulnerabilidades2
+l 2rimer 2aso %e to%os es revisar to%as las vulnerabili%a%es e i%enti6icar %e 5ue ti2o %e vulnerabili%a% se trata >(DL9 S((9 DoD(9...? +-aminan%o el in6orme %e vulnerabili%a%es %e M;A(/ UA/ tomaremos como e3em2lo una %e las alertas con ma'or critici%a%.

Ilustracin 1 : In(orme "e .ulnerabili"a"es localiEa"asD ?@A&P BAP (e trata %e una vulnerabili%a% >CL injection U0I 0 sobre /$>CL2 (i esta vulnerabili%a% 6uera e-2lotable estar8amos com2rometien%o el sistema %e la ,,DD ' 2osiblemente ser8amos ca2aces %e alterar el conteni%o tanto %e la ,,DD como %e la 2gina &eb a la 5ue atacamos. Lo iremos vien%o 2oco a 2oco. /ara com2robar si e-iste un 6allo %e seguri%a% >CL injection vamos a coger la $FL ' a mo%i6icarla 2ara ver 5ue nos %evuelve el servi%or. $FL original: http://sitioweb.com/actualidad/evento.php?id=110 $FL mo%i6ica%a con una comilla al 6inal >Q? http://sitioweb.com/actualidad/evento.php?id=110' +l resulta%o es un claro error %e sinta-is9 esto es bsicamente9 en la gran ma'or8a %e los casos9 nos 2ermitir e-traer in6ormacin %e la ,,DD. N gracias a esta 2e5ueBa com2robacin 2o%emos em2ezar a lanzar nuestro ata5ue.

Cap+tulo 3 2 Explotacin

Ilustracin 13: ForEan"o un error "e sintaxis en &'L

Vulnerando la BBEE $ extra$endo in-or*acin2


+-isten numerosas #erramientas 5ue nos a'u%arn a lanzar un ata5ue sobre la ,,DD. Al igual 5ue suce%8a con la b:s5ue%a %e vulnerabili%a%es9 2ara e-2lotar un 6allo %e (DL in3ection utilizaremos alguna #erramienta 5ue nos 2ermita automatizar el ata5ue. /ara ello utilizamos >CL*a"9 5ue es sin %u%a una %e las #erramientas ms 2otentes 5ue e-iste 2ara realizar ata5ues %e >CLinjection9 ' 5ue a%ems viene 2or %e6ecto instala%a en Backbox. +sta #erramienta contiene numerosos scri2t9 con la con6iguracin necesaria 2ara 2o%er lanzar un ata5ue sobre cual5uier ,,DD 5ue sea vulnerable. Al acce%er 2or 2rimera a (DLma2 ' aBa%ien%o el 2armetro 8% (#sqlmap -h)9 se mostrar alguna %e las con6iguraciones ms bsicas ' utiliza%as.

Cap+tulo 3 2 Explotacin

Ilustracin 1): ?pciones b#sicas "e s4lmap Algunas 2armetros 5ue %ebemos tener en cuenta son (por ejemplo) Level y Risk. +-isten ocasiones 5ue al intentar e-traer in6ormacin no obten%remos na%a 2or 2arte %el servi%or9 e iremos aumentan%o el gra%o %e Level ' Risk. /or otra 2arte9 gracias a la gran ca2aci%a% %e s5lma29 con el coman%o EU/P se "uede llegar a reali.ar un #olcado de la BBEE a tu *<5uina2 (e 2o%r8as %ecir 5ue utilizar (DLma2 es 6cil9 o al menos intuitivo9 'a 5ue si se intro%uce alg:n 2armetro mal la #erramienta nos %ir 5ue es lo 5ue estamos #acien%o mal9 ' nos %ar alg:n ti2o %e solucin.

>CL*a": Prueba de conce"to


Lo 2rimero 5ue intentaremos ser ver 5ue ,ases %e %atos almacena el servi%or. /ara ello )

Cap+tulo 3 2 Explotacin

aBa%imos el 2armetro !%bs. +sto %eber8a mostrar to%as las ,,DD. 1s5l*a" 8u %tt":@@sitio,eb2co*@actualidad/evento.php?id=110 dbs

Ilustracin 1/: ?btenien"o Bases "e "atos con s4lmap El resultado es precisamente el esperado, hemos conseguido obtener todas las bases de datos a travs del allo !ue encontramos. " partir de a!u# ser$ cuesti%n de ir viendo la a&uda de '()map para saber !ue podemos utili*ar en nuestro bene icio. )o m$s l%gico ser#a, partiendo de la bases de datos a la !ue !ueremos atacar, hacer un volcado de la in ormaci%n de alguna de las tablas, columnas, o de la ++,, entera. -odas las +ases de datos est$n compuestas de -ablas, .olumnas & /egistros. 0or tanto una +ase de datos almacena numerosas -ablas, !ue estas a su ve* almacenan numerosas columnas. )as columnas por su parte son las !ue almacenan los registros, es decir, la in ormaci%n inal. 'on estos datos los !ue pueden contener 1ombres de usuarios, contrase2as, etc.

,ase %e Datos 1 "abla 1 4olumna1 Fegistro 1 4olumna 2 Fegistro 2

Cap+tulo 3 2 Explotacin

Esto ha& !ue tenerlo en cuenta &a !ue a la hora de lan*ar el ata!ue con '()map lo haremos paso a paso e intentando provocar las menos sospechas posibles. .uando hablamos de hacerlo paso a paso nos re erimos a ir obteniendo in ormaci%n desde lo m$s b$sico hasta pro undi*ar en cada una de las bases de datos. Es decir, primero veremos las bases de datos !ue almacena el servidor, despus veremos las tablas de alguna base de datos, luego las columnas dentro de esa tabla, & as# sucesivamente.

bteniendo las tablas de la base de datos


/ara obtener la in6ormacin %e las tablas 5ue almacena la base %e %atos9 #emos %e in%icar a (DLma2 la $FL ' la base %e %atos %e la 5ue 5ueremos la in6ormacin. 4omo el lista%o %e las bases %e %atos 'a lo #emos obteni%o anteriormente ser cuestin %e ver si e-iste alguna ,D 5ue 2or su nombre 2arezca ms relevante. 4on el siguiente coman%o enumeraremos9 nos mostrar9 las tablas %e la base %e %atos %b2.K1K: 1s5l*a" 8u %tt":@@sitio,eb2co*@actualidad@e#ento2"%"FidG((3 88le#elG9 88-lus%8session 88tables 8E bd;34(4 +l resulta%o es una gran lista %e tablas. Algunas %e ellas9 2or su nombre9 bastante signi6icativas9 como es el caso %e los %atos %e Fecursos 0umanos.

Ilustracin 15: Enumeracin "e tablasD s4lmap 0 TA: +s im2ortante saber 5ue (DLma2 en ca%a ata5ue 5ue lanza guar%a los resulta%os en una car2eta >G9 5ue %es2u1s utiliza 2ara buscar en ella en caso %e realizarse un nuevo ata5ue sobre la misma $FL. 4on esto s5lma2 2reten%e a#orrar tiem2o en nuestra busca%a. (in embargo en muc#as ocasiones nos 2ue%e 2er3u%icar 'a 5ue s5lma2 trata esta in6ormacin %e la misma manera 5ue lo #ace un navega%or &eb con los tem2orales. +s 2osible 5ue en algunas ocasiones no se est1n mostran%o los resulta%os @realesA acor%e con lo 5ue lanzamos9 el motivo es 5ue s5lma2 siem2re 5ue se #a'a realiza%o una consulta 2reviamente sobre esa &eb9 antes %e volver a lanzar un nuevo ata5ue9 mostrar los resulta%os 'a obteni%os con anteriori%a%. +sto se soluciona aBa%ien%o el 2armetro -lus%8session el cual nos 2ermitir saltarnos esta es2ecie %e cac#1. (i continuamos buscan%o in6ormacin sensible en las tablas ' en las D,9 2o%remos ver como colarnos en el servi%or es muc#o ms 6cil %e lo 5ue se 2iensa en un 2rimer momento. 4omo 'a comentamos al 2rinci2io %e este "ema9 una vez vulnera%o el servi%or me%iante una in'eccin (DL9 2o%r8amos %ecir 5ue tenemos @control totalA sobre la m5uina. +n este e3em2lo vamos a ver como una %e las tablas %e %e una D, contiene las contraseBas9 en te-to claro9 %e unos usuarios.

Cap+tulo 3 2 Explotacin

Ilustracin 19: Enumeracin "e columnasD &4lmap +stas cuentas %e usuario 5ue se almacenan en te-to claro9 se trata %e cuentas9 5ue 2or alg:n motivo9 el a%ministra%or a %eci%i%o guar%ar sin ci6rar. +ste gran 6allo %e seguri%a% nos va a 2ermitir seguir intro%uci1n%onos un 2o5uito ms en la m5uina.

&a"'tulo H /ost<e-2lotacin

Introduccin
La 2ost<e-2lotacin %e los sistemas en una au%itor8a %e #ac)ing 1tico no es ms 5ue a5uello 5ue 2o%emos realizar una vez vulnera%o los sistemas. +s %ecir9 una vez 5ue 'a tenemos control sobre un e5ui2o intentar vulnerar otros e5ui2os %e la re%. Durante to%o el libro se est realizan%o el ata5ue sobre una misma m5uina9 2or lo tanto9 ' 2ara 5ue to%os enten%amos bien el conce2to %e 2ost<e-2lotacin seguiremos #aci1n%olo %e igual 6orma9 sobre la misma m5uina. 4omo 'a #emos visto9 tenemos acceso sobre la ,D9 ' a%ems tenemos unas 2ass&or%s 5ue se 2ue%en ver sin necesi%a% %e 4rac)earlas. Al 2rinci2io %el "ema 19 se vio 5ue la recogi%a %e in6ormacin era mu' im2ortante 2ara %es2u1s 2o%er realizar un ata5ue. +sto nos va a 2ermitir vulnerar a:n ms la ,D. (i recor%amos9 la m5uina 5ue estamos atacan%o9 5ue no es ms 5ue un servi%or &eb9 uno %e sus a2arta%os era un blog basa%o en ;or%2ress. Vamos a a2rovec#arnos %e la brec#a %e seguri%a% %el P'(5l 2ara #acernos con el control total %e la base %e %atos a trav1s %el arc#ivo %e con6iguracin %el 2ro2io ;or%2ress. +sto lo 2o%remos #acer con (DLma2 %escargn%onos o mostran%o >como 2re6iramos? el arc#ivo ,"8con-ig2"%" el cual contiene el nombre %e usuario ' la contraseBa con la 5ue ;or%2ress se conecta a la ,D.

Cap+tulo ) 2 Post-explotacin

Lectura de arc%i#os con >CL


Mtras %e las caracter8sticas %e (DLma2 %e la 5ue sacaremos gran 2arti%o es la 2osibili%a% %e leer 6ic#eros %el servi%or o m5uina remota. Mbservan%o la a'u%a 5ue nos o6rece (DLma2 vemos 5ue sus usos ' 6unciones son casi in6initos. A#ora bien9 6i31monos en el 2armetro 8 -ile8readG

Ilustracin 18: ?pciones para leer o "escar=ar arc*i.os con s4lmap +ste 2armetro nos 2ermite leer un arc#ivo al lanzar el coman%o Vsudo s5l*a" 8u %tt":@@,ebsite2es@actualidad@e#ento2"%"FidG 8-ile8readG@etc@"ass,d +s lo mismo 5ue si #ici1ramos un Vnano GrutaG%elWarc#ivo.t-t +sto nos 2ermitir visualizar el arc#ivo en nuestra m5uina. 4omo 'a #e comenta%o9 sabien%o 5ue nuestro ob3etivo tiene un ;or%2ress monta%o9 ' 5ue 1ste guara la in6ormacin %el nombre %e usuario ' las 2ass&or% %e la base %e %atos a la 5ue se conecta9 2o%remos 2enetrar en este servi%or. /ara ello slo %ebemos %e leer el arc#ivo ,"8con-ig2"%" 1sudo s5l*a" 8u %tt":@@,ebsite2es@actualidad@e#ento2"%"FidG 8-ile8 readG@o"t@la**"@sitio@blogs@;3(3@,"8con-ig2"%"

Cap+tulo ) 2 Post-explotacin

Ilustracin 19: Arc*i.o "e con(i=uracin "e @or"press obteni"o con s4lmap

Acceso al ser#idor
+-isten muc#as 6ormas %e 2o%er acce%er al servi%or una vez 5ue se encuentra una brec#a %e seguri%a% en el sistema. +n la gran ma'or8a %e las ocasiones el acceso al servi%or ser %e manera in%irecta 2ara ir escalan%o 2rivilegios. +s mu' com:n en un ata5ue la escala%a %e 2rivilegios.

+scalada de "ri#ilegios
(e conoce como escala%a %e 2rivilegios la t1cnica 5ue 2ermite ir a%5uirien%o ms 2ermisos sobre un sistema in6ormtico. Algunos casos t82icos es cuan%o un atacante obtiene la cuenta %e usuario %e un sistema sin a2enas 2rivilegios9 ' a 2artir %e 1ste ir acce%ien%o a otros sistemas #asta #acerse con alg:n otro usuario A%ministra%or 5ue le otorgue ms 2ermisos sobre su 2ro2io sistema o sobre otro. +sto se em2lea normalmente 2ara conseguir un control total sobre la m5uina 5ue se 5uiere atacar.

Acceso indirecto al ser#idor: Base de datos


+n base a la in6ormacin e-tra8%a %el arc#ivo %e con6iguracin %e ;or%2ress 2o%emos acce%er ' #acer un recorri%o 2or servi%or 5ue almacena la ,ase %atos9 con el 6in %e ver 5ue otras ,ases %e %atos9 tablas9 ' usuarios e-isten en 1l. Aun5ue esto mismo se 2o%r8a #aber #ec#o anteriormente con (DLma29 la navegacin en un entorno gr6ico me%iante un cliente %e s5l es muc#o ms amigable e intuitiva a la #ora %e seguir buscan%o in6ormacin sensible 5ue nos 2ermita ir escalan%o 2rivilegios. 30

Cap+tulo ) 2 Post-explotacin

+l arc#ivo %e con6iguracin &2<con6ig.2#2 %e ;or%2ress 2ermite conectar la 2gina &eb monta%a sobre &or%2ress con la ,ase %e %atos. /ara ello este arc#ivo guar%a las cre%enciales %el servi%or contra el 5ue se autenticar9 as8 como la ,ase %e %atos a la 5ue %ebe %e atacar. /ara realizar la cone-in contra el servi%or %e ,ase %e %atos se #a utiliza%o el cliente Ebea#er (http://dbeaver.j iss.org/) multi2lata6orma ' o2erativo 2ara to%os los gestores %e base %e %atos conoci%os.

Ilustracin 0: Cliente GBea.erD Acce"ien"o al seri."or "e Base "e "atos

Penetrando en :ord"ress
+-isten escner %e vulnerabili%a%es &eb ca2aces %e encontrar vulnerabili%a%es en Gestores %e 4onteni%o ti2o 4P( como ;or%2ress9 Xoomla9 etc9 2ero a%ems9 2or otra 2arte tambi1n e-isten #erramientas es2ecializa%as9 2ensa%as 2ara analizar ' encontrar to%o ti2o %e vulnerabili%a%es en Xoomla ' ;or%2ress9 como es el caso %e ,"scan 2ara ;or%2ress9 o joo*scan 2ara Xoomla. +stas #erramientas son ca2aces %e analizar to%o ti2o %e 2lugin9 com2onentes9 m%ulos9 &i%gets... con el 6in %e %eterminan cuales %e ellos estn instala%os9 cual es su versin ' si es vulnerable o no. +sta vez no vamos a mostrar ninguna %e estas #erramientas 'a 5ue anteriormente #emos obteni%o acceso a la ,ase %e %atos %el servi%or %on%e se alo3a tambi1n la ,ase %e %atos %el 2ro2io ;or%2ress9 2ero est bien saber 5ue e-isten 2ara en un 6uturo 2o%er utilizarlas en nuestras au%itor8as %e seguri%a%.

&reando un nue#o usuario en :ord"ress a tra#Is de *$s5l


A#ora 5ue tenemos acceso a la ,ase %e %atos 2robaremos a crear un usuario con 2ermisos A%min %entro %el 2anel %e a%ministracin %e Xoomla. +l motivo %e #acer esto ' no e-trae %irectamente la contraseBa %e alguno %e los usuarios 5ue 31

Cap+tulo ) 2 Post-explotacin

'a e-ista en ;or%2ress9 es 2or5ue el ci6ra%o %e la contraseBa %e ;or2%ress es mu' 6uerte9 ' tar%ar8amos meses en 2o%er 4rac)ear el 0as#. /ara 2o%er crear un nuevo usuario %e ;or%2ress a trav1s %e la ,ase %e %atos9 %ebemos %e insertar una ser8a %e 6ilas ' cam2os %entro %e la tabla &2<usermeta%a ' &2<users. +stas %os tablas son las 5ue contienen la in6ormacin %e los usuarios ' sus 2ermisos.

:"8users
+sta tabla contiene los cam2os %e to%a la in6ormacin %el usuario: Nombre 4ontraseBa Nic)name +mail %e usuario +sta%o +tc.

:"8user*etada
(in embargo esta otra tabla contiene los %atos necesarios 5ue otorga al usuario ciertos 2ermisos ' 2rivilegios9 como son: +%itor Autor A%ministra%or Invita%o +tc

Duizs una %e las cosas ms im2ortantes a tener en cuenta es el nombre 5ue eli3amos 2ara el nuevo usuario 5ue crearemos. 0a' 5ue 2rocurar 2asar lo ms %esa2ercibi%o 2osible. Inventarse nombres %el ti2o9 userWtm29 1Wtm29 a%mins9 usr... 2ue%en ser una buena i%ea 2ara 5ue el a%ministra%or %el sitio a2enas se %e cuenta %e 5ue e-iste un nuevo usuario. +l nombre 5ue se 2one es %e esta 8n%ole 2ara 5ue en caso %e 5ue alguien lo vea tien%a a 2ensar 5ue es un usuario %el 2ro2io sistema9 o 5ue 6ue crea%o 3unto con la instalacin %e alg:n com2onente o 2lugin.

Ilustracin 1: ,abla 0pHusersD Contiene los "atos "el usuario /ara la 2arte 5ue contiene los 2rivilegios %e los usuarios9 tan solo vamos a 6i3arnos en cual %e los usuarios 5ue 'a e-iste es a%ministra%or 2ara co2iar los mismos valores en una nueva 6ila ' 3

Cap+tulo ) 2 Post-explotacin

asociarlos al ID %el usuario 5ue #emos crea%o.

Ilustracin usuario

: ,abla 0pHusermeta"aD Contiene los "atos 4ue otor=an permisos al

+s %ecir9 el 2rimer 2aso es aBa%ir una nueva 6ila en la tabla &2Wusuers9 tal ' como muestra la ilustracin 21. +l segun%o 2aso es insertar %os 6ilas ms en la tabla &2Wusermeta%a9 las cuales asociaremos al ID %el usuario 5ue creamos anteriormente en la tabla &2Wuser. 4on esto 'a 2o%r8amos ir a la 2arte %e a%ministracin %e ;or%ress e intentar ingresar con el nuevo usuario 5ue #emos crea%o.

Ilustracin 3: Lo=in "el backen" "e @or"press /or %e6ecto en la ruta con la 5ue acce%eremos a ;or%2ress se ubica en &&&.sitio.comG ,"8 ad*in2 (i to%o #a i%o bien 'a 2o%emos em2ezar a navegar 2or to%o el sitio en busca %e ms in6ormacin relevante9 o en busca %e nuevas 2roezas 5ue nos a'u%en a a%entrarnos un 2oco ms en la in6raestructura %e la em2resa.

33

Cap+tulo ) 2 Post-explotacin

Ilustracin ): Panel "e a"ministracin "e @or"press

Local Jile Inclusion: un "aso *<s cerca del control


Local 6ile inclusion >L=I ? se trata %e una vulnerabili%a% 5ue 2ermite al atacante subir una s#ell al servi%or. +sta s#ell no es ms 5ue un arc#ivo 5ue 2ue%e estar 2rograma%o en %istintos lengua3es como son /0/ o A(/. +l atacante buscar la manera %e 2o%er subir el arc#ivoGs#ell a trav1s %e la &eb. Normalmente este 6allo %e seguri%a% es %ebi%o a 5ue los 6ormularios %e subi%a %e arc#ivos >%ocumentos9 imgenes9 m:sica... ? no #acen bien el 6iltra%o %el ti2o %e arc#ivo o e-tensin 5ue se sube. +sto se %ebe a un 6allo %e 2rogramacin en el 2ro2io /0/ o 2or una mala con6iguracin en A2ac#e. Al %is2oner %e una s#ell en la m5uina %e manera local 2o%remos enviar casi cual5uier coman%o como si estuvi1ramos %elante %el or%ena%or. 4omentar 5ue9 a 2esar %e 5ue se 2ue%en lanzar coman%os9 no to%os los coman%os se 2o%rn e3ecutar9 'a 5ue 2ara abrir %etermina%os 2rogramas o acce%er a algunos %irectorios ' car2etas9 se re5uieren 2ermisos ms eleva%os o %e Foot9 sin embargo estos 2ocos 2ermisos sern su6iciente como 2ara intentar una escala%a %e 2rivilegios ' as8 2o%er tener control total sobre el usuario ' la m5uina.

3)

Cap+tulo ) 2 Post-explotacin

Ilustracin /: Local File Inclusion (i bien es cierto 5ue en la ma'or8a %e los casos este 6allo se e-2lota a trav1s %e 6ormularios %e subi%a9 ca%a #ac)er se las ingenia 2ara al 6inal %is2oner %e una s#ell en el servi%or &eb in%e2en%ientemente el me%io 5ue #a'a utiliza%o.

LJI a :ord"ress
Llega%os a este 2unto 2o%8amos #aber vuelto a buscar vulnerabili%a%es9 esta vez en ;or%2ress9 con el 6in %e encontrar alg:n 2lugin 5ue nos 6acilitara la subi%a %e una s#ell. (in embargo9 2uesto 5ue 'a tenemos un usuario A%min9 nos a2rovec#aremos %e 1ste 2ara intro%ucir as8 nuestra s#ell. +l 2roceso es sencillo 'a 5ue tan slo nos va a #acer 6alta mo%i6icar alg:n arc#ivo /0/ %e los 5ue com2one ;or%2ress. Al tratarse %e uno %e los arc#ivos %el 2ro2io ;or%2ress9 el usuario A%min %e ;or%2ress ten%r 2ermisos su6icientes 2ara mo%i6icar %ic#o arc#ivo ' 5ue 1ste se 5ue%e guar%a%o en el servi%or. /ara lograr nuestro 2ro2sito vamos a acce%er al 2anel %e a%ministracin con el usuario A%min >el cual 'a creamos anteriormente a trav1s %e la ,D? ' vamos a buscar9 entre to%a la con6iguracin %el /anel A%min9 la manera %e mo%i6icar un arc#ivo %e los 5ue com2one ;or%2ress. $na buena i%ea ser8a e%itar la 2lantillaG"#eme 5ue est instala%o en ese ;or%2ress. Puc#os %e los arc#ivos 5ue com2onen el "#eme estn 2rograma%os en /0/ ' se 2ue%en e%itar. (iem2re 5ue se #agan este ti2o %e mo%i6icaciones #a' 5ue tener cui%a%o con el arc#ivo 5ue se mo%i6ica9 'a 5ue si e%itamos un arc#ivo 5ue no %ebemos 2o%emos %e3ar sin servicio la &eb. A#ora 5ue 'a sabemos cual va a ser la 6orma %e actuar ' el 2roceso 5ue se va a seguir9 necesitamos %escargar una s#ell 2ara incrustarla en uno %e estos arc#ivos. +n la &eb http://!!!.oco.cc/ 2o%emos encontrar numerosas s#ell 5ue nos servirn 2ara #acer esto mismo. 4ual5uiera %e ellas es vli%a. 4omo e3em2lo utilizamos la s#ell cYY.2#2 los 2asos a seguir son: Descargamos la s#ell >cYY9 rIL9 c1 ...?

4on alg:n e%itor %e te-to9 abrimos la s#ell ' co2iamos su conteni%o. ,uscamos un arc#ivo 2#2 5ue se 2ue%e e%itar %entro %el 2anel A%min %e ;or%2res. 3/

Cap+tulo ) 2 Post-explotacin

/egamos el conteni%o %e la (#ell en el arc#ivo %e ;or%2ress.

Ilustracin 5: &*ell copia"a en arc*i.o aut*orDp*p "el t*eme ,0ent% ,0el.e "e @or"press Des2u1s %e colocar la (#ell en uno %e los arc#ivos sin 5ue na%ie note na%a9 nos 6alta saber la ruta e-acta %on%e est alo3a%a. +n ;or%2ress9 como en to%os lo 4P(9 los arc#ivos9 %irectorios ' rutas9 son estticos9 2or lo 5ue 2o%emos #acer %os cosas9 1<,a3arnos ;or%2ress ' ver %on%e se encuentra la ruta9 o 2<,uscar la ruta %entro %el c%igo 6uente. Duizs si #ubi1ramos mo%i6ica%o cual5uier otro arc#ivo %e ;or%2ress nos #ubiera #ec#o 6alta ba3ar una co2ia %e ;or%2ress a nuestro e5ui2o 2ara ver la ruta9 o utilizar un s"ider 2ara recorrer to%as las $FL ' ver as8 to%os sus %irectorios >algo 5ue 2ue%e estar ca2a%o si el a%ministra%or se #a 2reocu2a%o %e la seguri%a% %e su sitio?. +n nuestro caso no va ser necesario to%o esto9 si vemos el c%igo 6uente %e la 2gina 2rinci2al %e ;or%2ress9 2o%remos localizar 6cilmente la ruta %on%e esta el "#eme.

Ilustracin 9: C"i=o (uente "e la p#=ina principal "e @or"press Lo siguiente ser ver 5ue com2robar 5ue to%o #a sali%o como es2eramos ' 5ue al intro%ucir la ruta %on%e #emos guar%a%o la (#ell realmente se muestra el 2anel %e con6iguracin %e la (#ell cYY. La ruta entera 5ue%ar8a %e la siguiente manera: http://"#$."%&.$''.$""/!ordpress/!p-content/themes/t!entyt!elve/a(thor.php

35

Cap+tulo ) 2 Post-explotacin

Ilustracin 8: &*ell c99: Panel "e a"ministracin

39