Artikel mit Tag schwachstellen scanner

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.

 

OpenVAS 9 - Installation des Schwachstellen-Management via Source, PPA oder Script unter Ubuntu 16.04

Wer nicht gerade BackBox Linux einsetzt oder andere Distributionen mit integriertem OpenVAS, der muss eine Installation eventuell von Hand vornehmen.
Darum habe ich die alte Installationsanleitung aktualisiert (siehe unten) und auf die neue Version 9 angepasst. Zusätzlich sind weitere Installationsmöglichkeiten hinzugekommen.

Die augenscheinlichste Neuerung von OpenVAS 9 ist die neue Oberfläche, an der fast 2 Jahre entwickelt wurde. (Changelog)
Als Basissystem dient Ubuntu 16.04 LTS

openvas9

Installation OpenVAS 9 via Source

Abhängigkeiten installieren

sudo apt-get install -y build-essential devscripts dpatch curl libassuan-dev libglib2.0-dev libgpgme11-dev libpcre3-dev libpth-dev libwrap0-dev libgmp-dev libgmp3-dev libgpgme11-dev libpcre3-dev libpth-dev quilt cmake pkg-config libssh-dev libglib2.0-dev libpcap-dev libgpgme11-dev uuid-dev bison libksba-dev doxygen libsql-translator-perl xmltoman sqlite3 libsqlite3-dev wamerican redis-server libhiredis-dev libsnmp-dev libmicrohttpd-dev libxml2-dev libxslt1-dev xsltproc libssh2-1-dev libldap2-dev autoconf nmap libgnutls28-dev gnutls-bin libpopt-dev heimdal-dev heimdal-multidev libpopt-dev texlive-full rpm alien nsis rsync python2.7 python-setuptools checkinstall

 

OpenVAS 9 Pakete herunterladen und entpacken

wget http://wald.intevation.org/frs/download.php/2420/openvas-libraries-9.0.1.tar.gz
wget http://wald.intevation.org/frs/download.php/2423/openvas-scanner-5.1.1.tar.gz
wget http://wald.intevation.org/frs/download.php/2426/openvas-manager-7.0.2.tar.gz
wget http://wald.intevation.org/frs/download.php/2429/greenbone-security-assistant-7.0.2.tar.gz
wget http://wald.intevation.org/frs/download.php/2397/openvas-cli-1.4.5.tar.gz
wget http://wald.intevation.org/frs/download.php/2377/openvas-smb-1.0.2.tar.gz
wget http://wald.intevation.org/frs/download.php/2401/ospd-1.2.0.tar.gz
wget http://wald.intevation.org/frs/download.php/2405/ospd-debsecan-1.2b1.tar.gz

 

sudo tar zxvf openvas-*
sudo tar zxvf greenbone*
sudo tar zxvf ospd*

Redis Server konfigurieren

cp /etc/redis/redis.conf /etc/redis/redis.orig
sudo sh -c 'echo "unixsocket /tmp/redis.sock" >> /etc/redis/redis.conf'


OpenVAS Libraries installieren

cd openvas-libraries-9.0.1
sudo mkdir source
cd source
sudo cmake ..
sudo make
sudo make install


OpenVAS Manager installieren

cd openvas-manager-7.0.2
sudo mkdir source
cd source
sudo cmake ..
sudo make
sudo make install


OpenVAS Scanner installieren

cd openvas-scanner-5.1.1
sudo mkdir source
cd source
sudo cmake ..
sudo make
sudo make install

OpenVAS CLI und SMB installieren

cd openvas-cli-1.4.5
sudo mkdir source
cd source
sudo cmake ..
sudo make
sudo make install
cd openvas-smb-1.0.2
sudo mkdir source
cd source
sudo cmake ..
sudo make
sudo make install

Greenbone Security Assistant (GSA) Oberfläche installieren

cd greenbone-security-assistant-7.0.2
sudo mkdir source
cd source
sudo cmake ..
sudo make
sudo make install

Solltet ihr den default Port 4000 der GSA Oberfläche anpassen wollen, ist dies unter (/etc/default/openvas-gsa) möglich.

Ob ihr die Zusatzpakete via Open Scanner Protocol installiert, bleibt euch überlassen. Nun folgen die Schritte der Erstkonfiguration.

Greenbone-Security-Assistant

 

Zertifikate einrichten

Anstatt openvas-mkcert kommt bei OpenVAS 9 ein neuer Befehl zum Einsatz. Mit dem Schalter -a werden alle benötigten Zertifikate installiert.

sudo openvas-manage-certs -a


OpenVAS Benutzer anlegen

openvasmd --create-user=admin --role=Admin
openvasmd --user=admin --new-password=NewPW


Update der NVT und Cert Datenbank

Die alten Befehle haben sich hier ebenfalls geändert.

greenbone-nvt-sync
greenbone-scapdata-sync
greenbone-certdata-sync

Troubleshooting

OpenVAS neu aufbauen

openvasmd --rebuild --progress

OpenVAS Installation prüfen

wget https://svn.wald.intevation.org/svn/openvas/trunk/tools/openvas-check-setup --no-check-certificate
sudo chmod +x openvas-check-setup
sudo ./openvas-check-setup --v9

System starten

sudo /usr/local/sbin/gsad start
sudo /usr/local/sbin/openvassd
sudo /usr/local/sbin/openvasmd



OpenVAS 9 via Script installieren

Auf Github befindet sich ein Script, welches viele der oben erwähnten Aufgaben für OpenVAS 8 und 9 automatisiert.

sudo wget https://raw.githubusercontent.com/leonov-av/openvas-commander/master/openvas_commander.sh
sudo chmod +x openvas_commander.sh

Folgende Befehle bescheren euch eine vollständige Installation ohne viel Handarbeit

./openvas_commander.sh  --install-dependencies

./openvas_commander.sh  --show-releases
OpenVAS-8
OpenVAS-9

./openvas_commander.sh --download-sources "OpenVAS-9" 
./openvas_commander.sh --create-folders
./openvas_commander.sh --install-all
./openvas_commander.sh --configure-all
./openvas_commander.sh --update-content
./openvas_commander.sh --rebuild-content
./openvas_commander.sh --start-all


OpenVAS 9 via PPA installieren

Falls doch lieber ein Repository zur Installation verwendet werden soll, bietet sich das PPA von mrazavi an.

sudo add-apt-repository ppa:mrazavi/openvas
sudo apt-get update
sudo apt-get install openvas9

openvas9-scan

Mit einer erfolgreichen Installation des Open Vulnerability Assessment Systems sollte einem ersten Schwachstellen-Management eigentlich Nichts mehr im Weg stehen.



Folgende Links könnten dich auch interessieren

Update Security Distributionen – Kali Linux mit OpenVAS 9 und Parrot Security 3.6

Ubuntu - OpenVAS 8.0 installieren, konfigurieren und ein Netzwerk scannen

ssh_scan – Sicherheits- und Konfigurationsscanner für SSH Einstellungen