Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
knockpy — Knock Subdomain Scan | Kitploit
Strumenti/GitHubGitHub/guelfoweb/knockpy
OSINT (Open Source Intelligence)RicognizioneRaccolta InformazioniPenetration TestingEnumerazione SottodominiAnalisi DNS
GitHubguelfoweb/knockpy

knockpy

Knock Subdomain Scan

Vedi Repository
4.2k8736 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

🔍 Knockpy Subdomain Scan v9.0

✅ Veloce & Async • 🔐 Recon + Brute • 🔧 Facile da Estendere

KnockPy è un tool modulare Python 3 per enumerare sottodomini tramite ricognizione passiva e forza bruta, ora con supporto async/await, prestazioni migliorate e gestione moderna di HTTP/TLS.


🚀 Funzionalità (v9)

  • ✅ Scansione asincrona con httpx e risoluzione DNS
  • ✅ Modulare: aggiungi facilmente nuove sorgenti passive
  • 🔍 Supporta ricognizione passiva, forza bruta o entrambi
  • 🎨 Output terminale formattato con Rich (tabelle, progressi, pannelli)
  • 📜 Valida stato HTTP/HTTPS, certificato TLS e IP
  • ⚠️ Rileva supporto TLS obsoleto (TLS 1.0/1.1) come avviso in CLI/verboso/rapporto HTML
  • 🧾 Controlla AXFR (zone transfer) sul dominio radice durante scansioni in modalità dominio
  • 🔎 Diagnostica --verbose per singolo dominio (DNS/TCP/TLS/catene di reindirizzamento/errori di richiesta + controlli di sicurezza)
  • 💡 Supporta rilevamento DNS wildcard
  • 🧪 Rapporti SQLite con catalogo interattivo (show/delete/export/search)
  • 🔐 Supporta API VirusTotal e Shodan
  • 🚀 Runtime ottimizzato per forza bruta con caching dell'endpoint TLS-probe (nessuna modifica ai timeout richiesta)

📦 Installazione

Dal sorgente GitHub (consigliato)

root@kitploit:~
git clone https://github.com/guelfoweb/knockpy.git
cd knockpy
# consigliato: installare in un ambiente virtuale
python3 -m venv .venv
. .venv/bin/activate
python3 -m pip install -U pip
pip install .

# alternativa: installare per l'utente corrente (senza venv)
# python3 -m pip install --user .

⚠️ Versione Python consigliata: 3.9+

🧱 Struttura del progetto

Il codice è organizzato per responsabilità, con facciate stabili per compatibilità all'indietro:

root@kitploit:~
knockpy/
  cli.py                   # Punto di ingresso CLI (facciata/orchestrazione)
  cli_parts/
    status.py              # Rendering del pannello runtime/stato
    setup.py               # Configurazione interattiva e impostazioni runtime persistenti
    report.py              # Modalità report interattiva
    scan_flow.py           # Regole di esclusione, test di ricognizione, helper wildcard
  core.py                  # Facciata pubblica del core (compatibilità)
  engine/
    runtime.py             # Implementazione del motore di scansione
  storage.py               # Facciata pubblica dello storage (compatibilità)
  storage_parts/
    db.py                  # Persistenza/impostazioni SQLite
    export.py              # Orchestrazione esportazione rapporti
    html_report.py         # Rendering rapporto HTML
  output.py                # Rendering output terminale
  server_versions.py       # Catalogo versioni web-server
  knockpy.py               # Esportazioni modulo compatibilità

Nota sulla compatibilità:

  • Import esterni preferiti: import knockpy o from knockpy import KNOCKPY.
  • I moduli interni sono suddivisi in engine/, cli_parts/ e storage_parts/.

Usando pip

Solo dopo il rilascio della versione stabile su GitHub

root@kitploit:~
pip install knock-subdomains

🧪 Utilizzo

root@kitploit:~
knockpy -d dominio.com [opzioni]

Opzioni

Ottimizzazione delle prestazioni: --threads e --timeout

Queste due opzioni hanno il maggiore impatto sul runtime per scansioni grandi.

  • --threads controlla la concorrenza (quanti target vengono elaborati in parallelo)
  • --timeout controlla per quanto tempo ogni fase di rete attende prima di arrendersi

Compromesso:

  • più threads = scansioni più veloci, ma maggiore carico su CPU/rete/DNS e maggior rischio di limiti di frequenza remoti
  • meno timeout = scansioni più veloci, ma maggior rischio di perdere target validi ma lenti (falsi negativi)

Profili consigliati:

  • scansione piccola/accurata (pochi domini): --threads 50 --timeout 5
  • scansione bilanciata: --threads 150 --timeout 4
  • scansione grande (10k+ domini): inizia con --threads 250 --timeout 3

Se hai bisogno sia di velocità che di completezza su elenchi molto grandi, usa una strategia a 2 passate:

  1. passata veloce: --threads 250 --timeout 3
  2. passata di ripetizione solo sui target mancanti/incerti: --threads 80 --timeout 5 (o superiore)

