Está en la página 1de 37

Backbox Linux 3

Iniciacin al Pentesting
1Edicin

Documento: Libro
Nivel: Iniciacin
Autor: Ismael Gonzlez D.
Versin: 2.1
Lugar: Kontrol0 The Underway Security
Localizacin: www.kontrol0.com

Hacking tico en aplicacones web

Backbox Linux 3 Iniciacin al Pentesting


Por Ismael Gonzzles D.
Este libro se distribuye bajo una licencia Reconocimiento-NoComercial-CompartirIgual

4.0 Internacional
Usted es libre de:
Copiar y redistribuir el material en cualquier medio o formato
Bajo las condiciones siguientes:
Attribution Debe reconocer adecuadamente la autora, proporcionar un
enlace a la licencia e indicar si se han realizado cambios. Puede hacerlo de
cualquier manera razonable, pero no de una manera que sugiera que tiene el apoyo
del licenciador o lo recibe por el uso que hace.

NonCommercial No puede utilizar el material para una finalidad


comercial.
ShareAlike Si remezcla, transforma o crea a partir del material,
deber difundir sus contribuciones bajo la misma licencia que el
original.

ndice de contenido
9Introduccin................................................................................................................5
Pentesting y Blackhat........................................................................................5
13Captulo 1 Primeros Pasos Con Backbox.................................................................7
Herramientas y su uso.......................................................................................7
Por donde empezar............................................................................................8
Objetivo 1: Atacar servidor web.......................................................................8
Escaneo de puertos con Nmap..........................................................................9
15Captulo 2 Bsqueda de vulnerabilidades...............................................................14
Introduccin....................................................................................................14
Nmap como escner de vulnerabilidades (NSE Vulnscan)............................15
PoC: Prueba de concepto Nmap Vulnscan v1.0..............................................15
Turno de OWASP............................................................................................17
Manos a la obra: Primera prueba de concepto con OWASP.....................19
72Captulo 3 Explotacin...........................................................................................21
Introduccin....................................................................................................21
Identificando vulnerabilidades........................................................................22
Vulnerando la BBDD y extrayendo informacin......................................23
SQLmap: Prueba de concepto...................................................................24
Obteniendo las tablas de la base de datos.................................................26
Captulo 4 Post-explotacin........................................................................................28
Introduccin....................................................................................................28
Lectura de archivos con SQL .........................................................................29
Acceso al servidor...........................................................................................30
Escalada de privilegios..............................................................................30
Acceso indirecto al servidor: Base de datos..............................................30
Penetrando en Wordpress................................................................................31
Creando un nuevo usuario en Wordpress a travs de mysql.....................31
Wp-users...................................................................................................32
Wp-usermetada.........................................................................................32
Local File Inclusion: un paso ms cerca del control.......................................34
LFI a Wordpress........................................................................................35

ndice de ilustraciones
Ilustracin 1: Escritorio Backbox Linux 3...........................................................................................8
Ilustracin 2: Resultado obtenido tras un escner de puertos con nmap............................................10
Ilustracin 3: Intento de acceso al panel de administracin de MySQL desde fuera de la red interna
............................................................................................................................................................11
Ilustracin 4: Informacin de los hosts y subdominios extrada con TheHarvester...........................12
Ilustracin 5: Informacin de un servidor web a travs de whatweb.................................................13
Ilustracin 6: Buscando vulnerabilidades con Nmap + Vulnscan......................................................16
Ilustracin 7: Ejemplo de XX (Cross Site Scripting).........................................................................16
Ilustracin 8: Configuracin Proxy de OWASP ZAP.........................................................................18
Ilustracin 9: Ataque automtico a una URL con OWASP ZAP........................................................19
Ilustracin 10: Leyenda de iconos......................................................................................................19
Ilustracin 11: Panel de resultados de las vulnerabilidades encontradas. OWASP ZAP...................20
Ilustracin 12: Informe de vulnerabilidades localizadas. OWASP ZAP............................................22
Ilustracin 13: Forzando un error de sintaxis en SQL........................................................................23
Ilustracin 14: Opciones bsicas de sqlmap.......................................................................................24
Ilustracin 15: Obteniendo Bases de datos con sqlmap.....................................................................25
Ilustracin 16: Enumeracin de tablas. sqlmap..................................................................................26
Ilustracin 17: Enumeracin de columnas. Sqlmap...........................................................................27
Ilustracin 18: Opciones para leer o descargar archivos con sqlmap.................................................29
Ilustracin 19: Archivo de configuracin de Wordpress obtenido con sqlmap..................................30
Ilustracin 20: Cliente DBeaver. Accediendo al serivdor de Base de datos.......................................31
Ilustracin 21: Tabla wp_users. Contiene los datos del usuario.........................................................32
Ilustracin 22: Tabla wp_usermetada. Contiene los datos que otorgan permisos al usuario.............33
Ilustracin 23: Login del backend de Wordpress...............................................................................33
Ilustracin 24: Panel de administracin de Wordpress.......................................................................34
Ilustracin 25: Local File Inclusion....................................................................................................35
Ilustracin 26: Shell copiada en archivo author.php del theme Twenty Twelve de Wordpress..........36
Ilustracin 27: Cdigo fuente de la pgina principal de Wordpress...................................................36
Ilustracin 28: Shell c99: Panel de administracin ...........................................................................37

Introduccin

