Skip to content

Security: GVM 21.04 - mit Docker in 15 Minuten zum OpenVAS Schwachstellen Scanner

OpenVAS bzw. Greenbone Vulnerability Manager ist nicht ganz einfach zu installieren, da viele Abhängigkeiten und Pakete gebaut werden müssen.
Eine etwas ältere Anleitung ist noch auf ITrig zu finden.

Mithilfe von Docker kann der Installationsprozess stark beschleunigt werden.
Händische Konfigurationen und Updates fallen weg und innerhalb kurzer Zeit steht ein vollständig eingerichtetes Schwachstellenmanagement zur Verfügung.

Greenbone_Security_Assistant

GVM 21.04 mit Docker Compose installieren

Zunächst sollte Docker installiert werden.

Docker Debian installieren

apt remove docker docker-engine docker.io containerd runc
apt update
apt install apt-transport-https ca-certificates curl gnupg lsb-release git

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

apt update
apt install docker-ce docker-ce-cli containerd.io

Docker Ubuntu installieren

sudo apt remove docker docker-engine docker.io containerd runc 
sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release git

sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

sudo echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

Docker Compose darf ebenfalls nicht fehlen

Docker Compose Debian/Ubuntu installieren

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

docker-compose --version

Installation GVM 21.04 mit Docker

# Clonen/Installieren
cd /opt
sudo git clone https://github.com/immauss/openvas.git

# Admin pw anpassen
cd openvas/
nano docker-compose.yml

# System starten
docker-compose up -d
#Logs anschauen
docker-compose logs -f
#Server überprüfen
ss -lntp |grep 8080

Der erste Start kann recht lange dauern, da im Hintergrund alle NVTs geladen werden.

Der Installationsfortschritt kann mit docker-compose logs -f verfolgt werden.

Sollten Fehler passieren, hilft meist ein Neustart des Vorgangs. Gleiches gilt für ein Update der Signaturen.

openvas-docker

#Neustart oder Signaturen aktualisieren
cd /opt/openvas
sudo docker-compose down && docker-compose up -d

#Neueste Logs prüfen
sudo docker-compose logs --tail="50"


Schlussendlich ist das Tool unter http://localhost:8080/login erreichbar und einsatzfähig.


Allerdings empfehle ich einen Proxy mit HTTPS vorzuschalten und den Port 8080 auf Localhost umzubiegen.

Ein Proxy könnte im Docker-Compose File integriert oder direkt installiert werden.

Docker-Compose anpassen

Das Umbiegen auf Localhost, kann im Docker Compose File vorgenommen werden.

#Beispiel für eine Anpassung der docker-compose.yml

version: "3"
services:
  openvas:
    ports:
      - "127.0.0.1:8080:9392"
    environment:
      - "PASSWORD=notyouradmin!"
      - "USERNAME=admin"
      - "RELAYHOST=172.17.0.1"
      - "SMTPPORT=25"
      - "REDISDBS=512" # number of Redis DBs to use
      - "QUIET=false"  # dump feed sync noise to /dev/null
      - "NEWDB=false"  # only use this for creating a blank DB
      - "SKIPSYNC=false" # Skips the feed sync on startup.
      - "RESTORE=false"  # This probably not be used from compose... see docs.
      - "DEBUG=false"  # This will cause the container to stop and not actually start gvmd
      - "HTTPS=false"  # wether to use HTTPS or not
      - "GMP=false"    # to enable see docs
    volumes:
      - "openvas:/data"
    container_name: openvas
    image: immauss/openvas
volumes:
  openvas:

Nginx Proxyserver einrichten

Hier ein Beispiel für einen Nginx Proxyserver (ohne Docker)

apt install nginx
sudo rm /etc/nginx/sites-enabled/default

Ein Zertifikat erstellen

 sudo openssl req -x509 -newkey rsa:4096 -sha256 -days 365 -nodes   -keyout gvm.itrig.key -out gvm.itrig.crt -subj "/CN=gvm.itrig.de"   -addext "subjectAltName=DNS:security.itrig.de,DNS:gvm.itrig.de,IP:192.168.0.111"
#Beispiel für eine Nginx Proxy Config

nano /etc/nginx/sites-available/openvas

