Cap 1 de mi nuevo libro "Breve introducción al Ethical hacking" (Ya a la venta en Amazon!)


 


Capítulo 1. Fundamentos del Ethical Hacking

El Ethical Hacking es una disciplina de seguridad ofensiva que aplica técnicas, herramientas y formas de razonamiento asociadas con los atacantes, pero dentro de un contexto autorizado, controlado y documentado. Su propósito no es vulnerar sistemas por curiosidad ni demostrar superioridad técnica, sino descubrir debilidades antes de que puedan ser aprovechadas contra una organización.

Una evaluación profesional no comienza ejecutando herramientas. Empieza con preguntas: qué activos se analizarán, quién autoriza la actividad, cuáles son los objetivos, qué técnicas están permitidas, qué riesgos deben evitarse y cómo se informarán los resultados. La calidad del trabajo depende tanto de estas decisiones como de la capacidad técnica del especialista.

NIST presenta las evaluaciones técnicas de seguridad como procesos que deben planificarse, ejecutarse y documentarse, de manera que sus resultados permitan analizar hallazgos y desarrollar estrategias de mitigación. Por lo tanto, una prueba de seguridad no termina cuando se identifica una vulnerabilidad: termina cuando la organización comprende el riesgo y dispone de información útil para corregirlo. (NIST Seguridad Informática)

1.1 Qué es el Ethical Hacking

El Ethical Hacking, también denominado hacking ético, consiste en evaluar sistemas informáticos utilizando técnicas de análisis ofensivo con autorización explícita del propietario o responsable legítimo de los activos.

La palabra ethical no describe una herramienta especial ni una categoría técnica diferente. Nmap, Bash, Python, Wireshark o un navegador pueden ser empleados tanto por administradores como por atacantes. Lo que determina el carácter ético de una actividad es la combinación de cinco elementos:

  1. Autorización válida.
  2. Alcance definido.
  3. Objetivo legítimo.
  4. Ejecución controlada.
  5. Tratamiento responsable de los resultados.

Sin estos elementos, una actividad técnicamente similar puede convertirse en un acceso indebido, una interferencia operativa o una violación de la privacidad.

Un hacker ético intenta responder preguntas concretas:

  • ¿Qué activos son visibles desde una posición determinada?
  • ¿Qué servicios están expuestos?
  • ¿Existen configuraciones inseguras?
  • ¿Puede un usuario obtener privilegios que no debería poseer?
  • ¿Una vulnerabilidad teórica puede producir un impacto real?
  • ¿Qué información podría quedar expuesta?
  • ¿Qué controles detectan o bloquean el comportamiento?
  • ¿Cómo puede corregirse el problema?

El objetivo no es producir la mayor cantidad posible de alertas. Un escáner automático puede devolver cientos de resultados, pero muchos de ellos podrían ser duplicados, informativos, irrelevantes o falsos positivos. El trabajo profesional consiste en interpretar los datos, validar los hallazgos y relacionarlos con el contexto técnico y operativo.

Seguridad ofensiva y seguridad defensiva

La seguridad ofensiva examina un sistema desde la perspectiva de quien intenta superar sus controles. La seguridad defensiva se concentra en prevenir, detectar, contener y responder ante actividades maliciosas.

Ambas perspectivas son complementarias. Un equipo ofensivo puede encontrar un servicio vulnerable, mientras que un equipo defensivo puede comprobar si la actividad fue registrada, detectada y contenida. Esta relación da origen a tres conceptos habituales:

  • Red Team: simula comportamientos adversarios para evaluar personas, procesos y tecnologías.
  • Blue Team: protege los activos, analiza alertas y responde ante incidentes.
  • Purple Team: facilita la colaboración entre las funciones ofensivas y defensivas.

No toda evaluación de seguridad es una operación Red Team. Un pentest tradicional suele tener un alcance más específico, una duración definida y objetivos técnicos concretos. Una simulación adversaria puede priorizar sigilo, evasión y cumplimiento de objetivos estratégicos durante un periodo más extenso.

Ethical Hacking y evaluación de vulnerabilidades

Una evaluación de vulnerabilidades identifica debilidades potenciales mediante revisiones manuales, herramientas automáticas, comprobaciones de configuración y comparación con fuentes conocidas.

Un pentest intenta determinar si algunas de esas debilidades pueden explotarse de forma controlada y qué consecuencias producirían.

La diferencia puede representarse de este modo:

Evaluación de vulnerabilidades:
Descubrir → Clasificar → Priorizar → Recomendar

Prueba de penetración:
Descubrir → Validar → Explotar de forma controlada → Medir impacto → Recomendar

