Skip to content

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.

Sicher durch den Winter mit Kali Linux 2019.4, CAINE 11 und Parrot 4.7

Kali Linux 2019.4

Zum Jahresausklang haben die Entwickler von Kali Linux noch einmal Gas gegeben.
Das neue Release wurde auf Xfce umgestellt, somit sollten Performance Probleme hoffentlich der Vergangenheit angehören. 

Außerdem wurde ein Undercover Modus eingeführt, welcher Kali wie Windows aussehen lässt. Der Windows Modus soll für weniger Aufmerksamkeit beim Arbeiten in der Öffentlichkeit sorgen, nette Spielerei.

Die Dokumentation wurde auf Gitlab migriert und steht in Markdown zur Verfügung.

Für Entwickler, die ihre Tools im Kali Repository pflegen gibt es in der Dokumentation eine Anleitung wie sie neue Pakete einreichen können.

Manche werden sie vermisst haben, andere nicht, die Powershell ist auf Kali Linux angekommen und kann einfach installiert werden

sudo apt install powershell
pwsh

kali-powershell

NetHunter Kex

Eine weitere Neuerung ist Nethunter Kex. Systeme mit Nethunter können nun an HDMI Geräte angeschlossen werden. Kurz gesagt mit dem Handy ein Kali Linux auf dem Fernseher darstellen.

Die Entwickler scheinen zumindest begeistert von der Vorstellung sein Kali immer in der Hosentasche zu haben

Raspberry Pi

Freunde von ARM Computern müssen sich spätestens nächstes Jahr umstellen, da ab 2020 nur noch 16GB SD Karten unterstützt werden.

kali-undercover

Download Kali

CAINE 11

Wurmloch wurde das aktuelle Release des Computer Aided INvestigative Environment getauft.

Die neue Version bootet automatisch komplett im Lesemodus.
Hauptsächlich wurden Tools wie OSINT oder Autopsy 4.13 erneuert und hinzugefügt

  • SCRCPY - screen your Android device
  • X11VNC Server - to control CAINE remotely
  • Hashcat. New scripts (in the Forensics Tools - Analysis menu)
  • AutoMacTc - a forensics tool for Mac. Bitlocker - volatility plugin
  • Autotimeliner - automagically extract forensic timeline from volatile memory dumps
  • Firmwalker - firmware analyzer. CDQR - Cold Disk Quick Response tool
  • CDQR - Cold Disk Quick Response tool

Die Distribution bringt ebenfalls Windows Tools mit, diese wurden selbstverständlich auch erweitert.

caine

Parrot 4.7

Der Papagei hat bereits im September ein Update erhalten, dieses soll aber nicht unerwähnt bleiben.

So wurde das Menü neu strukturiert, der Kernel auf 5.2 angehoben und MATE auf 1.22 aktualisiert.

Außerdem wird in Zukunft die Domain parrotlinux.org als offizielle Adresse verwendet.

parrot


Übersicht 12/2019

 

Name Version Tools Besonderes Basis GUI
Autopsy 4.13.0 ??? The Sleuth Kit Windows  
BackBox 6.0 100+ AWS Ubuntu Xfce
BlackArch 2019.09.01 1750+ ArchLinux ArchLinux Gnome
CAINE 11 100+ WinUFO Ubuntu Mate
DracOS 3.0 100+ CLI LFS DWM
DEFT Zero 2018.2 250+ Mac Support Lubuntu 14.04 Lxde
Kali Linux 2019.4 300+ ARM fähig Debian Testing Multi
Kali App Store   20+   Android  
LionSec 5.0 ??? 3 Jahre alt Ubuntu  
Matriux v3 RC1 300+ out of date Debian Gnome
NST 28 ??? Server integriert Fedora  
NetSecL OS 6.0 50+   OpenSuse Lxde
Paladin 7.0 30+   Ubuntu  
Parrot Sec 4.7 700+ Cloud fähig Debian Buster MATE/KDE
Pentoo 2018.0 RC7.1 ??? 64bit Gentoo Xfce
Ronin   150+ out of date Lubuntu Lxde
Sans SIFT 3.0 20+   Ubuntu  

 

Cheat.sh - Linux und Programmiersprachen Cheatsheet für die Kommandozeile