server {
  server_name localhost;
   listen 443 ssl http2;
   ssl_certificate     /etc/ssl/gvm.itrig.de.crt;
   ssl_certificate_key /etc/ssl/gvm.itrig.de.key;
   ssl_session_timeout 1d;
   ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions
   ssl_session_tickets off;
   ssl_protocols TLSv1.2 TLSv1.3;
   ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
   ssl_prefer_server_ciphers off;
   resolver 127.0.0.1;
   

    location / {
        proxy_pass http://localhost:8080;
    }
}
# Symlink setzen
cd /etc/nginx/sites-enabled/
ln -s ../sites-available/openvas openvas

#Neustart Nginx
systemctl restart nginx

#Kontrolle mit
systemctl status nginx
#oder
ss -lntp

Der Scanner ist nun via https://localhost/login erreichbar.

 

Fazit

Für einen schnellen Test und dem Lernen am System ist GVM via Docker von github.com/immauss/openvas sicherlich geeignet. Die Builds werden übrigens wöchentlich aktualisiert und beinhalten zusätzlich auch die neuesten Feed-Updates.

Um Docker, Container, Images und Co besser im Blick zu behalten, verweise ich an dieser Stelle auf Lazydocker. Das Tool bietet einen grafischen Überblick, über alle aktiven und inaktiven Docker Komponenten.

 

Security Distributionen: Kali Linux 2021.2, NST 34, Parrot OS 4.11

Nachdem ich die letzte Release-Runde ausgelassen hatte, möchte ich die aktuelle wieder mitnehmen und ein paar Worte über Kali Linux, NST und Parrot verlieren.

Kali Linux 2021.2

kali

Das neueste Release stellt einen Mix aus Verbesserungen des vorhandenen Systems und der Einführungen einiger Neuerungen dar.

Kaboxer

Das CLI Tool soll in Zukunft eine Paketierung von Programmen mit vielen Abhängigkeiten erleichtern. Dazu werden Kaboxer/Docker Images erstellt. Alles, was es dazu braucht, ist einen Nutzer, welcher Mitglied in der Kaboxer/Docker Gruppe ist, ein Dockerfile und eine kaboxer.yaml.

Damit lassen sich nun Images bauen, welche die gewünschten Abhängigkeiten enthalten. Auch eine Einbindung in das Kali Startmenü ist zum Beispiel möglich. Hier ein grobes Beispiel.

Dockerfile erstellen

FROM debian:stable-slim
RUN apt update && apt install -y \
    python3 \
    python3-prompt-toolkit
COPY ./hello /usr/bin/hello
RUN mkdir /kaboxer \
 && hello version > /kaboxer/version

kaboxer.yaml erstellen

application:
  id: hello-cli
  name: Hello World for Kaboxer (CLI)
  description: >
    hello-kbx is the hello-world application demonstrator for Kaboxer
packaging:
  revision: 1
components:
  default:
    run_mode: cli
    executable: /usr/bin/hello cli

builden

kaboxer build hello-cli

ausführen

kaboxer run hello-cli

Weitere Details findet ihr unter packaging-apps-with-kaboxer.

Fazit

Ein praktisches Tool, welches sicherlich das Tool Spektrum der Distribution erweitern wird.

Auch wenn beispielsweise Greenbone Vulnerability Management bereits mit Kali ausgeliefert wird, würde sich dieses Tool sehr gut für einen Kaboxer Container eignen.

Drei Tools bringt Kali Linux bereits auf diese Weise mit:

  • Covenant - Daemon using server/client network model

Kali Tweaks

Eine weitere Neuerung sind Kali Tweaks. Diese erlauben es das System auf die eigenen Bedürfnisse besser anzupassen. So lassen sich damit Repositorys verwalten, Virtualisierungseinstellungen anpassen oder Metapakete installieren.
Auch hierzu haben die Entwickler einen eigenen Artikel angelegt.

Sonstiges

Die restlichen Meldungen beziehen sich auf die Unterstützung neuer Systeme wie Raspberry Pi 400 oder den Support von Nethunter für Android 11. Für ersteres gibt es nun mit kalipi-config eine eigene Config Oberfläche speziell für Kali Linux.

Neben den kosmetischen Anpassungen wurden ebenfalls neue Tools integriert. So ist unter anderem das Reverse Engineering Tool Ghidra und Visual Studio (OSS) Code mit an Bord oder der Webserver Verzeichnis Scanner Dirsearch, sowie Cloudbrute für eine Dateisuche in der Cloud.

