
Una herramienta para ayudar en el reporte de certificados Authenticode, reduciendo el esfuerzo que deben realizar las personas para reportarlos.
Esta herramienta está pensada para reducir el esfuerzo necesario para reportar certificados Authenticode. Pretende exigir el mínimo esfuerzo por parte de quien reporta, pero proporcionar a la autoridad de certificación casi toda la información que necesita para tomar una decisión. Cuando sea posible, se recomienda complementar el informe con tus propios hallazgos para ayudar al proveedor de certificados a saber qué indicadores sospechosos encontraste.
A partir de la versión 2, hemos añadido soporte para usar la API de VirusTotal. Para permitirlo, hemos añadido funciones adicionales. El comportamiento predeterminado de certReport es consultar MalwareBazaar, que no requiere clave de API.
En la versión 3, hemos añadido una base de datos SQLite que almacena información sobre los informes. Puede usarse como referencia personal, pero también complementa el informe. ¡Consulta la información en la sección de base de datos más abajo para más información!
¡Usa pip! pip install certReport o pip3 install certReport
Nota: en la versión 2, es obligatorio proporcionar el modificador --hash (o -#)
Aquí hay un ejemplo:
Llamando al script y pasando un SHA256 así:
certReport --hash 89dc50024836f9ad406504a3b7445d284e97ec5dafdd8f2741f496cac84ccda9
Se imprimirá la siguiente información en la consola:
---------------------------------
Greetings,
We identified a malware signed with a SSL.com EV Code Signing Intermediate CA RSA R3 certificate.
The malware sample is available on MalwareBazaar here: https://bazaar.abuse.ch/sample/89dc50024836f9ad406504a3b7445d284e97ec5dafdd8f2741f496cac84ccda9
Here are the signature details:
Name: A.P.Hernandez Consulting s.r.o.
Issuer: SSL.com EV Code Signing Intermediate CA RSA R3
Serial Number: 2941d5f8758501f9dbc4ba158058c3b5
SHA256 Thumbprint: a982917ba6de9588f0f7ed554223d292524e832c1621acae9ad11c0573df54a5
Valid From: 2024-01-25T16:51:40Z
Valid Until: 2025-01-24T16:51:40Z
The malware was tagged as exe, Pikabot and signed.
MalwareBazaar submitted the file to multiple public sandboxes, the links to the sandbox results are below:
Sandbox / Malware Family / Verdict / Analysis URL
Intezer None unknown https://analyze.intezer.com/analyses/c4915ef4-198f-4aba-81ed-81b29cd4dce6?utm_source=MalwareBazaar
Triage pikabot 10 / 10 https://tria.ge/reports/240222-pqlqkshb2w/
VMRay Pikabot malicious https://www.vmray.com/analyses/_mb/89dc50024836/report/overview.html
Please let us know if you have any questions.
------------------------
Send the above message to the certificate provider.
This report should be sent to SSL.com: https://ssl.com/revoke
Esta información debe enviarse al emisor del certificado a través de los canales adecuados para reportar abusos (como correo electrónico o sitio web). El canal correspondiente se indica al final del informe (ver arriba).
En la versión 2, se hizo posible consultar VirusTotal. Para usar VirusTotal, primero configura tu clave de API mediante el método adecuado para tu sistema operativo:
On Linux:
echo "export VT_API_KEY=your_api_key_here" >> ~/.bashrc
source ~/.bashrc
On Windows:
setx VT_API_KEY "your_api_key"
On MacOS:
echo "export VT_API_KEY=your_api_key_here" >> ~/.zprofile
source ~/.zprofile
Una vez que la clave de API está configurada como variable de entorno, el siguiente comando generará un informe:
certReport --hash 89dc50024836f9ad406504a3b7445d284e97ec5dafdd8f2741f496cac84ccda9 --service virustotal
Alternativamente, los modificadores se pueden simplificar:
certReport -# 89dc50024836f9ad406504a3b7445d284e97ec5dafdd8f2741f496cac84ccda9 -s VT
Ambos comandos devolverán el siguiente informe:
---------------------------------
Greetings,
We identified a malware signed with a SSL.com EV Code Signing Intermediate CA RSA R3 certificate.
The malware sample is available on VirusTotal here: https://www.virustotal.com/gui/file/89dc50024836f9ad406504a3b7445d284e97ec5dafdd8f2741f496cac84ccda9/detection
Here are the signature details:
Name: A.P.Hernandez Consulting s.r.o.
Issuer: SSL.com EV Code Signing Intermediate CA RSA R3
Serial Number: 56 B6 29 CD 34 BC 78 F6
Thumbprint: 743AF0529BD032A0F44A83CDD4BAA97B7C2EC49A
Valid From: 2017-05-31 18:14:37
Valid Until: 2042-05-30 18:14:37
The malware was tagged as a peexe, long-sleeps, spreader, detect-debug-environment, service-scan, overlay, revoked-cert, signed and checks-user-input.
The malware was detected by 50 out of 74 antivirus engines.
The malware was classified as trojan by 30 detection engines.
The file was flagged as pikabot by 23 detection engines, zusy by 6 detection engines and gdfvt by 2 detection engines
This file was found during our investigation and had the following suspicious indicators:
- The file triggered the following high IDS rules:
- ET CNC Feodo Tracker Reported CnC Server group 1
- ET CNC Feodo Tracker Reported CnC Server group 2
Please let us know if you have any questions.
------------------------
Send the above message to the certificate provider.
This report should be sent to SSL.com: https://ssl.com/revoke
Como se indicó anteriormente, se recomienda añadir viñetas adicionales cerca del final del informe. Las viñetas adicionales deben incluir hallazgos de tu propia investigación. Estos detalles pueden servir de apoyo a la decisión del proveedor de certificados.
Para enviar informes a Cert Graveyard, usa la opción -p. Es necesario tener una clave de API de CertGraveyard configurada como variable de entorno llamada "CERT_GRAVEYARD_API". La clave de API se puede obtener desde tu página de perfil cuando inicies sesión en TheCertGraveyard.org
Please set your certGraveyard API key by running the doing the following:
On Linux:
echo "CERT_GRAVEYARD_API=your_api_key_here" >> ~/.bashrc
source ~/.bashrc
On Windows:
setx CERT_GRAVEYARD_API "your_api_key"
On MacOS:
echo "export CERT_GRAVEYARD_API=your_api_key_here" >> ~/.zprofile
source ~/.zprofile
En la versión 3, se almacena una base de datos con información sobre todos los certificados procesados con certReport. Esta base de datos contiene la mayoría de los detalles que aparecen en el informe. Al ejecutar el comando, el usuario puede usar la opción -t y proporcionar una familia de malware. Si lo hace, el informe añadirá ese nombre proporcionado por el usuario a la base de datos y buscará en ella otras instancias de ese nombre de malware; cuando haya coincidencias, ampliará el informe con información sobre cuántas veces se ha reportado ese malware. Por ejemplo, podría imprimir un mensaje como el siguiente cerca del final del informe:
We have reported this same malware to SSL.com 2 times. We have reported the malware to other providers 10 times.
En la versión actual, la base de datos debe verse o administrarse con un visor de bases de datos SQLite. No se puede ver ni administrar dentro del programa.
NOTA: Si el usuario ejecuta la aplicación con el mismo hash, la primera instancia de ese hash se eliminará de la base de datos y se reemplazará con la nueva información.
La base de datos se crea en una carpeta del directorio personal del usuario. La carpeta se llamará "certReport" y la base de datos se llamará "certReport.db".
No dudes en sugerir cambios al script para añadir direcciones de correo electrónico de proveedores de certificados o métodos de reporte. La mitad de la batalla al reportar consiste en encontrar dónde deben enviarse los certificados.
A partir de 2018, la mayoría de los certificados ya no se robaban, sino que se emitían a impostores (este caso se argumenta en un artículo académico aquí: http://users.umiacs.umd.edu/~tdumitra/papers/WEIS-2018.pdf). Yo los llamo «Impostor Certs». En 2023, publiqué mi investigación sobre 50 certificados utilizados por un mismo actor. Mis hallazgos confirmaron que los certificados se usan para firmar múltiples familias de malware: https://squiblydoo.blog/2023/05/12/certified-bad/. En 2024, publiqué un artículo sobre los certificados impostores, después de haber revocado 100 certificados utilizados para firmar el mismo malware. Ese artículo se puede leer aquí: https://squiblydoo.blog/2024/05/13/impostor-certs/.
En resumen, múltiples actores usan el mismo certificado, y reportar un certificado aumenta el coste de firma para todos los actores de amenazas y puede afectar a múltiples campañas de malware.