En el mundo de la seguridad informtica existen una serie de herramientas especificas que ayudan a
realizar las tareas llevadas acabo tanto por parte de un Pentester en su auditora de seguridad como un
Hacker en el lado del Blackhat.
Evaluar los riesgos de una empresa tal y como se hace en una auditora de seguridad sera prcticamente
imposible sin estas herramientas. Puesto que dentro de la seguridad informtica existen numerosas
ramas, existen distribuciones Linux preconfiguradas con todas las herramientas necesarias para la
realizacin de una auditora de seguridad.
Backbox, es una distribucin Linux basada en Ubuntu para realizar dichas auditoras. Esta distribucin
tiene herramientas especficas para cada un a de las ramas de seguridad, como: Bsqueda de de
informacin, Bsqueda de vulnerabilidades, Anlisis forense, esteganografa, Ataques Wi-Fi, spoofing, etc.
Algunas de estas herramientas se pueden utilizar para distintas funciones dependiendo del uso que
queramos darle. Por ello es difcil clasificar cada herramienta dentro de un mbito, ya que en algunos casos
podremos utilizar, por ej.: nmap para realizar un escaneo de puertos, y en otras ocasiones, podremos
utilizar esta misma herramienta para hacer una bsqueda de vulnerabilidades, enumeracin de DNS, etc,
(dependiendo del script que carguemos).
Este Libro est enfocado a una auditora web, por ello se han descartado todas aquellas herramientas y
utilidades que no se puedan aplicar a esta rama de la seguridad.
Adems de programas enfocados a la automatizacin de pruebas de seguridad informtica, existen otro
tipo programas que tambin nos ayudan a realizar tareas ms administrativas como son por una parte la
recoleccin de informacin, como por otra el informe final que se debe de hacer indicando en detalle
todas las pruebas realizadas.
La recogida de informacin es una de las partes ms importantes para un hacker. A partir de sta se podr
focalizar un ataque. Por ello el tener todo bien documentado ser primordial.
Una de la caractersticas que trae esta distribucin es el anonimato web que se puede realizar de manera
simple y sencilla. Todo Hacker que que no quiera dejar localizado su rastro se ayudar de herramientas
como Vidalia, TOR, Polipo, Privoxy, etc. Estas herramientas permiten ocultar las conexiones del
ordenador. Backbox Linux viene preparado para poder anonimizar todas las conexiones del ordenador. A lo
largo de los captulos de este libro se ver en profundidad las tcnicas del Anonimato.
En el caso de una auditora de seguridad se podr determinar si los sistemas de la empresa que estamos
auditando, sern capaz de detectar una conexin real de una que est utilizando tcnicas de anonimato.
Todas las pruebas de concepto, as como el contenido mostrado en este libro se han hecho con el fin de
ensear la forma en la que acta un Hacker a la hora de perpetrar en un servidor, o en toda una
infraestructura de servidores y sistemas informticos.

Pentesting y Blackhat
Qu es el Pentesting? Pentesting es el trabajo que realiza un Hacker para determinar todas las
vulnerabilidades de un sistema, programa, servidor, o empresa. El pentester por su parte es aquella
persona que se encarga de realizar una batera de pruebas para despus presentar un informe detallado a
la empresa o servicio por el que fue contratado. Este trabajo se denomina Hacker tico.
Un contrato de Hacker tico compromete al pentester o auditor a ceirse a las condiciones de su contrato.
Esto permite evaluar todos los riesgos de una empresa sin que sta se vea afectada por los datos
obtenidos

Captulo 1 Primeros Pasos Con Backbox

Herramientas y su uso
Todas las herramientas y programas que se encuentran en cualquier distribucin de seguridad intentan
agrupar sus programas y utilidades en funcin de su uso y del orden en el que se hara una auditora de
seguridad. Sin embargo, al existir programas con varias funciones es difcil catalogar cada uno de los
programas en una categora predeterminada.

Una auditora de seguridad se realiza siguiendo el siguiente orden:


1.
2.
3.
4.
5.

Recoleccin/recopilacin de informacin.
Bsqueda de vulnerabilidades.
Explotacin de los sistemas.
Post explotacin.
Informe ejecutivo y tcnico.

Las mismas tcnicas son utilizadas por un Blackhat cuando se quiere atacar a un servidor. Sin embargo el
Blackhat se asegura de que su sus conexiones no dejan rastro, y para ello aade dos fases ms en su
recorrido; el anonimato y la posterior eliminacin de las posibles pruebas que hayan podido quedar.
1.
2.
3.
4.
5.
6.
7.

Recoleccin/recopilacin de informacin.
Anonimato.
Bsqueda de vulnerabilidades.
Explotacin de los sistemas.
Post explotacin.
Eliminacin de pruebas.
Informe ejecutivo y tcnico.

Las distribuciones de seguridad como ya se ha comentado antes, intentan asemejarse al orden en que se
hara una auditora. Bien, este dato es muy relativo, hay herramientas que estn en la categora de
Explotacin de Vulnerabilidades, pero que perfectamente nosotros podemos utilizarla para hacer una
bsqueda de vulnerabilidades. Como por ejemplo w3af, que en este caso est en la seccin de
Explotacin dentro de Backbox, pero que nosotros podremos utilizar para otras funciones, adems de
para lanzar un ataque.

Capitulo 1 - Primeros pasos con Backbox

Ilustracin 1: Escritorio Backbox Linux 3


Hay que tener en cuenta que un ataque o una auditora de seguridad variar en funcin del
tipo de ataque. Es decir, nosotros podemos realizar un ataque desde fuera de la red interna
de nuestro objetivo, o bien, podemos realizar un ataque desde la LAN desde la que queremos
encontrar vulnerabilidades.
Un claro ejemplo de esto es utilizar nmap para hacer un escaneo de puertos a una IP pblica
para determinar los servicios que corren sobre la mquina que est dando algn tipo de
servicio. O bien, si nos encontramos dentro de la propia red LAN, podemos lanzar nmap para
ver los equipos y la relacin de puertos abiertos o cerrados que tiene cada mquina dentro del
mismo segmento de red.

Por donde empezar


Es posible que que nosotros tengamos claro que queremos atacar a una determinada
mquina, pero no sabemos como hacerlo, ni por donde empezar. La clave de esto es, que
conforme se vaya obteniendo informacin el resto de acontecimientos irn saliendo solos, por
lo que no debes preocuparte. Tarde o temprano tal vez aparezca alguna vulnerabilidad de la
que aprovecharse. En la gran mayora de las ocasiones cuando nos ponemos a buscar
informacin del objetivo nos encontramos con diversas fuentes, unas llevan a otras, y as
sucesivamente hasta que llegamos a un punto en que sin darnos cuenta estamos casi dentro
del ordenador, o el servidor.
Un escenario tpico sera el de atacar a un objetivo desde fuera de la red, y una vez vulnerado
el sistema intentar acceder a la red interna y explotar los sistemas que all se encuentren.

Objetivo 1: Atacar servidor web


Aqu nos puede surgir la primera duda, y es Qu herramienta es la adecuada para obtener
informacin?. La respuesta puede ser muy amplia: existen muchas herramientas para tal
8

Capitulo 1 - Primeros pasos con Backbox

propsito, pero cul debo utilizar? Y en el caso de utilizar ms de una qu orden he de