Alle Neuerungen, Tools und Co finden sich ebenfalls im Release Log.

Download


NST 34

nst

Das Network Security Toolkit hat ebenfalls ein Update auf eine neue Version erhalten.

Bei der Fedora basierten Distribution halten sich die Neuerungen in Grenzen. Die Weboberfläche NST WUI bindet nun lft (Layer-4 Traceroute) und Ntopng REST API ein. Der Verzeichnisscanner dirble beherrscht nun die Ausgabe in Tabellenform. Das alles läuft auf dem Linux Kernel 5.12.10.

Weitere Änderungen können direkt im Changelog nachgelesen werden.

Download


Parrot OS 4.11.2

parrot

Der Vollständigkeit halber sei hier noch das Release vom März erwähnt, welches einen neuen Kernel 5.10 und viele Updates auf der Tooling Seite erhalten hat. Auch hier lässt sich alles im Release Log nach recherchieren.

Download



Übersicht 06/2021

 

Name Version Tools Besonderes Basis GUI
Autopsy 4.18 ??? The Sleuth Kit Windows  
BackBox 7.0 100+ AWS Ubuntu Xfce
BlackArch 2020.12.01 1750+ ArchLinux ArchLinux Multi
CAINE 11 100+ WinUFO Ubuntu Mate
DracOS 3.0   veraltet LFS DWM
DEFT Zero 2018.2   offline Lubuntu 14.04 Lxde
Kali Linux 2021.01 300+ ARM Images Debian Testing Multi
Kali AppStore   40+   Android  
LionSec 5.0   veraltet Ubuntu  
Matriux v3 RC1   offline Debian Gnome
NST 34 ??? Server integriert Fedora  
NetSecL OS 6.0   veraltet OpenSuse Lxde
Paladin 7.0     Ubuntu  
Parrot OS 4.11.2 700+ Cloud fähig Debian Buster MATE/KDE
Pentoo 2018.0 RC7.1   veraltet Gentoo Xfce
Ronin     veraltet Lubuntu Lxde
Sans SIFT 3.0   veraltet Ubuntu  

BlackArch Linux 2020.12.01 und Kali Linux 2020.4

BlackArch Linux 2020.12.01

Das auf Arch Linux basierende Sicherheitswerkzeug enthält nun den Linux-Kernel 5.9.11, aktualisierte Pakete, Konfigurationsdateien und Werkzeuge. Außerdem wurden mehr als 100 neue Hacking-Tools hinzugefügt, sodass sich die Gesamtzahl der Tools in BlackArch auf  über 2000 beläuft.

 

blackarch

Weitere Information beinhaltet der Changelog

  • added more than 100 new tools
  • renamed 'live iso' to 'full iso'
  • updated blackarch-installer to v1.2.16
  • included linux kernel 5.9.11
  • adapted ISO creation to the new archiso version (work in progress)
  • removed unnecessary files from the ISO env
  • QA'ed and fixed a lot of packages (runtime exec, missing dependencies...)
  • updated all vim plugins and improved vim config options
  • updated all blackarch tools and packages including config files
  • updated all system packages
  • updated all window manager menus (awesome, fluxbox, openbox)

BlackArch


Kali Linux 2020.4

Der Platzhirsch hat ebenfalls geliefert und bringt die ZSH Shell für alle, die das Schweizer Messer frisch installieren. Das BASH Terminal hat in diesem Zuge auch ein Makerover erhalten und sieht nun etwas mehr nach ZSH aus.

Kali_Linux

Wer mit ZSH so gar nicht auf einen grünen Zweig kommt, es gibt einen Weg zurück zu BASH:

chsh -s /bin/bash

Zusätzlich hat die Kommandozeile einen neuen Infobereich erhalten, welcher sich je nach Installationsart anders präsentiert.

 

Win-KeX 2.5, der Windows Modus für WSL2 bringt den neuen “Enhanced Session Mode”, was Win-KeX auf Windows on ARM Geräten ermöglicht.

Dieses Feature wird in Zukunft relevanter werden, da Microsoft nun mit Surface X auch ARM Geräte im Portfolio hat. Solange aber WSL2 nicht richtig zusammen mit VirtualBox und Co funktioniert, ist dies weiterhin experimentell. (Siehe ITrig Artikel)

