Lánzate a Ethical Hacking Fundamentals: tu primer paso concreto hoy

Ethical Hacking Fundamentals: lo esencial en un artículo — código real, diagramas y pasos concretos, extractos de un curso de 42 lecciones.

Lánzate a Ethical Hacking Fundamentals: tu primer paso concreto hoy

La mejor forma de aprender Ethical Hacking Fundamentals es practicando. Este artículo te pone en marcha con extractos prácticos extraídos de un curso de 42 lecciones: lo necesario para obtener un primer resultado ya mismo.

tl;dr
  • Preparar su laboratorio
  • Descubrir el Hacking Ético
  • Reconocimiento y OSINT
  • Escaneo y enumeración
  • Explotación de vulnerabilidades
~$ cat ./parcours.md # Ethical Hacking Fundamentals — 11 capítulos
01
Preparar su laboratorio
→ Descargar Kali Linux y VirtualBox→ Crear la VM Kali y las máquinas objetivo+ 1 otras lecciones
02
Descubrir el Hacking Ético
→ ¿Qué es el hacking ético y por qué aprenderlo?→ Marco legal, certificaciones y metodologías+ 1 otras lecciones
03
Reconocimiento y OSINT
→ Reconocimiento pasivo — WHOIS, DNS, Google Dorks→ OSINT avanzado — Shodan, theHarvester y Maltego+ 1 otras lecciones
04
Escaneo y enumeración
→ Nmap — Escaneos de puertos y detección de servicios→ Enumeración de servicios (SMB, FTP, SSH, HTTP)+ 2 otras lecciones
05
Explotación de vulnerabilidades
→ Introducción a Metasploit Framework→ Explotar Metasploitable: vsftpd y EternalBlue+ 1 otras lecciones
06
Post-explotación y persistencia
→ Escalada de privilegios Linux y Windows→ Pivoting, reenvío de puertos y movimiento lateral+ 1 otras lecciones
07
Ataques en aplicaciones web
→ OWASP Top 10: las vulnerabilidades web más críticas→ Inyección SQL: detección y explotación+ 2 otras lecciones
08
Ataques de red y Man-in-the-Middle
→ ARP Spoofing y envenenamiento de caché ARP→ Captura de tráfico de red con Wireshark+ 1 otras lecciones
🏁
Proyecto final (+ 3 capítulos en el camino)
→ Te vas con un proyecto concreto y demostrable

Enumeración de servicios (SMB, FTP, SSH, HTTP)

NOTEObjetivo — Dominar la enumeración exhaustiva de los servicios de red más comunes — SMB, FTP, SSH, HTTP y SNMP — para extraer la máxima información explotable antes de la fase de explotación.

Objetivos pedagógicos

TIPAl finalizar este módulo — Podrá enumerar cada servicio descubierto por Nmap para extraer usuarios, recursos compartidos, versiones y configuraciones — la base de toda fase de explotación exitosa.

1. ¿Por qué enumerar los servicios?

Después del escaneo (Nmap), sabemos qué puertos están abiertos y qué servicios escuchan. La enumeración va más allá: consulta cada servicio para extraer información estructurada útil para la explotación.

🔍 Qué buscamos

🎯 Qué hacemos a continuación

🛠 Herramientas por servicio

2. Enumeración SMB — El servicio más vulnerable

SMB (Server Message Block) es el protocolo de uso compartido de archivos e impresoras de Windows. Es el origen de algunas de las vulnerabilidades más devastadoras de la historia (EternalBlue, WannaCry). Su enumeración suele revelar información muy valiosa.

2.1 enum4linux — La herramienta todo en uno

bash
# Enumeración completa con enum4linux
enum4linux -a 192.168.1.20

# Opciones detalladas :
# -a : todo (all) - equivalente a -U -S -G -P -r -o -n -i
# -U : lista de usuarios
# -S : lista de recursos compartidos
# -G : lista de grupos
# -P : políticas de contraseña
# -r : enumeración RID (identificadores)
# -o : información del SO
# -n : búsqueda NetBIOS
# -i : información de impresoras

# Con autenticación (si se conocen las credenciales)
enum4linux -u "utilisateur" -p "motdepasse" -a 192.168.1.20

# Versión mejorada (enum4linux-ng)
enum4linux-ng -A 192.168.1.20
enum4linux-ng -A -oJ rapport 192.168.1.20  # Salida JSON

2.2 Interpretación de los resultados de enum4linux

output
Exemple de sortie enum4linux sur Metasploitable2 :

[*] Getting domain SID for 192.168.1.20
[+] Host is part of a workgroup (not a domain)