seguir?. No tenemos que volvernos locos con las herramientas, algunas nos servirn para unas
determinadas cosas y otras para otras, y en el caso de querer obtener informacin, como es
el de ahora, es posible que unas herramientas nos den ms informacin que otras, o que
simplemente aporten informacin distinta.
Para que os hagis una idea, nmap nos sirve para (entre otras muchas cosas) detectar los
puertos y servicios que corren en una o varias mquinas. Si nosotros tenemos un servidor web
como objetivo, podemos lanzar nmap y ver que puertos tiene abierto. Sin embargo esto es
posible que no nos devuelva muchos datos ya que por lo general los servidores web (y que
estn expuestos a internet) slo tiene abierto el trfico por el puerto 80. No veremos ms all
de esto.
Ahora bien, podemos ayudarnos de la herramienta TheHarvester para ver que otros dominios
y subdominios pueden componer el servidor principal al que atacamos; un blog, un FTP, un
subdominio para desarrollo, etc.
Por tanto haciendo uso de ambas herramientas tendremos mejor resultado, y nunca hay que
dejar de lado ninguna herramienta por innecesaria que parezca. Por ejemplo Maltego
tambin es una herramienta para localizar subdominios al igual que TheHarvester, slo que
sta nos muestra en un organigrama la posicin y funcin de cada servidor, en formato
jerrquico, sobre como est organizada la infraestructura de servidores de nuestro objetivo.
Casi sin darnos cuenta, y con tan solo 3 aplicaciones hemos obtenido un gran nmero de
informacin. Pero para verlo mejor, llevmoslo acabo.

Escaneo de puertos con Nmap


Escenario:

Objetivo: Servidor web


Tipo de ataque: obtener informacin
Herramientas utilizadas: nmap, TheHarvester y whatweb

Lo primero que vamos hacer va a ser lanza un nmap con el fin de encontrar algn que otro
puerto que no sea el 80. Manos a la obra, la configuracin nmap para lanzar un primer
escaneo de puertos va a ser 'Regular Scan' es decir, un simple ~#nmap www.objetivo.com.

Capitulo 1 - Primeros pasos con Backbox

Ilustracin 2: Resultado obtenido tras un escner de puertos con nmap


Tal y como observamos el resultado es muy bueno, no solo hemos obtenido ms puertos
adems del 80, si no que de un primer vistazo podemos ver algunos servicios de los que
seguramente componen la web, o alguno de los subdominio.
Por Ejemplo:
Vemos el puerto 3306 el cual pertenece a Mysql. Si hacemos la prueba de intentar ver si el
acceso est habilitado de forma abierta, posiblemente el resultado sea que no. Es habitual ver
cosas como estas, donde existe un servicio, pero slo se puede acceder a l si te encuentras
en la misma red local. De hecho es una medida de seguridad que implanta Mysql para evitar
ataques desde el exterior.

10

Capitulo 1 - Primeros pasos con Backbox

Ilustracin 3: Intento de acceso al panel de administracin de MySQL desde fuera de la red interna
Pasemos al siguiente punto de nuestra recoleccin de informacin, que es ver la cantidad de
subdominios y servicios que puede tener nuestro objetivo. Para esto utilizaremos
TheHarvester. Resumidamente, en lo que consiste TheHarvester es en buscar informacin en
los motores de bsqueda (Google, Bing, Shodan ...) para encontrar subdominios e e-mails que
se hayan hecho pblicos. El comando a lanzar sera bastante sencillo, indicando el dominio la
cantidad de resultados que queremos que nos devuelva, y los motores de bsqueda en los
que queremos que busque: ~$ sudo TheHarvester -d objetivo.es -l 50 -b all

11

Capitulo 1 - Primeros pasos con Backbox

Ilustracin 4: Informacin de los hosts y subdominios extrada con TheHarvester


Los webmaster suelen pensar que cuanto ms contenido indexen los buscadores ms visible
estar su web en internet, por tanto ms visitas, y un mayor nmero de cliente. Esto que a
simple vista parece no ser malo, es un arma de doble filo. Viendo la imagen anterior nos
encontramos con montn de subdominios que Google (y dems buscadores) han conseguido
indexar.
Con la informacin que hemos sacado de nmap y de TheHarvester, podemos tener una ligera
idea de los servicios y servidores que tiene nuestro objetivo.
Ya sabemos que la web que queramos atacar en un primer momento no tiene slo un
servidor expuesto a internet, si no que tiene numerosos puertos abiertos, y que dispone de
varios subdominios. Slo es cuestin de tiempo que alguno de estos servidores sea vulnerable
a nuestro ataque.
Centrmonos en el servidor que queramos atacar y sigamos buscando informacin.
12

Capitulo 1 - Primeros pasos con Backbox

Es aqu donde nuestra bsqueda ya no es algo generaliza, est ms enfocada a una sola
maquina, una sola ip y un solo puerto. Aunque despus tambin nos centraremos en otras
mquinas y otros servidores, lo que nos interesa es sacar la mayor informacin posible de la
web a la que estamos atacando.
Despus de haber utilizado nmap y TheHarvester, le llega el turno a whatweb.
Whatweb nos permitir saber informacin ms especfica sobre el dominio que estamos
atacando.
Lo que har whatweb es, escanear un ip/dominio en busca de toda informacin til para
nuestro ataque. Como puede ser, tipo de servidor, sistema operativo, tecnologa en la que
est basada la web, etc.

Ilustracin 5: Informacin de un servidor web a travs de whatweb


Este tipo de informacin es tan valiosa como la anterior. Gracias a Whatweb podremos
determinar las versiones de las aplicaciones con las que est construida la web. Por tanto, si la
web dispone de versiones no actualizadas es muy posible que sea vulnerable.
Recordad que los webmaster suelen ser bastante cuidadoso con la parte visible de su web,
pero no con la que no se ve, el backend. Es muy fcil de encontrar servidores web con una
versin de php o mysql des-actualizada.
Whatweb al tratarse de un escner web tiene distintos grados de agresin a la hora de hacer
sus bsquedas. Siendo capaz de determinar la versin de sistemas de BBDD (como ya hemos
dicho antes), la versin de servidor web de apache (por ejemplo) o la versin del gestor de
contenidos con la que est montada, como puede ser Wordpress.
Adems tambin utiliza un vector de ataque basado en Google Dork, por lo que tambin se
basa en posibles servidores o informacin sensible expuesta a Google.
13