Die Kali-Dokumentation wurde schon vor einiger Zeit von WordPress zu Hugo migriert und ist unter kali.org/docs zu finden. Das Design wurde hier weiter angepasst.

Bei den Tools haben sich ebenfalls einige Neuzugänge eingeschlichen: Apple bleee, CertGraph, dnscat2, FinalRecon, goDoH, hostapd-mana, Metasploit Framework v6 und Whatmask

Weitere Änderungen können dem Changelog entnommen werden.

Download Kali



Übersicht 12/2020

 

Name Version Tools Besonderes Basis GUI
Autopsy 4.17.0 ??? The Sleuth Kit Windows  
BackBox 7.0 100+ AWS Ubuntu Xfce
BlackArch 2020.12.01 1750+ ArchLinux ArchLinux Multi
CAINE 11 100+ WinUFO Ubuntu Mate
DracOS 3.0   veraltet LFS DWM
DEFT Zero 2018.2   offline Lubuntu 14.04 Lxde
Kali Linux 2020.04 300+ ARM Images Debian Testing Multi
Kali AppStore   40+   Android  
LionSec 5.0   veraltet Ubuntu  
Matriux v3 RC1   offline Debian Gnome
NST 32 ??? Server integriert Fedora 32  
NetSecL OS 6.0   veraltet OpenSuse Lxde
Paladin 7.0     Ubuntu  
Parrot OS 4.10 700+ Cloud fähig Debian Buster MATE/KDE
Pentoo 2018.0 RC7.1   veraltet Gentoo Xfce
Ronin     veraltet Lubuntu Lxde
Sans SIFT 3.0   veraltet Ubuntu  

Lösung: Monero Wallet konnte nicht geöffnet werden std::bad_alloc

Dieser Bitcoin wird ja gerade wieder durchs Dorf gejagt, somit lohnt sich auch wieder ein Blick ins Monero Wallet dachte ich mir, allerdings erhielt ich beim Öffnen diesen feinen Fehler:

Wallet konnte nicht geöffnet werden std::bad_alloc bzw. "Couldn't open wallet: std::bad_alloc"

Monero

„Alles weg?“, geht einem fix durch den Kopf, muss aber nicht. Denn die GUI, welche seit Jahren auf einer Platte schlummerte, war einfach total veraltet.

Mit einer aktuellen GUI Version (0.17.1.6) von getmonero lief dann alles wieder wie geschmiert.

 

KeePass oder KeePassX Datenbank Passwort auf Sicherheit testen

Heute will ich mich dem Thema Passwortsicherheit widmen.

Passwörter verwaltet der Kenner nicht nur im Browser oder in der Cloud, sondern im Idealfall lokal.

Unter Windows kommt hier oft KeePass zum Einsatz, unter Ubuntu Desktop häufig KeePassX. Hierbei handelt es sich um Programme zur Kennwortverwaltung.
Beide Tools sichern den Passworttresor mit einem Masterpasswort, welches der Nutzer selbst vergeben kann.

hashcat-keepass-pw

Ich will hier kurz demonstrieren, wie dieses Hauptpasswort auf Sicherheit getestet werden kann. Immerhin enthält es im Normalfall alle eure Zugangsdaten.

KeePass oder KeePassX Passwort knacken ?!

Für das Testen der Passwortsicherheit werden relativ wenige Tools benötigt, eines davon ist Hashcat, welches unter Ubuntu in den Repositories enthalten ist.

Da ich gerade kein funktionales Ubuntu zur Hand habe, sondern unter Windows arbeite, verwende ich einfach das Windows Subsystem for Linux. Dieses kann über die Windows Powershell installiert werden.

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Danach kann Hashcat direkt über die Ubuntu Konsole installiert werden. Da für diesen Test nicht die allerneueste Version benötigt wird, kann die Version aus dem Paketmanager installiert werden.

sudo apt-get install hashcat

Nach der Installation lässt sich prüfen, wie hashcat auf eurem Rechner performed.

sudo hashcat --benchmark

hashcat-keepassSollte es zu Fehler kommen, kann ein weiterer Parameter angehangen werden und ihr erhaltet die erwartete Hashrate zum "Knacken" des Passworts.