Una vulnerabilidad no equivale automáticamente a un riesgo crítico. Para valorar un hallazgo deben considerarse factores como:

  • Exposición del activo.
  • Facilidad de explotación.
  • Privilegios necesarios.
  • Interacción requerida.
  • Controles compensatorios.
  • Sensibilidad de la información.
  • Importancia del servicio.
  • Posibilidad de movimiento lateral.
  • Impacto sobre confidencialidad, integridad y disponibilidad.

El principio de mínima intervención

Una prueba profesional debe obtener evidencia suficiente utilizando la menor intervención posible. Si una lectura controlada demuestra que un archivo sensible está expuesto, no es necesario descargar todo el repositorio. Si una cuenta de laboratorio demuestra un fallo de autorización, no debe accederse a información real de otros usuarios.

La demostración debe detenerse cuando el riesgo haya quedado confirmado. Continuar únicamente para explorar posibilidades técnicas puede aumentar el impacto sin aportar valor proporcional.

Un primer script seguro en Kali Linux

El siguiente script Bash prepara la estructura básica de un proyecto sin ejecutar escaneos ni interactuar con objetivos. Su función es crear directorios para evidencias, registros, resultados y documentación.

#!/usr/bin/env bash

set -Eeuo pipefail
IFS=$'\n\t'

PROJECT_NAME="${1:-}"
BASE_DIRECTORY="${HOME}/ethical-hacking-labs"

if [[ -z "$PROJECT_NAME" ]]; then
    echo "Uso: $0 <nombre_del_proyecto>"
    exit 1
fi

if [[ ! "$PROJECT_NAME" =~ ^[a-zA-Z0-9_-]+$ ]]; then
    echo "Error: utiliza únicamente letras, números, guiones y guiones bajos."
    exit 1
fi

PROJECT_DIRECTORY="${BASE_DIRECTORY}/${PROJECT_NAME}"

if [[ -e "$PROJECT_DIRECTORY" ]]; then
    echo "Error: el proyecto ya existe: $PROJECT_DIRECTORY"
    exit 1
fi

mkdir -p "$PROJECT_DIRECTORY"/{
documentacion,
evidencias,
logs,
resultados,
scripts,
capturas
}

cat > "$PROJECT_DIRECTORY/documentacion/alcance.txt" <<'EOF'
PROYECTO:
RESPONSABLE:
PERSONA QUE AUTORIZA:
FECHA DE INICIO:
FECHA DE FINALIZACIÓN:

OBJETIVOS AUTORIZADOS:

ACTIVOS EXCLUIDOS:

TÉCNICAS PERMITIDAS:

TÉCNICAS PROHIBIDAS:

VENTANA DE PRUEBAS:

CONTACTO DE EMERGENCIA:

CRITERIOS DE INTERRUPCIÓN:
EOF

cat > "$PROJECT_DIRECTORY/README.txt" <<EOF
Proyecto: $PROJECT_NAME
Creado: $(date --iso-8601=seconds)
Usuario: $(id -un)
Equipo: $(hostname)
Directorio: $PROJECT_DIRECTORY
EOF

chmod 700 "$PROJECT_DIRECTORY"
chmod 600 "$PROJECT_DIRECTORY/documentacion/alcance.txt"
chmod 600 "$PROJECT_DIRECTORY/README.txt"

echo "Proyecto creado correctamente:"
echo "$PROJECT_DIRECTORY"

Puede guardarse como crear_proyecto.sh y ejecutarse de la siguiente forma:

chmod +x crear_proyecto.sh
./crear_proyecto.sh laboratorio_inicial

La opción set -Eeuo pipefail hace que el script interrumpa su ejecución ante errores, variables no definidas o fallos dentro de una tubería. Los permisos 700 y 600 restringen el acceso al propietario, lo que resulta apropiado para documentación y evidencias potencialmente sensibles.

1.2 Hackers, pentesters y profesionales de seguridad

El término hacker posee significados diferentes según el contexto. En su sentido técnico tradicional, describe a una persona interesada en comprender profundamente sistemas y modificar su funcionamiento. En el uso cotidiano, suele asociarse directamente con actividades delictivas.

Para evitar ambigüedades, conviene distinguir los roles por sus objetivos, autorización y responsabilidades.

Hacker ético

Es un profesional que utiliza conocimientos ofensivos con autorización para identificar debilidades y mejorar la seguridad. Puede trabajar como consultor, integrante de un equipo interno, investigador o especialista independiente.

Sus responsabilidades incluyen:

  • Respetar el alcance.
  • Minimizar el impacto.
  • Proteger la información obtenida.
  • Mantener registros.
  • Comunicar hallazgos verificables.
  • Evitar conclusiones exageradas.
  • Informar incidentes inesperados.
  • Eliminar artefactos creados durante la prueba.

