Offence: DHCP-Spoofing - Was ist das eigentlich?

DHCP-Spoofing ist eine Technik die das Einbringen eines “inoffiziellen” DHCP-Servers beschreibt mit dem ein Angreifer Netzwerkkonfigurationen verteilen kann um Netzwerkverkehr mitlesen zu können – also ein klassischer Man-in-the-Middle-Angriff. 

Das Problem besteht jedoch darin, schneller zu sein als der richtige DHCP-Server im Netzwerk. Um sicherzustellen, dass ein Client, beim Versuch ein DHCP-Lease zu erhalten, das Offer eines Angreifers annimmt kann man eine DHCP-Starvation Attack nutzen.

Kann der richtige DHCP-Server keine Leases mehr verteilen, wird unser “Rogue”-DHCP Server verwendet.

Unter Linux steht dafür der Dienst „dhcpd“ zur Verfügung. Die zu verteilende Konfiguration findet man in Linux unter:

/etc/dhcp/dhcpd.conf. 

Diese kann man einfach mit vim editieren.

linux

In der Config sind verschiedenste Netzwerkkonfiguration zu finden, wie beispielsweise:

  • Lease-Time
  • Subnetz
  • IP-Range
  • Gateway (routers)
  • DNS-Server

Sobald der Angreifer seinen DHCP-Server konfiguriert hat, sprich Gateway etc. angepasst wurden, kann dieser gestartet werden.

Dazu führt man den Befehl „dhcpd“ aus. 

linux2

Der gefälschte DHCP des Angreifer läuft nun. Alle kommenden Anfragen, auch Renews, werden ab diesem Zeitpunkt mit einer neuen gefälschten Konfiguration vom Angreifer-DHCP versorgt. Der Attacker trägt sich hier als Gateway / Router bei den anfragenden Clients ein, sodass der ganze Traffic über den Angreifer geleitet wird. Problematisch wird es jedoch bei großen Client-Netzwerken, da wirklich jeder Traffic über den Angreifer geht.

Verhindere einen Hackerangriff auf Dein IT-System. Buche jetzt einen professionellen Pentest!

WPAD - Was ist das und wie funktioniert das?

WPAD ist die Abkürzung für „Web Proxy Auto Discover“ und dient dazu, in einem Netzwerk einem Client einen Proxy-Server automatisch zuzuweisen. 

Damit ein Client einen Proxy-Server über WPAD findet, schaut dieser zuerst in seinem DHCP-Lease, ob ein WPAD-Eintrag vorhanden ist. Wenn kein Eintrag vorhanden ist, stellt der Client eine DNS-Anfrage, und versucht eine IP-Adresse für den Eintrag „wpad.domain.com“ zu finden. Wird kein passender DNS-Eintrag gefunden, fragt der Client über den NETBIOS Name Service oder LLMNR nach einem WPAD-Server. Ist nach diesem Prozess die Suche immer noch nicht erfolgreich, scheint kein WPAD-Proxy im Einsatz zu sein. 

Wird ein WPAD-Proxy über einen DHCP-Lease vergeben, dann sieht die dhcpd.conf wie folgt aus: 

 

Mithilfe der Option „wpad code 252“ kann die WPAD-URL verteilt werden. Ein zusätzlicher Konfigurations-Eintrag „option wpad „http://Angreifer-IP/wpad.dat““ verweist auf die WPAD-Konfiguration wpad.dat. Der Vorteil für die Benutzung von WPAD aus Angreifersicht besteht darin, dass der Angreifer eindeutig Netzwerk-Traffic filtern kann und bestimmen kann, welchen Traffic er intercepten möchte.

Dabei wird als Proxy-Server die Adresse des Angreifers zurückgegeben. Zusammengefasst bedeutet dies, alles was an HTTP-Traffic kommt, wird über diesen Proxy-Eintrag an den Angreifer direkt weitergeleitet. Der eingehende Traffic kann dann vom Angreifer manipuliert werden. 

Die WPAD-Konfiguration wird über einen einfachen HTTP-Server verteilt, welcher vom Angreifer aus gestartet werden muss.