Skip to content

truffleHog3 – Passwörter und Zugangsdaten in Git, Github, Gitlab oder AWS finden und entfernen

Bereits im April dieses Jahres wurde Version 3 des Repository-Security-Tools Trufflehog veröffentlicht. Zeit, einen eigenen Artikel über das bekannte Kali Tool zu verfassen.

Was ist Trufflehog

Leaked credentials oder secret keys sollten nicht in Github Repositorys zu finden sein, dennoch passiert dies öfters als gedacht. Genau hier setzt das Tool truffleHog3 an, es scannt Repositorys und mehr auf Geheimnisse wie Zugangsdaten, API Keys usw.

Das Security-Tool durchläuft dabei die gesamte Commit-Historie jedes Branches, prüft jedes diff von jedem commit und sucht nach Geheimnissen.

Möglich wird dies unter anderem durch die Verwendung von regulären Ausdrücken und Entropie.

Mit der Version 3 unterstützt truffleHog inzwischen mehr als 700 verschiedene Key Types von AWS, Azure, Confluent oder Facebook. Eine Übersicht der Detektoren ist hier zu finden.

Folgende Code Quellen werden momentan unterstützt:

  • git
  • github
  • gitlab
  • S3
  • filesystem
  • syslog

Installation

Die Trufflehog Installation erfordert eine funktionierende GO Installation. Alternativ kann auch auf Python Pip zurückgegriffen werden, allerdings wird via Pip momentan keine aktuelle Version angeboten. Für einen Test bietet sich die Docker Variante an.

#Aktuellste Version
git clone https://github.com/trufflesecurity/trufflehog.git
cd trufflehog
go install oder go build

#Via Python Pip (allerdings steht hier nur Version 3.0.x zur Verfügung)
pip3 install trufflehog3

#Die aktuellste Version via Docker Paket laufen lassen

docker run -it -v "$PWD:/pwd" trufflesecurity/trufflehog:latest github --org=trufflesecurity

Anwendungsbeispiele

#Hilfe
trufflehog --help

#github scan mit Optionen
trufflehog github --repo=https://github.com/trufflesecurity/trufflehog

trufflehog github --repo=https://github.com/trufflesecurity/trufflehog --json --only-verified

#AWS scan
trufflehog s3 --bucket=<bucket name> --only-verified

#Dateisystem
trufflehog filesystem --directory=/home/guenny/ansible/repository

Da die aktuellste Version momentan nur via Source/Docker zur Verfügung steht, können Gitlab, S3 und Co nur darüber gescannt werden

  git [<flags>] <uri>
    Find credentials in git repositories.

  github [<flags>]
    Find credentials in GitHub repositories.

  gitlab --token=TOKEN [<flags>]
    Find credentials in GitLab repositories.

  filesystem --directory=DIRECTORY
    Find credentials in a filesystem.

  s3 [<flags>]
    Find credentials in S3 buckets.

  syslog [<flags>]
    Scan syslog

trufflehog


Passwörter und andere Geheimnisse aus Git-Repositories entfernen

Was tun, wenn ein Passwort gefunden wurde?

Git Filter Branch bietet eine Möglichkeit, um dieses Problem zu beheben.

Beispielsweise:

git filter-branch --prune-empty --index-filter "git rm --cached -f --ignore-unmatch löschdatei" -- --all

Git Filter Branch ist ein sehr mächtiges Tool, daher verweist Github selbst auf den BFG Repo Cleaner und git filter-Repo

Mit ersterem lassen sich relativ einfach sensitive Dateien löschen oder ersetzen.

bfg --delete-files id_{dsa,rsa}  my-repo.git
bfg --replace-text passwords.txt  my-repo.git
git push --force

Wenn ein Passwort im letzten Commit vorhanden ist, würde übrigens auch amend ausreichen:

git commit --amend

Fazit

Vergessene Zugangsdaten in Repositorys schaffen unnötige Sicherheitslücken. Diese lassen sich mit TruffleHog einfach aufspüren. Das Tool unterstützt inzwischen weit mehr als nur Github. So lässt sich der gesamte Software Development Life Cycle/SDLC bei Bedarf überwachen.

Mit TruffleHog Enterprise bietet der Hersteller inzwischen eine GUI in der Cloud an, allerdings lässt er sich diese auch bezahlen. Für eine automatisierte Überwachung der eigenen Repositorys lassen sich alle Aufgaben via Kommandozeile erledigen.

