Schneller und anpassbarer Schwachstellenscanner basierend auf einer einfachen YAML-basierten DSL.
Schwachstellenscan mit Nuclei

So funktioniert es
- Das Plugin lädt die neueste Version von Nuclei von GitHub herunter, basierend auf dem Betriebssystem und der Architektur des Build Executors.
- Das heruntergeladene Artefakt wird entpackt.
- Falls der aktuell ausgeführte Build bereits eine Nuclei-Binärdatei in seinem Arbeitsbereich hat, werden die ersten beiden Schritte übersprungen.
- Nuclei-Vorlagen werden heruntergeladen/aktualisiert.
- Der Scan wird mit den bereitgestellten Benutzereingaben ausgeführt.
Verwendung
- Erstellen oder bearbeiten Sie ein Freestyle-Projekt
- Fügen Sie einen Nuclei Vulnerability Scanner Build-Schritt hinzu
- Geben Sie die URL der Ziel-Webanwendung ein, die Sie testen möchten.
- Optional:
- Fügen Sie eine Berichtskonfiguration hinzu, die die automatische Erstellung von Issues auf Plattformen wie Jira und GitHub ermöglicht. Mit den untenstehenden zusätzlichen Flags können Sie das Log-Level erhöhen, um potenzielle Probleme mit den Issue-Tracker-Integrationen zu debuggen.
- Fügen Sie zusätzliche CLI-Argumente hinzu (z.B.
-v, -debug)
- Standardmäßig verwendet dieses Plugin die neueste veröffentlichte Version von Nuclei. Falls eine neue Hauptversion nicht abwärtskompatibel mit der vom Plugin verwendeten CLI-Schnittstelle sein sollte, können Sie manuell eine ältere Version auswählen, um das Problem vorübergehend zu umgehen. Bitte erstellen Sie ein Ticket, um ein Update des Plugins anzufordern.

Manuelles Erstellen
- Sie können den Code mit Maven im Stammverzeichnis erstellen, in dem sich die
pom.xml befindet.
mvn clean package -DskipTests
- Das erstellte Artefakt befindet sich unter
./target/nuclei.hpi
- Sie können eine Jenkins-Bereitstellung mit dem vorinstallierten Plugin starten mit:
mvn hpi:run
- Um Debugging zu aktivieren, verwenden Sie
mvnDebug hpi:run, und hängen Sie dann einen Remote-Debugger an, indem Sie die folgenden Parameter zu Ihrer Ausführungskonfiguration hinzufügen: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000
Bevor Sie einen Pull-Request erstellen, stellen Sie bitte sicher, dass Sie die folgenden Schritte durchführen:
- Führen Sie die Tests innerhalb des Projekts aus (entfernen Sie das
-DskipTests-Flag).
- Testen Sie das Plugin in einer vollwertigen Jenkins-Instanz:
- Sie können das Plugin installieren, indem Sie die Datei
nuclei.hpi in das Verzeichnis <jenkins_install_dir>/plugins kopieren/überschreiben (z.B. /var/lib/jenkins/plugins/nuclei.hpi).
- Stellen Sie sicher, dass Sie den Jenkins-Dienst neu starten (
sudo service jenkins restart).
- Testen Sie die Plugin-Ausführung auch auf dem Primary (Master)-Knoten und auf Remote-Agents.
Frisch beginnen
- Löschen Sie die kompilierten Klassen und generierten Artefakte im
target-Ordner: mvn clean
- Entfernen Sie die Nuclei-Konfiguration des aktuellen Benutzers (falls vorhanden):
rm -rf ~/.config/nuclei
- Entfernen Sie die Nuclei-Konfiguration des jenkins-Benutzers (falls vorhanden):
sudo rm -rf <jenkins_install_dir>/.config/nuclei (z.B. /var/lib/jenkins/.config/nuclei)
- Entfernen Sie die Nuclei-Binärdatei, die zugehörigen Vorlagen und die generierte Ausgabe:
sudo rm -rf <jenkins_install_dir>/workspace/<build_name>/nuclei*
- Verbinden Sie sich mit dem Remote-Agent und führen Sie die gleichen Schritte aus.
Einschränkungen
- Nur Unterstützung für Freestyle-Projekte (keine Pipelines)
- Keine integrierte Scanner-Binärdatei, die Agents benötigen Internetzugriff
Nuclei-Dokumentation