Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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
sub.Monitor — Strumento di monitoraggio continuo passivo dei sottodomini auto-ospitato. | Kitploit
Strumenti/GitHubGitHub/e1abrador/sub.monitor
RicognizioneRaccolta InformazioniEnumerazione Sottodomini
GitHube1abrador/sub.monitor

sub.Monitor

Strumento di monitoraggio continuo passivo dei sottodomini auto-ospitato.

Vedi Repository
17220132 anni 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

sub.Monitor


   Strumento di monitoraggio dei sottodomini veloce e facile da usare per la gestione continua della superficie d'attacco.

image

Perché?

Perché scegliere sub.Monitor? Questo programma offre una configurazione semplice grazie all'uso di SQLite per memorizzare tutti i domini identificati (eliminando la necessità di una gestione preliminare del database). Inoltre, vanta un'elevata personalizzabilità, con gli utenti che devono aggiungere solo poche righe di codice allo script utilizzando i propri strumenti. A differenza di altre soluzioni esistenti che si basano su database come MySQL o MongoDB, inizializzare lo script può diventare un compito noioso.

Caratteristiche

  • Veloce
  • Facile da usare
  • Facile da installare
  • Facile da personalizzare
  • Salva continuamente i sottodomini nel database locale (con la possibilità di esportarli tutti)
  • Notifiche Telegram/Slack/Discord

Menu di Aiuto

Flag di sub.Monitor:

options:
  --add ADD             Domain to scan
  --out-scope OUT_SCOPE
                        File with out-of-scope domains
  --file FILE           File with known subdomains
  -D DOMAIN, --domain DOMAIN
                        Domain to scan
  -H HOURS, --hours HOURS
                        Hours between scans
  --dump                Dump all subdomains for a specific domain
  --list                List all root domains in the database
  -df DF                File with domains to scan
  --inscope             Dump only in-scope domains
  --notinscope          Dump only out-of-scope domains
  --dumpall             Dump all subdomains with their details
  --info                Show discovery date for subdomains
  -help, -?             Show this help message and exit

Configurazioni preliminari necessarie

Devi scrivere i percorsi dei file di configurazione (api) nel file config.ini.

  • File di configurazione api di Subfinder.
  • File di configurazione api di Amass.
  • File di configurazione api di Notify.
  • Dovrai specificare i binari e i percorsi di configurazione nel file sub.monitor-config.ini.
  • Infine, esegui pip3 install -r requirements.txt

Puoi facilmente implementare i tuoi strumenti nello script, basta modificare le righe di codice:

def run_tool(tool, domain, output_file):
    print(f'[{datetime.datetime.now()}] - Running {tool} on {domain}')
    if tool == 'assetfinder':
        assetfinder_binary = config.get('Binary paths', 'assetfinder')
        cmd = f'echo {domain} | {assetfinder_binary} -subs-only | grep -E "{domain}$" |grep -v "*" | grep -v "@"'
    elif tool == 'subfinder':
        subfinder_binary = config.get('Binary paths', 'subfinder')
        subfinder_api = config.get('Api', 'subfinder_api')
        cmd = f'{subfinder_binary} -d {domain} -silent -pc {subfinder_api} -all'
    elif tool == 'amass':
        amass_binary = config.get('Binary paths', 'amass')
        amass_api = config.get('Api', 'amass_api')
        cmd = f'{amass_binary} enum -passive -norecursive -noalts -d {domain} -config {amass_api}'
    elif tool == 'my-custom-tool':
        my-custom-tool-binary = config.get('Binary paths', 'my-custom-tool-binary-or-script')
        cmd = f'{my-custom-tool-binary} -d {domain}'

È importante notare che se aggiungi uno strumento personalizzato, l'ultimo output deve essere i risultati dei domini affinché sub.Monitor li salvi nel database. Ad esempio, il modo di utilizzarlo sarebbe:

cmd = f'bash customtool.sh {domain}''
...
cat customtool.sh
mycustomtool -d $1 > /tmp/$1.txt &>/dev/null; cat /tmp/$1.txt | unfurl domains | anew; rm -r /tmp/$1.txt

Aggiungi anche il nome del tuo strumento qui:

                for tool in ['subfinder', 'amass', 'assetfinder', 'my-custom-tool-name']:
                    run_tool(tool, domain, output_file)

