mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['', 'src/generic-methodologies-and-resources/pentesting-netw
This commit is contained in:
parent
382848ef1e
commit
74b3d151b0
@ -4,16 +4,16 @@
|
||||
|
||||
|
||||
|
||||
## Entdecken von Hosts von außen
|
||||
## Hosts von außen entdecken
|
||||
|
||||
Dies wird ein **kurzer Abschnitt** darüber sein, wie man **IPs, die antworten**, aus dem **Internet** findet.\
|
||||
In dieser Situation haben Sie einen **Bereich von IPs** (vielleicht sogar mehrere **Bereiche**) und Sie müssen nur herausfinden, **welche IPs antworten**.
|
||||
Dies ist ein **kurzer Abschnitt** darüber, wie man **IPs responding** aus dem **Internet** findet.\
|
||||
In diesem Fall hast du einen **scope of IPs** (vielleicht sogar mehrere **ranges**) und willst einfach herausfinden, **which IPs are responding**.
|
||||
|
||||
### 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).
|
||||
Dies ist der **einfachste** und **schnellste** Weg, um herauszufinden, ob ein Host online ist oder nicht.\
|
||||
Du kannst versuchen, einige **ICMP**-Pakete zu senden und **Antworten zu erwarten**. Der einfachste Weg ist, einfach eine **echo request** zu senden und auf die Antwort zu warten. Das kannst du mit einem einfachen `ping` oder mit `fping` für **ranges** durchführen.\
|
||||
Du kannst auch **nmap** verwenden, um andere Arten von ICMP-Paketen zu senden (das umgeht Filter gegen die üblichen ICMP echo request-response).
|
||||
```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,29 +21,29 @@ 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 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 benötigen, ist ein **schneller Port-Scanner** ([masscan](https://github.com/robertdavidgraham/masscan)) und eine Liste der **am häufigsten verwendeten Ports:**
|
||||
Es ist sehr häufig, dass alle Arten von ICMP-Paketen gefiltert werden. Dann ist das Einzige, was du tun kannst, um zu prüfen, ob ein host up ist, **versuchen, open ports zu finden**. Jeder host hat **65535 ports**, daher kannst du bei einem "großen" scope **nicht** testen, ob **jeder port** bei jedem host offen ist oder nicht, das würde zu viel Zeit in Anspruch nehmen.\
|
||||
Dann brauchst du einen **fast 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önnen diesen Schritt auch mit `nmap` durchführen, aber es ist langsamer und `nmap` hat teilweise Probleme, Hosts als 'up' zu erkennen.
|
||||
|
||||
### HTTP Port Discovery
|
||||
|
||||
Dies ist nur eine TCP-Portentdeckung, die nützlich ist, wenn Sie **sich auf die Entdeckung von HTTP** **Diensten** konzentrieren möchten:
|
||||
Dies ist lediglich eine TCP-Port-Erkennung, nützlich, wenn Sie sich auf die **Entdeckung von HTTP** **services** konzentrieren möchten:
|
||||
```bash
|
||||
masscan -p80,443,8000-8100,8443 199.66.11.0/24
|
||||
```
|
||||
### UDP-Port-Entdeckung
|
||||
### UDP Port Discovery
|
||||
|
||||
Sie könnten auch versuchen, nach einigen **offenen UDP-Ports** zu suchen, 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:
|
||||
Du könntest auch versuchen zu prüfen, ob einige **UDP port open** existieren, um zu entscheiden, ob du einem **host** mehr **Aufmerksamkeit schenken** solltest. Da UDP services normalerweise **nicht antworten** und **keine Daten** auf ein reguläres leeres UDP probe packet zurücksenden, ist es schwierig zu sagen, ob ein port gefiltert ist oder offen. Der einfachste Weg, das zu entscheiden, ist, ein Paket zu senden, das zum laufenden Service passt; da du nicht weißt, welcher Service läuft, solltest du die wahrscheinlichsten basierend auf der Portnummer ausprobieren:
|
||||
```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
|
||||
# The "--version-intensity 0" will make nmap only test the most probable
|
||||
```
|
||||
Die zuvor vorgeschlagene nmap-Zeile wird die **top 1000 UDP-Ports** in jedem Host innerhalb des **/24**-Bereichs testen, aber selbst dies wird **>20min** dauern. Wenn Sie **schnellere Ergebnisse** benötigen, können Sie [**udp-proto-scanner**](https://github.com/portcullislabs/udp-proto-scanner) verwenden: `./udp-proto-scanner.pl 199.66.11.53/24`. Dies wird diese **UDP-Proben** an ihren **erwarteten Port** senden (für einen /24-Bereich dauert dies nur 1 Minute): _DNSStatusRequest, DNSVersionBindReq, NBTStat, NTPRequest, RPCCheck, SNMPv3GetRequest, chargen, citrix, daytime, db2, echo, gtpv1, ike, ms-sql, ms-sql-slam, netop, ntp, rpc, snmp-public, systat, tftp, time, xdmcp._
|
||||
Die zuvor vorgeschlagene nmap-Zeile testet die **top 1000 UDP ports** auf jedem Host innerhalb des **/24**-Bereichs, aber allein das dauert **>20min**. Wenn du **schnellere Ergebnisse** brauchst, kannst du [**udp-proto-scanner**](https://github.com/portcullislabs/udp-proto-scanner) verwenden: `./udp-proto-scanner.pl 199.66.11.53/24` Dieses Tool sendet diese **UDP probes** an ihre **erwarteten Ports** (für einen /24-Bereich dauert das nur 1 min): _DNSStatusRequest, DNSVersionBindReq, NBTStat, NTPRequest, RPCCheck, SNMPv3GetRequest, chargen, citrix, daytime, db2, echo, gtpv1, ike,ms-sql, ms-sql-slam, netop, ntp, rpc, snmp-public, systat, tftp, time, xdmcp._
|
||||
|
||||
### SCTP Port Discovery
|
||||
```bash
|
||||
@ -52,20 +52,20 @@ nmap -T4 -sY -n --open -Pn <IP/range>
|
||||
```
|
||||
## Pentesting Wifi
|
||||
|
||||
Hier finden Sie einen schönen Leitfaden zu allen bekannten Wifi-Angriffen zum Zeitpunkt des Schreibens:
|
||||
Hier findest du einen guten Leitfaden zu allen bekannten Wifi-Angriffen zum Zeitpunkt der Erstellung:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
../pentesting-wifi/
|
||||
{{#endref}}
|
||||
|
||||
## Entdecken von Hosts von innen
|
||||
## Hosts von innen entdecken
|
||||
|
||||
Wenn Sie sich im Netzwerk befinden, ist eines der ersten Dinge, die Sie tun möchten, **andere Hosts zu entdecken**. Je nachdem, **wie viel Lärm** Sie machen können/wollen, können verschiedene Aktionen durchgeführt werden:
|
||||
Wenn du dich im Netzwerk befindest, ist eines der ersten Dinge, die du tun möchtest, **andere hosts zu entdecken**. Je nachdem, **wie viel Lärm** du erzeugen kannst/möchtest, können verschiedene Aktionen durchgeführt werden:
|
||||
|
||||
### Passiv
|
||||
|
||||
Sie können diese Tools verwenden, um Hosts in einem verbundenen Netzwerk passiv zu entdecken:
|
||||
Du kannst diese Tools verwenden, um passiv hosts in einem verbundenen Netzwerk zu entdecken:
|
||||
```bash
|
||||
netdiscover -p
|
||||
p0f -i eth0 -p -o /tmp/p0f.log
|
||||
@ -76,8 +76,8 @@ set net.show.meta true #more info
|
||||
```
|
||||
### Aktiv
|
||||
|
||||
Beachten Sie, dass die in [_**Entdecken von Hosts von außen**_](#discovering-hosts-from-the-outside) (_TCP/HTTP/UDP/SCTP Port Discovery_) kommentierten Techniken auch **hier angewendet** werden können.\
|
||||
Aber da Sie im **gleichen Netzwerk** wie die anderen Hosts sind, können Sie **mehr Dinge** tun:
|
||||
Beachte, dass die in [_**Discovering hosts from the outside**_](#discovering-hosts-from-the-outside) (_TCP/HTTP/UDP/SCTP Port Discovery_) kommentierten Techniken hier ebenfalls **angewendet werden**.\
|
||||
Aber da du dich im **same network** mit den anderen hosts befindest, kannst du **mehr tun**:
|
||||
```bash
|
||||
#ARP discovery
|
||||
nmap -sn <Network> #ARP Requests (Discover IPs)
|
||||
@ -97,35 +97,35 @@ set net.probe.throttle 10 #10ms between probes sent (default=10)
|
||||
#IPv6
|
||||
alive6 <IFACE> # Send a pingv6 to multicast.
|
||||
```
|
||||
### Active ICMP
|
||||
### Aktives ICMP
|
||||
|
||||
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:
|
||||
Beachte, dass die in _Discovering hosts from the outside_ ([_**ICMP**_](#icmp)) kommentierten Techniken auch **hier anwendbar** sind.\
|
||||
Da du dich jedoch im **gleichen Netzwerk** wie die anderen Hosts befindest, kannst du **mehr machen**:
|
||||
|
||||
- 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`
|
||||
- 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`
|
||||
- Wenn du mit **ping** eine **Subnetz-Broadcast-Adresse** anpingst, sollte der Ping bei **jedem Host** ankommen und sie könnten **dir** **antworten**: `ping -b 10.10.5.255`
|
||||
- Wenn du die **Netzwerk-Broadcast-Adresse** anpingst, kannst du sogar Hosts in **anderen Subnetzen** finden: `ping -b 255.255.255.255`
|
||||
- Verwende die `-PE`, `-PP`, `-PM` Flags von `nmap`, um Host-Discovery durchzuführen; sie senden jeweils **ICMPv4 echo**, **timestamp**, und **subnet mask requests:** `nmap -PE -PM -PP -sn -vvv -n 10.12.5.0/24`
|
||||
|
||||
### **Wake On Lan**
|
||||
|
||||
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).
|
||||
Wake On Lan wird verwendet, um Computer per **network message** **einzuschalten**. Das magic packet, das zum Einschalten des Computers verwendet wird, ist lediglich ein Paket, in dem eine **MAC Dst** angegeben ist und das anschließend **16 Mal** innerhalb desselben Pakets wiederholt wird.\
|
||||
Solche Pakete werden üblicherweise in einem **ethernet 0x0842** oder in einem **UDP packet to port 9** gesendet.\
|
||||
Wenn **no \[MAC]** angegeben ist, wird das Paket an das **broadcast ethernet** gesendet (und die Broadcast-MAC ist die, 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.eth [MAC] #Send a WOL as a raw ethernet packet of type 0x0842
|
||||
wol.udp [MAC] #Send a WOL as an IPv4 broadcast packet to UDP port 9
|
||||
```
|
||||
## Scanning Hosts
|
||||
## Hosts scannen
|
||||
|
||||
Sobald Sie alle IPs (extern oder intern) entdeckt haben, die Sie eingehend scannen möchten, können verschiedene Aktionen durchgeführt werden.
|
||||
Sobald Sie alle IPs (extern oder intern) entdeckt haben, die Sie eingehender scannen möchten, können verschiedene Aktionen durchgeführt werden.
|
||||
|
||||
### TCP
|
||||
|
||||
- **Offener** Port: _SYN --> SYN/ACK --> RST_
|
||||
- **Geschlossener** Port: _SYN --> RST/ACK_
|
||||
- **Gefilterter** Port: _SYN --> \[KEINE ANTWORT]_
|
||||
- **Gefilterter** Port: _SYN --> ICMP-Nachricht_
|
||||
- **Gefilterter** Port: _SYN --> ICMP message_
|
||||
```bash
|
||||
# Nmap fast scan for the most 1000tcp ports used
|
||||
nmap -sV -sC -O -T4 -n -Pn -oA fastscan <IP>
|
||||
@ -139,12 +139,12 @@ syn.scan 192.168.1.0/24 1 10000 #Ports 1-10000
|
||||
```
|
||||
### UDP
|
||||
|
||||
Es gibt 2 Optionen, um einen UDP-Port zu scannen:
|
||||
Es gibt 2 Optionen, einen UDP-Port zu scannen:
|
||||
|
||||
- Sende ein **UDP-Paket** und überprüfe die Antwort _**ICMP unreachable**_, wenn der Port **geschlossen** ist (in mehreren Fällen wird ICMP **gefiltert**, sodass du keine Informationen erhältst, ob der Port geschlossen oder offen ist).
|
||||
- Sende **formatierte Datagramme**, um eine Antwort von einem **Dienst** (z. B. DNS, DHCP, TFTP und andere, wie in _nmap-payloads_ aufgeführt) zu erhalten. Wenn du eine **Antwort** erhältst, ist der Port **offen**.
|
||||
- Sende ein **UDP packet** und prüfe auf die Antwort _**ICMP unreachable**_, wenn der Port **geschlossen** ist (in vielen Fällen wird ICMP **gefiltert**, sodass du keine Informationen darüber erhältst, ob der Port geschlossen oder offen ist).
|
||||
- Sende **formatierte Datagramme**, um eine Antwort von einem **Service** hervorzurufen (z. B. DNS, DHCP, TFTP und andere, wie in _nmap-payloads_ aufgelistet). Wenn du eine **Antwort** erhältst, ist der Port **offen**.
|
||||
|
||||
**Nmap** wird **beide** Optionen mit "-sV" kombinieren (UDP-Scans sind sehr langsam), aber beachte, dass UDP-Scans langsamer sind als TCP-Scans:
|
||||
**Nmap** wird beide Optionen mit "-sV" **kombinieren** (UDP-Scans sind sehr langsam), aber beachte, dass UDP-Scans langsamer sind als TCP-Scans:
|
||||
```bash
|
||||
# Check if any of the most common udp services is running
|
||||
udp-proto-scanner.pl <IP>
|
||||
@ -158,34 +158,34 @@ nmap -sU -sV --version-intensity 0 -n -T4 <IP>
|
||||
```
|
||||
### SCTP Scan
|
||||
|
||||
**SCTP (Stream Control Transmission Protocol)** wurde entwickelt, um 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.
|
||||
**SCTP (Stream Control Transmission Protocol)** wurde entwickelt, um zusammen mit **TCP (Transmission Control Protocol)** und **UDP (User Datagram Protocol)** verwendet zu werden. Sein Hauptzweck ist es, den Transport von Telefoniedaten über IP-Netzwerke zu ermöglichen und viele der Zuverlässigkeitsmerkmale von **Signaling System 7 (SS7)** widerzuspiegeln. **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.
|
||||
Die Unterstützung für **SCTP** wird von verschiedenen Betriebssystemen bereitgestellt, wie **IBM AIX**, **Oracle Solaris**, **HP-UX**, **Linux**, **Cisco IOS**, und **VxWorks**, was seine breite Akzeptanz und seinen Nutzen im Bereich Telekommunikation und Netzwerke zeigt.
|
||||
|
||||
Zwei verschiedene Scans für SCTP werden von nmap angeboten: _-sY_ und _-sZ_
|
||||
Für **SCTP** bietet **nmap** zwei verschiedene Scans an: _-sY_ und _-sZ_
|
||||
```bash
|
||||
# Nmap fast SCTP scan
|
||||
nmap -T4 -sY -n -oA SCTFastScan <IP>
|
||||
# Nmap all SCTP scan
|
||||
nmap -T4 -p- -sY -sV -sC -F -n -oA SCTAllScan <IP>
|
||||
```
|
||||
### IDS und IPS Umgehung
|
||||
### IDS and IPS evasion
|
||||
|
||||
|
||||
{{#ref}}
|
||||
ids-evasion.md
|
||||
{{#endref}}
|
||||
|
||||
### **Weitere nmap Optionen**
|
||||
### **Weitere nmap-Optionen**
|
||||
|
||||
|
||||
{{#ref}}
|
||||
nmap-summary-esp.md
|
||||
{{#endref}}
|
||||
|
||||
### Offenlegung interner IP-Adressen
|
||||
### Interne IP-Adressen aufdecken
|
||||
|
||||
**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 auf Kali Linux können 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** antworten manchmal auf Netzwerksondierungen mit **nicht-öffentlichen Quelladressen**. **tcpdump** kann verwendet werden, um Pakete zu identifizieren, die während Tests von privaten Adressen empfangen werden. Konkret können unter Kali Linux Pakete auf der **eth2 interface** aufgezeichnet werden, die vom öffentlichen Internet aus zugänglich ist. Es ist wichtig zu beachten, dass, wenn Ihr Setup hinter einem NAT oder einer Firewall steht, solche Pakete wahrscheinlich herausgefiltert werden.
|
||||
```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
|
||||
@ -195,9 +195,9 @@ IP 10.10.0.2 > 185.22.224.18: ICMP echo reply, id 25804, seq 1586, length 64
|
||||
```
|
||||
## Sniffing
|
||||
|
||||
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 Netzwerk-Sniffing erfassen.
|
||||
Mit Sniffing kann man Details zu IP‑Bereichen, Subnetzgrößen, MAC‑Adressen und Hostnames erfahren, indem man aufgezeichnete Frames und Pakete überprüft. Wenn das Netzwerk falsch konfiguriert ist oder die switching fabric unter Stress steht, können Angreifer sensible Daten durch passives network sniffing abgreifen.
|
||||
|
||||
Wenn ein switched Ethernet-Netzwerk richtig konfiguriert ist, sehen Sie nur Broadcast-Frames und Materialien, die für Ihre MAC-Adresse bestimmt sind.
|
||||
Wenn ein switched Ethernet-Netzwerk korrekt konfiguriert ist, sehen Sie nur Broadcast‑Frames und Material, das an Ihre MAC‑Adresse adressiert ist.
|
||||
|
||||
### TCPDump
|
||||
```bash
|
||||
@ -205,7 +205,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 einer entfernten Maschine über eine SSH-Session in Echtzeit erfassen und Wireshark als GUI verwenden.
|
||||
```
|
||||
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
|
||||
@ -223,15 +223,15 @@ set net.sniff.regexp #If set only packets matching this regex will be considered
|
||||
|
||||
Offensichtlich.
|
||||
|
||||
### Erfassung von Anmeldeinformationen
|
||||
### Credentials erfassen
|
||||
|
||||
Sie können Tools wie [https://github.com/lgandx/PCredz](https://github.com/lgandx/PCredz) verwenden, um Anmeldeinformationen aus einer pcap oder einer Live-Schnittstelle zu parsen.
|
||||
Du kannst Tools wie [https://github.com/lgandx/PCredz](https://github.com/lgandx/PCredz) verwenden, um credentials aus einem pcap oder einem Live-Interface zu parsen.
|
||||
|
||||
## LAN-Angriffe
|
||||
|
||||
### ARP-Spoofing
|
||||
### ARP spoofing
|
||||
|
||||
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, wann immer es die gefälschte IP kontaktieren möchte.
|
||||
ARP Spoofing besteht darin, gratuitous ARPResponses zu senden, um anzuzeigen, dass die IP einer Maschine die MAC-Adresse unseres Geräts hat. Dann ändert das Opfer die ARP-Tabelle und kontaktiert unser Gerät jedes Mal, wenn es die IP spoofed kontaktieren möchte.
|
||||
|
||||
#### **Bettercap**
|
||||
```bash
|
||||
@ -247,9 +247,9 @@ echo 1 > /proc/sys/net/ipv4/ip_forward
|
||||
arpspoof -t 192.168.1.1 192.168.1.2
|
||||
arpspoof -t 192.168.1.2 192.168.1.1
|
||||
```
|
||||
### MAC Flooding - CAM-Überlauf
|
||||
### MAC Flooding - CAM overflow
|
||||
|
||||
Überfluten Sie die CAM-Tabelle des Switches, indem Sie viele Pakete mit unterschiedlichen Quell-MAC-Adressen senden. Wenn die CAM-Tabelle voll ist, verhält sich der Switch wie ein Hub (broadcastet den gesamten Verkehr).
|
||||
Überflute die CAM-Tabelle des Switches, indem du viele Pakete mit unterschiedlichen Quell‑MAC‑Adressen sendest. Wenn die CAM-Tabelle voll ist, verhält sich der Switch wie ein hub (broadcastet den gesamten Verkehr).
|
||||
```bash
|
||||
macof -i <interface>
|
||||
```
|
||||
@ -257,15 +257,15 @@ In modernen Switches wurde diese Schwachstelle behoben.
|
||||
|
||||
### 802.1Q VLAN / DTP Angriffe
|
||||
|
||||
#### Dynamisches Trunking
|
||||
#### Dynamic Trunking
|
||||
|
||||
Das **Dynamic Trunking Protocol (DTP)** ist als Protokoll der Sicherungsschicht konzipiert, um ein automatisches System für das Trunking zu ermöglichen, das es Switches erlaubt, automatisch Ports für den Trunk-Modus (Trunk) oder den Nicht-Trunk-Modus auszuwählen. Der Einsatz von **DTP** wird oft als Hinweis auf suboptimales Netzwerkdesign angesehen, was die Bedeutung der manuellen Konfiguration von Trunks nur dort unterstreicht, wo es notwendig ist, und die ordnungsgemäße Dokumentation sicherzustellen.
|
||||
Das **Dynamic Trunking Protocol (DTP)** ist als Schicht‑2‑Protokoll konzipiert, um ein automatisches System für Trunking bereitzustellen, das Switches ermöglicht, Ports automatisch für den Trunk‑Modus (Trunk) oder den Nicht‑Trunk‑Modus auszuwählen. Der Einsatz von **DTP** wird oft als Hinweis auf ein suboptimales Netzwerkdesign gewertet und unterstreicht die Bedeutung, Trunks nur dort manuell zu konfigurieren, wo nötig, sowie eine korrekte Dokumentation sicherzustellen.
|
||||
|
||||
Standardmäßig sind Switch-Ports so eingestellt, dass sie im Dynamic Auto-Modus arbeiten, was bedeutet, dass sie bereit sind, das Trunking zu initiieren, wenn sie von einem benachbarten Switch dazu aufgefordert werden. Ein Sicherheitsproblem entsteht, wenn ein Pentester oder Angreifer sich mit dem Switch verbindet und ein DTP Desirable-Frame sendet, wodurch der Port in den Trunk-Modus versetzt wird. Diese Aktion ermöglicht es dem Angreifer, VLANs durch die Analyse von STP-Frames aufzulisten und die VLAN-Segmentierung zu umgehen, indem virtuelle Schnittstellen eingerichtet werden.
|
||||
Standardmäßig sind Switch‑Ports auf den Betrieb im Dynamic Auto mode eingestellt, d. h. sie sind bereit, Trunking zu initiieren, wenn ein benachbarter Switch es anfordert. Ein Sicherheitsproblem entsteht, wenn sich ein pentester oder Angreifer an den Switch anschließt und einen DTP Desirable frame sendet, wodurch der Port dazu gebracht wird, in den Trunk‑Modus zu wechseln. Dadurch kann der Angreifer VLANs über die Analyse von STP‑Frames auflisten und die VLAN‑Segmentierung umgehen, indem er virtual interfaces einrichtet.
|
||||
|
||||
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.
|
||||
Das Vorhandensein von DTP in vielen Switches standardmäßig kann von Angreifern ausgenutzt werden, um das Verhalten eines Switches zu imitieren und so Zugriff auf Traffic über alle VLANs zu erhalten. Das Script [_**dtpscan.sh**_](https://github.com/commonexploits/dtpscan) wird verwendet, um ein Interface zu überwachen und anzuzeigen, ob ein Switch im Default, Trunk, Dynamic, Auto oder Access mode ist — wobei letzterer die einzige Konfiguration ist, die gegen VLAN hopping attacks immun ist. Dieses Tool bewertet, ob der Switch verwundbar ist.
|
||||
|
||||
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.
|
||||
Wird eine Verwundbarkeit im Netzwerk festgestellt, kann das Tool _**Yersinia**_ eingesetzt werden, um über das DTP‑Protokoll "enable trunking" auszulösen, wodurch Pakete aus allen VLANs beobachtet werden können.
|
||||
```bash
|
||||
apt-get install yersinia #Installation
|
||||
sudo apt install kali-linux-large #Another way to install it in Kali
|
||||
@ -278,20 +278,20 @@ yersinia -G #For graphic mode
|
||||
```
|
||||
.png>)
|
||||
|
||||
Um die VLANs aufzulisten, ist es auch möglich, das DTP Desirable-Frame mit dem Skript [**DTPHijacking.py**](https://github.com/in9uz/VLANPWN/blob/main/DTPHijacking.py)** zu generieren. **Unterbrechen Sie das Skript unter keinen Umständen. Es injiziert DTP Desirable alle drei Sekunden. **Die dynamisch erstellten Trunk-Kanäle am Switch leben nur fünf Minuten. Nach fünf Minuten fällt der Trunk ab.**
|
||||
Um die VLANs zu enumerate, ist es auch möglich, das DTP Desirable frame mit dem script [**DTPHijacking.py**](https://github.com/in9uz/VLANPWN/blob/main/DTPHijacking.py)**. D**ie Ausführung des Scripts darf unter keinen Umständen unterbrochen werden. Es injiziert DTP Desirable alle drei Sekunden. **Die dynamisch erstellten trunk-Kanäle auf dem switch existieren nur fünf Minuten. Nach fünf Minuten fällt der trunk weg.**
|
||||
```
|
||||
sudo python3 DTPHijacking.py --interface eth0
|
||||
```
|
||||
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.
|
||||
Ich möchte darauf hinweisen, dass **Access/Desirable (0x03)** anzeigt, dass der DTP frame vom Typ Desirable ist, der dem Port mitteilt, in den Trunk mode 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.**
|
||||
Durch die Analyse der STP frames **erfahren wir von der Existenz von VLAN 30 und VLAN 60.**
|
||||
|
||||
<figure><img src="../../images/image (124).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### Angreifen spezifischer VLANs
|
||||
#### Angreifen bestimmter VLANs
|
||||
|
||||
Sobald Sie VLAN-IDs und IP-Werte kennen, können Sie **eine virtuelle Schnittstelle konfigurieren, um ein bestimmtes VLAN anzugreifen**.\
|
||||
Wenn DHCP nicht verfügbar ist, verwenden Sie _ifconfig_, um eine statische IP-Adresse festzulegen.
|
||||
Sobald du die VLAN IDs und IP-Werte kennst, kannst du **ein virtual interface konfigurieren, um ein bestimmtes VLAN anzugreifen**.\
|
||||
Wenn DHCP nicht verfügbar ist, verwende _ifconfig_, um eine statische IP-Adresse zu setzen.
|
||||
```
|
||||
root@kali:~# modprobe 8021q
|
||||
root@kali:~# vconfig add eth1 250
|
||||
@ -324,19 +324,19 @@ sudo vconfig add eth0 30
|
||||
sudo ip link set eth0.30 up
|
||||
sudo dhclient -v eth0.30
|
||||
```
|
||||
#### Automatischer VLAN Hopper
|
||||
#### Automatic VLAN Hopper
|
||||
|
||||
Der besprochene Angriff von **Dynamic Trunking und dem Erstellen virtueller Schnittstellen sowie dem Entdecken von Hosts innerhalb** anderer VLANs wird **automatisch durchgeführt** von dem Tool: [**https://github.com/nccgroup/vlan-hopping---frogger**](https://github.com/nccgroup/vlan-hopping---frogger)
|
||||
Der diskutierte Angriff von **Dynamic Trunking and creating virtual interfaces an discovering hosts inside** in anderen VLANs wird **automatisch ausgeführt** durch das Tool: [**https://github.com/nccgroup/vlan-hopping---frogger**](https://github.com/nccgroup/vlan-hopping---frogger)
|
||||
|
||||
#### Doppelte Tagging
|
||||
#### Double Tagging
|
||||
|
||||
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 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 kommunizieren**, ist die **beste Option für den Angreifer, über UDP zu kommunizieren** zu Protokollen, die einige interessante Aktionen durchführen können (wie SNMP).
|
||||
Wenn ein Angreifer den Wert der **MAC, IP and VLAN ID of the victim host** kennt, könnte er versuchen, einen Frame zu **double tag a frame** mit seinem zugewiesenen VLAN und dem VLAN des victim zu versehen und ein Paket zu senden. Da das **victim won't be able to connect back** zum Angreifer, ist die **beste Option für den Angreifer, via UDP zu kommunizieren** mit Protokollen, die interessante Aktionen ausführen können (wie SNMP).
|
||||
|
||||
Eine weitere Option für den Angreifer ist es, 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 Host, der ihm gehört, sniffen, ob er einige Pakete vom Opfer erhält.
|
||||
Eine weitere Option für den Angreifer ist, einen **TCP port scan spoofing an IP controlled by the attacker and accessible by the victim** zu starten (wahrscheinlich über das Internet). Dann könnte der Angreifer auf dem zweiten von ihm kontrollierten Host sniffen, ob er Pakete vom victim erhält.
|
||||
|
||||
.png>)
|
||||
|
||||
Um diesen Angriff durchzuführen, könnten Sie scapy verwenden: `pip install scapy`
|
||||
Um diesen Angriff durchzuführen, kann man scapy verwenden: `pip install scapy`
|
||||
```python
|
||||
from scapy.all import *
|
||||
# Double tagging with ICMP packet (the response from the victim isn't double tagged so it will never reach the attacker)
|
||||
@ -345,7 +345,8 @@ sendp(packet)
|
||||
```
|
||||
#### Lateral VLAN Segmentation Bypass <a href="#d679" id="d679"></a>
|
||||
|
||||
Wenn Sie **Zugriff auf einen Switch haben, mit dem Sie direkt verbunden sind**, haben Sie die Möglichkeit, **VLAN-Segmentierung** im Netzwerk zu **umgehen**. Schalten Sie einfach den Port in den Trunk-Modus (auch bekannt als Trunk), erstellen Sie virtuelle Schnittstellen mit den IDs der Ziel-VLANs und konfigurieren Sie eine IP-Adresse. Sie können versuchen, die Adresse dynamisch (DHCP) anzufordern, oder Sie können sie statisch konfigurieren. Es hängt vom Fall ab.
|
||||
If you have **access to a switch that you are directly connected to**, you have the ability to **bypass VLAN segmentation** within the network. Simply **switch the port to trunk mode** (otherwise known as trunk), create virtual interfaces with the IDs of the target VLANs, and configure an IP address. You can try requesting the address dynamically (DHCP) or you can configure it statically. It depends on the case.
|
||||
|
||||
|
||||
{{#ref}}
|
||||
lateral-vlan-segmentation-bypass.md
|
||||
@ -353,126 +354,126 @@ 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 an einen anderen Client im selben Netzwerk weitergeleitet werden können.
|
||||
In certain environments, such as guest wireless networks, **port isolation (also known as private VLAN)** settings are implemented to prevent clients connected to a wireless access point from directly communicating with each other. However, a technique has been identified that can circumvent these isolation measures. This technique exploits either the lack of network ACLs or their improper configuration, enabling IP packets to be routed through a router to reach another client on the same network.
|
||||
|
||||
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.
|
||||
The attack is executed by creating a **packet that carries the IP address of the destination client but with the router's MAC address**. This causes the router to mistakenly forward the packet to the target client. This approach is similar to that used in Double Tagging Attacks, where the ability to control a host accessible to the victim is used to exploit the security flaw.
|
||||
|
||||
**Wichtige Schritte des Angriffs:**
|
||||
**Wesentliche Schritte des Angriffs:**
|
||||
|
||||
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.
|
||||
1. **Crafting a Packet:** Ein packet wird gezielt erstellt, das die IP-Adresse des Zielclients enthält, aber mit der MAC-Adresse des router versehen ist.
|
||||
2. **Exploiting Router Behavior:** Das erstellte packet wird an den router gesendet, der aufgrund der Konfiguration das packet an den Zielclient weiterleitet und damit die durch private VLAN-Einstellungen gebotene Isolation umgeht.
|
||||
|
||||
### VTP Angriffe
|
||||
### VTP Attacks
|
||||
|
||||
VTP (VLAN Trunking Protocol) zentralisiert das VLAN-Management. Es verwendet Versionsnummern, um die Integrität der VLAN-Datenbank aufrechtzuerhalten; jede Änderung erhöht diese Nummer. Switches übernehmen Konfigurationen mit höheren Versionsnummern und aktualisieren ihre eigenen VLAN-Datenbanken.
|
||||
VTP (VLAN Trunking Protocol) zentralisiert das VLAN-Management. Es verwendet Revisionsnummern, um die Integrität der VLAN-Datenbank zu gewährleisten; jede Änderung erhöht diese Nummer. Switches übernehmen Konfigurationen mit höheren Revisionsnummern und aktualisieren ihre eigenen VLAN-Datenbanken.
|
||||
|
||||
#### VTP-Domain-Rollen
|
||||
#### VTP Domain Roles
|
||||
|
||||
- **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 Server:** Verwaltet VLANs — erstellt, löscht, ändert. Er sendet VTP announcements an die Domain-Mitglieder.
|
||||
- **VTP Client:** Empfängt VTP announcements, um seine VLAN-Datenbank zu synchronisieren. Diese Rolle ist in lokalen VLAN-Konfigurationsänderungen eingeschränkt.
|
||||
- **VTP Transparent:** Nimmt nicht an VTP updates teil, leitet jedoch VTP announcements weiter. Nicht von VTP attacks betroffen, behält es eine konstante Revisionsnummer von null bei.
|
||||
|
||||
#### VTP-Ankündigungstypen
|
||||
#### VTP Advertisement Types
|
||||
|
||||
- **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.
|
||||
- **Summary Advertisement:** Vom VTP Server alle 300 Sekunden gesendet und enthält grundlegende Domain-Informationen.
|
||||
- **Subset Advertisement:** Wird nach VLAN-Konfigurationsänderungen gesendet.
|
||||
- **Advertisement Request:** Wird von einem VTP Client gesendet, um ein Summary Advertisement anzufordern, typischerweise als Reaktion auf das Erkennen einer höheren Konfigurations-Revisionsnummer.
|
||||
|
||||
VTP-Sicherheitsanfälligkeiten sind ausschließlich über Trunk-Ports ausnutzbar, da VTP-Ankündigungen ausschließlich durch diese zirkulieren. Nach DTP-Angriffsszenarien 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.
|
||||
VTP-Schwachstellen sind ausschließlich über trunk-Ports ausnutzbar, da VTP announcements nur über diese zirkulieren. Nach einem DTP-Angriff kann der Fokus auf VTP übergehen. Tools wie Yersinia können VTP attacks erleichtern, mit dem Ziel, die VLAN-Datenbank zu löschen und dadurch das Netzwerk effektiv zu stören.
|
||||
|
||||
Hinweis: Diese Diskussion bezieht sich auf VTP-Version 1 (VTPv1).
|
||||
````bash
|
||||
%% yersinia -G # Launch Yersinia in graphical mode ```
|
||||
````
|
||||
Im grafischen Modus von Yersinia wählen Sie die Option zum Löschen aller VTP-VLANs, um die VLAN-Datenbank zu bereinigen.
|
||||
Note: This discussion pertains to VTP version 1 (VTPv1).
|
||||
```bash
|
||||
yersinia -G # Launch Yersinia in graphical mode
|
||||
```
|
||||
In Yersinia's grafischen Modus wähle die Option deleting all VTP vlans, um die VLAN-Datenbank zu bereinigen.
|
||||
|
||||
### STP-Angriffe
|
||||
|
||||
**Wenn Sie keine BPDU-Frames an Ihren Schnittstellen erfassen können, ist es unwahrscheinlich, dass Sie in einem STP-Angriff erfolgreich sind.**
|
||||
**Wenn du auf deinen Schnittstellen keine BPDU-Frames erfassen kannst, ist es unwahrscheinlich, dass dir ein STP-Angriff gelingt.**
|
||||
|
||||
#### **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 korrekt.
|
||||
Durch das Senden vieler BPDUs vom Typ 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 Attack**
|
||||
|
||||
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 table der switches nach 15s gelöscht. Wenn du dann kontinuierlich diese Art von packets sendest, wird die CAM table kontinuierlich neu gestartet (oder alle 15segs) und beim Neustart 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
|
||||
```
|
||||
#### **STP Root Attack**
|
||||
|
||||
Der Angreifer simuliert das Verhalten eines Switches, um der STP-Root des Netzwerks zu werden. Dann werden mehr Daten durch ihn geleitet. Dies ist interessant, wenn Sie mit zwei verschiedenen Switches verbunden sind.\
|
||||
Dies geschieht, indem BPDUs CONF-Pakete gesendet werden, die besagen, dass der **Prioritäts**wert geringer ist als die tatsächliche Priorität des aktuellen Root-Switches.
|
||||
Der Angreifer simuliert das Verhalten von einem switch, um der STP root des Netzwerks zu werden. Dann wird mehr Datenverkehr durch ihn geleitet. Das ist interessant, wenn man mit zwei verschiedenen switches verbunden ist.\
|
||||
Dies geschieht durch das Senden von BPDUs CONF packets, die aussagen, dass der **priority**-Wert kleiner ist als die tatsächliche priority des aktuellen root switch.
|
||||
```bash
|
||||
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 der Wurzel des neuen Baumes sein und der gesamte Verkehr zwischen diesen Switches wird durch ihn geleitet** (ein MITM-Angriff wird durchgeführt).
|
||||
**Wenn der attacker mit 2 switches verbunden ist, kann er der root des neuen tree sein und der gesamte Traffic zwischen diesen switches wird durch ihn geleitet** (ein MITM attack 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
|
||||
```
|
||||
### CDP-Angriffe
|
||||
|
||||
CISCO Discovery Protocol (CDP) ist entscheidend für die Kommunikation zwischen CISCO-Geräten, da es ihnen ermöglicht, **einander zu identifizieren und Konfigurationsdetails auszutauschen**.
|
||||
CISCO Discovery Protocol (CDP) ist essenziell für die Kommunikation zwischen CISCO-Geräten und ermöglicht ihnen, **sich gegenseitig zu identifizieren und Konfigurationsdetails auszutauschen**.
|
||||
|
||||
#### Passive Datensammlung <a href="#id-0e0f" id="id-0e0f"></a>
|
||||
|
||||
CDP ist so konfiguriert, dass es Informationen über alle Ports sendet, was ein Sicherheitsrisiko darstellen kann. Ein Angreifer könnte, nachdem er sich mit einem Switch-Port verbunden hat, Netzwerksniffer wie **Wireshark**, **tcpdump** oder **Yersinia** einsetzen. Diese Aktion kann sensible Daten über das Netzwerkgerät offenbaren, einschließlich seines Modells und der Version von Cisco IOS, die es verwendet. Der Angreifer könnte dann gezielt spezifische Schwachstellen in der identifizierten Cisco IOS-Version angreifen.
|
||||
CDP ist so konfiguriert, dass Informationen über alle Ports gesendet werden, was ein Sicherheitsrisiko darstellen kann. Ein Angreifer, der sich an einen Switch-Port anschließt, könnte Netzwerk-Sniffer wie **Wireshark**, **tcpdump** oder **Yersinia** einsetzen. Dies kann sensible Daten über das Netzwerkgerät offenlegen, einschließlich seines Modells und der Cisco IOS-Version, die darauf läuft. Der Angreifer könnte dann gezielt nach Schwachstellen in der identifizierten Cisco IOS-Version suchen.
|
||||
|
||||
#### Induzierung von CDP-Tabellenflut <a href="#id-0d6a" id="id-0d6a"></a>
|
||||
#### Auslösen von CDP Table Flooding <a href="#id-0d6a" id="id-0d6a"></a>
|
||||
|
||||
Ein aggressiverer Ansatz besteht darin, einen Denial of Service (DoS)-Angriff zu starten, indem man den Speicher des Switches überlastet und sich als legitime CISCO-Geräte ausgibt. Unten steht die Befehlssequenz zum Initiieren eines solchen Angriffs mit Yersinia, einem Netzwerktool, das für Tests entwickelt wurde:
|
||||
Ein aggressiverer Ansatz besteht darin, einen Denial of Service (DoS)-Angriff zu starten, indem der Speicher des Switches überlastet wird, indem man vorgibt, legitime CISCO-Geräte zu sein. Nachfolgend die Befehlsabfolge, um einen solchen Angriff mit Yersinia, einem für Tests gedachten Netzwerktool, zu starten:
|
||||
```bash
|
||||
sudo yersinia cdp -attack 1 # Initiates a DoS attack by simulating fake CISCO devices
|
||||
# Alternatively, for a GUI approach:
|
||||
sudo yersinia -G
|
||||
```
|
||||
Während dieses Angriffs sind die CPU des Switches und die CDP-Nachbartabelle stark belastet, was oft als **„Netzwerkparalyse“** aufgrund des übermäßigen Ressourcenverbrauchs bezeichnet wird.
|
||||
Während dieses Angriffs werden die CPU des Switches und die CDP-Nachbartabelle stark belastet, was aufgrund des übermäßigen Ressourcenverbrauchs häufig zu dem führt, was als **„Netzwerkparalyse“** bezeichnet wird.
|
||||
|
||||
#### CDP-Imitationsangriff
|
||||
#### CDP Impersonation Attack
|
||||
```bash
|
||||
sudo yersinia cdp -attack 2 #Simulate a new CISCO device
|
||||
sudo yersinia cdp -attack 0 #Send a CDP packet
|
||||
```
|
||||
Sie können auch [**scapy**](https://github.com/secdev/scapy/) verwenden. Stellen Sie sicher, dass Sie es mit dem `scapy/contrib`-Paket installieren.
|
||||
Du kannst auch [**scapy**](https://github.com/secdev/scapy/) verwenden. Installiere es unbedingt mit dem `scapy/contrib`-Paket.
|
||||
|
||||
### VoIP-Angriffe und das VoIP Hopper-Tool
|
||||
### 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 das Steuern 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 Entriegeln von Türen oder die Steuerung von Thermostaten über spezielle Telefonnummern. Diese Integration kann jedoch Sicherheitsrisiken bergen.
|
||||
|
||||
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.
|
||||
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 ermittelt 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):
|
||||
|
||||
1. **Sniff-Modus** (`-c 0`): Analysiert Netzwerkpakete, um die VLAN-ID zu identifizieren.
|
||||
2. **Spoof-Modus** (`-c 1`): Generiert benutzerdefinierte Pakete, die denen eines tatsächlichen VoIP-Geräts ähneln.
|
||||
3. **Spoof mit vorgefertigtem Paketmodus** (`-c 2`): Sendet Pakete, die identisch mit denen eines bestimmten Cisco-IP-Telefonmodells sind.
|
||||
1. **Sniff Mode** (`-c 0`): Analysiert Netzwerkpakete, um die VLAN ID zu identifizieren.
|
||||
2. **Spoof Mode** (`-c 1`): Erzeugt maßgeschneiderte Pakete, die denen eines echten VoIP-Geräts nachahmen.
|
||||
3. **Spoof with Pre-made Packet Mode** (`-c 2`): Sendet Pakete, die mit denen eines bestimmten Cisco IP-Telefonmodells identisch sind.
|
||||
|
||||
Der bevorzugte Modus für Geschwindigkeit ist der dritte. Es erfordert die Angabe von:
|
||||
Der bevorzugte Modus für Geschwindigkeit ist der dritte. Er erfordert die Angabe von:
|
||||
|
||||
- Der Netzwerk-Schnittstelle des Angreifers (`-i`-Parameter).
|
||||
- Dem Namen des emulierten VoIP-Geräts (`-E`-Parameter), der dem Cisco-Namensformat entspricht (z. B. SEP gefolgt von einer MAC-Adresse).
|
||||
- Die Netzwerk-Schnittstelle des Angreifers (`-i` parameter).
|
||||
- Den Namen des emulierten VoIP-Geräts (`-E` parameter), entsprechend dem Cisco-Benennungsformat (z. B. SEP gefolgt von einer MAC-Adresse).
|
||||
|
||||
In Unternehmensumgebungen könnte man, um ein bestehendes VoIP-Gerät zu imitieren:
|
||||
In Unternehmensumgebungen kann man, um ein bestehendes VoIP-Gerät zu imitieren:
|
||||
|
||||
- Das MAC-Etikett am 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.
|
||||
- Das MAC-Etikett auf dem Telefon prüfen.
|
||||
- Die Anzeige des Telefons in den Einstellungen auf Modellinformationen prüfen.
|
||||
- Das VoIP-Gerät an ein Laptop anschließen und CDP-Anfragen mit Wireshark beobachten.
|
||||
|
||||
Ein Beispielbefehl zur Ausführung des Tools im dritten Modus wäre:
|
||||
Ein Beispielbefehl, um das Tool im dritten Modus auszuführen, wäre:
|
||||
```bash
|
||||
voiphopper -i eth1 -E 'SEP001EEEEEEEEE ' -c 2
|
||||
```
|
||||
### DHCP-Angriffe
|
||||
|
||||
#### Aufzählung
|
||||
#### Enumeration
|
||||
```bash
|
||||
nmap --script broadcast-dhcp-discover
|
||||
Starting Nmap 7.80 ( https://nmap.org ) at 2019-10-16 05:30 EDT
|
||||
@ -492,59 +493,60 @@ 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**.
|
||||
**Two types of DoS** können gegen DHCP-Server durchgeführt werden. Die erste besteht darin, **genügend gefälschte Hosts zu simulieren, um alle möglichen IP-Adressen zu belegen**.\
|
||||
Dieser Angriff funktioniert nur, wenn man die Antworten des DHCP-Servers sehen und das Protokoll komplett durchlaufen kann (**Discover** (Comp) --> **Offer** (server) --> **Request** (Comp) --> **ACK** (server)). Zum Beispiel ist das **nicht möglich in Wifi networks**.
|
||||
|
||||
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-Nutzung beendet hat.
|
||||
Eine andere Möglichkeit, einen DHCP DoS durchzuführen, ist das Versenden eines **DHCP-RELEASE Packet, das jede mögliche IP als Quelladresse verwendet**. Dann wird der Server denken, dass alle aufgehört haben, die IP zu benutzen.
|
||||
```bash
|
||||
yersinia dhcp -attack 1
|
||||
yersinia dhcp -attack 3 #More parameters are needed
|
||||
```
|
||||
Eine automatisiertere Methode, dies zu tun, ist die Verwendung des Tools [DHCPing](https://github.com/kamorin/DHCPig).
|
||||
Eine automatisiertere Methode dafür ist die Verwendung des Tools [DHCPing](https://github.com/kamorin/DHCPig)
|
||||
|
||||
Sie könnten die erwähnten DoS-Angriffe nutzen, um Clients zu zwingen, neue Leases innerhalb der Umgebung zu erhalten, und legitime Server zu erschöpfen, sodass sie nicht mehr reagieren. Wenn die Legitimen versuchen, sich erneut zu verbinden, **können Sie bösartige Werte bereitstellen, die im nächsten Angriff erwähnt werden**.
|
||||
Du könntest die erwähnten DoS-Angriffe nutzen, um Clients dazu zu zwingen, neue Leases innerhalb der Umgebung zu beziehen, und legitime Server so zu erschöpfen, dass sie nicht mehr reagieren. Wenn die legitimen dann versuchen, sich erneut zu verbinden, kannst du **bösartige Werte bereitstellen, die im nächsten Angriff erwähnt werden**.
|
||||
|
||||
#### Bösartige Werte festlegen
|
||||
#### Bösartige Werte setzen
|
||||
|
||||
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.
|
||||
Ein rogue DHCP server kann mit dem DHCP-Skript unter /usr/share/responder/DHCP.py eingerichtet werden. Das ist nützlich für Netzwerkangriffe, z. B. zum Abfangen von HTTP-Traffic und Anmeldeinformationen, indem Traffic auf einen bösartigen Server umgeleitet wird. Das Setzen eines rogue Gateway ist jedoch weniger effektiv, da es nur ausgehenden Traffic vom Client erfasst und die Antworten des echten Gateways verpasst. Stattdessen wird empfohlen, einen rogue DNS- oder WPAD-Server einzurichten, um einen wirkungsvolleren Angriff durchzuführen.
|
||||
|
||||
Im Folgenden sind die Befehlsoptionen zur Konfiguration des bösartigen DHCP-Servers aufgeführt:
|
||||
Nachfolgend die Kommandooptionen zur Konfiguration des rogue DHCP-Servers:
|
||||
|
||||
- **Unsere IP-Adresse (Gateway-Werbung)**: Verwenden Sie `-i 10.0.0.100`, um die IP Ihrer Maschine als Gateway zu bewerben.
|
||||
- **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 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.
|
||||
- **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.
|
||||
- **Unsere IP-Adresse (Gateway-Ankündigung)**: Use `-i 10.0.0.100` to advertise your machine's IP as the gateway.
|
||||
- **Lokaler DNS-Domainname**: Optional `-d example.org` verwenden, um einen lokalen DNS-Domainnamen festzulegen.
|
||||
- **IP des ursprünglichen Routers/Gateways**: Verwende `-r 10.0.0.1`, um die IP des legitimen Routers/Gateways anzugeben.
|
||||
- **IP des primären DNS-Servers**: Verwende `-p 10.0.0.100`, um die IP des von dir kontrollierten rogue DNS-Servers festzulegen.
|
||||
- **IP des sekundären DNS-Servers**: Optional `-s 10.0.0.1` verwenden, um eine sekundäre DNS-Server-IP anzugeben.
|
||||
- **Netzmaske des lokalen Netzwerks**: Verwende `-n 255.255.255.0`, um die Netzmaske für das lokale Netzwerk zu definieren.
|
||||
- **Interface für DHCP-Traffic**: Verwende `-I eth1`, um auf einem bestimmten Netzwerkinterface auf DHCP-Traffic zu lauschen.
|
||||
- **WPAD-Konfigurationsadresse**: Verwende `-w “http://10.0.0.100/wpad.dat”`, um die Adresse für die WPAD-Konfiguration zu setzen, was beim Abfangen von Web-Traffic hilft.
|
||||
- **Default Gateway IP fälschen**: `-S` einschließen, um die IP des Standard-Gateways zu spoofen.
|
||||
- **Auf alle DHCP-Anfragen antworten**: `-R` einschließen, damit der Server auf alle DHCP-Anfragen antwortet; beachte, dass dies sehr auffällig ist und erkannt werden kann.
|
||||
|
||||
Durch die korrekte Verwendung dieser Optionen kann ein bösartiger DHCP-Server eingerichtet werden, um den Netzwerkverkehr effektiv abzufangen.
|
||||
Durch korrekte Verwendung dieser Optionen lässt sich ein rogue DHCP-Server einrichten, um 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
|
||||
```
|
||||
### **EAP-Angriffe**
|
||||
|
||||
Hier sind einige der Angriffstaktiken, die gegen 802.1X-Implementierungen verwendet werden können:
|
||||
Hier sind einige der Angriffstaktiken, die gegen 802.1X-Implementierungen eingesetzt werden können:
|
||||
|
||||
- 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 beim Authentifizieren über einen Hub oder Ähnliches
|
||||
- Aktive brute-force-Passwort-Angriffe über EAP
|
||||
- Angriff auf den RADIUS-Server mit fehlerhaftem EAP-Inhalt _\*\*_(exploits)
|
||||
- Mitschnitt von EAP-Nachrichten und offline Passwort-Cracking (EAP-MD5 und PEAP)
|
||||
- Erzwingen der EAP-MD5-Authentifizierung, um TLS-Zertifikatvalidierung zu umgehen
|
||||
- Einspeisung bösartigen Netzwerkverkehrs 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:
|
||||
Wenn der Angreifer sich zwischen dem Opfer und dem Authentifizierungsserver befindet, könnte er versuchen, das Authentifizierungsprotokoll (falls nötig) auf EAP-MD5 herabzustufen und den Authentifizierungsversuch mitzuschneiden. Dann könnte er diesen per brute-force knacken mit:
|
||||
```
|
||||
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 dazu entwickelt wurden, ein hochverfügbares redundantes Routing-System zu schaffen. Mit FHRP können physische Router zu einem einzigen logischen Gerät zusammengefasst werden, was die Fehlertoleranz erhöht und zur Lastverteilung beiträgt.
|
||||
|
||||
**Cisco Systems-Ingenieure haben zwei FHRP-Protokolle entwickelt: GLBP und HSRP.**
|
||||
|
||||
**Cisco Systems-Ingenieure haben zwei FHRP-Protokolle entwickelt, GLBP und HSRP.**
|
||||
|
||||
{{#ref}}
|
||||
glbp-and-hsrp-attacks.md
|
||||
@ -552,54 +554,55 @@ 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. Im Gegensatz dazu ist native Authentifizierung in RIPng nicht integriert; stattdessen wird auf optionale IPsec AH- und ESP-Header innerhalb von IPv6 vertraut.
|
||||
Es sind drei Versionen des Routing Information Protocol (RIP) bekannt: RIP, RIPv2 und RIPng. RIP und RIPv2 senden Datagramme an Peers über UDP-Port 520, während RIPng Datagramme per IPv6-Multicast an UDP-Port 521 sendet. RIPv2 führte Unterstützung für MD5-Authentifizierung ein. RIPng hingegen enthält keine native Authentifizierung und verlässt sich stattdessen auf optionale IPsec AH- und ESP-Header in IPv6.
|
||||
|
||||
- **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.
|
||||
- **RIP und RIPv2:** Kommunikation erfolgt über UDP-Datagramme auf Port 520.
|
||||
- **RIPng:** Nutzt UDP-Port 521, um Datagramme via IPv6-Multicast zu übertragen.
|
||||
|
||||
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.
|
||||
Beachte, dass RIPv2 MD5-Authentifizierung unterstützt, während RIPng keine native Authentifizierung enthält und auf IPsec AH/ESP in IPv6 angewiesen ist.
|
||||
|
||||
### EIGRP Angriffe
|
||||
### EIGRP-Angriffe
|
||||
|
||||
**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**.
|
||||
**EIGRP (Enhanced Interior Gateway Routing Protocol)** ist ein dynamisches Routingprotokoll. **Es ist ein Distanzvektorprotokoll.** Fehlen Authentifizierung und die Konfiguration passiver Interfaces, kann ein **Angreifer** in das EIGRP-Routing eingreifen und **Routing-Tabellen vergiften**. Außerdem ist ein EIGRP-Netzwerk (also das autonome System) **flach und nicht in Zonen segmentiert**. Wenn ein **Angreifer eine Route injiziert**, wird diese Route wahrscheinlich 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.
|
||||
Um ein EIGRP-System anzugreifen, muss eine **Nachbarschaft zu einem legitimen EIGRP-Router** aufgebaut werden, was viele Möglichkeiten eröffnet — von einfacher Aufklärung bis zu verschiedenen Injektionen.
|
||||
|
||||
[**FRRouting**](https://frrouting.org/) ermöglicht die Implementierung **eines virtuellen Routers, der BGP, OSPF, EIGRP, RIP und andere Protokolle unterstützt.** Du musst es lediglich auf dem System des Angreifers deployen, und kannst dich tatsächlich als legitimer Router im Routing-Domain ausgeben.
|
||||
|
||||
[**FRRouting**](https://frrouting.org/) ermöglicht es Ihnen, **einen virtuellen Router zu implementieren, der BGP, OSPF, EIGRP, RIP und andere Protokolle unterstützt.** Alles, was Sie tun müssen, ist, es auf dem System des Angreifers bereitzustellen, und Sie können tatsächlich vorgeben, ein legitimer Router im Routing-Domain zu sein.
|
||||
|
||||
{{#ref}}
|
||||
eigrp-attacks.md
|
||||
{{#endref}}
|
||||
|
||||
[**Coly**](https://code.google.com/p/coly/) hat Fähigkeiten zum Abfangen von EIGRP (Enhanced Interior Gateway Routing Protocol) Broadcasts. Es ermöglicht auch die Injektion von Paketen, die verwendet werden können, um Routing-Konfigurationen zu ändern.
|
||||
[**Coly**](https://code.google.com/p/coly/) kann EIGRP-Broadcasts abfangen. Es erlaubt außerdem das Injizieren von Paketen, die genutzt werden können, um Routing-Konfigurationen zu verändern.
|
||||
|
||||
### OSPF
|
||||
|
||||
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.
|
||||
Im Open Shortest Path First (OSPF)-Protokoll wird häufig MD5-Authentifizierung verwendet, um die Kommunikation zwischen Routern abzusichern. 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 erlangt ist, kann er verwendet werden, um neue Routing-Informationen einzubringen. Zur Konfiguration der Routenparameter und zum Setzen des kompromittierten Schlüssels werden jeweils 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.
|
||||
- **Festlegen des kompromittierten Schlüssels:** Der Schlüssel wird im _Connection_-Tab konfiguriert.
|
||||
- **Konfiguration der Routenparameter:** Erfolgt über den _Injection_-Tab.
|
||||
- **Setzen des kompromittierten Schlüssels:** Wird im _Connection_-Tab vorgenommen.
|
||||
|
||||
### Andere generische Tools & Quellen
|
||||
### Other Generic Tools & Sources
|
||||
|
||||
- [**Above**](https://github.com/c4s73r/Above): Tool zum Scannen des Netzwerkverkehrs und Finden von Schwachstellen
|
||||
- Sie können einige **weitere Informationen über Netzwerkangriffe** [**hier**](https://github.com/Sab0tag3d/MITM-cheatsheet) finden.
|
||||
- [**Above**](https://github.com/c4s73r/Above): Tool, um Netzwerkverkehr zu scannen und Schwachstellen zu finden
|
||||
- Weitere Informationen über Netzwerkangriffe findest du [**hier**](https://github.com/Sab0tag3d/MITM-cheatsheet).
|
||||
|
||||
## **Spoofing**
|
||||
|
||||
Der Angreifer konfiguriert alle Netzwerkparameter (GW, IP, DNS) des neuen Mitglieds des Netzwerks, indem er gefälschte DHCP-Antworten sendet.
|
||||
Der Angreifer konfiguriert alle Netzwerkparameter (GW, IP, DNS) des neuen Mitglieds im Netzwerk, indem er gefälschte DHCP-Antworten sendet.
|
||||
```bash
|
||||
Ettercap
|
||||
yersinia dhcp -attack 2 #More parameters are needed
|
||||
```
|
||||
### ARP Spoofing
|
||||
|
||||
Überprüfen Sie den [vorherigen Abschnitt](#arp-spoofing).
|
||||
Siehe die [previous section](#arp-spoofing).
|
||||
|
||||
### 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 packet type 1 code 5 zu senden, das anzeigt, dass der Angreifer der beste Weg ist, um eine IP zu erreichen. Dann, wenn das Opfer die IP kontaktieren möchte, wird das Paket über den Angreifer gesendet.
|
||||
```bash
|
||||
Ettercap
|
||||
icmp_redirect
|
||||
@ -607,7 +610,7 @@ hping3 [VICTIM IP ADDRESS] -C 5 -K 1 -a [VICTIM DEFAULT GW IP ADDRESS] --icmp-gw
|
||||
```
|
||||
### DNS Spoofing
|
||||
|
||||
Der Angreifer wird einige (oder alle) Domains auflösen, die das Opfer anfragt.
|
||||
Der attacker wird einige (oder alle) Domains auflösen, die das victim anfragt.
|
||||
```bash
|
||||
set dns.spoof.hosts ./dns.spoof.hosts; dns.spoof on
|
||||
```
|
||||
@ -618,7 +621,7 @@ dig @localhost domain.example.com # Test the configured DNS
|
||||
```
|
||||
### Lokale Gateways
|
||||
|
||||
Es existieren oft mehrere Routen zu Systemen und Netzwerken. 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.
|
||||
Es existieren häufig mehrere Routen zu Systemen und Netzwerken. Nachdem Sie eine Liste der MAC-Adressen im lokalen Netzwerk erstellt haben, 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/
|
||||
@ -636,58 +639,58 @@ gateway-finder v1.0 http://pentestmonkey.net/tools/gateway-finder
|
||||
[+] We can ping 209.85.227.99 via 00:13:72:09:AD:76 [10.0.0.100]
|
||||
[+] We can reach TCP port 80 on 209.85.227.99 via 00:13:72:09:AD:76 [10.0.0.100]
|
||||
```
|
||||
### [Spoofing LLMNR, NBT-NS und mDNS](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
|
||||
### [Spoofing LLMNR, NBT-NS, and mDNS](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
|
||||
|
||||
Für die lokale Hostauflösung, wenn DNS-Abfragen erfolglos sind, verlassen sich Microsoft-Systeme auf **Link-Local Multicast Name Resolution (LLMNR)** und den **NetBIOS Name Service (NBT-NS)**. Ähnlich nutzen **Apple Bonjour** und **Linux Zero-Configuration**-Implementierungen **Multicast DNS (mDNS)**, um Systeme innerhalb eines Netzwerks zu entdecken. Aufgrund der nicht authentifizierten Natur dieser Protokolle und ihrer Funktionsweise über UDP, die Nachrichten sendet, können sie von Angreifern ausgenutzt werden, die darauf abzielen, Benutzer zu bösartigen Diensten umzuleiten.
|
||||
Für die lokale Namensauflösung, wenn DNS-Abfragen fehlschlagen, verlassen sich Microsoft-Systeme auf **Link-Local Multicast Name Resolution (LLMNR)** und den **NetBIOS Name Service (NBT-NS)**. Ebenso nutzen **Apple Bonjour** und **Linux zero-configuration** Implementierungen **Multicast DNS (mDNS)**, um Systeme im Netzwerk zu entdecken. Aufgrund der nicht authentifizierten Natur dieser Protokolle und ihrer Arbeitsweise über UDP-Broadcasts können sie von Angreifern ausgenutzt werden, um Benutzer auf bösartige Dienste umzuleiten.
|
||||
|
||||
Sie können Dienste, die von Hosts gesucht werden, mit Responder nachahmen, um gefälschte Antworten zu senden.\
|
||||
Lesen Sie hier mehr Informationen darüber, [wie man Dienste mit Responder nachahmt](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md).
|
||||
You can impersonate services that are searched by hosts using Responder to send fake responses.\
|
||||
Read here more information about [how to Impersonate services with Responder](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md).
|
||||
|
||||
### [Spoofing WPAD](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
|
||||
|
||||
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:
|
||||
Browser verwenden häufig das **Web Proxy Auto-Discovery (WPAD) protocol**, um Proxy-Einstellungen automatisch zu beziehen. Dabei werden Konfigurationsdaten von einem Server abgerufen, typischerweise über eine URL wie "http://wpad.example.org/wpad.dat". Die Erkennung dieses Servers durch Clients kann auf verschiedenen Wegen erfolgen:
|
||||
|
||||
- Über **DHCP**, wobei die Entdeckung durch die Nutzung eines speziellen Codes 252 erleichtert wird.
|
||||
- Durch **DNS**, was die Suche 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.
|
||||
- Über **DHCP**, wobei die Entdeckung durch die Verwendung eines speziellen Codes (252) ermöglicht wird.
|
||||
- Über **DNS**, wobei nach einem Hostnamen mit der Bezeichnung _wpad_ innerhalb der lokalen Domain gesucht wird.
|
||||
- Über **Microsoft LLMNR and NBT-NS**, die als Fallback-Mechanismen dienen, wenn DNS-Abfragen fehlschlagen.
|
||||
|
||||
Das Tool Responder nutzt dieses Protokoll, indem es als **bösartiger WPAD-Server** fungiert. Es verwendet DHCP, DNS, LLMNR und NBT-NS, um Clients in die Irre zu führen und sie dazu zu bringen, sich mit ihm zu verbinden. Um mehr darüber zu erfahren, wie Dienste mit Responder nachgeahmt werden können, [sehen Sie sich dies an](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md).
|
||||
Das Tool Responder nutzt dieses Protokoll aus, indem es als **malicious WPAD server** auftritt. Es verwendet DHCP, DNS, LLMNR und NBT-NS, um Clients dazu zu verleiten, sich mit ihm zu verbinden. To dive deeper into how services can be impersonated using Responder [check this](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md).
|
||||
|
||||
### [Spoofing SSDP und UPnP-Geräte](spoofing-ssdp-and-upnp-devices.md)
|
||||
### [Spoofing SSDP and UPnP devices](spoofing-ssdp-and-upnp-devices.md)
|
||||
|
||||
Sie können verschiedene Dienste im Netzwerk anbieten, um zu versuchen, einen **Benutzer zu täuschen**, damit er einige **Klartext-Anmeldeinformationen** eingibt. **Mehr Informationen über diesen Angriff in** [**Spoofing SSDP und UPnP-Geräte**](spoofing-ssdp-and-upnp-devices.md)**.**
|
||||
Du kannst verschiedene Dienste im Netzwerk anbieten, um einen Benutzer zu täuschen und dazu zu bringen, **Klartext-Anmeldeinformationen** einzugeben. **More information about this attack in** [**Spoofing SSDP and UPnP Devices**](spoofing-ssdp-and-upnp-devices.md)**.**
|
||||
|
||||
### IPv6 Neighbor Spoofing
|
||||
|
||||
Dieser Angriff ist sehr ähnlich zu ARP Spoofing, jedoch in der IPv6-Welt. Sie können das Opfer dazu bringen zu glauben, dass die IPv6 des GW die MAC des Angreifers hat.
|
||||
Dieser Angriff ist dem ARP Spoofing sehr ähnlich, aber in der IPv6-Welt. Du kannst das Opfer dazu bringen zu glauben, dass die IPv6-Adresse des GW die MAC-Adresse des Angreifers hat.
|
||||
```bash
|
||||
sudo parasite6 -l eth0 # This option will respond to every requests spoofing the address that was requested
|
||||
sudo fake_advertise6 -r -w 2 eth0 <Router_IPv6> #This option will send the Neighbor Advertisement packet every 2 seconds
|
||||
```
|
||||
### IPv6 Router Advertisement Spoofing/Flooding
|
||||
|
||||
Einige Betriebssysteme konfigurieren standardmäßig das Gateway aus den im Netzwerk gesendeten RA-Paketen. Um den Angreifer als IPv6-Router zu deklarieren, können Sie Folgendes verwenden:
|
||||
Einige OS konfigurieren standardmäßig das Gateway anhand der im Netzwerk gesendeten RA-Pakete. Um den Angreifer als IPv6-Router zu deklarieren, können Sie Folgendes verwenden:
|
||||
```bash
|
||||
sysctl -w net.ipv6.conf.all.forwarding=1 4
|
||||
ip route add default via <ROUTER_IPv6> dev wlan0
|
||||
fake_router6 wlan0 fe80::01/16
|
||||
```
|
||||
### IPv6 DHCP Spoofing
|
||||
### IPv6 DHCP spoofing
|
||||
|
||||
Standardmäßig versuchen einige Betriebssysteme, den DNS zu konfigurieren, indem sie ein DHCPv6-Paket im Netzwerk lesen. Ein Angreifer könnte dann ein DHCPv6-Paket senden, um sich selbst als DNS zu konfigurieren. Der DHCP stellt auch eine IPv6-Adresse für das Opfer bereit.
|
||||
Standardmäßig versuchen einige OS, die DNS-Konfiguration zu übernehmen, indem sie ein DHCPv6-Paket im Netzwerk auslesen. Ein Angreifer könnte dann ein DHCPv6-Paket senden, um sich selbst als DNS zu konfigurieren. DHCP stellt dem Opfer außerdem eine IPv6-Adresse bereit.
|
||||
```bash
|
||||
dhcp6.spoof on
|
||||
dhcp6.spoof.domains <list of domains>
|
||||
|
||||
mitm6
|
||||
```
|
||||
### HTTP (falsche Seite und JS-Code-Injektion)
|
||||
### HTTP (fake page and JS code injection)
|
||||
|
||||
## Internetangriffe
|
||||
## Internet Attacks
|
||||
|
||||
### sslStrip
|
||||
|
||||
Im Grunde genommen besteht dieser Angriff darin, dass, falls der **Benutzer** versucht, eine **HTTP**-Seite zu **zugreifen**, die auf die **HTTPS**-Version **umgeleitet** wird. **sslStrip** wird eine **HTTP-Verbindung mit** dem **Client** und eine **HTTPS-Verbindung mit** dem **Server** **aufrechterhalten**, sodass es in der Lage ist, die Verbindung im **Klartext** zu **sniffen**.
|
||||
Im Wesentlichen funktioniert dieser Angriff so: Falls der **Benutzer** versucht, auf eine **HTTP**-Seite zu **zugreifen**, die auf die **HTTPS**-Version **weiterleitet**. **sslStrip** wird eine **HTTP-Verbindung mit** dem **Client** und eine **HTTPS-Verbindung mit** dem **Server** **aufrechterhalten**, sodass ein **sniff** der Verbindung im **Klartext** möglich ist.
|
||||
```bash
|
||||
apt-get install sslstrip
|
||||
sslstrip -w /tmp/sslstrip.log --all - l 10000 -f -k
|
||||
@ -696,22 +699,22 @@ sslstrip -w /tmp/sslstrip.log --all - l 10000 -f -k
|
||||
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000
|
||||
iptables -A INPUT -p tcp --destination-port 10000 -j ACCEPT
|
||||
```
|
||||
Mehr Informationen [hier](https://www.blackhat.com/presentations/bh-dc-09/Marlinspike/BlackHat-DC-09-Marlinspike-Defeating-SSL.pdf).
|
||||
Mehr Infos [here](https://www.blackhat.com/presentations/bh-dc-09/Marlinspike/BlackHat-DC-09-Marlinspike-Defeating-SSL.pdf).
|
||||
|
||||
### sslStrip+ und dns2proxy zum Umgehen von HSTS
|
||||
### sslStrip+ and dns2proxy zur Umgehung von HSTS
|
||||
|
||||
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 Angreifer-IP** 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**.
|
||||
Der **Unterschied** zwischen **sslStrip+ and dns2proxy** gegenüber **sslStrip** ist, dass sie zum Beispiel _**www.facebook.com**_ **auf** _**wwww.facebook.com**_ (beachte das **zusätzliche** "**w**") umleiten und die **Adresse dieser Domain als Angreifer-IP** setzen. Auf diese Weise wird der **Client** sich mit _**wwww.facebook.com**_ **(der Angreifer)** verbinden, aber hinter den Kulissen wird **sslstrip+** die **echte Verbindung** über https zu **www.facebook.com** **aufrechterhalten**.
|
||||
|
||||
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 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 erfolgen.
|
||||
Das **Ziel** dieser Technik ist es, **HSTS zu umgehen**, weil _**wwww**.facebook.com_ **nicht** im **Cache** des Browsers gespeichert wird, sodass der Browser dazu verleitet wird, die **Facebook-Authentifizierung über HTTP** durchzuführen.\
|
||||
Beachte, dass um diesen Angriff durchzuführen das Opfer zunächst versuchen muss, auf [http://www.faceook.com](http://www.faceook.com) und nicht auf https zuzugreifen. Dies kann erreicht werden, indem die Links innerhalb einer http-Seite modifiziert werden.
|
||||
|
||||
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).
|
||||
Mehr Infos [here](https://www.bettercap.org/legacy/#hsts-bypass), [here](https://www.slideshare.net/Fatuo__/offensive-exploiting-dns-servers-changes-blackhat-asia-2014) and [here](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 or sslStrip+ funktionieren nicht mehr. Das liegt daran, dass HSTS-Regeln in den Browsern vorab gespeichert sind, sodass selbst wenn ein Benutzer zum ersten Mal auf eine „wichtige“ Domain zugreift, er sie über HTTPS erreichen wird. Beachte außerdem, dass die vorab gespeicherten Regeln und andere generierte Regeln das Flag** [**`includeSubdomains`**](https://hstspreload.appspot.com) **verwenden können, sodass das** _**wwww.facebook.com**_ **Beispiel von vorher nicht mehr funktioniert, da** _**facebook.com**_ **HSTS mit `includeSubdomains` verwendet.**
|
||||
|
||||
TODO: easy-creds, evilgrade, metasploit, factory
|
||||
|
||||
## TCP hören auf Port
|
||||
## TCP: auf Port lauschen
|
||||
```bash
|
||||
sudo nc -l -p 80
|
||||
socat TCP4-LISTEN:80,fork,reuseaddr -
|
||||
@ -728,18 +731,18 @@ openssl req -new -key $FILENAME.key -x509 -sha256 -days 3653 -out $FILENAME.crt
|
||||
# Generate the PEM file by just appending the key and certificate files:
|
||||
cat $FILENAME.key $FILENAME.crt >$FILENAME.pem
|
||||
```
|
||||
#### Hören mit Zertifikat
|
||||
#### Lauschen mit certificate
|
||||
```
|
||||
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
|
||||
#### Mit certificate lauschen und an hosts weiterleiten
|
||||
```
|
||||
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**.\
|
||||
Ein weiterer interessanter Test besteht darin, ein **Zertifikat des angeforderten Hostnamens, das selbstsigniert ist, bereitzustellen**.
|
||||
Manchmal, wenn der Client überprüft, dass die CA gültig ist, könntest du **serve a certificate of other hostname signed by a CA**.\
|
||||
Ein weiterer interessanter Test ist, eine c**ertificate of the requested hostname but self-signed** auszugeben.
|
||||
|
||||
Weitere Dinge, die getestet werden können, sind der Versuch, das Zertifikat mit einem gültigen Zertifikat zu signieren, das keine gültige CA ist. Oder die Verwendung des gültigen öffentlichen Schlüssels, 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 Abfrage des echten privaten Schlüssels anfordert (wie einen Hash), eine gefälschte Abfrage zu senden und zu erwarten, dass der Kunde dies nicht überprüft.
|
||||
Weitere Dinge, die man testen kann, sind zu versuchen, das certificate mit einem valid certificate zu signieren, das keine gültige CA ist. Oder die valid public key zu verwenden, erzwingen, dass ein Algorithmus wie diffie hellman genutzt wird (einer, der nichts mit dem echten private key entschlüsseln muss) und wenn der client eine probe des echten private key anfordert (wie einen hash), eine gefälschte probe senden und erwarten, dass der client dies nicht prüft.
|
||||
|
||||
## Bettercap
|
||||
```bash
|
||||
@ -767,19 +770,19 @@ set wifi.ap.channel 5
|
||||
set wifi.ap.encryption false #If true, WPA2
|
||||
wifi.recon on; wifi.ap
|
||||
```
|
||||
### Aktive Entdeckungsnotizen
|
||||
### Aktive Discovery-Hinweise
|
||||
|
||||
Beachten Sie, dass beim Senden eines UDP-Pakets an ein Gerät, das den angeforderten Port nicht hat, ein ICMP (Port Unreachable) gesendet wird.
|
||||
Beachte, dass wenn ein UDP-Paket an ein Gerät gesendet wird, das den angeforderten Port nicht hat, eine ICMP-Antwort (Port Unreachable) gesendet wird.
|
||||
|
||||
### **ARP-Entdeckung**
|
||||
### **ARP-Erkennung**
|
||||
|
||||
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.
|
||||
ARP-Pakete werden verwendet, um zu erkennen, welche IPs im Netzwerk verwendet werden. Der PC muss für jede mögliche IP-Adresse eine Anfrage senden, und nur die verwendeten Adressen 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.
|
||||
Bettercap sendet eine MDNS-Anfrage (alle X ms) für **\_services\_.dns-sd.\_udp.local**. Die Maschine, die dieses Paket sieht, antwortet normalerweise auf diese Anfrage. Danach sucht es nur nach Maschinen, die auf "services" antworten.
|
||||
|
||||
**Werkzeuge**
|
||||
**Tools**
|
||||
|
||||
- Avahi-browser (--all)
|
||||
- Bettercap (net.probe.mdns)
|
||||
@ -787,17 +790,19 @@ Bettercap sendet eine MDNS-Anfrage (alle X ms), die nach **\_services\_.dns-sd.\
|
||||
|
||||
### **NBNS (NetBios Name Server)**
|
||||
|
||||
Bettercap sendet Broadcast-Pakete an den Port 137/UDP und fragt nach dem Namen "CKAAAAAAAAAAAAAAAAAAAAAAAAAAA".
|
||||
Bettercap sendet Broadcast-Pakete an Port 137/UDP und fragt nach dem Namen "CKAAAAAAAAAAAAAAAAAAAAAAAAAAA".
|
||||
|
||||
### **SSDP (Simple Service Discovery Protocol)**
|
||||
|
||||
Bettercap sendet Broadcast-SSDP-Pakete, die nach allen Arten von Diensten suchen (UDP-Port 1900).
|
||||
Bettercap sendet SSDP-Broadcasts, die nach allen Arten von Services suchen (UDP Port 1900).
|
||||
|
||||
### **WSD (Web Service Discovery)**
|
||||
|
||||
Bettercap sendet Broadcast-WSD-Pakete, die nach Diensten suchen (UDP-Port 3702).
|
||||
Bettercap sendet WSD-Broadcasts, die nach Services suchen (UDP Port 3702).
|
||||
|
||||
|
||||
### Telecom / Mobile-Core (GTP) Exploitation
|
||||
|
||||
### Telekom / Mobile-Core (GTP) Ausnutzung
|
||||
|
||||
{{#ref}}
|
||||
telecom-network-exploitation.md
|
||||
@ -806,8 +811,10 @@ telecom-network-exploitation.md
|
||||
## Referenzen
|
||||
|
||||
- [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}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user