[*] Enumerating Workgroup/Domain on 192.168.1.20
[+] Got domain/workgroup name: WORKGROUP

[*] Getting OS information for 192.168.1.20
[+] Got OS info for 192.168.1.20 from smbclient:
    Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.20-Debian]
    <-- Samba 3.0.20 = CVE-2007-2447 (username map script) !

[+] Enumerating users using SID S-1-5-21-... and logon username '', password ''
S-1-5-21-...-500 METASPLOITABLE\Administrator (Local User)
S-1-5-21-...-501 METASPLOITABLE\nobody (Local User)
S-1-5-21-...-1000 METASPLOITABLE\msfadmin (Local User)  <-- Utilisateur cible !

[+] Enumerating shares on 192.168.1.20
//192.168.1.20/print$    Printer Drivers
//192.168.1.20/tmp       oh noes!          <-- Partage tmp, probablement accessible !
//192.168.1.20/opt       opt
//192.168.1.20/IPC$      IPC Service (metasploitable server)
//192.168.1.20/ADMIN$    IPC Service

[+] Password Info for Domain: METASPLOITABLE
[+] Minimum password length: 5   <-- Politique faible !
[+] Password history length: None
[+] Account lockout threshold: None  <-- Pas de lockout = brute force possible !

2.3 smbclient — Acceso a los recursos compartidos

bash
# Lister les partages disponibles (accès anonyme)
smbclient -L //192.168.1.20 -N
# -L : list shares
# -N : no password (accès anonyme)

# Lister les partages avec utilisateur
smbclient -L //192.168.1.20 -U "utilisateur"

# Se connecter à un partage spécifique
smbclient //192.168.1.20/tmp -N

# Commandes utiles dans smbclient :
smbclient //192.168.1.20/tmp -N -c "ls"              # Lister le contenu
smbclient //192.168.1.20/tmp -N -c "get fichier.txt" # Télécharger un fichier
smbclient //192.168.1.20/tmp -N -c "put local.txt"   # Uploader un fichier
smbclient //192.168.1.20/tmp -N -c "dir"             # Lister répertoire

# Télécharger tout le contenu d’un partage
smbclient //192.168.1.20/tmp -N \
  -c "prompt OFF; recurse ON; mget *"

2.4 smbmap — Cartografía de permisos

bash
# Vérifier les permissions sur tous les partages (anonyme)
smbmap -H 192.168.1.20

# Avec authentification
smbmap -H 192.168.1.20 -u "msfadmin" -p "msfadmin"

# Lister le contenu d’un partage spécifique
smbmap -H 192.168.1.20 -r "tmp"

# Chercher des fichiers spécifiques
smbmap -H 192.168.1.20 -u "msfadmin" -p "msfadmin" \
  -R --depth 5

# Exemple de sortie smbmap :
# [+] Guest session       IP: 192.168.1.20:445
# Disk         Permissions    Comment
# ----         -----------    -------
# print$       NO ACCESS      Printer Drivers
# tmp          READ, WRITE    oh noes!  <-- Accès total !
# opt          NO ACCESS
# IPC$         NO ACCESS      IPC Service

2.5 Scripts Nmap para SMB

bash
# Détection de la version Samba/SMB
nmap --script smb-os-discovery -p 139,445 192.168.1.20

# Énumération des utilisateurs
nmap --script smb-enum-users -p 445 192.168.1.20

# Énumération des partages
nmap --script smb-enum-shares -p 445 192.168.1.20

# Politiques de sécurité
nmap --script smb-security-mode -p 445 192.168.1.20

# Détection EternalBlue (MS17-010)
nmap --script smb-vuln-ms17-010 -p 445 192.168.1.20

# Détection MS08-067 (Conficker)
nmap --script smb-vuln-ms08-067 -p 445 192.168.1.20

# Tout en une commande
nmap --script "smb-*" -p 139,445 192.168.1.20

3. Enumeración FTP

FTP (File Transfer Protocol) es un protocolo de transferencia de archivos muy extendido que, por desgracia, suele estar mal configurado y sin cifrar. Los accesos anónimos y las versiones vulnerables lo convierten en un objetivo privilegiado.

3.1 Conexión FTP anónima

bash
# Vérifier si l’accès anonyme est possible
nmap --script ftp-anon -p 21 192.168.1.20

# Connexion manuelle avec le client FTP
ftp 192.168.1.20
# User: anonymous (ou ftp)
# Password: (n’importe quelle adresse email ou vide)

