Protected File Transfers
Los testers de penetración a menudo obtienen acceso a datos altamente sensibles, como listas de usuarios, credenciales (es decir, descarga del archivo NTDS.dit para descifrar contraseñas fuera de línea) y datos de enumeración que pueden contener información crítica sobre la infraestructura de red y el entorno de Active Directory (AD) de una organización. Por lo tanto, es esencial cifrar estos datos o utilizar conexiones de datos cifradas, como SSH, SFTP y HTTPS. Sin embargo, a veces estas opciones no están disponibles, y se requiere un enfoque diferente.
Nota: A menos que el cliente lo solicite específicamente, no recomendamos exfiltrar datos como información de identificación personal (PII), datos financieros (como números de tarjetas de crédito), secretos comerciales, etc. En su lugar, si se intenta probar los controles de Prevención de Pérdida de Datos (DLP) o protecciones de filtrado de egreso, cree un archivo con datos ficticios que imiten los datos que el cliente intenta proteger.
El cifrado de los datos o archivos antes de su transferencia es necesario para evitar que los datos sean leídos si se interceptan en tránsito. La fuga de datos durante una prueba de penetración podría tener graves consecuencias para el tester de penetración, su empresa y el cliente. Como profesionales de la seguridad de la información, debemos actuar con responsabilidad y tomar todas las medidas para proteger cualquier dato con el que nos encontremos durante una evaluación.
Cifrado de Archivos en Windows
Existen varios métodos para cifrar archivos e información en sistemas Windows. Uno de los métodos más simples es utilizar el script PowerShell Invoke-AESEncryption.ps1. Este script es pequeño y proporciona cifrado de archivos y cadenas.
Ejemplos de Uso
1. Cifrar una Cadena de Texto
Descripción:
Cifra el texto "Texto Secreto"
y genera una salida en Base64.
2. Desencriptar una Cadena de Texto
Descripción:
Desencripta la cadena Base64 "LtxcRelxrDLrDB9rBD6JrfX/czKjZ2CUJkrg++kAMfs="
y genera la salida en texto plano.
3. Cifrar un Archivo
Descripción:
Cifra el archivo "file.bin"
y genera un archivo cifrado "file.bin.aes"
.
4. Desencriptar un Archivo
Descripción:
Desencripta el archivo "file.bin.aes"
y genera el archivo original "file.bin"
.
Función Invoke-AESEncryption
El código completo del script se presenta a continuación:
Transferencia Protegida de Archivos
Una vez que se transfiere el script al host objetivo, solo es necesario importarlo como un módulo de la siguiente manera:
Después de importar el script, se pueden cifrar cadenas o archivos. Este comando crea un archivo cifrado con el mismo nombre que el archivo original pero con la extensión ".aes".
Ejemplo de Cifrado de Archivos:
Salida:
Es esencial utilizar contraseñas muy fuertes y únicas para el cifrado en cada empresa donde se realice una prueba de penetración. Esto es para evitar que los archivos sensibles se descifren utilizando una única contraseña que pueda haber sido filtrada y crackeada por terceros.
Cifrado de Archivos en Linux
OpenSSL está frecuentemente incluido en las distribuciones de Linux, y los administradores de sistemas lo utilizan para generar certificados de seguridad, entre otras tareas. OpenSSL también puede utilizarse para enviar archivos de manera similar a netcat y para cifrar archivos.
Para cifrar un archivo usando openssl, podemos seleccionar diferentes cifrados. Como ejemplo, utilizaremos el cifrado -aes256. También podemos sobrescribir el número de iteraciones predeterminado con la opción -iter 100000 y agregar la opción -pbkdf2 para usar el algoritmo Password-Based Key Derivation Function 2. Al ejecutar el comando, se pedirá proporcionar una contraseña.
Cifrado de /etc/passwd con OpenSSL
Salida:
Es importante utilizar una contraseña fuerte y única para evitar ataques de fuerza bruta en caso de que una parte no autorizada obtenga el archivo cifrado.
Descifrado de passwd.enc con OpenSSL
Para descifrar el archivo, se puede usar el siguiente comando:
Salida:
Es posible utilizar cualquiera de los métodos anteriores para transferir este archivo, pero se recomienda emplear un método de transporte seguro, como HTTPS, SFTP, o SSH. Como siempre, es importante practicar estos ejemplos en entornos de prueba, como Pwnbox, reproduciendo los ejemplos de OpenSSL.
Last updated