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
Strumenti/GitHubGitHub/shmilylty/oneforall
OSINT (Open Source Intelligence)RicognizioneRaccolta InformazioniPenetration TestingEnumerazione SottodominiAnalisi DNS
GitHubshmilylty/oneforall

OneForAll

Strumento di enumerazione dei sottodomini multi-fonte con oltre 50 moduli di raccolta, brute-force DNS, analisi DNS passiva, trasparenza dei certificati, scraping dei motori di ricerca e rilevamento di takeover dei sottodomini per la ricognizione.

Vedi Repository
10.0k1.4k534 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

OneForAll

Build Status codecov Maintainability License python python

👊OneForAll è un potente strumento per la raccolta di sottodomini 📝Documento in inglese

Esempio

🚀Guida introduttiva

📢 Ti preghiamo di dedicare un momento alla lettura di questo documento, ti aiuterà a familiarizzare rapidamente con OneForAll!

🐍Requisiti di installazione

OneForAll è sviluppato e testato su Python 3.6.0. OneForAll richiede una versione di Python superiore alla 3.6.0 per funzionare. Per configurare l'ambiente Python, consulta la Guida all'installazione di Python 3. Esegui i seguenti comandi per verificare le versioni di Python e pip3:

root@kitploit:~
python -V
pip3 -V

Se vedi un output simile al seguente, l'ambiente Python è configurato correttamente:

root@kitploit:~
Python 3.6.0
pip 19.2.2 from C:\Users\shmilylty\AppData\Roaming\Python\Python36\site-packages\pip (python 3.6)
✔Procedura di installazione (versione git)
  1. Download

Poiché il progetto è in fase di sviluppo e subirà continui aggiornamenti, si prega di utilizzare git clone per clonare l'ultimo repository del codice, in modo da facilitare anche gli aggiornamenti futuri. Non è consigliato scaricare dalla sezione Releases, poiché le versioni rilasciate sono aggiornate lentamente e non è semplice aggiornarle. Questo progetto è già stato rispecchiato su Gitee (un mirror cinese). In Cina si consiglia di usare Gitee per una clonazione più veloce:

root@kitploit:~
git clone https://gitee.com/shmilylty/OneForAll.git

oppure:

root@kitploit:~
git clone https://github.com/shmilylty/OneForAll.git
  1. Installazione

Puoi installare le dipendenze di OneForAll tramite pip3. Di seguito è riportato un esempio di installazione delle dipendenze utilizzando pip3 su sistema Windows: Nota: se il tuo Python3 è installato nella directory Program Files del sistema, ad esempio C:\Program Files\Python36, esegui il prompt dei comandi come amministratore prima di eseguire i comandi seguenti!

root@kitploit:~
cd OneForAll/
python3 -m pip install -U pip setuptools wheel -i https://mirrors.aliyun.com/pypi/simple/
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
python3 oneforall.py --help

Per altre piattaforme, consulta Installazione delle dipendenze. Se durante l'installazione delle dipendenze riscontri errori di compilazione di qualche libreria, consulta le soluzioni nel documento . Se il problema persiste, sei il benvenuto nel gruppo di discussione per segnalarlo.

✔Procedura di installazione (versione docker)

Prima scarica e modifica i file di configurazione, aggiungi le tue api e impostazioni personalizzate, mantenendo la struttura originale dei file

root@kitploit:~
config
├── api.py
├── default.py
├── __init__.py
├── log.py
└── setting.py

Tira l'immagine ed esegui, sostituendo ~/.config con il percorso della cartella contenente i tuoi file di configurazione

root@kitploit:~
docker pull shmilylty/oneforall
docker run -it --rm -v ~/results:/OneForAll/results -v ~/.config:/OneForAll/config shmilylty/oneforall --target example.com run

I parametri vengono aggiunti direttamente alla fine del comando. I risultati vengono salvati nella directory locale ~/results. Per salvarli in un'altra posizione, modificalo a piacere.

✨Dimostrazione d'uso

Se hai installato le dipendenze tramite pip3, utilizza il seguente comando per eseguire l'esempio:

root@kitploit:~
python3 oneforall.py --target example.com run
python3 oneforall.py --targets ./example.txt run

Esempio

🧐Spiegazione dei risultati

Prendiamo ad esempio il comando python3 oneforall.py --target example.com run. Dopo l'esecuzione corretta con i parametri predefiniti, OneForAll genererà i risultati corrispondenti nella directory results:

Risultato

example.com.csv contiene i risultati della raccolta di sottodomini per ogni dominio principale.

all_subdomain_result_1583034493.csv è il riepilogo dei sottodomini raccolti in ogni esecuzione di OneForAll, che include example.com.csv, utile per ottenere tutti i risultati in scenari di raccolta batch.

