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
cowcloud — Serverlose AWS-Lösung zur Verteilung von Recon- und Schwachstellenscan-Workloads. Übermitteln Sie Aufgaben über das Web-UI; EC2-Worker führen benutzerdefinierte Python-Skripte mit Tools wie Nmap aus. | Kitploit
Tools/GitHubGitHub/nccgroup/cowcloud
Cloud-Infrastruktur-SicherheitPenetrationstest-FrameworksSchwachstellenscannerScripting & AutomatisierungInformationsbeschaffungCloud-SicherheitDevSecOpsDienstprogramme & Frameworks
GitHubnccgroup/cowcloud

cowcloud

Serverlose AWS-Lösung zur Verteilung von Recon- und Schwachstellenscan-Workloads. Übermitteln Sie Aufgaben über das Web-UI; EC2-Worker führen benutzerdefinierte Python-Skripte mit Tools wie Nmap aus.

60225vor 3 JahrenVon Kitploit geprüft
Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CowCloud

eine serverless Lösung zur Verteilung von Arbeitslasten in AWS

CowCloud wurde ursprünglich entwickelt, um Recon-Tools und Schwachstellenscans verteilt auszuführen; ein Anwendungsfall könnten beispielsweise Bug-Bounty-Jäger sein. Diese Lösung soll Endbenutzer von der zugrunde liegenden Arbeit abstrahieren, die zur Verteilung von Workloads in AWS erforderlich ist. CowCloud bietet Benutzern eine benutzerfreundliche Weboberfläche zum Anzeigen und Erstellen neuer Aufgaben, die später von Python-Code verarbeitet werden, der auf Workerknoten (EC2-Instanzen) läuft. Es ist vorgesehen, dass sowohl der Python-Code als auch die EC2-AMIs angepasst werden.

Als Beispiel: Angenommen, Sie möchten Nmap-Scans ausführen. In diesem Fall können Sie einfach ein AMI aus dem AMI-Katalog auswählen und das Feld image_id in Terraform/ec2_module/ec2_module.tf aktualisieren. Anschließend müsste die Datei ec2py/template.py angepasst werden, um die Argumente für den Nmap-Scan zu konfigurieren (-Pn, -p 443, usw.). Zuletzt müsste das Feld user_data in der Konfigurationsdatei Terraform/ec2_module/ec2_module.tf aktualisiert werden, um Nmap und seine Abhängigkeiten zu installieren.

Eine weitere Möglichkeit besteht darin, mehrere kommerzielle Tools zu installieren und auszuführen; in diesem Fall möchten Sie möglicherweise Ihre eigene EC2-Instanz oder einen eigenen Snapshot erstellen. Dabei würden Sie alle Abhängigkeiten installieren und die Lizenzen aktivieren, um dieses AMI als Gold-Image für Ihre Worker zu verwenden.

Screenshot

CowCloud lässt sich in drei Hauptkomponenten unterteilen:

  • eine Terraform-Konfiguration
  • ein React-JS-Frontend
  • eine Python-App, die auf Workerknoten läuft

