Artikel mit Tag monitoring

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.

 

Polybar – Die Statusleiste unter Linux aufhübschen

Viele Distributionen sehen schick aus und bringen viele Informationen auf die Statusleiste. Wem das jedoch nicht zusagt und von einer Statusleiste mit mehr Anpassungsmöglichkeiten geträumt wird, dann ist Polybar genau das richtige Tool. Die Polybar ist ein schnelles und effizientes Werkzeug zur Erstellung von wunderschönen Statusleisten auf Linux-Distributionen.

polybar

In neueren Distributionen lässt sich die Polybar via Paketmanager installieren, unter Ubuntu 20.04 LTS ist diese Variante allerdings noch nicht vorhanden, daher wird in diesem Artikel auch auf den Buildprozess eingegangen.

Geduldige warten bis zum Release von Ubuntu 22.04 LTS in wenigen Wochen, dort sollte das Polybar Paket mit an Bord sein.

polybar-statusleiste

Polybar unter Ubuntu 21.04 oder Debian 11 installieren

Wie bereits erwähnt ist bei neuen Systemen eine Installation via Paketmanager möglich

sudo apt install polybar

Auf älteren Ubuntu Systemen könnte ebenfalls auf ein PPA zurückgegriffen werden, allerdings ist dort nicht die neueste Version enthalten, daher nicht zu empfehlen.

sudo add-apt-repository ppa:kgilmer/speed-ricer
sudo apt-get update

Snap würde natürlich auch funktionieren, wenn gewünscht

sudo apt update 
sudo apt install snapd
sudo snap install polybar-git --edge

polybar-features

Polybar unter Ubuntu 20.04 LTS selbst kompilieren und installieren

Um das Paket selbst zu bauen, werden zunächst ein paar Pakete benötigt.

sudo apt-get install cmake cmake-data libcairo2-dev libxcb1-dev libxcb-ewmh-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-randr0-dev libxcb-util0-dev libxcb-xkb-dev pkg-config python3-xcbgen xcb-proto libxcb-xrm-dev libasound2-dev libmpdclient-dev libiw-dev libcurl4-openssl-dev libpulse-dev libxcb-composite0-dev i3 alsa-oss xcb libxcb-ewmh2

Nun kann das Git Repository geklont werden.

git clone https://github.com/jaagr/polybar.git

Danach den Buildvorgang starten.

polybar && ./build.sh

Ist der Vorgang erfolgreich gewesen, kann die Polybar testweise gestartet werden.

polybar example

Weitere Konfigurationen werden via config.ini gemacht, dort kann zum Beispiel der Default Name „example“ geändert werden.

Die Beispielkonfiguration wird zunächst ins eigene Profil kopiert, dort können dann weitere Anpassungen vorgenommen werden. So lassen sich dort verschiedene Module aktivieren oder eigene einbinden. Einen Überblick der vorhandenen Funktionen könnt ihr der Grafik weiter oben entnehmen.

sudo mkdir -p ~.config/polybar

sudo cp /usr/local/share/doc/polybar/examples/config.ini ~.config/polybar/config.ini

Anpassungen & Fehlerbehebung

Polybar wird nach dem Start nicht angezeigt

Am besten lässt sich dieses Problem mit dem Ausblenden der Top-Leiste mit der Erweiterung Hide Top Bar lösen.

Dazu muss zunächst folgendes Paket installiert werden

sudo apt install chrome-gnome-shell

Danach lässt sich die Erweiterung leicht direkt via Browser aktivieren, dazu wird auf der folgenden Seite einfach der Schalter auf On gestellt.

https://extensions.gnome.org/extension/545/hide-top-bar/

Nun sollte bei einem Start von Polybar die vorhandene Statusleiste automatisch im Hintergrund verschwinden.

Natürlich lassen sich beide Statusleisten auch parallel anzeigen, dazu kann die Polybar einfach unter die vorhandene gesetzt werden in dem das Offset in der Konfiguration angepasst wird.
 