Download



Ähnliche Artikel

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

Nuclei - schneller Schwachstellen Scanner mit praktischen Vorlagen

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

Shellclear - History automatisch auf sensible Inhalte untersuchen

Das kleine Tool shellclear automatisiert das Überprüfen der Shell History auf sensible Inhalte wie Passwörter oder Zugangstoken.

shellclear

Unterstützt werden Shells wie Bash, Zsh, PowerShell und Fish. Das Tool greift auf ein Pattern-File zurück, welches beliebig erweitert werden kann.

Beim Start der Shell werden die Inhalte der History automatisch über dieses YAML-Pattern-File auf Passwörter und Token geprüft.

Sind sensible Inhalte vorhanden, werden diese gelistet und können gelöscht werden.

Momentan wird auf AWS Access Keys, Github Tokens, Gitlab Tokens, Slack, Cloudflare, Twitter, Facebook und vieles mehr getestet.

Installation

curl -sS https://raw.githubusercontent.com/rusty-ferris-club/shellclear/main/install/install.sh | bash

Einbinden in die Shell

nano ~/.bashrc
eval $(shellclear --init-shell)

bzw. 

nano ~/.zshrc
eval $(shellclear --init-shell)

Powershell

$PROFILE

Invoke-Expression (&shellclear --init-shell)

Fish

nano ~/.config/fish/config.fish

shellclear --init-shell | source

shellclear-findings

Verwendung

Durch das Einbinden in beispielsweise Zsh oder Bash prüft shellclear bei jedem Start automatisch auf sensible Inhalte in der History. Dieser Vorgang kann zusätzlich manuell gestartet und konfiguriert werden. Auch das Banner "your shell is clean from sensitive data" lässt sich ausblenden.

#sensible Inhalte suchen
shellclear find

#sensible Inhalte als Tabelle ausgeben
shellclear find --format table

#sensible Inhalte bereinigen
shellclear clear

#banner ausblenden
shellclear --no-banner

#eigene Config festlegen
shellclear config

#history verstecken
shellclear stash

Fazit

Kleiner Helfer für den Alltag, der tut, was er soll. Dank des YAML Formats ist das Tool beliebig erweiterbar. Abgesehen davon sind die größten Cloud-Firmen bereits integriert und das Tool erfüllt im Hintergrund seinen Zweck.

MERGE: PostgreSQL 14 Cluster auf PostgreSQL 15 aktualisieren

Wie jedes Jahr im Herbst wurde auch 2022 eine neue PostgreSQL Version veröffentlicht.

postgres_logo

Zu den größten Neuerungen von Version 15 zählt sicherlich die Einführung des MERGE Befehls. Zusätzlich wurde die logische Replikation um das Filtern nach Zeilen erweitert. Ebenfalls erwähnenswert ist die Einführung von zstd. Der Datenkompressionsalgorithmus aus dem Hause Facebook spart Zeit und Plattenplatz.

Alle Neuerungen lassen sich dem Release Log entnehmen.

Installation und Update auf PostgreSQL 15 unter Debian/Ubuntu

# Create the file repository configuration:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

# Import the repository signing key:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

# Update the package lists:
sudo apt-get update

# Install the latest version of PostgreSQL.
sudo apt-get -y install postgresql-15

# Sicherung erstellen
sudo su postgres
pg_dumpall > Sicherung
exit

#Vorhandene Cluster anzeigen
pg_lsclusters

#Neues Cluster anhalten
sudo pg_dropcluster --stop 15 main

#Vorhandenes Cluster aktualisieren
sudo pg_upgradecluster 14 main

# Neues Cluster prüfen
sudo pg_ctlcluster 15 main status
sudo pg_isready

#Altes Cluster verwerfen
sudo pg_dropcluster 14 main

Security Distributionen: NST 36, Parrot 5.1 und Kali 2022.3

Nach einigen Releases sollte die Security Distributionen Liste mal wieder auf einen aktuellen Stand gebracht werden.

NST 36

Das Network Security Toolkit hat ein Service Release erhalten. Das Toolkit basiert auf Fedora 36 mit kernel-5.18.10-200.fc36.x86_64.

NST

In der neuen Version wurden hauptsächlich Verbesserungen am Webbased User Interface vorgenommen. OpenVAS läuft nun als Podman Container. Der NST WUI ARP Scan besitzt eine RTT Spalte und die Netzwerkkarte kann jetzt direkt im Widget ausgewählt werden.