Captulo 2 Bsqueda de
vulnerabilidades

Introduccin
Una vez que ya tenemos bastante informacin del objetivo al que queremos atacar es hora de
dar un paso ms e intentar buscar algn tipo de vulnerabilidad que nos de acceso al sistema.
Como ya hemos comentado antes, no siempre las categoras que nos ofrecen las Distros de
seguridad se corresponden con el proceso de un Ethical Hack, ya que muchas de las
herramientas sirven para hacer ms de una funcin.
En este tema utilizaremos alguna que otra herramienta que no se encuentra dentro de la
seccin de Bsqueda de Vulnerabilidades, pero que sin embargo nos servir de igual manera.
Las herramientas que utilizaremos para buscar vulnerabilidades no son ms que escneres de
vulnerabilidades. Programas que estn diseados para automatizar una serie de funciones y
que estn pensadas para ayudarnos a no tener que hacer bsquedas manuales de cada tipo de
vulnerabilidad. De un determinado servicio.
El principal inconveniente de este tipo de bsqueda es que, la gran mayora de las aplicaciones
hacen falsos positivos. Eso significa, que aunque el programa encuentre una vulnerabilidad no
siempre a de ser explotable.

Capitulo 2 Bsqueda de vulnerabilidades

Nmap como escner de vulnerabilidades (NSE


Vulnscan)
Casi se podra decir que nmap es la herramienta indispensable para cualquier hacker gracias a
la cantidad de script que estn desarrollados para ello, y que son configurables a nuestro
gusto. De igual manera que utilizamos nmap para recolectar informacin lo haremos esta vez
pero para buscar vulnerabilidades.
Esto es posible a un script desarrollado especficamente para realizar esta funcin. El script
consiste en hacer una bsqueda de las vulnerabilidades ya encontradas en un repositorio de
dichas vulnerabilidades. (Este repositorio es actualizable desde cada una de las pginas
oficiales desde las que se reportan las vulnerabilidades).
Las bases de datos son:

cve.csv

osvdb.csv

scipvuldb.csv

secunia.csv

securityfocus.csv

securitytracker.csv

El script que est basado en nmap NSE (nmap scritpting engine) debemos de bajarlo e instalar
lo. Por defecto no viene instalado con nmap.
La manera de instalar es copiando la carpeta completa de NSE Vulnscan en la ruta donde se
encuentran el resto de script para nmap. Por defecto: /usr/share/nmap/scripts
Pgina oficial de descarga: www.scip.ch/en/?labs.20130625

PoC: Prueba de concepto Nmap Vulnscan v1.0


El parmetro es bastante sencillo una vez que se tiene instalado el script.
Basta con poner los parmetros que solemos poner habitualmente haciendo referencia al
script:
nmap -T4 -v -v -F --script vuln --script-args vulnscandb=securityfocus.csv www.sitioweb.com
Lo que estamos consiguiendo con estos parmetros es decir a nmap que queremos que lance
un escaneo bsico, mostrndonos los errores y los resultados. Indicndole adems que
queremos que utilice un script (vuln) y aadiendo la base de datos done queremos que haga
sus bsquedas.
El resultado como comprobamos es bastante bueno, hemos obtenido un fallo de XSS (Cross
Site Scripting)

15

Capitulo 2 Bsqueda de vulnerabilidades

Ilustracin 6: Buscando vulnerabilidades con Nmap + Vulnscan

Nmap nos est sirviendo para buscar vulnerabilidades, sin embargo eso no quiere decir que
aya a realizar el ataque por nosotros. Eso s, nos dar toda la informacin necesaria. Tanto es
as, que nos muestra la url completa a la que debemos atacar para explotar dicha
vulnerabilidad.
Aunque la explotacin de vulnerabilidades las veremos en el siguiente tema, quiero mostrar
como la vulnerabilidad de nmap es completamente explotable y no nos ha dado un falso
positivo.

Ilustracin 7: Ejemplo de XX (Cross Site Scripting)

16

Capitulo 2 Bsqueda de vulnerabilidades

Algo que debemos tener en cuenta es saber que, por mucho que cada herramientas est un
poco ms enfocada para un tipo de funcin es bueno combinarlas entre ellas. De nada sirve
tener muchas informacin de nuestro objetivo si luego no sabemos como buscar
vulnerabilidades. Y lo mismo pasa a la hora de buscar vulnerabilidades, de nada sirve
encontrar vulnerabilidades si luego no sabemos explotarlas. Comento esto por que a lo largo
de este tema iremos viendo como encontrar vulnerabilidades y como saber encontrar la
manera de explotarlas.
Posteriormente en el tema de explotacin de vulnerabilidades nos centraremos ms en como
conseguir escalar privilegios, hacernos con el control de la mquina, etc. Pero de una manera
mucho ms concreta y sabiendo casi a un 100% que nuestro objetivo es vulnerable a ese
ataque.
Puesto que esto es una primera toma de contacto con el pentesting y ms concretamente con
Backbox, no vamos a pararnos a explicar cada una de las herramientas que trae el SO. Eso s,
nos centraremos en las que mejores resultados hemos obtenido a la hora de realizar una
auditora.
El siguiente turno le toca a OWASP.

Turno de OWASP
OWASP podramos decir que es una herramienta que trabaja como proxy. esto que quiere
decir? Nosotros podemos utilizar OWASP para que intercepte todo el trafico de nuestro
navegador, y para ello slo hemos de configurar el navegador para que salga por un proxy.
Este proxy ser la direccin local de tu mquina 127.0.0.1, y el puerto ser el que se le haya
asignado a OWASP, que por defecto es el 8081.
Tambin podemos utilizar OWASP como cualquier otro escner. Simplemente metiendo la
direccin a la que pretendemos atacar. OWASP se encargar de hacer un bsqueda de todas
las vulnerabilidades posibles.

17

Capitulo 2 Bsqueda de vulnerabilidades

Ilustracin 8: Configuracin Proxy de OWASP ZAP