sudo vim ~.config/polybar/config.ini

offset-y = 27

Autostart von Polybar einrichten

Mit Ubuntu Desktop lässt sich das schnell über die Autostartfunktion regeln.

Falls nicht vorhanden (in Ubuntu 20.04 LTS dabei) kann das Autostartpaket nachinstalliert werden.

sudo apt install gnome-startup-applications

polybar-autostart

Alternativ lässt sich der Autostart auch über die Konsole regeln.

mkdir -p ~/.config/autostart/
cat <<EOF > ~/.config/autostart/polybar.desktop
[Desktop Entry]
Name=Polybar
Type=Application
Hidden=false
Exec="Pfad zur Polybar"
EOF

Wie stelle ich die Transparenz der Statusleiste ein?

In der config.ini den Wert der Hintergrundfarbe anpassen.

  • FF steht für undurchsichtig
  • 00 steht für Transparenz

Da es sich um Hexadezimalwerte handelt (0, 1, 2,.., 9, A, B, C, D, E, F ) bietet sich ein Mittelwert an.

Background = #aa282A2E

polybar-config

Jetzt aber viel Spaß beim Gestalten der eigenen Statusleiste.

Weitere Informationen und fertig Themes gibt es unter:

 

Bpytop - Systemressourcen im Blick behalten

Letzte Woche wurde der Systemmonitor Bpytop auf heise.de behandelt, leider hinter einer Paywall. Da ich hier schon Glances vorgestellt habe, möchte ich euch den Bashtop Clone nicht vorenthalten.

Bpytop

Der Bashtop Clone auf Python Basis bietet ein Überblick der vorhandenen Ressourcen wie CPU, RAM, SSD, Netzwerk, CPU-Temperatur, Akkuladestand und Prozessen.

Anders als gängige Tools wie ps oder top bietet Bpytop nach dem animierten Start eine schicke Oberfläche und ähnelt daher eher htop oder dem ebenfalls auf Python basierenden Glances.

bpytop-sys-monitorDie GUI selbst bringt eine Themesunterstützung mit und ermöglicht es, die Darstellung auf insgesamt 14 Themes wie dracula oder solarized anzupassen.

bpytop-menue

Die Menüsteuerung kann nicht nur via Tastatur (M), sondern auch via Maus erreicht werden, denn Bpytop bringt eine Mausunterstützung mit, was die Bedienbarkeit für einige vereinfachen dürfte.

So lassen sich beispielsweise Prozesse einfach anklicken und können bei Bedarf mit Terminate, Kill oder Interrupt beendet werden.

Die allgemeine Bedienung erklärt sich quasi von selbst. Angezeigte Werte lassen sich via Maus oder Tastatur näher untersuchen oder beeinflussen.

Wie oben bereits erwähnt lässt sich die Temperatur der CPU Kerne ebenfalls überwachen, dazu muss teilweise noch ein weiteres Paket bei der Installation beachtet werden, in der Installationsanleitung lassen sich die Details dazu finden.

bpytop

Installation Bpytop unter Debian/Ubuntu

Seit Debian Bullseye kann das System Kontrollzentrum über den Standardweg installieren.

sudo apt install bpytop

Alternativ kann weiterhin die Pythonvariante verwendet werden. Weitere Möglichkeiten lassen sich auf der Github Seite finden.

pip3 install bpytop --upgrade

Für die Temperaturüberwachung wird das Sensorpaket benötigt. Dieses lässt sich wie folgt installieren und kalibrieren. Danach sollte in der oberen Ecke von Bpytop die einzelnen Kerntemperaturen angezeigt werden.

sudo apt install lm-sensors

sudo sensors-detect

Fazit

Bpytop ist vor allem ein sehr grafisches Tool, auch wenn es im ersten Moment etwas spielerisch daher kommt, hat es durchaus seinen Reiz, mit Maus und Tastatur über die Konsole zu huschen.

Punkten kann das Tool durch seine bildlichen Auswertungen. Egal ob bei der grün/roten Festplatten bzw. Speicherbelegung oder dem animiertem Netzwerkverkehr.

