Artikel mit Tag it security

Nuclei - schneller Schwachstellen Scanner mit praktischen Vorlagen

In der Vergangenheit wurden auf ITrig öfters Security Scanner erwähnt, z.B. OpenVAS oder Trivy. Diese Security Scanner sind natürlich nicht die einzigen im Internet. Ein weiterer Kandidat auf Go Basis ist Nuclei. Der vorlagenbasierte Schwachstellen-Scanner ist inzwischen Teil des Kali-Universums (2022.1) und bekommt daher heute einen gesonderten Artikel spendiert.

Nuclei

Das Open-Source-Tool scannt verschiedene Protokolle (TCP, SSH, DNS, HTTP/S, SSL, Websocket, Whois usw.) auf Schwachstellen und mehr. Dazu werden YAML-Vorlagen verwendet. Diese Templates werden zum größten Teil von der Community beigesteuert, können aber auch selbst für die eigenen Bedürfnisse geschrieben werden. So kann für die vor wenigen Tagen veröffentlichte Confluence Lücke CVE-2022-26134 bereits ein Scan Template gefunden werden.

 

nuclei-flow

Neben Nuclei bietet ProjectDiscovery noch weitere gute Programme für das Security-Umfeld. Beispielsweise subfinder, ein Subdomain Discovery Tool.

Bevor tiefer in Nuclei eingetaucht werden kann, muss der Scanner installiert werden.

Installation Nuclei unter Debian/Ubuntu

Da das Tool auf der Programmiersprache Go basiert, muss diese zunächst installiert werden.

curl -OL https://go.dev/dl/go1.18.3.linux-amd64.tar.gz
sudo tar -C /usr/local -xvf go1.18.3.linux-amd64.tar.gz
sudo nano ~/.profile
    export PATH=$PATH:/usr/local/go/bin
source ~/.profile

Alternativ

sudo apt install golang-1.16

Nun kann die neueste Nuclei Version gebaut werden.

git clone https://github.com/projectdiscovery/nuclei.git
cd nuclei/v2/cmd/nuclei
go build
sudo mv nuclei /usr/local/bin/
nuclei -version

Nach der Installation sollte die Datenbank aktualisiert werden, damit Templates zur Verfügung stehen.

nuclei -ut
?  nuclei git:(master) nuclei -ut

                     __     _
   ____  __  _______/ /__  (_)
  / __ \/ / / / ___/ / _ \/ /
 / / / / /_/ / /__/ /  __/ /
/_/ /_/\__,_/\___/_/\___/_/   2.7.2

        projectdiscovery.io

[WRN] Use with caution. You are responsible for your actions.
[WRN] Developers assume no liability and are not responsible for any misuse or damage.
[INF] nuclei-templates are not installed, installing...
[INF] Successfully downloaded nuclei-templates (v9.0.6) to /home/user/nuclei-templates. GoodLuck!

ls -l ~/nuclei-templates/

Nachdem die Template-Datenbank aktualisiert wurde, können einzelne Vorlagen direkt in den Scanbefehl eingebunden werden.

Im Folgenden möchte ich einen kleinen Teil der möglichen Befehle mithilfe von Templates aufzeigen:

Einfacher API Scan

nuclei -u $URL -t ~/nuclei-templates/exposures/apis/

WordPress Scan

nuclei -u $URL -t ~/nuclei-templates/vulnerabilities/wordpress/

CVE Scan

nuclei -u $URL ~/nuclei-templates/cves/2022/CVE-2022-XXXX.yaml

Token Spray

nuclei -u $URL ~/nuclei-templates/token-spray/ -var token=XXX_TOKEN_XXX

Listen

Der Scanner kann mit Listen umgehen, was beim Scannen mehrerer URLs durchaus helfen kann.

nuclei -u $URL -list http_urls.txt

Filter

Nuclei unterstützt Filter, wie tags, severity, author

nuclei -u $URL -tags cve

Workflows

Nuclei kann Workflows abbilden, d.h. es könnten z.B. Templates in einem Workflow gebündelt werden. Hier ein Beispiel:

id: workflow-example
info:
  name: Test Workflow Template
  author: pdteam

workflows:
  - template: technologies/tech-detect.yaml
    matchers:
      - name: wordpress
        subtemplates:
          - template: cves/CVE-2019-6715.yaml
          - template: cves/CVE-2019-9978.yaml

Auf solche Workflows können wiederum auch Filter angesetzt werden

nuclei -u $URL -w workflows/workflow-example.yaml -severity critical,high -list http_urls.txt

Rate Limits

