
Ein Dienstprogramm zur Erstellung einer HTTP-Cache-Datenbank für die Verwendung mit go-exploit
go-exploit-cache erstellt eine HTTP-Cache-SQLite-Datenbank, die vom go-exploit-Framework verwendet wird, um exploitübergreifende Freigabe und scanlose Zielverifizierung zu ermöglichen. Anstatt aktiv Verbindungen zu Zielen aufzubauen, kann go-exploit den Cache konsultieren, um Versionsprüfungen und andere Scans mit zuvor gesammelten HTTP-Daten (Shodan, Censys, PCAP, RunZero usw.) durchzuführen.
Projekt:
vulncheck-oss/go-exploit
Dieses Tool erzeugt den SQLite-Cache, dengo-exploitliest.
http_cache, den go-exploit für scanlose Verifizierung und Versionsprüfungen verwendet..json.gz, RunZero JSONL (und eingeschränktes RunZero JSON1), PCAP/pcapng und Censys JSONL (über Hilfsskript)..json.gzcensys/censys_v3_dump.py zur Vorbereitung)go-exploit konsumiert werden kannWeitere Details finden Sie in USAGE.md.
./build/go-exploit-cache \
-type shodan-gzip \
-in ~/Downloads/734342e9-56b8-4299-a072-9d1d28f66434.json.gz \
-out confluence.db
Typische Ausgabe:
Decompressing the Shodan GZIP... this can be slow
Decompressed file written to .tmp/shodan.json
Generating database entries...
Cleaning up .tmp directory
DB inspizieren:
sqlite3 confluence.db
sqlite> select rhost, rport from http_cache limit 1;
52.200.210.54|80
Sie können ein Ziel nur mit zwischengespeicherten Daten verifizieren. Das Beispiel verwendet unshare -n, um den Netzwerkzugriff zu blockieren (nur zur Demo — unshare nicht erforderlich):
sudo unshare -n ./build/cve-2023-22527_linux-arm64 \
-c -v -rhost 52.200.210.54 -rport 80 \
-db ~/go-exploit-cache/confluence.db
Beispielausgabe:
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 — Shodan .json.gz-Exportrunzero-jsonl — RunZero JSONL (eingeschränkte JSON1-Unterstützung)pcap / pcapng — PCAP-Dateien (extrahiert HTTP-Verkehr)censys-jsonl — Censys JSONL (verwenden Sie das Hilfsskript in censys/)Beispieldateien finden Sie unter test/testdata.
censys_v3_dump.py erstellt, um die Daten abzurufen. Es beginnt damit, eine Censys Platform-Suchanfrage zu akzeptieren, und lädt dann die einzelnen Hosts herunter, um auf die HTTP-Header und den vollständigen HTTP-Body zuzugreifen. Verwenden Sie censys/censys_v3_dump.py, um Censys-Ergebnisse zu sammeln und in JSONL zu formatieren, das für die Aufnahme geeignet ist.http_cache — Haupttabelle (vom Cache generierte Tabelle)
| column | type | description |
|---|---|---|
| id | INTEGER | primary key |
| created | INTEGER | date |
| rhost | TEXT | remote host (IP) |
| rport | INT | remote port |
| uri | TEXT | the cached path |
| data | BLOB | HTTP headers + body |
verified — Softwarebeschreibungstabelle (von go-exploit befüllte Tabelle)
| column | type | description |
|---|---|---|
| id | INTEGER | primary key |
| created | INTEGER | date |
| software name | TEXT | Name of software |
| installed | INT | 0 or 1 |
| version | TEXT | The software version |
| rhost | TEXT | remote host (IP) |
| rport | INT | remote port |
Unter Ubuntu:
sudo apt install libpcap-dev
make
(Erfordert eine Go-Toolchain — siehe https://go.dev/doc/install.)