
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.
👊OneForAll è un potente strumento per la raccolta di sottodomini 📝Documento in inglese
📢 Ti preghiamo di dedicare un momento alla lettura di questo documento, ti aiuterà a familiarizzare rapidamente con OneForAll!
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:
python -V
pip3 -V
Se vedi un output simile al seguente, l'ambiente Python è configurato correttamente:
Python 3.6.0
pip 19.2.2 from C:\Users\shmilylty\AppData\Roaming\Python\Python36\site-packages\pip (python 3.6)
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:
git clone https://gitee.com/shmilylty/OneForAll.git
oppure:
git clone https://github.com/shmilylty/OneForAll.git
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!
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 Domande frequenti e risposte.md. Se il problema persiste, sei il benvenuto nel gruppo di discussione per segnalarlo.
Esegui i seguenti comandi per aggiornare il progetto (le modifiche a /config/setting.py e /config/api.py vengono preservate):
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
Prima scarica e modifica i file di configurazione, aggiungi le tue api e impostazioni personalizzate, mantenendo la struttura originale dei file
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
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.
Se hai installato le dipendenze tramite pip3, utilizza il seguente comando per eseguire l'esempio:
python3 oneforall.py --target example.com run
python3 oneforall.py --targets ./example.txt run
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:

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:

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.
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.