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.
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.
- Preparar su laboratorio
- Descubrir el Hacking Ético
- Reconocimiento y OSINT
- Escaneo y enumeración
- Explotación de vulnerabilidades
Enumeración de servicios (SMB, FTP, SSH, HTTP)
Objetivos pedagógicos
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
# 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
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
# 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
# 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
# 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
# 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
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.
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
# 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:
? (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
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).
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
Objetivos pedagógicos
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.
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
# 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 WHOIS | Significado | Interés para el pentester |
|---|---|---|
| Registrar | Oficina de registro utilizada | Identificar el proveedor DNS, posibilidades de ingeniería social |
| Registrant Name / Org | Nombre y organización del propietario | Nombre real, organización matriz, contactos |
| Admin Email | Email del administrador | Objetivo potencial de phishing, formato de los correos internos |
| Name Servers | Servidores DNS autoritativos | Identificar los DNS para ataques de transferencia de zona |
| Creation Date | Fecha de creación del dominio | Antigüedad de la organización, historial |
| Expiration Date | Fecha de expiración | Posibilidad de recompra de dominio expirado |
| Updated Date | Última actualización | Actividad reciente en el dominio |
| DNSSEC | Seguridad DNS activada o no | Presencia o ausencia de protección contra el envenenamiento de caché |
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.
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 CodeFAQ
¿Cuánto tiempo se necesita para aprender Ethical Hacking Fundamentals?
¿Se necesitan requisitos previos?
¿Por dónde empezar de forma concreta?
📬 ¿Quieres recibir este tipo de guía cada semana? Suscríbete gratis — código real, cero palabrería.