Das klassische Cheatsheet besteht meistens aus einer Sammlung von Befehlen oder Hilfestellungen, die auf einer DIN A4 Seite zusammengefasst werden.
Solche Spickzettel können auf dem Rechner als PDF abgelegt werden oder im Büro ausgedruckt einen Platz an der Wand finden.

Cheat.sh

Cheat.sh geht hier einen anderen Weg und holt den Nutzer da ab wo er ist, auf der Kommandozeile.

Mit dem Tool können via curl einfache Hilfestellungen zu Kommandozeilenbefehlen, Programmiersprachen oder Datenbanken abgerufen werden.
Anders als beispielsweise die man pages, stellt cheat.sh einfache Beispiele zur gesuchten Abfrage dar.

cheatsheet

Zur Nutzung muss das Tool nicht zwingend installiert werden, eine Verbindung zum Internet reicht völlig aus.

Einen Linux Befehl abrufen, hier am Beispiel von tar.

curl cheat.sh/tar

# tar
# Archiving utility.
# Often combined with a compression method, such as gzip or bzip.
# More information: <https://www.gnu.org/software/tar>.

# Create an archive from files:
tar cf target.tar file1 file2 file3

# Create a gzipped archive:
tar czf target.tar.gz file1 file2 file3

# Extract a (compressed) archive into the current directory:
tar xf source.tar[.gz|.bz2|.xz]

# Extract an archive into a target directory:
tar xf source.tar -C directory

# Create a compressed archive, using archive suffix to determine the compression program:
tar caf target.tar.xz file1 file2 file3

# List the contents of a tar file:
tar tvf source.tar

# Extract files matching a pattern:
tar xf source.tar --wildcards "*.html"


Nach einem bestimmten Begriff suchen, am Beispiel von Docker.

curl cheat.sh/~docker


Eine Programmiersprache lernen, in diesem Fall Python.

curl cheat.sh/python/:learn

Übersicht

curl cheat.sh

cheatsh

Die Github Seite des Projektes verrät mehr über den riesen Umfang des Cheatsheet.

Installation von Cheat.sh (global)

Natürlich lässt sich das Tool auch direkt auf dem System installieren bzw. hosten (dazu wird allerdings Docker benötigt).

Der Dienst cheat.sh hat einen eigenen Kommandozeilen-Client (cht.sh), der im Vergleich zur direkten Abfrage mit curl mehrere nützliche Funktionen bietet:

  • Spezieller Shell-Modus mit persistentem Abfragekontext und Readline-Unterstützung
  • Abfrage der Historie
  • Integration der Zwischenablage
  • Unterstützung der Tabulatorvervollständigung für Shells (bash, fish, zsh)
  • Stealth-Modus

Eine Installation ist schnell erledigt.

sudo apt install rlwrap
curl https://cht.sh/:cht.sh | sudo tee /usr/local/bin/cht.sh
sudo chmod +x /usr/local/bin/cht.sh

Nach einer Installation kann cht.sh anstatt curl verwendet werden und es ergeben sich die oben erwähnten Möglichkeiten.

cht.sh-shell

Einbindungen in den Editor

Cheat.sh unterstützt momentan die Einbindung in die Editoren wie Emacs, Sublime, Vim und Visual Studio Code.

Eine Anleitung findet ihr ebenfalls auf Github.

Cheat.sh und Windows

Sogar Windows wird von dem kleinen Tool bedient. Dazu ist eine Exe notwendig, die ihr hier findet.

Fazit

Perfektes Tool für das schnelle Nachschlagen eines Befehls, ohne das Terminal verlassen zu müssen.

Das Cheatsheet ist sicher nicht neu und besteht bereits seit 2017, allerdings hat sich seither viel getan.

Cheat.sh unterstützt ca. 1000 Linux Befehle und 56 Programmiersprachen.

Kali Linux Tools unter Ubuntu 16.04 LTS , 18.04 LTS nutzen

Um Kali Linux Tools nutzen zu können muss nicht zwingend eine Kali Linux Installation vorliegen.
Das Python Script Katoolin erlaubt es die ca. 300 Kali Anwendungen unter Debian basierten Distributionen zu verwenden.

Kali Linux Tools unter Ubuntu mit Katoolin

Die Installation ist denkbar einfach. Die Verwendung der Tools ist analog zu Kali Linux.

apt-get install git python

git clone https://github.com/LionSec/katoolin.git && cp katoolin/katoolin.py /usr/bin/katoolin

