Tema 5
Las herramientas de pentesting solo tienen sentido cuando se entiende qué ocurre debajo: direcciones IP, puertos, protocolos, procesos, permisos, servicios, archivos de configuración y registros. La base técnica permite interpretar resultados y no depender de respuestas automáticas.
En pentesting, muchas decisiones dependen de conceptos básicos bien entendidos. Un puerto abierto, una respuesta HTTP, un banner de servicio, un permiso incorrecto o un proceso ejecutándose con privilegios elevados pueden indicar una oportunidad de ataque o una mala configuración.
Sin fundamentos, las herramientas se vuelven cajas negras. El evaluador puede ejecutar comandos, pero no sabrá diferenciar un falso positivo de una ruta real de explotación, ni podrá explicar por qué un hallazgo importa.
Este tema reúne las bases mínimas de redes, sistemas operativos y servicios para comprender los próximos módulos de reconocimiento, enumeración, análisis de vulnerabilidades y explotación controlada.
El modelo TCP/IP organiza la comunicación de red en capas. Para pentesting no hace falta memorizarlo de forma académica, pero sí entender qué tipo de información y controles aparecen en cada nivel.
| Capa | Ejemplos | Interés para pentesting |
|---|---|---|
| Acceso a red | Ethernet, Wi-Fi, ARP | Descubrimiento local, MAC, suplantación, redes inalámbricas |
| Internet | IP, ICMP | Direccionamiento, rutas, ping, traceroute, filtrado |
| Transporte | TCP, UDP | Puertos, estados, escaneo, sesiones y conectividad |
| Aplicación | HTTP, DNS, SMB, SSH, FTP, SMTP | Enumeración, autenticación, exposición de datos y vulnerabilidades |
Una dirección IP identifica una interfaz dentro de una red. La máscara o prefijo indica qué parte corresponde a la red y qué parte corresponde a hosts. Esta distinción es clave para descubrir objetivos, entender alcance y evitar probar redes no autorizadas.
En un pentest, el alcance puede definirse como un conjunto de IPs, subredes o nombres DNS. Es responsabilidad del evaluador respetar esos límites.
Un puerto permite que un sistema ofrezca varios servicios sobre una misma dirección IP. La combinación de IP, puerto y protocolo de transporte forma un punto de comunicación.
En pentesting, los puertos abiertos indican servicios que pueden enumerarse, autenticarse, probarse o revisar por configuraciones débiles.
| Puerto | Servicio común | Qué suele revisarse |
|---|---|---|
| 22/TCP | SSH | Banner, versión, autenticación, usuarios, claves |
| 53/TCP-UDP | DNS | Transferencias de zona, registros, resolución interna |
| 80/TCP | HTTP | Aplicaciones web, directorios, cabeceras, tecnologías |
| 443/TCP | HTTPS | TLS, certificados, aplicación web, configuración |
| 445/TCP | SMB | Compartidos, autenticación, versiones, enumeración Windows |
| 3389/TCP | RDP | Acceso remoto, exposición, credenciales, políticas |
TCP y UDP transportan datos de forma distinta. TCP establece conexión y controla entrega. UDP no establece conexión de la misma manera y suele usarse en servicios donde la velocidad o simplicidad importa.
Los escaneos UDP suelen ser más lentos y difíciles de interpretar porque la ausencia de respuesta no siempre significa que el puerto esté cerrado. Puede haber filtrado, pérdida de paquetes o comportamiento silencioso del servicio.
ICMP se usa para mensajes de control, diagnóstico y errores. Herramientas como ping y traceroute se apoyan en ICMP o técnicas relacionadas para comprobar conectividad y rutas.
En pentesting, que un host no responda a ping no significa que esté apagado. Muchos firewalls bloquean ICMP, pero permiten conexiones a puertos específicos. Por eso el descubrimiento de hosts no debe depender de un único método.
DNS traduce nombres a direcciones y revela mucha información sobre una organización: dominios, subdominios, servidores de correo, proveedores, servicios cloud y entornos expuestos.
En reconocimiento, DNS ayuda a descubrir superficie expuesta. En entornos internos, puede revelar nombres de servidores, dominios Active Directory y patrones de infraestructura.
HTTP y HTTPS son fundamentales para pruebas web y APIs. Comprender métodos, códigos de estado, cabeceras, cookies y cuerpos de petición permite analizar aplicaciones más allá de lo que muestra el navegador.
| Elemento | Ejemplo | Interés para pentesting |
|---|---|---|
| Método | GET, POST, PUT, DELETE | Acciones disponibles y abuso de endpoints |
| Código de estado | 200, 301, 403, 404, 500 | Comportamiento, errores, rutas protegidas |
| Cabeceras | Server, Location, Set-Cookie | Tecnologías, sesiones, redirecciones |
| Cookies | sessionid, token | Gestión de sesión, flags, expiración |
| Cuerpo | JSON, formularios, XML | Validación de entradas e inyecciones |
TLS protege comunicaciones en tránsito, pero una configuración incorrecta puede debilitar la seguridad. En pentesting se revisan certificados, versiones de protocolo, cifrados, nombres alternativos y errores de validación.
Además de seguridad, los certificados pueden aportar información para reconocimiento, como nombres internos o subdominios relacionados.
Linux aparece tanto como sistema atacante como objetivo. Conocer su estructura ayuda a interpretar permisos, procesos, servicios y rutas de escalada.
También es esencial entender usuarios, grupos, sudo, permisos de archivos, servicios systemd y variables de entorno.
Los permisos en Linux definen quién puede leer, escribir o ejecutar archivos. Se aplican a propietario, grupo y otros. Una mala configuración puede exponer credenciales, scripts, claves o permitir ejecución no prevista.
| Permiso | Significado en archivo | Significado en directorio |
|---|---|---|
| r | Leer contenido | Listar nombres dentro del directorio |
| w | Modificar contenido | Crear, borrar o renombrar entradas |
| x | Ejecutar archivo | Entrar o atravesar el directorio |
| SUID/SGID | Ejecutar con privilegios del propietario o grupo | Puede tener impacto en herencia o ejecución |
Windows es muy común en entornos corporativos. Para pentesting hay que entender usuarios, grupos, servicios, registro, permisos NTFS, sesiones, recursos compartidos y autenticación integrada.
Active Directory centraliza identidades, equipos, grupos, políticas y autenticación en muchas organizaciones. Aunque tendrá un tema propio más adelante, conviene conocer sus conceptos básicos desde ahora.
Un servicio es un programa que se ejecuta para ofrecer una función: servidor web, base de datos, SSH, DNS, SMB o correo. En Linux suele hablarse de demonios; en Windows, de servicios.
Para pentesting, los servicios importan porque exponen funcionalidad y pueden tener:
Muchos servicios revelan información al conectarse: nombre, versión, sistema operativo, módulos o configuración. Esto se conoce como banner o fingerprinting.
La información de versión ayuda a buscar vulnerabilidades conocidas, pero debe validarse con cuidado. Un banner puede estar oculto, modificado, desactualizado o no representar exactamente el estado real del servicio.
Estos tres conceptos aparecen en casi todos los sistemas evaluados.
Muchas vulnerabilidades surgen cuando un sistema autentica correctamente, pero autoriza mal; por ejemplo, permite que un usuario común acceda a datos de otro usuario o ejecute acciones administrativas.
Los logs registran eventos del sistema, servicios, aplicaciones y seguridad. Para un pentester, sirven para entender comportamiento, verificar impacto y anticipar qué podría detectar un equipo defensivo.
| Entorno | Ubicación o fuente | Qué puede registrar |
|---|---|---|
| Linux | /var/log, journalctl | Autenticación, servicios, kernel, aplicaciones |
| Windows | Event Viewer | Inicio de sesión, servicios, errores, seguridad |
| Web | Access logs y error logs | Peticiones, códigos de estado, errores, IPs |
| Red | Firewall, IDS, proxy, DNS | Conexiones, bloqueos, consultas, alertas |
Las bases de datos y servicios de almacenamiento son objetivos sensibles porque contienen información de negocio, credenciales, tokens, datos personales o configuración. En pentesting se revisan exposición, autenticación, permisos y versiones.
Cada servicio tiene patrones de riesgo frecuentes. Conocerlos acelera la enumeración y ayuda a interpretar resultados.
| Servicio | Riesgos típicos | Preguntas de enumeración |
|---|---|---|
| FTP | Acceso anónimo, credenciales débiles, datos sensibles | ¿Permite login anónimo? ¿Qué archivos expone? |
| SSH | Contraseñas débiles, claves expuestas, versiones antiguas | ¿Qué versión usa? ¿Permite root? ¿Hay usuarios válidos? |
| SMB | Compartidos abiertos, enumeración de usuarios, versiones vulnerables | ¿Qué shares existen? ¿Acepta sesión nula? |
| SNMP | Community strings por defecto, fuga de información | ¿Responde con public/private? ¿Qué datos revela? |
| HTTP | Aplicaciones vulnerables, paneles, archivos expuestos | ¿Qué tecnología usa? ¿Qué rutas existen? |
Muchos sistemas almacenan configuración en archivos, variables de entorno o servicios de secretos. Una mala práctica frecuente es dejar credenciales, tokens o claves accesibles para usuarios o procesos que no deberían verlos.
La fase de fundamentos se resume en una idea: antes de intentar explotar, hay que entender. Un puerto abierto debe convertirse en una hipótesis: qué servicio es, qué versión parece usar, cómo se autentica, qué información revela y qué impacto tendría comprometerlo.
Una buena enumeración responde:
Los fundamentos técnicos son la base del pentesting profesional. Permiten interpretar qué ocurre en una red, cómo responde un servicio, qué significa un permiso y por qué una configuración puede convertirse en una ruta de ataque.
En el próximo tema veremos las fases de una prueba de penetración y la gestión del alcance, conectando esta base técnica con el flujo completo de un trabajo profesional.