Note:

  • I valori CLI sovrascrivono sempre i valori salvati nella configurazione
  • I valori salvati nella configurazione (--setup) sovrascrivono le impostazioni predefinite integrate
  • Le impostazioni predefinite integrate attuali sono threads=250, timeout=3

📌 Esempi

🔎 Recon + Brute

root@kitploit:~
knockpy -d example.com --recon --bruteforce

🧪 Test servizi di ricognizione

root@kitploit:~
knockpy -d example.com --recon --test

🔄 Aggiorna catalogo ultime versioni web-server

root@kitploit:~
knockpy --update-versions

🆕 Verifica aggiornamenti Knockpy

root@kitploit:~
knockpy --check-update

⚙️ Configurazione sorgenti di ricognizione (modificabile)

Al primo avvio, KnockPy crea:

root@kitploit:~
~/.knockpy/recon_services.json

Puoi aggiungere/disabilitare sorgenti modificando l'array services. Puoi anche puntare a un percorso file personalizzato senza modificare il codice:

root@kitploit:~
export KNOCK_RECON_SERVICES=/percorso/del/tuo/recon_services.json

Ogni servizio supporta:

  • name
  • enabled (true/false)
  • parser
  • url_template (supporta {domain}, {virustotal_key}, {shodan_key})
  • requires_api (virustotal o shodan, opzionale)

Parser supportati:

  • csv_first_column
  • rapiddns_html_td
  • json_list
  • virustotal_subdomains
  • shodan_subdomains

📥 Dominio da stdin

root@kitploit:~
echo "example.com" | knockpy -d

🧠 Chiavi API (opzionali)

root@kitploit:~
export API_KEY_VIRUSTOTAL=la-tua-chiave-api-virustotal
export API_KEY_SHODAN=la-tua-chiave-api-shodan

Puoi usare file .env:

root@kitploit:~
API_KEY_VIRUSTOTAL=la-tua-chiave-api-virustotal
API_KEY_SHODAN=la-tua-chiave-api-shodan

💾 Rapporti (SQLite + Esportazione HTML interattiva)

root@kitploit:~
knockpy -d example.com --recon --bruteforce
knockpy --report list
knockpy --report latest
knockpy --report

Menu rapporto interattivo:

  • 1 show
  • 2 delete
  • 3 export
  • 4 search
  • 0 reset db (chiede conferma esplicita)

Esci dalla modalità rapporto:

  • premi Invio su prompt azione vuoto
  • oppure premi CTRL+C

🔍 Diagnostica dominio singolo

root@kitploit:~
knockpy -d forum.example.com --verbose

🧪 Solo test wildcard

root@kitploit:~
knockpy -d example.com --wildcard

🧬 Utilizzo API Python

KnockPy può essere usato come modulo Python:

root@kitploit:~
import knockpy

result = knockpy.KNOCKPY("example.com", timeout=5.0, threads=20)
print(result["domain"], result["ip"])

oppure:

root@kitploit:~
from knockpy import KNOCKPY

domain = 'example.com'

results = KNOCKPY(
    domain,
    dns="8.8.8.8",
    useragent="Mozilla/5.0",
    timeout=5,
    threads=10,
    recon=True,
    bruteforce=True,
    wordlist=None,
    silent=False
)

for entry in results:
    print(entry['domain'], entry['ip'], entry['http'], entry['cert'])

📂 Wordlist

Una wordlist predefinita è inclusa in knockpy/wordlist/wordlist.txt. Puoi fornirne una tua con --wordlist.

Test

root@kitploit:~
python3 -m pytest

# (opzionale) script di esempio per test rapido
python3 examples/poc.py

📖 Licenza

Concesso in licenza sotto la licenza GPLv3.

Gianni Amato (@guelfoweb)

Scarica lo strumento
FlagDescrizione
-d, --domainDominio target (o stdin se usato senza valore)
-f, --fileFile con elenco di domini
--reconAbilita ricognizione passiva
--bruteforce, --bruteAbilita forza bruta usando wordlist
--exclude TIPO VALOREEscludi corrispondenze (status, length/lenght, body)
--verboseDiagnostica approfondita solo per scansioni su dominio singolo
--wildcardTesta DNS wildcard ed esci
--testCon --recon, testa ogni sorgente di ricognizione (fallita/vuota/dati)
--setupConfigurazione interattiva (impostazioni predefinite runtime + chiavi API nel DB)
--update-versionsAggiorna il catalogo locale delle ultime versioni web-server
--report [ID|latest|list]Modalità report (show/delete/export/search/reset db interattivo, esporta HTML)
--check-updateVerifica online se è disponibile una nuova versione di Knockpy su PyPI
--wordlistSovrascrivi wordlist in runtime
--dnsSovrascrivi resolver DNS in runtime
--useragentSovrascrivi user-agent HTTP in runtime
--timeoutSovrascrivi timeout in runtime (secondi)
--threadsSovrascrivi numero di lavoratori concorrenti in runtime
--silentNascondi barra di progresso
--jsonOutput solo JSON (forza --silent)
--statusStampa lo stato runtime e continua
-h, --helpMostra messaggio di aiuto