
Un script que envía archivos automáticamente a Hybrid Analysis (API)
Este script de Python escanea recursivamente una carpeta y envía archivos ejecutables, scripts, documentos y otros archivos relevantes a Hybrid Analysis (Falcon Sandbox) para análisis automatizado de malware.
~/.hybrid_analysis_submitter/) para evitar contaminar las carpetas escaneadas.env por seguridadClona o descarga este script en tu máquina local.
Instala los paquetes necesarios:
pip install requests python-dotenv
.env en el mismo directorio que el script con tu clave API:HYBRID_API_KEY=your_api_key_here
Puedes obtener una clave API registrándote en Hybrid Analysis.
Ejecuta el script desde la línea de comandos, especificando la carpeta a escanear:
python submit_to_hybrid.py /path/to/folder
Escanear una carpeta con configuración predeterminada:
python submit_to_hybrid.py C:\suspicious_files
Escanear una carpeta pero aumentar el límite de tamaño a 200 MB y usar un entorno diferente (ej., Android):
python submit_to_hybrid.py /home/user/samples --max-file-size 200 --environment-id 300
Usar un nombre de archivo de caché personalizado:
python submit_to_hybrid.py ./malware --cache-file my_cache.json
Scanning folder: C:\suspicious_files
Submitting: C:\suspicious_files\malware.exe (2.34 MB)
-> Success! Job ID: 5f8a9c2d3e4f5a6b7c8d9e0f
Submitting: C:\suspicious_files\document.pdf (0.12 MB)
-> Success! Job ID: 6g9b0c1d2e3f4a5b6c7d8e9f
Skipping already submitted: C:\suspicious_files\malware.exe
Skipping symlink: C:\suspicious_files\link_to_malware.exe
Finished.
Files found: 42
Files submitted: 35
Files skipped: 6
Files failed: 1
.exe, .scr, .pif, .dll, .com, .cpl.msi.bat, .cmd, .ps1, .psd1, .psm1, .js, .vbs, .vbe, , , Para la lista oficial de todos los tipos de archivo compatibles, consulta las Preguntas Frecuentes de Hybrid Analysis.
os.walk() para recorrer cada subcarpeta.--max-file-size), y si el archivo ha sido enviado antes (caché SHA‑256).https://hybrid-analysis.com/api/v2/submit/file usando una Sesión de requests persistente con tu clave API.~/.hybrid_analysis_submitter/ para que no se vuelvan a enviar en ejecuciones futuras. La caché se guarda ordenada para facilitar la lectura humana.429 y se detiene después de 3 errores de este tipo para evitar reintentos infinitos..env – no la codifiques directamente.--max-file-size se omiten.ALLOWED_EXTENSIONS.~/.hybrid_analysis_submitter/).Este script se proporciona tal cual para fines educativos y de análisis de seguridad. Úsalo de manera responsable y de acuerdo con los Términos de Servicio de Hybrid Analysis.
Enviar archivos a un sandbox de terceros puede exponer contenido potencialmente sensible. Asegúrate de tener el derecho de compartir los archivos antes de subirlos.
| Argumento | Descripción |
|---|
folder_path | Requerido – Ruta a la carpeta a escanear (recursiva) |
--max-file-size | Tamaño máximo de archivo en MB (predeterminado: 250) |
--environment-id | ID de entorno de análisis (predeterminado: 120 = Windows 7 64 bits) |
--cache-file | Nombre del archivo de caché (predeterminado: submitted_cache.json). El archivo se almacena en ~/.hybrid_analysis_submitter/ |
.wsf.hta.sct.lnk, .chm.doc, .docx, .ppt, .pps, .pptx, .ppsx, .xls, .xlsx, .rtf, .pub.pdf, .eml, .msg.jar, .py, .pl.apk (Android), .elf (Linux).svg| Problema | Solución Probable |
|---|
ERROR: HYBRID_API_KEY not found | Crea un archivo .env en el mismo directorio con HYBRID_API_KEY=your_key_here. |
'folder_path' is not a valid directory | Proporciona una ruta correcta a una carpeta existente. |
| Permiso denegado al leer archivos | Ejecuta el script con los permisos de lectura adecuados. |
| Errores 429 frecuentes | Reduce la tasa de envío (aumenta time.sleep(2) en el script) o mejora tu plan de API. |
| Los archivos se omiten inesperadamente | Verifica si la extensión está en ALLOWED_EXTENSIONS. Puedes añadir más extensiones editando el script. |
| No se omiten envíos duplicados | El archivo de caché podría faltar o estar corrupto. Elimina ~/.hybrid_analysis_submitter/submitted_cache.json para empezar de nuevo, o usa el argumento --cache-file para usar un nombre de archivo de caché diferente. |
| Se están omitiendo archivos fuera de la raíz del escaneo | Esto es intencional por seguridad. Asegúrate de que todos los archivos objetivo estén dentro de la carpeta especificada. |