Pero esto lo veremos despus...
La diferencia radica en nuestro propio criterio, es decir, el ataque va a ser el mismo, sin
embargo podremos utilizarlo de la manera que nos sea ms cmoda. Si utilizamos OWASP
como proxy, estaremos obligando al navegador a que todas las direcciones pasen
previamente por OWASP. Esto puede ser un poco catico si a la misma vez que estamos
atacando una web, tambin estamos visitando otras que no tienen nada que ver con el
ataque. OWASP las recoger y las analizar de igual manera.
Eso s, si sabemos esto previamente, tendremos el ataque mucho ms controlado. Ya que
podremos enfocar o centrar en aquella parte donde queremos o creemos que podemos
encontrar una vulnerabildiad.
El otro mtodo de ataque es ms directo aunque tambin es un arma de doble filo. Hablamos
de un ataque que se realiza directamente sobre la web que nosotros le indiquemos. Esto
incluye todo tipo de bsqueda de vulnerabilidades, recorrido de url, etc. Por tanto es un poco
ms llamativo para los FW, IDS/IPS, etc.

18

Capitulo 2 Bsqueda de vulnerabilidades

Ilustracin 9: Ataque automtico a una URL con OWASP ZAP


La manera de trabajar de OWASP, para este caso ser recorrer todas las URL del dominio que
nosotros le hemos indicado y en cada una de ellas intentar hacer alguna comprobacin para
ver si es explotable o no. Este tipo de ataque es fcilmente detectable por los FW o los IDS. Ya
que se estara realizando pruebas malintencionadas desde nuestra IP.

Manos a la obra: Primera prueba de concepto con OWASP


Para ver el gran potencial de la herramienta lo que hemos hecho ha sido lanzar un ataque
directo hacia una pgina. Esperando que nos reportara alguna vulnerabilidad, y que sta no
fuera un falso positivo.
Cuando se lanza un ataque directo desde OWASP, y prcticamente desde cualquier escner de
vulnerabilidades, el proceso es lento y requiere de bastantes recursos del procesador y la
memoria. Solo es cuestin, de esperar a que el ataque finalice y luego ir viendo que reporte de
vulnerabilidades ha obtenido.
En el caso de OWASP existen cuatro iconos con los que podremos diferenciar los tipo de
alertas que ha ido encontrando. O mejor dicho el grado de vulnerabilidad.

Ilustracin 10: Leyenda de iconos


Tipos de alerta segn el color:
Rojo: Vulnerabilidad crtica.
Naranja: Criticidad media
Amarilla: Vulnerabilidad baja.
Azul: Alertas informativas
Nada mejor que ver el resultado obtenido del ataque para entenderlo bien.
Con tan solo un par de clic conseguimos algunas que otras vulnerabilidades, de las cueles 2
de ellas son crticas y encontradas en ms de un lugar de la pgina, tal y como muestra la
19

Capitulo 2 Bsqueda de vulnerabilidades

imagen:
Cross Site Scripting (XSS) fue encontrado en 16 lugares de la pgina.
SQL injection fue encontrada en otros 5 lugares de la pgina.

Ilustracin 11: Panel de resultados de las vulnerabilidades encontradas.


OWASP ZAP
Sabiendo esto y con las herramientas adecuadas, ya casi estamos listo para realizar un ataque
en toda regla y empezar a obtener datos privados del objetivo al que estamos atacando para
despus reportarlo en nuestra auditora de ethical hack.

20

Captulo 3 Explotacin