sudo hashcat --benchmark --force

Eine leistungsstarke Nvidia Grafikkarte ist von Vorteil.

Nachdem dies erledigt ist, wird der Hash des Masterpassworts der KeePass Datenbank benötigt. Dafür gibt es einige Scripte, ich habe mich für keepass2john.py entschieden.

Da ich den Test unter Windows Wsl mache, platziere ich dieses Script und die dazugehörige KDBX Datenbank unter \\wsl$\Ubuntu-18.04\home\profilname und kann somit über Windows unter Ubuntu darauf zugreifen.

Das Script wird nun wie folgt ausgeführt

python keepass2john.py database.kdbx

Ihr erhaltet einen Hashwert, welcher noch etwas nachbearbeitet werden sollte.

Database:$keepass$*2*60000*222*1fa5e92ef046202f54d3a675466be38fb61cdaff21ab367a170eadf4e8f378ae0ee4c1f175

Der Text hinter Database: "$keepass$*2*60000*222*1fa5e92efa4...." wird nun in eine Textdatei keepass.txt kopiert, um sie weiterverarbeiten zu können.

Im nächsten Schritt kann mit Hashcat quasi das Passwort erraten werden, allerdings muss zunächst die richtige Methode gewählt und eine Wortliste besorgt werden. Hashcat bringt bereits die gängigsten Methoden mit, diese müssen nur angegeben werden.

hashcat --help | grep -i "KeePass"
    13400 | KeePass 1 (AES/Twofish) and KeePass 2 (AES)      | Password Managers

   
Im letzten Schritt wird nun eine Passwortliste benötigt, welche für das "Durchprobieren" von Passwörtern verwendet wird.

wget hxxp://downloads.skullsecurity.org/passwords/rockyou.txt.bz2
bunzip2 rockyou.txt.bz2

Die RockYou Liste ist eine bekannte Liste aus dem Jahr 2009 mit ca. 32 Millionen unverschlüsselten Passwörtern.

hashcat

Der Vorgang kann jetzt endgültig gestartet werden.

Der Startbefehl besteht aus Methode (KeePass) und Angriffsmodus (0 -> Wörterbuch)
 

sudo hashcat --force -a 0 -m 13400 keepass.txt rockyou.txt

    Dictionary cache built:
    * Filename..: rockyou.txt
    * Passwords.: 14344391
    * Bytes.....: 139921497
    * Keyspace..: 14344384
    * Runtime...: 2 secs

    - Device #1: autotuned kernel-accel to 128
    - Device #1: autotuned kernel-loops to 256
    [s]tatus [p]ause [r]esume [b]ypass [c]heckpoint [q]uit => [s]tatus [p]ause [r]esume [b]ypass [c]heckpoint [q]uit =>

Mit der "Taste s" kann jederzeit der aktuelle Status abgerufen werden.

    Session..........: hashcat
    Status...........: Running
    Hash.Type........: KeePass 1 (AES/Twofish) and KeePass 2 (AES)
    Hash.Target......: $keepass$*2*60000*222*1fa5e92efa4e5597faf8204900122...c1f175
    Time.Started.....: Fri Mar 20 12:04:53 2020 (49 secs)
    Time.Estimated...: Sat Mar 21 06:51:14 2020 (18 hours, 45 mins)
    Guess.Base.......: File (rockyou.txt)
    Guess.Queue......: 1/1 (100.00%)
    Speed.Dev.#1.....:      212 H/s (10.04ms)
    Recovered........: 0/1 (0.00%) Digests, 0/1 (0.00%) Salts
    Progress.........: 10240/14344384 (0.07%)
    Rejected.........: 0/10240 (0.00%)
    Restore.Point....: 10240/14344384 (0.07%)
    Candidates.#1....: vivien -> bimbim
    HWMon.Dev.#1.....: N/A

   
Nun heißt es warten, je nach Leistung der CPU oder GPU kann dies dauern. Da aber viele gerade massig Zeit zur Verfügung haben, sollte dies kein Problem sein.

Gerne könnt ihr weitere Methoden ausprobieren oder andere Listen verwenden, da habt ihr freie Wahl. Im Hashcat Wiki findet ihr jede Menge Anleitungen zu dieser Thematik.