Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
sub.Monitor — Selbstgehostetes passives Tool zur kontinuierlichen Subdomain-Überwachung. | Kitploit
Tools/GitHubGitHub/e1abrador/sub.monitor
AufklärungInformationsbeschaffungSubdomain-Enumeration
GitHube1abrador/sub.monitor

sub.Monitor

Selbstgehostetes passives Tool zur kontinuierlichen Subdomain-Überwachung.

Repository anzeigen
1722013vor 2 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

sub.Monitor


   Schnelles und benutzerfreundliches Subdomain-Überwachungstool für kontinuierliches Attack-Surface-Management.

image

Warum?

Warum sub.Monitor wählen? Dieses Programm bietet eine einfache Einrichtung, da es SQLite zur Speicherung aller identifizierten Domains verwendet (wodurch keine vorherige Datenbankverwaltung notwendig ist). Darüber hinaus ist es hochgradig anpassbar, da Benutzer nur wenige Zeilen Code zum Skript mit ihren ausgewählten Tools hinzufügen müssen. Im Gegensatz zu anderen bestehenden Lösungen, die auf Datenbanken wie MySQL oder MongoDB basieren, kann die Initialisierung des Skripts zu einer mühsamen Aufgabe werden.

Funktionen

  • Schnell
  • Einfach zu bedienen
  • Einfach zu installieren
  • Einfach anzupassen
  • Kontinuierliches Speichern von Subdomains in der lokalen Datenbank (mit der Möglichkeit, alle auszugeben)
  • Telegram/Slack/Discord-Benachrichtigungen

Hilfemenü

sub.Monitor Flags:

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

Vorher notwendige Konfigurationen

Du musst die Pfade der Konfigurationsdateien (API) in der Datei config.ini eintragen.

  • Subfinder API-Konfigurationsdatei.
  • Amass API-Konfigurationsdatei.
  • Notify API-Konfigurationsdatei.
  • Du musst die Pfade der Binärdateien und Konfigurationsdateien in der Datei sub.monitor-config.ini angeben.
  • Führe abschließend pip3 install -r requirements.txt aus.

Du kannst deine eigenen Tools einfach im Skript implementieren, indem du die folgenden Codezeilen modifizierst:

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}'

Wichtig zu beachten: Wenn du ein benutzerdefiniertes Tool hinzufügst, muss die letzte Ausgabe die Domain-Ergebnisse sein, damit sub.Monitor diese in der Datenbank speichern kann. Zum Beispiel wäre die Nutzungsweise:

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

Füge hier auch den Namen deines Tools hinzu:

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

Schließlich musst du das Tool natürlich in der Datei sub.monitor-config.ini hinzufügen, damit das Python-Skript die Binärdatei aus dieser Konfigurationsdatei abrufen kann.

Das Einzige, was benötigt wird, ist, dass nach Abschluss des Befehls in der Ausgabe alle entdeckten Domains angezeigt werden, damit das Tool sie in der Logdatei und in der Datenbank speichern kann.

Arbeitsplan

Zunächst einmal benötigt sub.Monitor eine Liste bereits gescannter Domains:

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

Die Datei mit den Subdomains kann nun mit folgendem Befehl an sub.Monitor übergeben werden:

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.

Es besteht auch die Möglichkeit, eine Out-of-Scope-Flag zu setzen. Angenommen, ein Bug-Bounty-Programm hat die folgende Richtlinie:

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

Es ist möglich, eine Datei mit diesen Informationen zu erstellen:

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

Nun kannst du alle entdeckten Domains manuell zur Datenbank hinzufügen (wobei diejenigen gefiltert werden, die im Scope sind):

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.

Dadurch werden alle deine Subdomains zur Datenbank hinzugefügt, aber diejenigen, die out of scope sind, werden mit der Markierung [Out of scope] versehen (wie man im Abschnitt zum Ausgeben von Domains sehen kann, wie man In-Scope-Domains aus der Datenbank filtert).

Um zu bestätigen, dass die Domain zur Datenbank hinzugefügt wurde, führe folgenden Befehl aus:

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

                    github.com/e1abrador/sub.Monitor

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

Sobald es korrekt geladen wurde, kann der Überwachungsprozess gestartet werden. Es wird empfohlen, TMUX auf einem VPS zu verwenden und ihn für längere Zeit laufen zu lassen. Mit folgendem Befehl führt das Skript die Subdomain-Erkennungstools aus und vergleicht die neuen Ergebnisse mit den alten. Wenn eine neue Subdomain gefunden wird, fügt sub.Monitor sie zuerst zur lokalen Datenbank hinzu (damit sie bei dieser Entdeckung nicht mehr benachrichtigt wird) und benachrichtigt den Benutzer dann über Slack/Telegram/Discord.

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