Introduccin
Este tema ser posiblemente uno de los ms atractivos. En l vamos a ver como darle uso a
toda la informacin que hemos recopilado anteriormente y que nos ser de gran ayuda.
Si hacemos un breve resumen ya tenemos; los puertos abiertos a los que vamos a atacar, el
tipo de tecnologa, y alguna que otra vulnerabilidad.
Sabiendo esto slo es cuestin de centrarnos en la vulnerabilidad que queremos explotar,
elegir la herramienta y llevarlo acabo.
Algunas pruebas bsicas que se deben hacer antes de intentar vulnerar un sistema es
descartar si las vulnerabilidades que devolvi OWASP ZAP son falsos positivos o realmente
son vulnerabilidades explotables.
En algunas ocasiones el saber si una web es vulnerable a una de estas fallas es muy sencillo.
Por ejemplo: en el caso de una vulnerabilidad SQL injection sera cuestin de introducir una
comilla simple (') para ver si se produce el error. Si existe error por parte del servidor es
altamente probable que podamos realizar un ataque sobre la BBDD.
Otro fallo de seguridad que se suele encontrar a menudo son los llamados XSS (Cross Site
Scripting) que para reconocerlos solo har falta introducir un pequeo script al final de la url
con el objetivo de alterar la informacin de la pgina web.
Basndonos en la(s) vulnerabilidad(es) que ya encontramos podemos empezar a descartar
falsos positivos.

Captulo 3 Explotacin

Identificando vulnerabilidades.
El primer paso de todos es revisar todas las vulnerabilidades e identificar de que tipo de
vulnerabilidad se trata (SQL, XSS, DoDS,...)
Examinando el informe de vulnerabilidades de OWASP ZAP tomaremos como ejemplo una de
las alertas con mayor criticidad.

Ilustracin 12: Informe de vulnerabilidades localizadas. OWASP ZAP


Se trata de una vulnerabilidad SQL injection UNION sobre MySQL.
Si esta vulnerabilidad fuera explotable estaramos comprometiendo el sistema de la BBDD y
posiblemente seramos capaces de alterar el contenido tanto de la BBDD como de la pgina
web a la que atacamos. Lo iremos viendo poco a poco.
Para comprobar si existe un fallo de seguridad SQL injection vamos a coger la URL y a
modificarla para ver que nos devuelve el servidor.
URL original:
http://sitioweb.com/actualidad/evento.php?id=110
URL modificada con una comilla al final (')
http://sitioweb.com/actualidad/evento.php?id=110'
El resultado es un claro error de sintaxis, esto es bsicamente, en la gran mayora de los casos,
nos permitir extraer informacin de la BBDD. Y gracias a esta pequea comprobacin
podemos empezar a lanzar nuestro ataque.

22

Captulo 3 Explotacin

Ilustracin 13: Forzando un error de sintaxis en SQL

Vulnerando la BBDD y extrayendo informacin.


Existen numerosas herramientas que nos ayudarn a lanzar un ataque sobre la BBDD. Al igual
que suceda con la bsqueda de vulnerabilidades, para explotar un fallo de SQL injection
utilizaremos alguna herramienta que nos permita automatizar el ataque.
Para ello utilizamos SQLmap, que es sin duda una de las herramientas ms potentes que
existe para realizar ataques de SQLinjection, y que adems viene por defecto instalada en
Backbox.
Esta herramienta contiene numerosos script, con la configuracin necesaria para poder lanzar
un ataque sobre cualquier BBDD que sea vulnerable.
Al acceder por primera a SQLmap y aadiendo el parmetro -h (#sqlmap -h), se mostrar
alguna de las configuraciones ms bsicas y utilizadas.

23

Captulo 3 Explotacin

Ilustracin 14: Opciones bsicas de sqlmap


Algunas parmetros que debemos tener en cuenta son (por ejemplo) Level y Risk.
Existen ocasiones que al intentar extraer informacin no obtendremos nada por parte del
servidor, e iremos aumentando el grado de Level y Risk.
Por otra parte, gracias a la gran capacidad de sqlmap, con el comando DUMP se puede llegar
a realizar un volcado de la BBDD a tu mquina.
Se podras decir que utilizar SQLmap es fcil, o al menos intuitivo, ya que si se introduce algn
parmetro mal la herramienta nos dir que es lo que estamos haciendo mal, y nos dar algn
tipo de solucin.

SQLmap: Prueba de concepto


Lo primero que intentaremos ser ver que Bases de datos almacena el servidor. Para ello
24

Captulo 3 Explotacin

aadimos el parmetro dbs. Esto debera mostrar todas las BBDD.


#sqlmap -u http://sitioweb.com/actualidad/evento.php?id=110 dbs

Ilustracin 15: Obteniendo Bases de datos con sqlmap


El resultado es precisamente el esperado, hemos conseguido obtener todas las bases de datos
a travs del fallo que encontramos. A partir de aqu ser cuestin de ir viendo la ayuda de
SQLmap para saber que podemos utilizar en nuestro beneficio. Lo ms lgico sera, partiendo
de la bases de datos a la que queremos atacar, hacer un volcado de la informacin de alguna
de las tablas, columnas, o de la BBDD entera.
Todas las Bases de datos estn compuestas de Tablas, Columnas y Registros. Por tanto una
Base de datos almacena numerosas Tablas, que estas a su vez almacenan numerosas
columnas. Las columnas por su parte son las que almacenan los registros, es decir, la
informacin final. Son estos datos los que pueden contener Nombres de usuarios, contraseas,
etc.

Base de Datos 1
Tabla 1
Columna1

Columna 2

Registro 1

Registro 2

25

Captulo 3 Explotacin

Esto hay que tenerlo en cuenta ya que a la hora de lanzar el ataque con SQLmap lo haremos
paso a paso e intentando provocar las menos sospechas posibles.
Cuando hablamos de hacerlo paso a paso nos referimos a ir obteniendo informacin desde lo
ms bsico hasta profundizar en cada una de las bases de datos. Es decir, primero veremos
las bases de datos que almacena el servidor, despus veremos las tablas de alguna base de
datos, luego las columnas dentro de esa tabla, y as sucesivamente.

Obteniendo las tablas de la base de datos


Para obtener la informacin de las tablas que almacena la base de datos, hemos de indicar a
SQLmap la URL y la base de datos de la que queremos la informacin.
Como el listado de las bases de datos ya lo hemos obtenido anteriormente ser cuestin de
ver si existe alguna BD que por su nombre parezca ms relevante.
Con el siguiente comando enumeraremos, nos mostrar, las tablas de la base de datos
db23616:
#sqlmap -u http://sitioweb.com/actualidad/evento.php?id=110 --level=5 --flush-session
--tables -D bd23616
El resultado es una gran lista de tablas. Algunas de ellas, por su nombre, bastante
significativas, como es el caso de los datos de Recursos Humanos.

Ilustracin 16: Enumeracin de tablas.


sqlmap
NOTA: Es importante saber que SQLmap en cada ataque que lanza guarda los resultados en
una carpeta (/, que despus utiliza para buscar en ella en caso de realizarse un nuevo ataque
sobre la misma URL. Con esto sqlmap pretende ahorrar tiempo en nuestra buscada. Sin
embargo en muchas ocasiones nos puede perjudicar ya que sqlmap trata esta informacin de
la misma manera que lo hace un navegador web con los temporales. Es posible que en algunas
ocasiones no se estn mostrando los resultados reales acorde con lo que lanzamos, el
motivo es que sqlmap siempre que se haya realizado una consulta previamente sobre esa
web, antes de volver a lanzar un nuevo ataque, mostrar los resultados ya obtenidos con
anterioridad. Esto se soluciona aadiendo el parmetro flush-session el cual nos permitir
saltarnos esta especie de cach.
Si continuamos buscando informacin sensible en las tablas y en las DB, podremos ver como
colarnos en el servidor es mucho ms fcil de lo que se piensa en un primer momento.
Como ya comentamos al principio de este Tema, una vez vulnerado el servidor mediante una
inyeccin SQL, podramos decir que tenemos control total sobre la mquina.
En este ejemplo vamos a ver como una de las tablas de de una DB contiene las contraseas, en
texto claro, de unos usuarios.

26

Captulo 3 Explotacin

Ilustracin 17:
Enumeracin de columnas.
Sqlmap
Estas cuentas de usuario que se almacenan en texto claro, se trata de cuentas, que por algn
motivo, el administrador a decidido guardar sin cifrar. Este gran fallo de seguridad nos va a
permitir seguir introducindonos un poquito ms en la mquina.

27

Captulo 4 Post-explotacin

Introduccin
La post-explotacin de los sistemas en una auditora de hacking tico no es ms que aquello
que podemos realizar una vez vulnerado los sistemas. Es decir, una vez que ya tenemos
control sobre un equipo intentar vulnerar otros equipos de la red.
Durante todo el libro se est realizando el ataque sobre una misma mquina, por lo tanto, y
para que todos entendamos bien el concepto de post-explotacin seguiremos hacindolo de
igual forma, sobre la misma mquina.
Como ya hemos visto, tenemos acceso sobre la BD, y adems tenemos unas passwords que se
pueden ver sin necesidad de Crackearlas.
Al principio del Tema 1, se vio que la recogida de informacin era muy importante para
despus poder realizar un ataque. Esto nos va a permitir vulnerar an ms la BD.
Si recordamos, la mquina que estamos atacando, que no es ms que un servidor web, uno de
sus apartados era un blog basado en Wordpress. Vamos a aprovecharnos de la brecha de
seguridad del MySql para hacernos con el control total de la base de datos a travs del archivo
de configuracin del propio Wordpress.
Esto lo podremos hacer con SQLmap descargndonos o mostrando (como prefiramos) el
archivo wp-config.php el cual contiene el nombre de usuario y la contrasea con la que
Wordpress se conecta a la BD.

Captulo 4 Post-explotacin

Lectura de archivos con SQL


Otras de las caractersticas de SQLmap de la que sacaremos gran partido es la posibilidad de
leer ficheros del servidor o mquina remota. Observando la ayuda que nos ofrece SQLmap
vemos que sus usos y funciones son casi infinitos. Ahora bien, fijmonos en el parmetro file-read=

Ilustracin 18: Opciones para leer o descargar archivos con sqlmap


Este parmetro nos permite leer un archivo al lanzar el comando #sudo sqlmap -u
http://website.es/actualidad/evento.php?id= -file-read=/etc/passwd
Es lo mismo que si hiciramos un #nano /ruta/del_archivo.txt
Esto nos permitir visualizar el archivo en nuestra mquina. Como ya he comentado, sabiendo
que nuestro objetivo tiene un Wordpress montado, y que ste guara la informacin del
nombre de usuario y las password de la base de datos a la que se conecta, podremos penetrar
en este servidor. Para ello slo debemos de leer el archivo wp-config.php
#sudo sqlmap -u http://website.es/actualidad/evento.php?id= -fileread=/opt/lammp/sitio/blogs/2013/wp-config.php

29

Captulo 4 Post-explotacin

Ilustracin 19: Archivo de configuracin de Wordpress


obtenido con sqlmap

Acceso al servidor
Existen muchas formas de poder acceder al servidor una vez que se encuentra una brecha de
seguridad en el sistema. En la gran mayora de las ocasiones el acceso al servidor ser de
manera indirecta para ir escalando privilegios.
Es muy comn en un ataque la escalada de privilegios.

Escalada de privilegios
Se conoce como escalada de privilegios la tcnica que permite ir adquiriendo ms permisos
sobre un sistema informtico. Algunos casos tpicos es cuando un atacante obtiene la cuenta
de usuario de un sistema sin apenas privilegios, y a partir de ste ir accediendo a otros
sistemas hasta hacerse con algn otro usuario Administrador que le otorgue ms permisos
sobre su propio sistema o sobre otro.
Esto se emplea normalmente para conseguir un control total sobre la mquina que se quiere
atacar.

Acceso indirecto al servidor: Base de datos


En base a la informacin extrada del archivo de configuracin de Wordpress podemos
acceder y hacer un recorrido por servidor que almacena la Base datos, con el fin de ver que
otras Bases de datos, tablas, y usuarios existen en l.
Aunque esto mismo se podra haber hecho anteriormente con SQLmap, la navegacin en un
entorno grfico mediante un cliente de sql es mucho ms amigable e intuitiva a la hora de
seguir buscando informacin sensible que nos permita ir escalando privilegios.
30

Captulo 4 Post-explotacin

El archivo de configuracin wp-config.php de Wordpress permite conectar la pgina web


montada sobre wordpress con la Base de datos. Para ello este archivo guarda las credenciales
del servidor contra el que se autenticar, as como la Base de datos a la que debe de atacar.
Para realizar la conexin contra el servidor de Base de datos se ha utilizado el cliente Dbeaver
(http://dbeaver.jkiss.org/) multiplataforma y operativo para todos los gestores de base de
datos conocidos.

Ilustracin 20: Cliente DBeaver. Accediendo al serivdor de Base de datos

Penetrando en Wordpress
Existen escner de vulnerabilidades web capaces de encontrar vulnerabilidades en Gestores
de Contenido tipo CMS como Wordpress, Joomla, etc, pero adems, por otra parte tambin
existen herramientas especializadas, pensadas para analizar y encontrar todo tipo de
vulnerabilidades en Joomla y Wordpress, como es el caso de wpscan para Wordpress, o
joomscan para Joomla.
Estas herramientas son capaces de analizar todo tipo de plugin, componentes, mdulos,
widgets... con el fin de determinan cuales de ellos estn instalados, cual es su versin y si es
vulnerable o no.
Esta vez no vamos a mostrar ninguna de estas herramientas ya que anteriormente hemos
obtenido acceso a la Base de datos del servidor donde se aloja tambin la Base de datos del
propio Wordpress, pero est bien saber que existen para en un futuro poder utilizarlas en
nuestras auditoras de seguridad.

Creando un nuevo usuario en Wordpress a travs de mysql


Ahora que tenemos acceso a la Base de datos probaremos a crear un usuario con permisos
Admin dentro del panel de administracin de Joomla.
El motivo de hacer esto y no extrae directamente la contrasea de alguno de los usuarios que
31

Captulo 4 Post-explotacin

ya exista en Wordpress, es porque el cifrado de la contrasea de Worpdress es muy fuerte, y


tardaramos meses en poder Crackear el Hash.
Para poder crear un nuevo usuario de Wordpress a travs de la Base de datos, debemos de
insertar una sera de filas y campos dentro de la tabla wp-usermetada y wp-users. Estas dos
tablas son las que contienen la informacin de los usuarios y sus permisos.

Wp-users
Esta tabla contiene los campos de toda la informacin del usuario:

Nombre

Contrasea

Nickname

Email de usuario

Estado

Etc.

Wp-usermetada
Sin embargo esta otra tabla contiene los datos necesarios que otorga al usuario ciertos
permisos y privilegios, como son:

Editor

Autor

Administrador

Invitado

Etc

Quizs una de las cosas ms importantes a tener en cuenta es el nombre que elijamos para el
nuevo usuario que crearemos. Hay que procurar pasar lo ms desapercibido posible.
Inventarse nombres del tipo, user_tmp, 001_tmp, admins, usr... pueden ser una buena idea
para que el administrador del sitio apenas se de cuenta de que existe un nuevo usuario. El
nombre que se pone es de esta ndole para que en caso de que alguien lo vea tienda a pensar
que es un usuario del propio sistema, o que fue creado junto con la instalacin de algn
componente o plugin.

Ilustracin 21: Tabla wp_users. Contiene los datos del usuario


Para la parte que contiene los privilegios de los usuarios, tan solo vamos a fijarnos en cual de
los usuarios que ya existe es administrador para copiar los mismos valores en una nueva fila y
32

Captulo 4 Post-explotacin

asociarlos al ID del usuario que hemos creado.

Ilustracin 22: Tabla wp_usermetada. Contiene los datos que otorgan permisos al
usuario
Es decir, el primer paso es aadir una nueva fila en la tabla wp_usuers, tal y como muestra la
ilustracin 21. El segundo paso es insertar dos filas ms en la tabla wp_usermetada, las cuales
asociaremos al ID del usuario que creamos anteriormente en la tabla wp_user.
Con esto ya podramos ir a la parte de administracin de Wordress e intentar ingresar con el
nuevo usuario que hemos creado.

Ilustracin 23: Login del backend de Wordpress


Por defecto en la ruta con la que accederemos a Wordpress se ubica en www.sitio.com/wpadmin.
Si todo ha ido bien ya podemos empezar a navegar por todo el sitio en busca de ms
informacin relevante, o en busca de nuevas proezas que nos ayuden a adentrarnos un poco
ms en la infraestructura de la empresa.

33

Captulo 4 Post-explotacin

Ilustracin 24: Panel de administracin de Wordpress

Local File Inclusion: un paso ms cerca del control


Local file inclusion (LFI ) se trata de una vulnerabilidad que permite al atacante subir una shell
al servidor.
Esta shell no es ms que un archivo que puede estar programado en distintos lenguajes como
son PHP o ASP. El atacante buscar la manera de poder subir el archivo/shell a travs de la
web.
Normalmente este fallo de seguridad es debido a que los formularios de subida de archivos
(documentos, imgenes, msica... ) no hacen bien el filtrado del tipo de archivo o extensin
que se sube. Esto se debe a un fallo de programacin en el propio PHP o por una mala
configuracin en Apache.
Al disponer de una shell en la mquina de manera local podremos enviar casi cualquier
comando como si estuviramos delante del ordenador. Comentar que, a pesar de que se
pueden lanzar comandos, no todos los comandos se podrn ejecutar, ya que para abrir
determinados programas o acceder a algunos directorios y carpetas, se requieren permisos
ms elevados o de Root, sin embargo estos pocos permisos sern suficiente como para
intentar una escalada de privilegios y as poder tener control total sobre el usuario y la
mquina.

34

Captulo 4 Post-explotacin

Ilustracin 25: Local File Inclusion


Si bien es cierto que en la mayora de los casos este fallo se explota a travs de formularios de
subida, cada hacker se las ingenia para al final disponer de una shell en el servidor web
independientemente el medio que haya utilizado.

LFI a Wordpress
Llegados a este punto podamos haber vuelto a buscar vulnerabilidades, esta vez en
Wordpress, con el fin de encontrar algn plugin que nos facilitara la subida de una shell. Sin
embargo, puesto que ya tenemos un usuario Admin, nos aprovecharemos de ste para
introducir as nuestra shell.
El proceso es sencillo ya que tan slo nos va a hacer falta modificar algn archivo PHP de los
que compone Wordpress. Al tratarse de uno de los archivos del propio Wordpress, el usuario
Admin de Wordpress tendr permisos suficientes para modificar dicho archivo y que ste se
quede guardado en el servidor.
Para lograr nuestro propsito vamos a acceder al panel de administracin con el usuario
Admin (el cual ya creamos anteriormente a travs de la BD) y vamos a buscar, entre toda la
configuracin del Panel Admin, la manera de modificar un archivo de los que compone
Wordpress.
Una buena idea sera editar la plantilla/Theme que est instalado en ese Wordpress. Muchos
de los archivos que componen el Theme estn programados en PHP y se pueden editar.
Siempre que se hagan este tipo de modificaciones hay que tener cuidado con el archivo que se
modifica, ya que si editamos un archivo que no debemos podemos dejar sin servicio la web.
Ahora que ya sabemos cual va a ser la forma de actuar y el proceso que se va a seguir,
necesitamos descargar una shell para incrustarla en uno de estos archivos. En la web
http://www.oco.cc/ podemos encontrar numerosas shell que nos servirn para hacer esto
mismo. Cualquiera de ellas es vlida.
Como ejemplo utilizamos la shell c99.php los pasos a seguir son:

Descargamos la shell (c99, r57, c100...)

Con algn editor de texto, abrimos la shell y copiamos su contenido.

Buscamos un archivo php que se puede editar dentro del panel Admin de
Wordpres.
35

Captulo 4 Post-explotacin

Pegamos el contenido de la Shell en el archivo de Wordpress.

Ilustracin 26: Shell copiada en archivo author.php del theme Twenty Twelve de Wordpress
Despus de colocar la Shell en uno de los archivos sin que nadie note nada, nos falta saber la
ruta exacta donde est alojada. En Wordpress, como en todos lo CMS, los archivos, directorios
y rutas, son estticos, por lo que podemos hacer dos cosas, 1-Bajarnos Wordpress y ver donde
se encuentra la ruta, o 2-Buscar la ruta dentro del cdigo fuente.
Quizs si hubiramos modificado cualquier otro archivo de Wordpress nos hubiera hecho falta
bajar una copia de Wordpress a nuestro equipo para ver la ruta, o utilizar un spider para
recorrer todas las URL y ver as todos sus directorios (algo que puede estar capado si el
administrador se ha preocupado de la seguridad de su sitio). En nuestro caso no va ser
necesario todo esto, si vemos el cdigo fuente de la pgina principal de Wordpress, podremos
localizar fcilmente la ruta donde esta el Theme.

Ilustracin 27: Cdigo fuente de la pgina principal de Wordpress


Lo siguiente ser ver que comprobar que todo ha salido como esperamos y que al introducir la
ruta donde hemos guardado la Shell realmente se muestra el panel de configuracin de la
Shell c99.
La ruta entera quedara de la siguiente manera:
http://192.168.233.211/wordpress/wp-content/themes/twentytwelve/author.php

36

Captulo 4 Post-explotacin

Ilustracin 28: Shell c99: Panel de administracin

37

También podría gustarte