Um die Anzahl der gleichzeitigen Zugriffe zu regulieren, können Rate Limits gesetzt werden.

  • rate-limit     Control the total number of request to send per seconds
  • bulk-size     Control the number of hosts to process in parallel for each template
  • c     Control the number of templates to process in parallel

Custom Header

Es kann notwendig sein, einen eigenen Header zu setzen. Gerade bei BugBounty Programmen oder um euch als Pentester erkennen zu geben. Dazu kann die "/home/user/.config/nuclei/config.yaml" angepasst werden:

    # Headers to include with each request.
header:
  - 'X-BugBounty-Hacker: h1/geekboy'
  - 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) / nuclei'

Wer dies ad hoc via CLI erledigen möchte, der muss nur "Header" in der Befehlskette verwenden.

nuclei -header 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) / nuclei' -list urls.txt -tags cves

Hier endet auch schon der Schnelleinstieg in Nuclei. Ich hoffe, ihr habt einen schnellen Einblick bekommen, was mit dem Scanner möglich ist und warum die vorhandenen Vorlagen und Einstellmöglichkeiten Nuclei momentan zu einem sehr beliebten Tool machen.

Weitere Tipps findet ihr direkt auf Github oder beim Template Guide

Viel Erfolg beim Testen der eigenen Webseite, Apps, Sockets.

 

Kali Linux Tools unter Debian/Ubuntu installieren

Nachdem unter dem Katoolin3 Artikel ein Kommentar zum kaputten Installationsscript aufgetaucht ist, möchte ich schnell ein Alternative zur Installation von Kali Tools unter Debian/Ubuntu vorstellen. Extra Scripte sind hierzu nicht mehr nötig.

kali-tools

Kali Linux Tools unter Debian/Ubuntu installieren

Eigentlich wird lediglich das Kali Linux Repository benötigt, danach können Abhängigkeiten und die gewünschten Pakete installiert werden. (Achtung das kann etwas dauern)

sudo bash -c "echo deb http://http.kali.org/kali kali-rolling main contrib non-free >> /etc/apt/sources.list

sudo apt-get update && sudo apt-get upgrade

Nun können zum Beispiel die 10 beliebtesten Tools installiert werden.

Folgende Tools sind in diesem Paket enthalten:  netcat, wireshark, burpsuite,aircrack-ng, john the ripper, sqlmap, metasploit, hydra, nmap, responder und crackmapexec

sudo apt-get install kali-tools-top10

Alternativ können auch andere Pakete gewählt werden. Diese lassen sich einfach via apt ausfindig machen.

sudo apt search kali-tools-*
  • kali-tools-802-11 - Kali Linux 802.11 attacks tools
  • kali-tools-bluetooth - Kali Linux bluetooth attacks tools
  • kali-tools-crypto-stego - Kali Linux Cryptography and Steganography tools
  • kali-tools-database - Kali Linux database assessment tools menu
  • kali-tools-exploitation - Kali Linux exploitation tools menu
  • kali-tools-forensics- Kali Linux forensic tools menu
  • kali-tools-fuzzing - Kali Linux fuzzing attacks tools
  • kali-tools-gpu/ - Kali Linux GPU tools
  • kali-tools-hardware - Kali Linux hardware attacks tools
  • kali-tools-information-gathering - Kali Linux information gathering menu
  • kali-tools-passwords Kali Linux password cracking tools menu
  • kali-tools-post-exploitation Kali Linux post exploitation tools menu
  • kali-tools-reporting Kali Linux reporting tools menu
  • kali-tools-reverse-engineering Kali Linux reverse engineering menu
  • kali-tools-rfid - Kali Linux RFID tools
  • kali-tools-sdr - Kali Linux SDR tools
  • kali-tools-sniffing-spoofing - Kali Linux sniffing & spoofing tools menu
  • kali-tools-social-engineering - Kali Linux social engineering tools menu
  • kali-tools-top10 - Kali Linux's top 10 tools
  • kali-tools-voip - Kali Linux VoIP tools
  • kali-tools-vulnerability - Kali Linux vulnerability analysis menu
  • kali-tools-web - Kali Linux webapp assessment tools menu
  • kali-tools-windows-resources - Kali Linux Windows resources
  • kali-tools-wireless - Kali Linux wireless tools menu

Unter kali.org/tools/kali-meta findet ihr weitere Informationen zu den ob erwähnten Paketen.

sudo apt search sipvicious

Wem das alles zu viel ist, der sucht einfach nach dem gewünschten Paket und installiert dieses.

kali-tools

Bei dieser Auswahl an Tools, die schnell jeder bestehenden Installation hinzugefügt werden können, kann der Winter kommen und ihr könnt viele neue Programme testen und ausprobieren. Aber bitte nur in einer Testumgebung.