# Si accès anonymous autorisé, commandes FTP utiles :
ftp> ls -la             # Lister tous les fichiers (y compris cachés)
ftp> pwd                # Répertoire courant
ftp> cd /               # Aller à la racine
ftp> get fichier.txt    # Télécharger un fichier
ftp> mget *.txt         # Télécharger plusieurs fichiers
ftp> put local.txt      # Uploader (si écriture permise)
ftp> binary             # Mode binaire (pour les fichiers non-texte)
ftp> passive            # Mode passif (si connexion directe impossible)
ftp> quit               # Se déconnecter

# Accès anonyme avec wget (télécharger tout le contenu)
wget -r --no-passive ftp://anonymous@192.168.1.20/

ARP Spoofing y envenenamiento de la caché ARP

NOTE🔎 Objetivos pedagógicos
Al final de esta lección podrá: comprender el protocolo ARP y sus debilidades, realizar un ataque ARP spoofing en el laboratorio, utilizar arpspoof, ettercap y Bettercap, y aplicar contramedidas eficaces.

1. El protocolo ARP: funcionamiento

ARP (Address Resolution Protocol) es un protocolo de capa 2 (enlace de datos) que permite resolver una dirección IP en una dirección MAC en una red local. Sin ARP, las máquinas no podrían comunicarse directamente aunque estuvieran en el mismo segmento de red.

📡 Petición ARP (ARP Request)

Una máquina envía un mensaje broadcast a toda la red:
« ¿Quién tiene la IP 192.168.1.1? Díselo a 192.168.1.10 »

Este mensaje se envía a la dirección MAC de difusión: FF:FF:FF:FF:FF:FF

📢 Respuesta ARP (ARP Reply)

La máquina objetivo responde en unicast:
« ¡Soy yo! Mi dirección MAC es AA:BB:CC:DD:EE:FF »

La máquina emisora almacena esta asociación en su caché ARP.

NOTE⚠️ Debilidad fundamental de ARP
ARP es un protocolo sin estado y sin autenticación. Cualquier máquina puede enviar una respuesta ARP, incluso sin haber recibido una petición. Esto se conoce como «ARP gratuito» (Gratuitous ARP).

2. La caché ARP

Cada máquina mantiene una caché ARP: una tabla que asocia direcciones IP con direcciones MAC. Esta tabla tiene una vida útil limitada (generalmente 2 minutos en Linux, 10 minutos en Windows).

Consultar la caché ARP

bash
# Sur Linux
arp -a

# Affichage détaillé
arp -n

# Avec ip neigh (plus moderne)
ip neigh show

# Sur Windows
arp -a

Ejemplo de salida en Linux:

output
? (192.168.1.1) at aa:bb:cc:dd:ee:ff [ether] on eth0
? (192.168.1.20) at 11:22:33:44:55:66 [ether] on eth0
? (192.168.1.30) at de:ad:be:ef:ca:fe [ether] on eth0
TIP💡 Consejo
En Kali Linux, utilice ip neigh show en lugar de arp -a: el comando ip forma parte del paquete iproute2 y es más moderno y completo.

3. El ataque ARP Spoofing: principio

El ARP Spoofing (o ARP Poisoning) consiste en enviar paquetes ARP falsos a la red local para asociar la dirección MAC del atacante con la dirección IP de otra máquina (normalmente la puerta de enlace).

WARNING🚨 Atención – Solo laboratorio
Este ataque es ilegal en cualquier red sin autorización explícita. Practíquelo únicamente en su laboratorio virtual con Kali Linux y Metasploitable.

Escenario típico de un ataque MITM mediante ARP Spoofing

🆕 Paso 1: Estado normal

La víctima (192.168.1.10) se comunica normalmente con la puerta de enlace (192.168.1.1).

Caché ARP de la víctima:
192.168.1.1 → aa:bb:cc:11:22:33

⚡ Paso 2: Envenenamiento

El atacante envía respuestas ARP falsas:
— A la víctima: « 192.168.1.1 = mi MAC »
— A la puerta de enlace: « 192.168.1.10 = mi MAC »

Reconocimiento pasivo — WHOIS, DNS, Google Dorks

NOTEObjetivo — Dominar las técnicas de reconocimiento pasivo que permiten recopilar la máxima información sobre un objetivo sin establecer nunca contacto directo con sus sistemas. Estas técnicas son legales, discretas y constituyen el primer paso de cualquier prueba de intrusión profesional.

Objetivos pedagógicos

TIPAl finalizar este módulo — Podrá realizar un reconocimiento pasivo completo sobre cualquier dominio, analizar datos WHOIS, consultar el DNS y utilizar Google Dorks para encontrar información sensible expuesta públicamente.