result.sqlite3 è un database SQLite3 che memorizza i sottodomini raccolti in ogni esecuzione di OneForAll. La sua struttura del database è mostrata di seguito:

Database

La tabella simile a example_com_origin_result memorizza i risultati iniziali della raccolta di sottodomini per ogni modulo.

La tabella simile a example_com_resolve_result memorizza i risultati dopo la risoluzione dei sottodomini.

🤔Guida all'uso

I parametri della riga di comando forniscono solo alcuni parametri comuni. Per una configurazione più dettagliata, consulta setting.py. Se ritieni che alcuni parametri siano spesso utilizzati nell'interfaccia a riga di comando o che manchi qualcosa, non esitare a segnalarlo. Per ragioni note, se desideri utilizzare alcune interfacce di raccolta bloccate (i.e., soggette a censura), configura prima il proxy in setting.py. Alcuni moduli di raccolta richiedono API (molte delle quali possono essere ottenute gratuitamente registrandosi). Se necessario, configura le informazioni API in api.py. Altrimenti, ignora gli errori correlati. (Per i moduli dettagliati, consulta Spiegazione dei moduli di raccolta.)

L'interfaccia a riga di comando di OneForAll è basata su Fire. Per usi più avanzati di Fire, consulta Utilizzo della CLI di Fire.

oneforall.py è il punto di ingresso principale. oneforall.py può chiamare moduli come brute.py, takerover.py e dbexport.py. Per comodità, brute.py è stato separato per il brute-force dei sottodomini, takerover.py per il controllo del rischio di takeover dei sottodomini, e dbexport.py per l'esportazione del database. Questi moduli possono essere eseguiti indipendentemente e accettano parametri più ricchi. Per utilizzarli separatamente, consulta .

🎉Introduzione al progetto

Indirizzo del progetto: https://github.com/shmilylty/OneForAll

L'importanza della raccolta di informazioni nei test di penetrazione è indiscutibile; la raccolta di sottodomini è una parte essenziale e molto importante. Attualmente esistono molti strumenti open source per la raccolta di sottodomini, ma presentano alcuni problemi:

  • Non abbastanza potenti: non hanno abbastanza interfacce per la raccolta di sottodomini, non supportano la raccolta automatica di lotti, non hanno risoluzione automatica, verifica, FUZZ e estensione delle informazioni.
  • Non abbastanza amichevoli: i moduli a riga di comando sono comodi, ma quando ci sono molti parametri opzionali e operazioni complesse, la modalità a riga di comando non è molto user-friendly. Un front-end interattivo e ben operabile migliorerebbe l'esperienza d'uso.
  • Mancanza di manutenzione: molti strumenti non vengono aggiornati da anni; issues e PR sono inesistenti.
  • Problemi di efficienza: non utilizzano tecniche come multi-processo, multi-threading e coroutine asincrone, quindi sono lenti.

Per risolvere questi problemi, è nato questo progetto. Come suggerisce il nome, spero che OneForAll sia uno strumento finale potente, completo e veloce per la raccolta di sottodomini che combina i punti di forza di molti strumenti🔨.

Attualmente OneForAll è in fase di sviluppo; ci saranno sicuramente molti problemi e aree di miglioramento. I contributori sono i benvenuti per inviare Issues e PR. Se ti piace, lascia una piccola stella✨. Attualmente esiste un gruppo QQ dedicato per discussioni e feedback su OneForAll👨‍👨‍👦‍👦: 824414244 (verifica del gruppo: raccolta informazioni).

👍Caratteristiche funzionali

  • Potente capacità di raccolta. Per i moduli dettagliati, consulta Spiegazione dei moduli di raccolta.
    1. Raccolta di sottodomini tramite trasparenza dei certificati (attualmente 6 moduli: censys_api, certspotter, crtsh, entrust, google, spyse_api)
    2. Raccolta di sottodomini tramite controlli di routine (attualmente 6 moduli: sfruttamento del trasferimento di zona axfr, controllo del file di policy cross-origin cdx, controllo del certificato HTTPS cert, controllo della Content Security Policy csp, controllo del file robots robots, controllo del file sitemap sitemap, enumerazione dei record NSEC per attraversare il dominio DNS ; verranno aggiunti moduli per i record NSEC3 in futuro)

Se hai altre ottime idee, non esitare a comunicarmele! 😎

🌲Struttura delle directory

Per maggiori informazioni, consulta Spiegazione della struttura delle directory.

Nella directory docs di questo progetto sono disponibili ulteriori guide e spiegazioni, come Origine dei dizionari di sottodomini, Processo di determinazione del wildcard.

