
Faraday Agent Dispatcher startet beliebige Sicherheitstools und sendet die Ergebnisse an die Faradaysec-Plattform.
Der Faraday Agents Dispatcher hilft Benutzern, Integrationen mit Faraday in jeder Sprache zu entwickeln.
Führen Sie einfach pip3 install faraday_agent_dispatcher aus, und Sie sollten den Befehl faraday-dispatcher in Ihrem System sehen.
Um eine Entwicklungsumgebung einzurichten (also den Code des Dispatchers selbst zu ändern, nicht um eigene Integrationen zu schreiben), sollten Sie dieses Repository klonen und pip install -e . ausführen.
Generieren Sie eine Konfigurationsdatei, indem Sie faraday-dispatcher config-wizard ausführen.
Führen Sie den Agenten mit dem Befehl faraday-dispatcher run aus. Die erstellte Konfigurationsdatei befindet sich in ~/.faraday/config/dispatcher.ini, wenn Sie keinen benutzerdefinierten Pfad angeben.
Sie sollten die Agentenkonfiguration mit Ihrem Registrierungstoken abschließen, das sich unter http://localhost:5985/#/admin/agents befindet. Überprüfen Sie, ob der Server-Abschnitt die korrekten Informationen zu Ihrer Faraday Server-Instanz enthält. Vervollständigen Sie dann den Agenten-Abschnitt mit dem gewünschten Namen Ihres Agenten. Fügen Sie schließlich die Executors hinzu
Ein Executor ist ein Skript, das einzeilige JSON-Daten auf stdout ausgibt. Denken Sie daran: Wenn Sie andere Daten auf stdout ausgeben, löst der Dispatcher einen Fehler aus. Wenn Sie Debugging- oder Logging-Informationen ausgeben möchten, sollten Sie dafür stderr verwenden.
Jede vom Executor auf stdout geschriebene Zeile wird vom Dispatcher dekodiert und über den Bulk-Create-Endpunkt an Faraday gesendet. Daher muss das von Ihnen ausgegebene JSON dem Schema entsprechen, das der Endpunkt erfordert (dieses Schema ist unten detailliert). Andernfalls wird der Dispatcher eine Beschwerde auslösen, da Sie ungültige Daten übermittelt haben.
Wenn Sie Ihren Executor debuggen möchten, ist der einfachste Weg, ihn direkt auszuführen, anstatt mit dem Dispatcher. Da der Executor nur JSON-Daten auf stdout ausgibt, können Sie alle Informationen sehen, die er an Faraday senden möchte, ohne sie tatsächlich zu senden.
Nachdem Sie Ihren Executor geschrieben haben, müssen Sie ihn mit dem faraday-dispatcher config-wizard im Executor-Abschnitt hinzufügen, indem Sie seinen Namen, den auszuführenden Befehl und die maximale Größe des JSON angeben, das an den Faraday Server gesendet werden soll. Zusätzlich können Sie die Umgebungsvariablen und Argumente in ihrem entsprechenden Abschnitt konfigurieren.
Um einen Executor auszuführen, verwenden Sie den Befehl faraday-dispatcher config-wizard und führen Sie ihn vom Faraday Server aus. Der Executor verwendet die gesetzten Umgebungsvariablen und fragt nach den Argumenten.
Die an faraday veröffentlichten Daten müssen dem bulk_create-Endpunkt der Faraday REST API entsprechen
Wenn Sie mehr als einen Dispatcher haben möchten, jeder mit seinen eigenen Executors, ist die bevorzugte Methode, verschiedene Konfigurationsdateien für jeden zu erstellen (z. B. ~/.faraday/config/dispatcher-1.ini und ~/.faraday/config/dispatcher-2.ini). Dann können Sie zwei verschiedene Dispatcher-Instanzen mit faraday-dispatcher --config-file PFAD_ZU_EINER_KONFIGURATIONSDATEI ausführen.
Im Verzeichnis executors finden Sie die bereits erstellten Executors.
Die offiziellen Executors sind die Sammlung von einsatzbereiten Executors (mit minimaler Konfiguration über den Wizard). Sie haben eine Manifest-JSON-Datei, die Details zur Verwendung des Executors enthält und bei deren Konfiguration hilft.
Die derzeitigen offiziellen Executors sind:
Die Entwicklungs-Executors sind die Sammlung von Executors, die wir nicht vollständig warten, wir haben Anwendungsbeispiele, konzeptionelle und in der Entwicklung befindliche Executors. Die wichtigsten davon sind:
basic_example.py: Das Hallo Welt der Faraday Executors. Es erstellt einen Host mit einer zugehörigen Schwachstelleheroku_discovery_agent.py: Lädt Host- und Service-Informationen von Ihrem Heroku-KontoprowlerSample.py: Führen Sie den Befehl prowler aus und senden Sie seine Ausgabe an Faradaybrainfuck.sh: Ein Proof-of-Concept, um zu demonstrieren, dass Sie einen Executor in jeder Programmiersprache erstellen können, einschließlich Brainfuck!Wir arbeiten derzeit an neuen Executors, abgesehen von der Verbesserung der Benutzererfahrung bei der Verwendung der Agenten.
Wir möchten einigen Agenten Lesezugriff auf ihren Arbeitsbereich geben, damit sie von den vorhandenen Daten profitieren können, um wertvollere Informationen zu finden.
Weitere Informationen finden Sie in unserer Dokumentation