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.

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.

Lösung: Firefox Fehler- sec_error_ocsp_future_response

Hin und wieder tauchen im Firefox "komische" Fehlermeldungen beim Aufrufen von Webseiten auf.

Da es durch die Zeitumstellung gerade ganz gut passt, gehe ich heute auf folgende Browser Fehlermeldung ein:

Secure Connection Failed

An error occurred during a connection to xyz.com. The OCSP response is not yet valid (contains a date in the future) Error code: SEC_ERROR_OCSP_FUTURE_RESPONSE

    The page you are trying to view cannot be shown because the authenticity of the received data could not be verified.
    Please contact the website owners to inform them of this problem. Alternatively, use the command found in the help menu to report this broken site.


Fehler: Gesicherte Verbindung fehlgeschlagen

Ein Fehler ist während einer Verbindung mit xyz.com aufgetreten. Die OCSP-Antwort ist noch nicht gültig (enthält ein Datum in der Zukunft). (Fehlercode: sec_error_ocsp_future_response)

     Die Website kann nicht angezeigt werden, da die Authentizität der erhaltenen Daten nicht verifiziert werden konnte.
     Kontaktieren Sie bitte den Inhaber der Website, um ihn über dieses Problem zu informieren.

 

Lösung sec_error_ocsp_future_response

Der Browser zeigt diesen Fehler beim Aufrufen einer Seite im Netz an, weil schlicht und einfach das Datum oder die Uhrzeit des Systems nicht stimmen.

Dies lässt sich bekanntermaßen einfach beheben.

Ein Aufrufen und Anpassen der Windows Zeit Einstellungen kann mit Start --> Ausführen --> ms-settings:dateandtime erfolgen.

Unter Ubuntu reicht ein sudo date --set="2019-10-27 19:35:59.990" auf der Konsole aus. Allerdings sollte hier ebenfalls an die BIOS Uhrzeit gedacht werden sudo hwclock --systohc.

Sec-error-ocsp-future-responseHelfen die richtigen Systemeinstellungen nicht dauerhaft, kann die BIOS Batterie eine Ursache sein und muss getauscht werden.

Es soll vorkommen, dass Zeiteinstellungen im System nicht angepasst werden dürfen.

Um Webseiten im Firefox dennoch aufrufen zu können, kann das bemängelte OCSP temporär abgeschaltet werden. Doch was ist das eigentlich?

OCSP Stapling

Die Wikipedia schreibt dazu:

Online Certificate Status Protocol stapling, formell bekannt als die TLS-Zertifikatsstatusabfrage-Erweiterung, ist ein alternativer Ansatz zum Online Certificate Status Protocol (OCSP) um den Gültigkeitsstatus von digitalen Zertifikaten nach X.509 zu prüfen.Es ermöglicht dem Zertifizierten, die Aufgabe der Zertifikatsvalidierung zu übernehmen, indem er eine von der Zertifizierungsstelle signierte OCSP-Antwort mit Zeitstempel an den ursprünglichen TLS-Handshake anhängt („stapling“). Dieses Verfahren verringert den Kommunikationsaufwand zwischen Clients und Zertifizierungsstellen deutlich.

OCSP Stapling im Firefox deaktivieren

Der oben erwähnte OCSP Aufruf kann im Firefox deaktiviert werden.

  1. Mozilla Firefox öffnen.
  2. In der Adressleiste about:config eingeben und Enter drücken.
  3. Nach security.ssl.enable_ocsp_stapling suchen.
  4. Den Wert auf false setzen.

HowTo - Einen eigenen SuperTuxKart Server im LAN aufsetzen und gegen Freunde zocken

Vor kurzem wurde eine neue SuperTuxKart Version veröffentlicht.

Wie schon aus der Beta bekannt war, bringt diese neue Version neben diversen Verbesserungen eine Netzwerkunterstützung mit.

Daneben sorgen ca. 20 Rennstrecken und verschiedene Spielmodi für Abwechslung. Der Funracer ist natürlich OpenSource und so hat jeder die Möglichkeit seinen eigenen Server zu betreiben.

Alle Infos findet ihr in den Release Notes.

SuperTuxKart1
Genau diese Netzwerkunterstützung will ich im Folgenden näher anschauen, denn für einen eigenen Server reicht bereits ein RaspberryPi aus.


Eigenen SuperTuxKart Server fürs LAN bauen

Als Basis dient ein Ubuntu 16.04 LTS oder ein Raspbian System, der Vorgang ist jeweils gleich.

Zunächst müssen ein paar Pakete installiert werden, damit der Build auch gelingt.

sudo apt-get install build-essential cmake libbluetooth-dev \
libcurl4-openssl-dev libenet-dev libfreetype6-dev libfribidi-dev \
libgl1-mesa-dev libglew-dev libjpeg-dev libogg-dev libopenal-dev libpng-dev \
libssl-dev libvorbis-dev libxrandr-dev libx11-dev nettle-dev pkg-config zlib1g-dev git subversion