chmod +x  /usr/bin/katoolin

sudo katoolin

Danach stehen euch über ein Textmenü verschiedene Installation zur Verfügung. Hier können entweder alle Tools installiert oder einzelne herausgepickt werden.

katoolin
Hier am Beispiel aircrack-ng:

katoolin-aircrackngUm bei der Navigation wieder in das Hauptmenü zu gelangen muss "back" eingegeben werden. Beenden lässt sich Katoolin mit Strg+C.

Nutzer von Desktopsystemen können unter Punkt 4. ebenfalls ein extra Menü für die Toolsammlung installieren.


Fazit

Durch Katoolin wird die Installation vieler Tools stark vereinfacht, zusätzlich bleibt dem Nutzer das Aufsetzen einer anderen Distribution erspart.

 

Installation einer aktuellen Go Version auf Ubuntu

Go ist eine Open-Source Programmiersprache, welche von Google 2009 entwickelt wurde. Die Sprache ist bei vielen Anwendungen beliebt, darunter Docker oder Kubernetes. 

Nun ist eine neue Version 1.13 erschienen, welche neben Sicherheitsfeatures in den Standardeinstellungen auf TLS 1.3 setzt.
Module welche von den Go Servern geladen werden, sind nun durch eine Checksummenprüfung abgesichert.

Weitere Neuerungen verrät das Changelog

Doch wie kommt Go überhaupt auf das eigene System?

golang

Installation von Golang auf Ubuntu

Als erstes möchte ich die manuelle Installation betrachten.

Auf der Downloadseite muss zunächst nach der offiziellen Version gesucht werden.

wget https://dl.google.com/go/go1.13.linux-amd64.tar.gz

Nach dem Download sollte der Hashwert überprüft werden.

sha256sum go1.13.linux-amd64.tar.gz

    68a2297eb099d1a76097905a2ce334e3155004ec08cdea85f24527be3c48e856  go1.13.linux-amd64.tar.gz

Danach folgt das Entpacken, wobei ihr beim Pfad natürlich auch einen anderen verwenden könnt.

sudo tar -C /usr/local -xzf go1.13.linux-amd64.tar.gz

Nun den PATH anpassen und folgende Zeile unten anfügen.

sudo nano $HOME/.profile

    export PATH=$PATH:/usr/local/go/bin

Die neue PATH Variablen laden.

source ~/.profile

go-installation

Nun kann der finale Test erfolgen, wenn alles klappt solltet ihr folgendes Ergebnis sehen.

go

Go is a tool for managing Go source code.

Usage:

        go command [arguments]

The commands are:

        build       compile packages and dependencies
        clean       remove object files and cached files
        doc         show documentation for package or symbol
        env         print Go environment information
        bug         start a bug report
        fix         update packages to use new APIs
        fmt         gofmt (reformat) package sources
        generate    generate Go files by processing source
        get         download and install packages and dependencies
        install     compile and install packages and dependencies
        list        list packages
        run         compile and run Go program
        test        test packages
        tool        run specified go tool
        version     print Go version
        vet         report likely mistakes in packages

Use "go help [command]" for more information about a command.

 

Installation von Go via apt auf Ubuntu

Golang kann unter Ubuntu ebenfalls über den Paketmanager installiert werden. Dazu muss zunächst ein extra Repository hinzugefügt werden.

sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt update
sudo apt install golang-go

Jetzt könnt ihr euch mit Go austoben.

Im Netz findet ihr jede Menge Beispiele was damit möglich ist.
Zum Beispiel hier oder hier.

 

Ein eigenes Programm ist schnell geschrieben, dazu einfach folgende Schritte ausführen.

Ein neues Verzeichnis anlegen und eine erste Datei anlegen.

mkdir -p /home/user/hello
nano /home/user/hello/helloworld.go


        package main

        import "fmt"

             func main() {
                  fmt.Printf("Hello Go World \n")
             }

Datei builden und ausführen.

cd /home/user/hello

go build
./hello

    Hello Go World

Praktischerweise gibt es eine Online Spielwiese, die zum Probieren einlädt.

Es muss somit zunächst nicht zwingend auf der Kommandozeile gearbeitet werden.

The_Go_Playground

PS. Natürlich kann Golang auch über die vorhandenen Ubuntu Pakete mit sudo apt install golang installiert werden, allerdings erhaltet ihr hier nicht die aktuellste Version.