
Einfach single-threaded Kommandozeilen-Anwendungen in eine schnelle, multi-threaded Anwendung mit CIDR- und Glob-Unterstützung verwandeln.
Verwandle einfach single-threaded Kommandozeilenanwendungen in eine schnelle, multi-threaded Anwendung mit CIDR- und Glob-Unterstützung.
Installation mit:
$ python3 setup.py install
Abhängigkeiten werden dann installiert und Interlace wird Ihrem Pfad als interlace hinzugefügt.
| Argument | Beschreibung |
|---|---|
| (stdin) | Ziel-Listen von einer anderen Anwendung im kommagetrennten Format, CIDR-Notation oder als einzelner Host über Pipe einlesen |
| -t | Ein Ziel oder einen Domainnamen angeben, entweder im kommagetrennten Format, CIDR-Notation oder als einzelner Host |
| -tL | Eine Liste von Zielen oder Domainnamen angeben |
| -e | Eine Liste von Zielen zum Ausschließen angeben, entweder im kommagetrennten Format, CIDR-Notation oder als einzelner Host |
| -eL | Eine Liste von Zielen zum Ausschließen angeben |
| -threads | Die maximale Anzahl gleichzeitig laufender Threads angeben (STANDARD:5) |
| -timeout | Einen Timeout-Wert in Sekunden für einen einzelnen Thread angeben (STANDARD:600) |
| -c | Einen einzelnen Befehl angeben, der über jedes Ziel oder jede Domain ausgeführt werden soll |
| -cL | Eine Liste von Befehlen angeben, die über jedes Ziel oder jede Domain ausgeführt werden soll |
| -o | Eine Ausgabe-Ordner-Variable angeben, die in Befehlen als _output_ verwendet werden kann |
| -p | Eine Liste von Port-Variablen angeben, die in Befehlen als _port_ verwendet werden kann. Dies kann ein einzelner Port, eine kommagetrennte Liste oder ein Bereich mit Bindestrich-Notation sein |
| -pL | Eine Liste von Proxys angeben |
| --proto | Protokolle angeben, die in Befehlen als _proto_ verwendet werden können |
| -rp | Eine echte Port-Variable angeben, die in Befehlen als _realport_ verwendet werden kann |
| -random | Ein Verzeichnis von Dateien angeben, das zufällig in Befehlen als _random_ verwendet werden kann |
| --no-bar / --sober | Wenn gesetzt, wird die Fortschrittsanzeige entfernt |
| --no-cidr | Wenn gesetzt, wird CIDR-Notation in einer Zieldatei nicht automatisch in einzelne Hosts expandiert |
| --no-color | Wenn gesetzt, werden alle Vorder- oder Hintergrundfarben entfernt |
| --silent | Wenn gesetzt, werden nur wichtige Informationen angezeigt und Banner sowie andere Informationen ausgeblendet |
| -v | Wenn gesetzt, wird eine ausführliche Ausgabe im Terminal angezeigt |
| Beispiel | Notationstyp |
|---|---|
| 80 | Einzelner Port |
| 1-80 | Bindestrich-Notation, führt einen Befehl für jeden Port von 1-80 aus |
| 80,443 | Führt einen Befehl sowohl für Port 80 als auch für Port 443 aus |
Sowohl -t als auch -tL werden gleich verarbeitet. Sie können Ziele genauso übergeben wie bei nmap. Dies kann mit CIDR-Notation, Bindestrich-Notation oder einer kommagetrennten Liste von Zielen erfolgen. Eine einzelne Zieldatei kann auch pro Zeile verschiedene Notationstypen verwenden.
Alternativ können Sie Ziele über STDIN übergeben und weder -t noch -tL sind erforderlich.
Die folgenden Variablen werden zur Laufzeit in Befehlen ersetzt:
| Variable | Ersetzung |
|---|---|
| _target_ | Ersetzt durch die expandierte Zielliste, gegen die der aktuelle Thread läuft |
| _cleantarget_ | Ersetzt durch das Ziel, bereinigt von http:// oder https:// |
| _safe-target_ | Ersetzt durch das Ziel, automatisch für Befehle maskiert, um die Ausführung von Unterbefehlen zu verhindern |
| _host_ | Funktioniert wie _target_ und kann austauschbar verwendet werden |
| _output_ | Ersetzt durch die Ausgabeordner-Variable von Interlace |
| _port_ | Ersetzt durch die expandierte Port-Variable von Interlace |
| _realport_ | Ersetzt durch die echte Port-Variable von Interlace |
| _proxy_ | Ersetzt durch die Proxy-Liste von Interlace |
| _random_ | Ersetzt durch die zufällig ausgewählte Datei von Interlace |
Interlace ermöglicht außerdem die Verwendung von zwei zusätzlichen Funktionen zur Steuerung des Ausführungsflusses innerhalb einer Befehlsdatei: _blocker_ und _block:<name>_. Blocker verhindern die Ausführung von Befehlen, die nach ihnen aufgelistet sind, bis alle Befehle vor ihnen abgeschlossen sind. Blöcke können verwendet werden, um die sequentielle Ausführung von Befehlen innerhalb eines Blocks für ein Ziel zu erzwingen.
Diese werden auf Ebene jedes einzelnen Ziels ausgeführt. Wenn Threads verfügbar sind und ein Blocker für das aktuelle Ziel im Weg ist, startet Interlace Befehle vom nächsten Ziel in der Zielliste, um die Effizienz zu maximieren.
Die Verwendung dieser Funktionen ermöglicht es Ihnen, den Ausführungsfluss für einzelne Ziele direkter zu steuern, um zu verhindern, dass Befehle in falscher Reihenfolge ausgeführt werden.