Als nächstes werden die Installationsdateien auf das lokale System geladen.

cd /opt
sudo mkdir stk-code
sudo mkdir stk-asset
git clone https://github.com/supertuxkart/stk-code stk-code
svn co https://svn.code.sf.net/p/supertuxkart/code/stk-assets stk-assets

Der letzte Schritt kann etwas Zeit benötigen, da mehrere 100MB geladen werden müssen.

cd stk-code
sudo mkdir cmake_build
cd cmake_build/
sudo cmake .. -DSERVER_ONLY=ON
sudo make -j$(nproc)

Nun heißt es etwas warten, denn je nach CPU Leistung, kann dies etwas dauern...

stk-server

Schwups ist der fertige Server erstellt, ihr könnt ihn nun bereits ausprobieren oder systemweit mit sudo make install installieren.

Danach findet ihr den installierten Server unter /usr/local/bin/supertuxkart.


In unserem Fall starten wir den Server testweise direkt.

cd bin/

./supertuxkart --lan-server=test --network-console

stk-server-start

[info   ] GrandPrixManager: Loading Grand Prix files from ../../data/grandprix/
[info   ] GrandPrixManager: Loading Grand Prix files from /home/xyz/.local/share/supertuxkart/grandprix/
Fri Apr 26 20:25:41 2019 [info   ] STKHost: Host initialized.
Fri Apr 26 20:25:41 2019 [info   ] STKHost: Server port is 2759
Fri Apr 26 20:25:41 2019 [info   ] main: Creating a LAN server 'test'.
Fri Apr 26 20:25:41 2019 [info   ] ServerLobby: Reset server to initial state.
Fri Apr 26 20:25:41 2019 [info   ] ProtocolManager: A 11ServerLobby protocol has been started.
Fri Apr 26 20:25:41 2019 [info   ] STKHost: Listening has been started.

Nun solltet ihr darauf achten, dass der Port 2759 im lokalen Netz erreichbar ist und Firewalls diesen nicht blockieren.

Ebenfalls ist es wichtig lokal einen Servernamen beim Start anzugeben, da der Server sonst nicht startet.

Zusätzlich wird unter /opt/stk-code/.config/supertuxkart/config-0.10/server_config.xml beim ersten Start eine Konfigurationsdatei angelegt, dort können weitere Einstellungen gesetzt werden.

Für unseren Server muss hier Nichts weiter angepasst werden.

Alternativ könnt ihr eure eigene Konfigurationsdatei beim Start auch gleich mitgeben

supertuxkart --server-config=your_config.xml --network-console

Ob der Server läuft lässt sich mit einem einfachen netstat -lnp oder via ss -ln herausfinden (Artikel).

SuperTuxKart auf eigenen Server spielen

Um auf dem eigenen Server gegeneinander zu spielen, müsst ihr euch zunächst das Spiel installieren, dieses findet ihr hier.


Nach dem Start müssen folgende Schritte durchgeführt werden, um auf den eigenen Server zu gelangen,

stk-server-gui

stk-server-lan

stk-server-findstk-server-test-srv

Alternativ kann auch ein Server direkt aus dem Programm heraus erstellt werden und somit quasi mit jedem PC. Ein kleiner RapsberryPi ist allerdings um einiges praktischer.

Sollte ein STK Server übers Internet erreichbar sein, muss zusätzlich ein STK Account angelegt werden. Dieser Account muss beim Serverstart angegeben werden. Weitere Tipps finden sich hier.

supertuxkart --init-user --login=your_registered_name --password=your_password

Viel Spaß

 

Notepad++ (nicht Notepadqq) unter Ubuntu installieren und nutzen

Ob und wie sich das Tool Notepad++ unter Ubuntu nutzen lässt war vor Jahren schon einmal Thema auf ITrig. 

Damals hatte ich die freie Alternative Notepadqq empfohlen.

Mit der Einführung der Snap Apps und der Verwendung von wine-i386 steht nun das aus Windows bekannte Notepad++ unter Ubuntu zur Verfügung.

 

notepadplusplus

Seit Ubuntu 16.04 sind Snaps fester Systembestandteil, falls dennoch eine Installation nötig sein sollte, ist die mit folgendem Befehl möglich:

sudo apt-get install snapd 

Notepad++ unter Ubuntu installieren

Durch neue Paketformates kann der Notepad Klassiker nun unter Ubuntu verwendet werden.

sudo snap install notepad-plus-plus

Die Notepad++ Version entspricht der Windows Variante und bringt somit auch die gleichen Funktionen mit.

notepadplusplus-ubuntu-snap

Natürlich kann die oben erwähnte Alternative über den gleichen Weg installiert werden.

sudo snap install notepadqq