👏Framework utilizzati

  • aiohttp - Framework client/server HTTP asincrono
  • beautifulsoup4 - Libreria Python per estrarre facilmente dati da file HTML o XML
  • fire - Python Fire è una libreria che genera automaticamente un'interfaccia a riga di comando (CLI) da qualsiasi oggetto Python
  • loguru - Libreria Python progettata per offrire un logging piacevole
  • massdns - Risolutore DNS ad alte prestazioni
  • records - Records è una libreria molto semplice ma potente per eseguire query SQL grezze sulla maggior parte dei database relazionali
  • requests - Requests è l'unica libreria HTTP Python non OGM, che può essere utilizzata in sicurezza dagli esseri umani.
  • tqdm - Libreria di barre di avanzamento veloce e scalabile per Python e CLI

Grazie a queste grandi e fantastiche librerie Python!

🔖Controllo delle versioni

Questo progetto utilizza il formato di versionamento semantico SemVer per la gestione delle versioni. Puoi consultare le note sulle modifiche per conoscere la cronologia delle modifiche.

⌛Piani futuri

  • Ottimizzazione e miglioramento continui di ogni modulo
  • Realizzazione di un front-end interattivo e potente con un'interfaccia user-friendly

Per maggiori informazioni, consulta Piani di sviluppo futuri.

🙏Contributi

Siamo molto lieti che tutti i contributori possano contribuire a migliorare questo progetto!

👨‍💻Contributori

  • Jing Ling
    • Sviluppo principale

Puoi visualizzare tutti i contributori e i loro contributi nel documento dei contributori. Grazie a loro, OneForAll è diventato più potente e facile da usare.

☕Donazioni

Se questo progetto ti è stato utile, puoi offrire un caffè come incoraggiamento :)

📄Copyright

Questo progetto è concesso in licenza GPL-3.0. Per maggiori dettagli, consulta LICENSE.

😘Ringraziamenti

Grazie a tutti i progetti open source di raccolta di sottodomini disponibili online!

Grazie ai ragazzi di A-Team per le risposte entusiaste e disinteressate ai problemi!

📜Disclaimer

Questo strumento può essere utilizzato solo in contesti di sicurezza aziendale debitamente autorizzati. Durante l'utilizzo, assicurati che tutte le tue azioni siano conformi alle leggi e ai regolamenti locali. Se commetti atti illegali durante l'uso di questo strumento, ti assumerai tutte le conseguenze. Tutti gli sviluppatori e tutti i contributori di questo strumento non si assumono alcuna responsabilità legale o connessa. Se non hai letto completamente, compreso e accettato integralmente tutti i termini di questo accordo, non installare né utilizzare questo strumento. Il tuo atto di utilizzo o qualsiasi altra dichiarazione esplicita o implicita di accettazione di questo accordo costituirà il tuo consenso a essere vincolato da questo accordo.

💖Trend delle stelle

Stargazers over time

Scarica lo strumento
Domande frequenti e risposte.md
  1. Aggiornamento

Esegui i seguenti comandi per aggiornare il progetto (le modifiche a /config/setting.py e /config/api.py vengono preservate):

root@kitploit:~
git stash        # metti da parte le modifiche locali
git fetch --all  # recupera gli aggiornamenti del progetto
git pull         # scarica e sovrascrive
git stash pop    # ripristina le modifiche locali

La tabella simile a example_com_last_result memorizza i risultati dell'ultima raccolta di sottodomini (viene generata solo dopo due o più raccolte).

La tabella simile a example_com_now_result memorizza i risultati della raccolta corrente di sottodomini. In generale, è sufficiente consultare questa tabella.

Per maggiori informazioni, consulta Spiegazione dei campi.

Guida all'uso

❗Nota: se incontri problemi o dubbi durante l'uso, cerca prima nelle Issues utilizzando la funzione di ricerca. Puoi anche consultare Domande frequenti e risposte.

Guida all'uso di oneforall.py

Le informazioni di aiuto seguenti potrebbero non essere aggiornate. Puoi ottenere l'ultima guida con python oneforall.py --help.

root@kitploit:~
python oneforall.py --help
root@kitploit:~
NAME
    oneforall.py - Informazioni di aiuto di OneForAll

SYNOPSIS
    oneforall.py COMMAND | --target=TARGET <flags>

DESCRIPTION
    OneForAll è un potente strumento per la raccolta di sottodomini

    Example:
        python3 oneforall.py version
        python3 oneforall.py --target example.com run
        python3 oneforall.py --targets ./domains.txt run
        python3 oneforall.py --target example.com --valid None run
        python3 oneforall.py --target example.com --brute True run
        python3 oneforall.py --target example.com --port small run
        python3 oneforall.py --target example.com --fmt csv run
        python3 oneforall.py --target example.com --dns False run
        python3 oneforall.py --target example.com --req False run
        python3 oneforall.py --target example.com --takeover False run
        python3 oneforall.py --target example.com --show True run

    Note:
        Il parametro alive accetta i valori True, False per esportare rispettivamente i risultati dei sottodomini attivi o tutti.
        Il parametro port accetta 'default', 'small', 'large'; consulta config.py per i dettagli.
        Il parametro fmt accetta formati 'csv', 'json'.
        Il parametro path, se None, utilizza la directory dei risultati predefinita di OneForAll.