Durch die Integration in Bullseye lässt es sich nun einfach testen und ausprobieren und erfährt sicher bald eine größere Fanbase

Security Tools: Trivy – Docker Container auf Sicherheitslücken durchsuchen

Container sind nach wie vor in alle Munde. Wer, der Einfachheit halber, mit Docker hantiert, der sollte regelmäßig die Aktualität der verwendeten Images prüfen. Nicht erst seit Log4j verbergen sich unerwünschte Sicherheitslücken in veralteten Images.

trivy

Trivy

Das Open-Source-Tool Trivy bietet die Möglichkeit lokale Images, direkt im Filesystem oder entfernte Repositorys nach Lücken zu scannen. Das Programm scannt unter anderen Base Images wie Alpine, Debian, Ubuntu, CentOS, SUSE, Photon OS, Paketmanager und andere Abhängigkeiten mithilfe der eigenen Schwachstellendatenbank ab.

Die Trivy Datenbank basiert auf NVD und diverser Security Meldungen einzelner Programmiersprachen (siehe).

Installation Trivy Security Scanner Debian/Ubuntu

sudo apt-get install wget apt-transport-https gnupg lsb-release
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | sudo apt-key add -
echo deb https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list.d/trivy.list
sudo apt-get update
sudo apt-get install trivy

Einen Scan mit Trivy anstoßen

Um die Übersicht der Scanergebnisse zu behalten, empfiehlt es sich, die Ausgabe auf kritische Lücken zu beschränken

trivy image --severity HIGH,CRITICAL IMAGENAME

trivy-scan

Das Tool erlaubt es ebenfalls einen HTML Report zu veröffentlichen

trivy image --format template --template "@contrib/html.tpl" -o report.html golang:1.12-alpine

trivy-ergebnisse

Trivy kann auch das Filesystem untersuchen.

trivy fs /path/to/project

Schlussendlich kann auch direkt via GitHub gescannt werden.

trivy repo https://github.com/knqyf263/trivy-ci-test

Fazit

Wer Docker im Einsatz hat, sollte die verwendeten Images regelmäßig auf Sicherheitslücken und Abhängigkeiten prüfen. Der Profi baut seine Images sicher selbst und weiß, was er tut, allerdings übersieht ein DevOp auch dort mal Abhängigkeiten. Auch hier schafft Trivy praktische Abhilfe, denn es lässt ich schnell in CI Workflows, beispielsweise von Gitlab integrieren.

Download

Nagios - Icinga: Debian Bullseye check_interfaces schlägt fehl

icinga-logo

Ein kurzer Tipp fürs Interface Monitoring mit Icinga oder Nagios unter Debian.

Nach einem Update auf Debian Bullseye kann es vorkommen, dass einige Check Plugins fehlschlagen. So geschehen mit check_interfaces.

Das Plugin bringt nur noch folgende Ausgabe:

Plugin-Ausgabe
/usr/lib/nagios/plugins/check_interfaces: error while loading shared libraries: libnetsnmp.so.30: cannot open shared object file: No such file or directory

Zunächst kann man natürlich versuchen, die nötigen Dateien auf anderen Systemen zu suchen oder das Paket libsnmp40 zu installieren, leider bringt dies unnötige Arbeit, bzw. keine Abhilfe.

Die Lösung ist ein einfaches neu builden des Plugins:

debian_bullseye

apt-get update
apt-get -y install git build-essential libsnmp-dev

wget https://github.com/NETWAYS/check_interfaces/archive/refs/tags/v1.4.tar.gz

tar xvf v1.4.tar.gz

cd check_interfaces-1.4/

./configure --libexecdir=/usr/lib/nagios/plugins

make
make install

Der Zielpfad kann natürlich je nach Check Plugin Verzeichnis angepasst werden. Nach dem erneuten Builden unter Debian Bullseye sollte das Plugin wieder ohne Probleme funktionieren.