1. Reconocimiento pasivo vs activo

La fase de reconocimiento es el primer paso de la metodología de pentest. Consiste en recopilar información sobre el objetivo antes de cualquier intento de explotación. Se distinguen dos tipos fundamentales:

🔐 Reconocimiento pasivo

Definición: Recopilación de información sin interacción directa con los sistemas del objetivo. Se utilizan fuentes disponibles públicamente (OSINT).

🔹 Reconocimiento activo

Definición: Interacción directa con los sistemas del objetivo para obtener información en tiempo real.

WARNING⚠ Recordatorio legal — Incluso el reconocimiento pasivo puede volverse ilegal si se utiliza con intención maliciosa. Realice siempre estas operaciones en el marco de un mandato escrito o en sus propios sistemas. En este curso utilizamos dominios de demostración como example.com.

2. WHOIS — Información sobre los dominios

El protocolo WHOIS permite consultar bases de datos públicas que contienen la información de registro de nombres de dominio y direcciones IP. Suele ser el primer comando que se ejecuta durante un reconocimiento.

2.1 Comandos WHOIS esenciales

bash
# Recherche WHOIS de base sur un domaine
whois example.com

# WHOIS sur une adresse IP (révèle l’organisation propriétaire)
whois 93.184.216.34

# WHOIS en utilisant un serveur spécifique
whois -h whois.arin.net 8.8.8.8

# Filtrer les résultats importants avec grep
whois example.com | grep -i "registrar\|name server\|creation\|expir\|email"

# WHOIS en ligne de commande sur Windows (via Sysinternals)
whois.exe example.com

2.2 Datos importantes en un resultado WHOIS

Campo WHOISSignificadoInterés para el pentester
RegistrarOficina de registro utilizadaIdentificar el proveedor DNS, posibilidades de ingeniería social
Registrant Name / OrgNombre y organización del propietarioNombre real, organización matriz, contactos
Admin EmailEmail del administradorObjetivo potencial de phishing, formato de los correos internos
Name ServersServidores DNS autoritativosIdentificar los DNS para ataques de transferencia de zona
Creation DateFecha de creación del dominioAntigüedad de la organización, historial
Expiration DateFecha de expiraciónPosibilidad de recompra de dominio expirado
Updated DateÚltima actualizaciónActividad reciente en el dominio
DNSSECSeguridad DNS activada o noPresencia o ausencia de protección contra el envenenamiento de caché
NOTE💡 Privacidad WHOIS — Muchos registradores ofrecen un servicio de protección WHOIS (privacy shield) que sustituye la información real del propietario por la de un proxy. Esto no significa que el objetivo sea inalcanzable: otras técnicas OSINT permiten sortear esta protección.

2.3 Herramientas web WHOIS alternativas

🌎 who.is

Interfaz web completa con historial WHOIS e información complementaria sobre el alojamiento.

🌐 DomainTools

Historial WHOIS, WHOIS inverso (encontrar todos los dominios de una persona), correlación de datos.

🔍 ViewDNS.info

Múltiples herramientas DNS y WHOIS, búsqueda inversa por IP, historial DNS.

3. DNS — Consulta del Sistema de Nombres de Dominio

El DNS (Domain Name System) es un sistema distribuido que traduce los nombres de dominio en direcciones IP. Para un pentester constituye una mina de información sobre la infraestructura objetivo.

va-plus-loin

Este artículo cubre los extractos más útiles: el curso completo Ethical Hacking Fundamentals (12 capítulos, 42 lecciones, ejercicios corregidos y proyecto final) le lleva hasta el final.

./acceder-au-cours-complet curso gratuito: Dominar Claude Code

FAQ

¿Cuánto tiempo se necesita para aprender Ethical Hacking Fundamentals?
Con una progresión estructurada (12 capítulos, 42 lecciones cortas y prácticas) se alcanza un nivel operativo en unas semanas dedicando entre 30 y 60 minutos al día. Lo importante es practicar cada concepto de inmediato.
¿Se necesitan requisitos previos?
Es preferible estar cómodo con los fundamentos del área: este contenido profundiza, con casos reales.
¿Por dónde empezar de forma concreta?
Reproduce los comandos de este artículo y luego sigue el curso completo Ethical Hacking Fundamentals: encadena las 42 lecciones en orden, con ejercicios y proyecto final.

📬 ¿Quieres recibir este tipo de guía cada semana? Suscríbete gratis — código real, cero palabrería.