Deprecated
It is recommended to use the certReport pypi package exclusively. This is no longer being maintained.
CertReportCentral
This tool complements CertReport. CertReport generates a report locally for user submission. CertReportCentral reports the certificate to a public database.
This tool is intended to reduce the load of effort required to report authenticode certificates. It is intended to take the smallest amount of effort from the reporter, but provide the certificate authority with most the information they need to make a decision. Once submitted, your report will be processed and the status will be viewable on the website: certGraveyard.org
To use the API, an API key is required. The API key is generated for you the first time you log in and is visible on the profile.
Installing
Use pip! pip install certReportCentral or pip3 install certReportCentral
Usage
Note: In version 2, it is required to provide the --hash (or -#) switch
Here is an example:
Calling the script and passing in a SHA256 like this:
certReport --hash 89dc50024836f9ad406504a3b7445d284e97ec5dafdd8f2741f496cac84ccda9
Once ran, it will parse and submit the information to certCentral and will be processed.
Using VirusTotal
In version 2, it became possible to query VirusTotal. To use VirusTotal first set up your API key using the appropriate method for your operating system:
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
Once the API key is configured as an environment variable the following command will generate a report:
certReport --hash 89dc50024836f9ad406504a3b7445d284e97ec5dafdd8f2741f496cac84ccda9 --service virustotal
Alternatively, the switches can be simplified:
certReport -# 89dc50024836f9ad406504a3b7445d284e97ec5dafdd8f2741f496cac84ccda9 -s VT
Contributing
Please feel free to suggest changes to the script for additional certificate provider email addresses or methods of reporting. Half of the battle in reporting is finding where certificates should be submitted.
Why Report?
Starting in 2018, the majority of certificates were no longer stolen, but they are issued to impostors (this case is argued in a scholarly article here: http://users.umiacs.umd.edu/~tdumitra/papers/WEIS-2018.pdf). I call these "Impostor Certs". In 2023, I published my research into 50 certificates used by one actor. My findings confirmed that certificates are used to sign multiple malware families: https://squiblydoo.blog/2023/05/12/certified-bad/. In 2024, I published an article on Impostor certs, after having revoked 100 certificates used to sign the same malware, that article can be read here: https://squiblydoo.blog/2024/05/13/impostor-certs/.
The TLDR is that multiple actors use the same certificate and reporting a certificate raises the cost of signing for all threat actors and it can impact multiple malware campaigns.
Metadata
Release files for certReportCentral 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| certreportcentral-0.1.1.tar.gz | 5.4 kB | Without provenance | Details for certreportcentral-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| certreportcentral-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for certreportcentral-0.1.1-py3-none-any.whl |
Total release size: 11.1 kB
Release files / certreportcentral-0.1.1.tar.gz
| Download URL | certreportcentral-0.1.1.tar.gz |
|---|---|
| Size | 5.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e0fc6e76b19f6078b84d7788485bef6d597be0f122dcef3d8794fd97177809ac
|
|
BLAKE2b-256 checksum How to use checksums |
d1c34d0643ef0e2784818304f9d849b6ddd97971591db55aba21fcba89dcaeff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / certreportcentral-0.1.1-py3-none-any.whl
| Download URL | certreportcentral-0.1.1-py3-none-any.whl |
|---|---|
| Size | 5.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a67573c2d9ef07fe607571a86b0276cbdf55a23c50731ac73567547bcecc81a1
|
|
BLAKE2b-256 checksum How to use checksums |
5c807cdb72cc4999ec7c7697576818e9be4d532177d7be2d20c09076549207c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Security for certReportCentral 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.