Pentester

El pentester realiza pruebas de penetración. Su trabajo se orienta a comprobar si determinadas vulnerabilidades pueden explotarse y qué impacto producirían.

Un pentester necesita conocimientos de redes, sistemas operativos, aplicaciones, protocolos, scripting, documentación y gestión del riesgo. También debe comprender las limitaciones de sus herramientas.

Ejecutar un escáner no convierte automáticamente a una persona en pentester. La herramienta recopila datos; el profesional formula hipótesis, selecciona pruebas, interpreta respuestas y decide cuándo detenerse.

Auditor de seguridad

El auditor evalúa si los controles, procesos y configuraciones cumplen criterios previamente establecidos. Puede trabajar con normativas, estándares, políticas internas, requisitos contractuales o marcos de control.

Una auditoría puede incluir pruebas técnicas, pero no siempre implica explotación. Su pregunta principal suele ser: ¿el control existe, funciona y cumple el requisito aplicable?

Investigador de seguridad

El investigador estudia vulnerabilidades, productos, protocolos o comportamientos técnicos. Puede descubrir fallos desconocidos, analizar software, desarrollar pruebas de concepto y coordinar la divulgación con fabricantes.

La investigación debe realizarse en entornos propios, laboratorios controlados, programas de recompensas o contextos expresamente autorizados. Que un servicio sea accesible desde Internet no implica que pueda utilizarse como objetivo de pruebas.

Analista defensivo

El analista defensivo examina registros, alertas, tráfico, procesos y eventos para detectar actividad sospechosa. Puede trabajar en un centro de operaciones de seguridad, en respuesta ante incidentes, análisis forense o ingeniería de detección.

Mientras el pentester pregunta cómo podría entrar un atacante, el analista defensivo pregunta:

  • ¿Qué indicadores dejaría?
  • ¿Qué registros deberían generarse?
  • ¿Qué alerta permitiría detectarlo?
  • ¿Cómo se contendría la actividad?
  • ¿Qué controles impedirían su repetición?

Administrador de sistemas o redes

Los administradores mantienen servicios, usuarios, dispositivos, aplicaciones y configuraciones. Aunque no sean pentesters, suelen realizar comprobaciones de seguridad, análisis de registros y validaciones técnicas.

La diferencia principal reside en el objetivo. Un administrador comprueba que un servicio funcione correctamente; un pentester examina cómo podría abusarse de ese servicio dentro de los límites autorizados.

Atacante criminal

El atacante criminal opera sin consentimiento o excede deliberadamente una autorización. Puede buscar beneficio económico, espionaje, sabotaje, extorsión, acceso a información, interrupción de servicios o control de infraestructura.

La diferencia entre una prueba profesional y una intrusión no depende de que la intención declarada sea positiva. Depende de la existencia de autorización, del cumplimiento del alcance y del respeto por las restricciones establecidas.

Clasificaciones por colores

En materiales introductorios suelen aparecer las expresiones:

  • White hat: profesional autorizado.
  • Black hat: atacante malicioso.
  • Gray hat: persona que actúa sin autorización, aunque afirme no perseguir un fin dañino.

Estas etiquetas pueden servir como introducción, pero simplifican situaciones complejas. Una persona autorizada para probar un servidor puede convertirse en actor no autorizado si examina otro sistema, utiliza técnicas prohibidas o continúa después de finalizar el contrato.

La autorización no es una cualidad permanente del individuo. Se aplica a acciones específicas, activos concretos y periodos determinados.


Responsabilidad sobre las herramientas

Kali Linux reúne herramientas destinadas a pruebas de penetración, análisis forense, investigación y evaluaciones de seguridad. Su disponibilidad no concede autorización para utilizarlas contra sistemas ajenos. (Kali Linux)

Antes de ejecutar una herramienta, el profesional debe comprender:

  • Qué paquetes enviará.
  • Qué archivos modificará.
  • Qué credenciales utilizará.
  • Qué registros generará.
  • Qué carga introducirá.
  • Si puede bloquear cuentas.
  • Si puede interrumpir servicios.
  • Si crea usuarios, procesos o archivos.
  • Cómo revertir sus cambios.

Una herramienta etiquetada como “scanner” no es necesariamente inocua. Algunas comprobaciones pueden generar múltiples conexiones, alterar estados de sesión, provocar alertas o afectar sistemas frágiles.

Enlace de compra: https://a.co/d/09R6d8FL

Comentarios

Entradas populares de este blog

El libro secreto de bash scripting, ya a la venta en Amazon!!!

Bash Scripting desde cero: crea tu primer script en Linux