
Un utilitaire pour produire une base de données de cache HTTP à utiliser avec go-exploit
go-exploit-cache construit une base de données SQLite de cache HTTP utilisée par le framework go-exploit pour permettre le partage entre exploits et la vérification scanless des cibles. Au lieu de se connecter activement aux cibles, go-exploit peut consulter le cache pour exécuter des vérifications de version et d'autres scans à partir de données HTTP précédemment collectées (Shodan, Censys, PCAP, RunZero, etc.).
Projet :
vulncheck-oss/go-exploit
Cet outil génère le cache SQLite quego-exploitlit.
http_cache SQLite que go-exploit utilise pour la vérification scanless et les contrôles de version..json.gz, RunZero JSONL (et RunZero JSON1 limité), PCAP/pcapng, et Censys JSONL (via script auxiliaire)..json.gzcensys/censys_v3_dump.py pour préparer)go-exploitVoir USAGE.md pour plus de détails.
./build/go-exploit-cache \
-type shodan-gzip \
-in ~/Downloads/734342e9-56b8-4299-a072-9d1d28f66434.json.gz \
-out confluence.db
Sortie typique :
Decompressing the Shodan GZIP... this can be slow
Decompressed file written to .tmp/shodan.json
Generating database entries...
Cleaning up .tmp directory
Inspecter la base :
sqlite3 confluence.db
sqlite> select rhost, rport from http_cache limit 1;
52.200.210.54|80
Vous pouvez vérifier une cible en utilisant uniquement les données en cache. L'exemple utilise unshare -n pour bloquer l'accès réseau (pour la démo uniquement — unshare n'est pas requis) :
sudo unshare -n ./build/cve-2023-22527_linux-arm64 \
-c -v -rhost 52.200.210.54 -rport 80 \
-db ~/go-exploit-cache/confluence.db
Exemple de sortie :
time=... level=STATUS msg="Starting target" host=52.200.210.54 port=80
time=... level=STATUS msg="Validating Confluence target"
time=... level=SUCCESS msg="Target verification succeeded!"
time=... level=VERSION msg="The reported version is 7.19.17"
time=... level=STATUS msg="The target appears to be a patched version." vulnerable=no
shodan-gzip — export Shodan .json.gzrunzero-jsonl — RunZero JSONL (support JSON1 limité)pcap / pcapng — fichiers PCAP (extrait le trafic HTTP)censys-jsonl — Censys JSONL (utilisez le script auxiliaire dans censys/)Voir test/testdata pour des exemples de fichiers.
censys_v3_dump.py pour récupérer les données. Il commence par accepter une requête de recherche Censys Platform, puis télécharge les hôtes individuels pour accéder aux en-têtes HTTP et au corps HTTP complet. Utilisez censys/censys_v3_dump.py pour collecter et formater les résultats Censys en JSONL adapté à l'ingestion.http_cache — table principale (table générée par le cache)
| column | type | description |
|---|---|---|
| id | INTEGER | clé primaire |
| created | INTEGER | date |
| rhost | TEXT | hôte distant (IP) |
| rport | INT | port distant |
| uri | TEXT | le chemin mis en cache |
| data | BLOB | en-têtes HTTP + corps |
verified — table de description logicielle (table peuplée par go-exploit)
| column | type | description |
|---|---|---|
| id | INTEGER | clé primaire |
| created | INTEGER | date |
| software name | TEXT | Nom du logiciel |
| installed | INT | 0 ou 1 |
| version | TEXT | La version du logiciel |
| rhost | TEXT | hôte distant (IP) |
| rport | INT | port distant |
Sur Ubuntu :
sudo apt install libpcap-dev
make
(Nécessite une chaîne d'outils Go — voir https://go.dev/doc/install.)