
Triage delle vulnerabilità con provenienza. Risolve le CVE da corpora costruiti localmente (NVD/KEV/EPSS, ExploitDB, nmap script.db) ed emette comandi di verifica classificati in base a ciò che la loro esecuzione fa al target.
Uno strumento di triage delle vulnerabilità. Prende ciò che una scansione ha già trovato, determina quali CVE si applicano plausibilmente, ti dice quanto è sicuro e perché, e ti fornisce i comandi per verificare da solo.
Non esegue scansioni di alcun tipo e non sfrutta alcuna vulnerabilità.
git clone https://github.com/xGhst0/reconkg && cd reconkg && pip install -e . --break-system-packages && python -m reconkg.selfcheck
Quell'ultimo passaggio riporta ciò che riesce e ciò che non riesce a vedere: se il script.db di nmap è stato trovato, quali corpora sono configurati e quante impronte realistiche producono effettivamente un risultato utile. Eseguilo per primo. Con la configurazione predefinita la risposta è "nove CVE scritte a mano", e selfcheck lo dichiara esplicitamente invece di lasciartelo presumere.
Le nove voci integrate sono un fixture dimostrativo. Per qualsiasi utilizzo reale:
export NVD_API_KEY=... # free: https://nvd.nist.gov/developers/request-an-api-key
python -m reconkg.fetch --dest ~/.reconkg/feeds --all
python -m reconkg.builddb --feeds ~/.reconkg/feeds --out ~/.reconkg/vuln.db
export RECONKG_VULN_DB=~/.reconkg/vuln.db
export RECONKG_EXPLOIT_DB=~/.reconkg/exploits.db
export RECONKG_SCRIPT_DB=/usr/share/nmap/scripts/script.db
Senza la chiave API, NVD limita a 5 richieste ogni 30 secondi e il download
completo richiede circa quattro ore invece di venticinque minuti. Esegue checkpoint,
quindi un download interrotto riprende. --since scarica solo ciò che è cambiato.
Se una variabile del corpus è impostata e il file non può essere aperto, reconkg rifiuta di avviarsi. Servire silenziosamente nove voci quando ne hai richieste 300.000 significherebbe una scansione che non trova nulla e sembra aver funzionato.
python -m reconkg.app # serves http://127.0.0.1:8765/ui
python -m reconkg.console # REPL
app si lega solo al loopback, senza alcun flag per modificarlo. Questo processo conserva i risultati della tua scansione ed emette comandi rivolti agli host che stai testando; un tunnel SSH è un piccolo prezzo rispetto al fatto di avere tutto ciò raggiungibile dal resto della rete. --port lo sposta, RECONKG_PORT imposta un valore predefinito.
Autenticazione. Ogni route richiede Authorization: Bearer <token>, da RECONKG_TOKENS nella forma name:role:token (ruoli: viewer, scanner, operator, admin; token di almeno 16 caratteri). Se non è impostato, app ne genera uno solo per quel processo e lo stampa all'avvio — non scritto su disco, diverso a ogni riavvio.
Un browser non può allegare un header a una semplice navigazione, quindi aprire /ui direttamente restituirà 401. Usa un'estensione che inietta header, oppure pilota l'API:
export RECONKG_TOKENS="me:admin:$(openssl rand -hex 16)"
curl -H "Authorization: Bearer ${RECONKG_TOKENS##*:}" \
http://127.0.0.1:8765/api/corpus
L'interfaccia mostra il knowledge graph con la provenienza al clic, così puoi vedere perché una CVE è stata associata a un host invece di fidarti di un punteggio, e un registro ordinato per priorità di triage con KEV ed EPSS ponderati.
Ogni comando suggerito porta con sé una categoria NSE che descrive cosa comporta la sua esecuzione sul target. Quel vocabolario è di nmap, non inventato qui.
| Categoria | Cosa fa reconkg |
|---|---|
safe, discovery, version | composto, mostrato per impostazione predefinita |
intrusive, vuln, unclassified | composto, mostrato quando spunti la casella, con l'avviso di autorizzazione |
exploit, dos, fuzzer, brute | nominato, mai composto |
L'ultima riga è il confine. Se esiste un exploit funzionante per un lead,
reconkg ti indica il modulo o il template e dove trovarlo. Non lo
assembla in un'invocazione con il tuo target già inserito. I suggerimenti
Metasploit si fermano a show options — il passaggio in cui rileggi RHOSTS e
confermi che è l'host contro cui sei autorizzato.
È una differenza di un tasto su una macchina che possiedi, e una differenza molto più grande in ciò che lo strumento è.
La sicurezza è classificata per check, mai per strumento. Non è pignoleria:
gli attuali template CVE di nuclei ottengono il rilevamento sfruttando — uno invia
un payload subprocess.run('cat /etc/passwd') tramite una RCE di Langflow e
trova una corrispondenza su root:.*:0:0:. Qualsiasi cosa che presupponga "nuclei rileva, Metasploit
sfrutta" è sbagliata al primo template che incontra, quindi nuclei è trattato come
non classificato e si trova dietro l'opt-in.
selfcheck stampa il reale tasso di successo
anziché uno lusinghiero.describe() contrassegna un corpus come obsoleto oltre i 30 giorni e indica quale
feed è vecchio.pip install -r requirements-dev.txt
python -m pytest tests/ -q # 1219 tests
python -m audit.mutation # mutation testing, 12 targets at 100%
python -m audit.scale_bench # corpus scale benchmark
docs/ contiene le note di progettazione e il ragionamento alla base delle decisioni
sopra esposte. audit/AUDIT.md è il registro dei risultati: 47 risultati su dieci
round avversariali, inclusa un'analisi dell'unica tipologia di bug che ne spiega
13 e una valutazione onesta di ciò che lo ha e non lo ha prevenuto.
MIT — vedi LICENSE.
reconkg non distribuisce alcun dato sulle vulnerabilità. I corpora vengono costruiti sulla tua macchina a partire da feed che scarichi tu stesso, il che mantiene le loro licenze tue da rispettare; l'indice di ExploitDB in particolare è GPL-2.0-or-later ed è deliberatamente mai ridistribuito qui.
Tutto ciò che reconkg emette è un suggerimento per un essere umano da eseguire. Eseguire
controlli intrusive o vuln contro un sistema che non possiedi o per cui non hai
un'autorizzazione scritta a testare è illegale nella maggior parte delle giurisdizioni.