¿Qué es el Pentesting?

El Penetration Testing (o pentesting) es un proceso autorizado de evaluación de seguridad donde se simulan ataques reales contra sistemas, redes o aplicaciones para identificar vulnerabilidades.

**Advertencia Legal**: Solo realiza pruebas de penetración en sistemas para los cuales tengas autorización explícita por escrito. El acceso no autorizado a sistemas es ilegal.

Fases del Pentesting

1. Reconocimiento (Reconnaissance)

La recopilación de información es crucial:

1
2
3
4
5
6
7
8
9
10
# Reconocimiento pasivo con whois
whois example.com

# DNS enumeration
dig example.com ANY
nslookup -type=any example.com

# Subdomain enumeration
subfinder -d example.com
amass enum -d example.com

2. Escaneo (Scanning)

1
2
3
4
5
6
7
8
# Escaneo básico con Nmap
nmap -sV -sC target.com

# Escaneo completo de puertos
nmap -p- -T4 target.com

# Escaneo de vulnerabilidades
nmap --script vuln target.com

Interpretando resultados:

Puerto Servicio Potencial Riesgo
21 FTP Credenciales débiles, anonymous
22 SSH Fuerza bruta, versiones viejas
80/443 HTTP/S OWASP Top 10
3306 MySQL Acceso sin autenticación

3. Enumeración

1
2
3
4
5
6
7
8
# Enumeración web con gobuster
gobuster dir -u http://target.com -w /usr/share/wordlists/dirb/common.txt

# Enumeración SMB
enum4linux -a target.com

# Banner grabbing
nc -nv target.com 80

4. Explotación

Una vez identificadas las vulnerabilidades:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/env python3
"""
Script educativo - Verificación de SQLi básico
Solo usar en entornos autorizados
"""

import requests

def check_sqli(url, param):
    payloads = ["'", "1' OR '1'='1", "1' AND '1'='2"]
    
    for payload in payloads:
        test_url = f"{url}?{param}={payload}"
        response = requests.get(test_url)
        
        if "error" in response.text.lower() or "sql" in response.text.lower():
            print(f"[!] Posible SQLi detectado con: {payload}")
            return True
    
    return False

# Uso (solo en entornos de prueba)
# check_sqli("http://testsite.local/search", "id")

5. Post-Explotación

1
2
3
4
5
6
7
8
# Escalación de privilegios - Enumerar sistema
uname -a
cat /etc/passwd
sudo -l

# Buscar archivos interesantes
find / -perm -4000 2>/dev/null  # SUID
find / -name "*.conf" 2>/dev/null

6. Documentación

La documentación es fundamental. Un buen reporte incluye:

Herramientas Esenciales

Distribución

Por Categoría

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Reconocimiento
- Maltego
- theHarvester
- Recon-ng

# Escaneo
- Nmap
- Masscan
- Nikto

# Explotación
- Metasploit
- Burp Suite
- SQLmap

# Password Cracking
- John the Ripper
- Hashcat
- Hydra

Laboratorios de Práctica

Practica legalmente en estos entornos:

  1. DVWA - Damn Vulnerable Web Application
  2. HackTheBox - Máquinas virtuales vulnerables
  3. TryHackMe - Aprendizaje gamificado
  4. VulnHub - VMs descargables
  5. OWASP WebGoat - Aprendizaje de seguridad web

Configurar DVWA localmente

1
2
3
4
5
# Con Docker
docker run --rm -it -p 80:80 vulnerables/web-dvwa

# Acceder en: http://localhost
# Credenciales: admin/password

OWASP Top 10

Las vulnerabilidades web más críticas:

  1. Broken Access Control
  2. Cryptographic Failures
  3. Injection
  4. Insecure Design
  5. Security Misconfiguration
  6. Vulnerable Components
  7. Auth Failures
  8. Software Integrity Failures
  9. Logging Failures
  10. SSRF

Certificaciones

Si quieres profesionalizarte:

Certificación Nivel Enfoque
eJPT Principiante Fundamentos
CEH Intermedio Teórico
OSCP Avanzado Práctico
OSCE3 Experto Especializado

Ética y Legalidad

Siempre sigue estas reglas:
  1. ✅ Obtén autorización por escrito
  2. ✅ Define claramente el alcance
  3. ✅ Documenta todo
  4. ✅ Reporta todas las vulnerabilidades
  5. ❌ Nunca accedas sin permiso
  6. ❌ No causes daño innecesario
  7. ❌ No filtres información sensible

Recursos de Aprendizaje

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Libros:
  - "The Web Application Hacker's Handbook"
  - "Penetration Testing" - Georgia Weidman
  - "Red Team Field Manual"

Canales YouTube:
  - IppSec
  - John Hammond
  - LiveOverflow

Comunidades:
  - r/netsec
  - HackTheBox Discord
  - InfoSec Twitter

Conclusión

El pentesting es una disciplina que requiere práctica constante y actualización continua. Comienza con los fundamentos, practica en entornos legales y siempre actúa de manera ética.

1
2
$ echo "Happy hacking! 🔐"
Happy hacking! 🔐