Dies sind die wichtigsten Funktionen:

  • Die Lösung verwendet Amazon Cognito (mit einem User Pool), damit sich Benutzer in der Web-App registrieren und anmelden können
  • React-JS-App als Frontend-Anwendung. Das Frontend zeigt die Aufgaben und Worker an und ermöglicht es Ihnen, neue Aufgaben hinzuzufügen
  • API-Gateway mit Lambda-Integration zur Verarbeitung von CORS und zur Interaktion mit einigen der Lambda-Funktionen, um Informationen aus DynamoDB zu erstellen und abzurufen
  • CloudFront zur Verwaltung von SSL und Cache
  • WAF mit Regeln und IP-Adressbedingungen, um den Zugriff auf die Web-App einzuschränken (optional)
  • S3-Buckets zur Speicherung der Ausführungsergebnisse und der Frontend-App; ein separater S3-Bucket wird als Code-Repository für die Python-App verwendet.
  • Eine Python-App als Kern für die Ausführung von Aufgaben auf den EC2-Instanzen (Workern). Die Tool-Aktionen lassen sich in mehrere Schritte unterteilen:
    • Die Python-App konsumiert Nachrichten
    • führt Scans aus
    • komprimiert die Ausgabe
    • und verschlüsselt die Ausgabe mit AES256-CBC und einem Passwort
    • und lädt das Ergebnis dann in einen S3-Bucket hoch
  • Jedes Mal, wenn ein neuer Worker erstellt wird, wird das Python-Repository aus einem S3-Bucket gezogen und anschließend die darin enthaltene ec2py-Datei ausgeführt.
  • Jedes Mal, wenn ein neuer Worker erstellt wird, kann der Instanz automatisch eine EIP zugewiesen werden (optional)
  • CloudWatch-Loggruppen zur Speicherung der Logs aus verschiedenen Quellen wie Lambda-Fehlern, Ausnahmen in der Python-Anwendung ec2app, API Gateway, Docker-Logs und vielem mehr
  • Lifecycle-Hooks, um den Status der Worker in DynamoDB zu ändern und zu verhindern, dass Worker beendet werden, während eine Aufgabe noch läuft
  • Autoscaling-Strategie basierend auf der Anzahl der in der Warteschlange befindlichen Aufgaben und der Konfiguration (weitere Informationen zur Funktionsweise des Algorithmus finden Sie in autoscalingStrategy.py)
  • Lambda-Event-Source-Mapping, das mit der Aufgabentabelle in DynamoDB verknüpft ist, um die Autoscaling-Aktionen zu verwalten, wenn die Elemente in der Datenbank zunehmen oder abnehmen
  • SNS zum Senden neuer Nachrichten (Aufgaben) an eine SQS; diese Nachrichten werden später von den Workerknoten gelesen
  • Der Step-Functions-Dienst wird verwendet, um einen Countdown zu erstellen und die CloudWatch-Loggruppen nach Ablauf von retention_time zu löschen
  • Wenn ec2py Tools (z. B. Nmap) in Docker-Containern ausführt, kann die Standardausgabe (stdout) in CloudWatch protokolliert und über das Frontend angezeigt werden; siehe die Variable extra_docker_params in der Datei template.py (dies wird im Abschnitt Administrator/Wartung weiter unten erläutert)
  • Das Frontend bietet eine Schaltfläche zum Unterbrechen von Aufgaben während ihrer Ausführung und eine weitere Schaltfläche zum Anzeigen der Docker-Container-Logs
  • Wenn Sie etwas am Frontend-Code oder an den ec2py-Ordnern ändern möchten, müssen Sie diese Änderungen an die S3-Buckets weitergeben und den Cache für das Frontend ungültig machen; das können Sie einfach durch Ausführen von setup.bat/sh erledigen

Diagramm:

Deprecated

Die folgenden Optionen sind in der Terraform-Konfiguration verfügbar:

variableStandardwertBeschreibung
eipenablefalseWenn true, weist die Lösung einen Pool elastischer IP-Adressen zu, die den Workerknoten beim Hochfahren zugeordnet werden. Die Anzahl der zu reservierenden EIPs wird anhand dieser Formelsum([var.max_workers, var.maximum_number_of_terminating_machines]) berechnet.
cidr_whitelist[]Die CIDR-Whitelist, um in der Firewall nur bestimmte IP-Bereiche zuzulassen. Z. B. ["195.95.131.0/24"]
max_workers und max_queued_tasks_per_workermax_workers: 3, max_queued_tasks_per_worker: 10Diese beiden Einstellungen bestimmen, wann horizontal skaliert (Scale-in/Scale-out) wird, z. B. max_workers 3, max_queued_tasks_per_worker 10. Das bedeutet, wenn die Anzahl der Aufgaben zehn überschreitet, wird eine neue EC2-Instanz erstellt. Wenn mehr als zwanzig Aufgaben vorhanden sind, stehen maximal drei EC2-Instanzen zur Verteilung der Arbeitslasten zur Verfügung (siehe Algorithmus in diesem Skript Terraform/dynamodb_module/autoscalingTool/autoscalingStrategy.py).
maximum_number_of_terminating_machines2Dies definiert die Anzahl der Instanzen, die zum Beenden vorgesehen sind, aber angehalten werden, bis der Prozess/Scan die Aufgabe abgeschlossen hat.
heartbeat_timeout900Dies definiert die Zeit, die diese Worker in der Warteschleife gehalten werden. Nach Ablauf dieser Zeit wird der Worker zwangsweise beendet.
instance_typet2.microhttps://aws.amazon.com/ec2/instance-types/
aminullhttps://aws.amazon.com/es/amazon-linux-ami/
retention_time7Legt die Aufbewahrungszeit (in Tagen) für Logs und den Ablauf der Elemente der Archivtabelle (abgeschlossene Aufgaben) fest.

Durch die Ausführung von Terraform wird eine neue Datei erstellt (config.js); diese enthält die Konfiguration, die die React-JS-App benötigt, um sich gegen das Cognito-User-Pool-Verzeichnis zu authentifizieren. Nachdem die Infrastruktur bereitgestellt wurde, müssen Sie die React-App erstellen und den Ordner build hochladen. Außerdem müssen Sie den Python-Code in einen S3-Bucket hochladen, der als Code-Repository dient. Dieser Prozess wurde in zwei Skripten, setup.bat und setup.sh, automatisiert, sodass Sie sich darum nicht kümmern müssen; dies dient nur der Zusammenfassung dieser Phase.


Installationsschritte:

Die Infrastruktur wird standardmäßig in der Region us-east-1 bereitgestellt; dies kann jedoch in der Datei locals.tf im Terraform-Ordner geändert werden.

Tool herunterladen