Infine, ovviamente, devi aggiungere lo strumento nel file sub.monitor-config.ini in modo che lo script Python possa ottenere il binario da quel file di configurazione.

L'unica cosa necessaria è che una volta terminato il comando, deve mostrare in output tutti i domini scoperti in modo che lo strumento possa salvarli nel file di log e nel database.

Piano di lavoro

Prima di tutto, sub.Monitor necessita di una lista di domini già scansionati:

➜  cat ibm_sorted_subdomains.txt
test1.ibm.com
test2.ibm.com
test3.ibm.com
subtest.testX.ibm.com
...

Ora, il file contenente i sottodomini può essere passato a sub.Monitor con il comando seguente:

python3 monitor.py --add ibm.com --file ibm_sorted_subdomains.txt
          _    ___  ___            _ _
          | |   |  \/  |           (_) |
 ___ _   _| |__ | .  . | ___  _ __  _| |_ ___  _ __
/ __| | | | '_ \| |\/| |/ _ \| '_ \| | __/ _ \| '__|
\__ \ |_| | |_) | |  | | (_) | | | | | || (_) | |
|___/\__,_|_.__/\_|  |_/\___/|_| |_|_|\__\___/|_|

                    github.com/e1abrador/sub.Monitor

[2023-06-06 18:16:26.002521] - 538 subdomains were added to the local database.

Esiste anche la possibilità di aggiungere un flag out-of-scope, per esempio, supponiamo che un programma Bug Bounty abbia la seguente politica:

*.ibm.com - in scope
super-admin.ibm.com - out of scope
*.super-admin.ibm.com - out of scope

È possibile creare un file con questi dati:

cat outscope.txt
super-admin.ibm.com
*.super-admin.ibm.com

Ora, puoi aggiungere manualmente tutti i tuoi domini scoperti al database (filtrando quelli in scope):

python3 monitor.py --add ibm.com --file ibm_sorted_subdomains.txt --out-scope outscope.txt
          _    ___  ___            _ _
          | |   |  \/  |           (_) |
 ___ _   _| |__ | .  . | ___  _ __  _| |_ ___  _ __
/ __| | | | '_ \| |\/| |/ _ \| '_ \| | __/ _ \| '__|
\__ \ |_| | |_) | |  | | (_) | | | | | || (_) | |
|___/\__,_|_.__/\_|  |_/\___/|_| |_|_|\__\___/|_|

                    github.com/e1abrador/sub.Monitor

[2023-06-06 18:16:26.002521] - 538 subdomains were added to the local database.

Questo aggiungerà tutti i tuoi sottodomini al database, ma contrassegnerà quelli fuori scope con il flag [Out of scope] (vedremo come filtrare i domini in scope dal database nella sezione di esportazione dei domini).

Per confermare che il dominio è stato aggiunto al database, esegui:

python3 monitor.py --list
          _    ___  ___            _ _
          | |   |  \/  |           (_) |
 ___ _   _| |__ | .  . | ___  _ __  _| |_ ___  _ __
/ __| | | | '_ \| |\/| |/ _ \| '_ \| | __/ _ \| '__|
\__ \ |_| | |_) | |  | | (_) | | | | | || (_) | |
|___/\__,_|_.__/\_|  |_/\___/|_| |_|_|\__\___/|_|

                    github.com/e1abrador/sub.Monitor

ibm.com [9 subdomains added manually] [2 subdomains discovered] [11 total unique in database]

Una volta caricato correttamente, il processo di monitoraggio può iniziare. Si consiglia di usare TMUX in un VPS e lasciarlo in esecuzione per molto tempo. Con il seguente comando, lo script eseguirà gli strumenti di enumerazione dei sottodomini e confronterà i nuovi risultati con quelli vecchi. Se viene trovato un nuovo sottodominio, sub.Monitor lo aggiungerà prima al database locale (quindi non notificherà più quella scoperta) e poi notificherà l'utente tramite slack/telegram/discord.

python3 monitor.py -D ibm.com -H 12 --out-scope outscope.txt

Se viene trovato un sottodominio, sub.Monitor mostrerà il seguente messaggio nell'output:

Scarica lo strumento