ARGUMENTS
    TARGET
        Singolo dominio (parametro obbligatorio, alternativo a TARGETS)
    TARGETS
        Percorso del file con un dominio per riga (parametro obbligatorio, alternativo a TARGET)

FLAGS
    --brute=BRUTE
        s
    --dns=DNS
        Risoluzione DNS dei sottodomini (predefinito True)
    --req=REQ
        Richiesta HTTP ai sottodomini (predefinito True)
    --port=PORT
        Intervallo di porte per la verifica dei sottodomini (predefinito solo porta 80)
    --valid=VALID
        Esporta solo i risultati dei sottodomini attivi (predefinito False)
    --fmt=FMT
        Formato di salvataggio dei risultati (predefinito csv)
    --path=PATH
        Percorso di salvataggio dei risultati (predefinito None)
    --takeover=TAKEOVER
        Controlla takeover dei sottodomini (predefinito False)
dnssec
  • Raccolta di sottodomini tramite archivi di crawler web (attualmente 2 moduli: archivecrawl, commoncrawl; questi moduli sono ancora in fase di debug e da completare)
  • Raccolta di sottodomini tramite dataset DNS (attualmente 24 moduli: bevigil_api, binaryedge_api, bufferover, cebaidu, chinaz, chinaz_api, circl_api, cloudflare, dnsdb_api, dnsdumpster, hackertarget, ip138, ipv4info_api, netcraft, passivedns_api, ptrarchive, qianxun, rapiddns, riddler, robtex, securitytrails_api, sitedossier, threatcrowd, wzpc, ximcx)
  • Raccolta di sottodomini tramite query DNS (attualmente 5 moduli: enumerazione dei record SRV comuni e interrogazione per raccogliere sottodomini srv, e raccolta tramite interrogazione dei record DNS del dominio: MX, NS, SOA, TXT)
  • Raccolta di sottodomini tramite dati di piattaforme di threat intelligence (attualmente 6 moduli: alienvault, riskiq_api, threatbook_api, threatminer, virustotal, virustotal_api; questo modulo è ancora da completare)
  • Scoperta di sottodomini tramite motori di ricerca (attualmente 18 moduli: ask, baidu, bing, bing_api, duckduckgo, exalead, fofa_api, gitee, github, github_api, google, google_api, shodan_api, so, sogou, yahoo, yandex, zoomeye_api). Nei moduli di ricerca, tranne motori speciali, tutti i motori generici supportano esclusione automatica, ricerca completa e ricerca ricorsiva.
  • Supporto per brute-force dei sottodomini. Questo modulo include un dizionario di brute-force standard e una modalità fuzz personalizzata, supporta brute-force in batch e ricorsivo, e gestisce automaticamente la risoluzione wildcard.
  • Supporto per verifica dei sottodomini. La verifica dei sottodomini è attivata per impostazione predefinita: risoluzione DNS automatica, richiesta HTTP automatica per ottenere titolo e banner, e valutazione complessiva dello stato attivo del sottodominio.
  • Supporto per crawling dei sottodomini. Utilizzando i sottodomini esistenti, invia richieste ai corpi di risposta e ai JavaScript in essi contenuti per scoprire nuovi sottodomini.
  • Supporto per permutazione dei sottodomini. Utilizzando i sottodomini esistenti, applica tecniche di sostituzione per scoprire nuovi sottodomini.
  • Supporto per takeover dei sottodomini. Il controllo del rischio di takeover dei sottodomini è attivato per impostazione predefinita; supporta il takeover automatico (attualmente solo GitHub, da perfezionare) e il controllo in batch.
  • Potente elaborazione. I risultati dei sottodomini scoperti supportano la rimozione automatica, la risoluzione DNS automatica, il rilevamento tramite richieste HTTP, la selezione automatica dei sottodomini validi, l'estensione delle informazioni banner, e i formati di esportazione supportati includono txt, csv, json.
  • Velocità elevata. I moduli di raccolta utilizzano multi-threading, il modulo di brute-force utilizza massdns, con una velocità di risoluzione DNS di oltre 350.000 domini al secondo. Per la verifica dei sottodomini, la risoluzione DNS e le richieste HTTP utilizzano coroutine asincrone, mentre il controllo del rischio di takeover utilizza multi-threading.
  • Buona esperienza d'uso. Ogni modulo ha una barra di avanzamento e salva i risultati in modo asincrono.