
Um utilitário para produzir um banco de dados de cache HTTP para usar com go-exploit
go-exploit-cache cria um banco de dados SQLite de cache HTTP usado pelo framework go-exploit para permitir o compartilhamento entre exploits e a verificação de alvos scanless. Em vez de se conectar ativamente aos alvos, o go-exploit pode consultar o cache para executar verificações de versão e outras varreduras usando dados HTTP previamente coletados (Shodan, Censys, PCAP, RunZero, etc.).
Projeto:
vulncheck-oss/go-exploit
Esta ferramenta gera o cache SQLite que ogo-exploitlê.
http_cache que o go-exploit usa para verificação scanless e checagens de versão..json.gz, RunZero JSONL (e RunZero JSON1 limitado), PCAP/pcapng, e Censys JSONL (via script auxiliar)..json.gzcensys/censys_v3_dump.py para preparar)go-exploitVeja USAGE.md para mais detalhes.
./build/go-exploit-cache \
-type shodan-gzip \
-in ~/Downloads/734342e9-56b8-4299-a072-9d1d28f66434.json.gz \
-out confluence.db
Saída típica:
Decompressing the Shodan GZIP... this can be slow
Decompressed file written to .tmp/shodan.json
Generating database entries...
Cleaning up .tmp directory
Inspecionar o banco:
sqlite3 confluence.db
sqlite> select rhost, rport from http_cache limit 1;
52.200.210.54|80
Você pode verificar um alvo usando apenas dados em cache. O exemplo usa unshare -n para bloquear o acesso à rede (apenas para demonstração — unshare não é obrigatório):
sudo unshare -n ./build/cve-2023-22527_linux-arm64 \
-c -v -rhost 52.200.210.54 -rport 80 \
-db ~/go-exploit-cache/confluence.db
Saída de exemplo:
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 — exportação .json.gz do Shodanrunzero-jsonl — RunZero JSONL (suporte limitado a JSON1)pcap / pcapng — arquivos PCAP (extrai tráfego HTTP)censys-jsonl — Censys JSONL (use o script auxiliar em censys/)Veja test/testdata para arquivos de exemplo.
censys_v3_dump.py para obter os dados. Ele começa aceitando uma consulta de busca da Censys Platform e então baixa os hosts individuais para acessar os cabeçalhos HTTP e o corpo HTTP completo. Use censys/censys_v3_dump.py para coletar e formatar resultados do Censys em JSONL adequado para ingestão.http_cache — tabela principal (tabela gerada pelo cache)
| 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 — tabela de descrição de software (tabela populada pelo go-exploit)
| 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 |
No Ubuntu:
sudo apt install libpcap-dev
make
(Requer uma toolchain Go — veja https://go.dev/doc/install.)