Im Großen und Ganzen handelt es sich hier um ein Service Release.

 

Download


Parrot 5.1

Nach 6 Monaten hat Parrot Security seine erstes Servicerelease mit dem Kernel 5.18 veröffentlicht.

Parrot_LogoEines der bekannten Parrot Tools AnonSurf, welches Traffic durch das Tor Netzwerk schleust, hat ein Update auf Version 4 erhalten. Die neue Oberfläche unterstützt jetzt Debian Systeme, die das alte resolvconf setup nicht unterstützen.

Die IoT Version wurde ebenfalls überarbeitet und hat endlich Wifi Unterstützung für Raspberry Pi 400 erhalten. Weitere IoT Änderungen sind enthalten. Als Schmankerl gibt es den MATE Desktop für alle ARM Nutzer.

 

Download


Kali Linux 2022.3

Der Platzhirsch soll in diesem Update natürlich nicht fehlen, auch wenn die Version bereits im August veröffentlicht wurde.

Kali-dragon

Die wichtigsten Neuerungen sind hier eher in der Peripherie zu sehen, denn Kali hat nun einen Discord Server (https://discord.kali.org), was vielen den Einstieg erleichtern dürfte.

Ebenfalls interessant für neue PentesterInnen dürfte das Labor Paket kali-linux-labs sein. Dort sind DVWA - Damn Vulnerable Web Application und Juice Shop - OWASP Juice Shop zum Üben enthalten. Happy Hacking.

Auch die mobile Kali-Variante NetHunter hat ein größeres Update erhalten und kommt der vollen Android 12 Unterstützung immer näher.

Schlussendlich fehlt noch das übliche Tools-Update:

  • BruteSharkKleines aber feines Network Forensic Analysis Tool (NFAT) mit GUI
  • DefectDojo – Von diesem Tool liest man in letzter Zeit immer öfters, damit lassen sich Schwachstellen verwalten und an Systeme wie Jira oder Slack pushen
  • phpsploit – Klassisches C2 Stealth post-exploitation remote control framework
  • shellfire - Exploiting Shell für Local File Inclusion (LFI), Remote File Intrution (RFI), SSTI (Server Side Template Injection) und weitere command injection vulnerabilities
  • SprayingToolkit – Python Password spraying attacks für Lync/S4B, OWA and O365

 

Download


Übersicht 10/22

 

Was bedeutet: WARNING apt does not have a stable CLI interface. Use with caution in scripts?

Beim Ausführen von Skripten auf einer Linux Konsole, die apt install beinhalten, taucht folgende Meldung auf: 

WARNING : apt does not have a stable CLI interface. Use with caution in scripts.

Doch warum wird eine Warnung angezeigt? Die Lösung ist relativ simpel.

Vor Jahren hatte ich mal eine Übersicht von apt vs. apt-get veröffentlicht. Ich habe sie euch unten noch einmal eingebunden.
Im Artikel ist zu lesen, dass apt unter anderem einen grafischen Fortschrittsbalken ausgibt.

Genau das ist einer der Gründe, warum das Kommandozeilentool bei der Verwendung in Scripten ein WARNING meldet. Denn diese Fortschritts-Ausgabe kann von Scripten fehlerhaft interpretiert werden und ist im Prinzip nur für Endnutzer gemacht, aber nicht wirklich für Skripte. Darum sollte hier eher auf apt-get zurückgegriffen werden.

Gleiches gilt übrigens auch für apt show programm-name. Hier sollte besser apt-cache show programm-name verwendet werden.

apt vs. apt-get
apt Kommando apt-get Kommando Funktion
apt install apt-get install Pakete installieren
apt remove apt-get remove Pakete deinstallieren
apt list --upgradable -- Anstehende Updates anzeigen
apt list dpkg list Pakete auflisten
apt purge apt-get purge Pakete und Konfiguration entfernen
apt update apt-get update Repository aktualisieren
apt upgrade apt-get upgrade Anstehende Pakete aktualisieren
apt full-upgrade apt-get dist-upgrade Anstehende Pakete aktualisieren und deinstallieren
apt autoremove apt-get autoremove Nicht benötigte Pakete deinstallieren
apt search apt-cache search Pakete suchen
apt show apt-cache show Paketdetails anzeigen
apt edit-sources -- sources.list editieren