Posted by: Gökhan ALKAN 21 Ocak 2014
URPF (Unicast Reverse Path Forwarding) ağ ve güvenlik cihazlarında IP spoofing'le mücadele etmek için kullanılan bir özelliktir.
Basitçe, URPF paketin kaynak IP adresinin yönlendirme tablosu ile karşılaştırılması sonucu paketin uygun arayüzden gelip gelmediğinin kontrol eder. URPF, internetten gelecek paketler için değil, güvenlik/ağ cihazı tarafından korunan sistemler için geçerlidir.
DDoS testleri gerçekleştirilirken genellikle test yapılan ağın çıkışındaki bir ağ/güvenlik cihazı üretilen sahte IP paketlerini URPF'den (ya da benzeri bir özellikten) dolayı engelliyor olabilir. Bu gibi durumlarda üretilen paketler internete çıkamayacağı için hedef sisteme etkisi olmayacaktır. Bu gibi ortamlarda gönderilecek paketler kullanılan sistemle aynı subnetten üretilirse (mesela DDoS testi icin kullanılan sistemin IP adresi 192.168.1.3/24 olsun, burada 192.168.1.0/24 subnetinden rastgele IP kullanılabilir) URPF'e takılmadan hedef sisteme erişebilecektir.
DDoS testlerinde yoğun kullanılan Hping, ağ testleri icin kullanılan açık kaynak kodlu bir yazılımdır. Özellikle --rand-source parametresi ile kaynak IP adreslerinin değişken olması sağlanabilmektedir.
Ancak istenen ip adres bloğundan kaynak paketlerin gönderilebilmesi hping ile ön tanımlı olarak sağlanamamaktadır. Geliştirilen yama ile bu özellik --rand-pattern-source parametresi ile sağlanabilmektedir. İlgili yamanın uygulanması ve sonrasında kullanımına dair ayrıntılar aşağıda anlatılmaktadır.
Kurulum öncesi sistem gereksinimleri
- tcl paketlerinin kurulu olması gerekmektedir.
# apt-get install tcl8.4 tcl8.4-dev
- libpcap için bir symbolic link ataması gerekmektedir.
# mkdir /usr/local/include/net
# ln -sf /usr/include/pcap-bpf.h /usr/local/include/net/bpf.h
# wget --no-check-certificate https://raw.github.com/galkan/others/master/patches/hping-rand-pattern
# patch -p1 -i ../hping-rand-pattern
Gerekli yamanın uygulanmasının ardından kurulum işlemi tamamlanır ve --rand-pattern-source parametresi ile istenilen IP bloğundan paketler gönderilebilmektedir. Örneğin 127.0.0.1 hedefinin tcp/3737 portuna 192.168.x.x kaynak IP adres bloğundan paket göndermek için;
# hping3 -c 3 -S -p 3737 127.0.0.1 --rand-pattern-source 192.168.x.x
şeklinde bir kullanım gerekmektedir. İlgili paketlere ait tcpdump çıktısı ise aşağıda göruldügü gibi olmaktadır.
Görüldüğü gibi 192.168.111.137, 192.168.108.254 ve 192.168.174.173 kaynak IP adreslerinden paketler gelmektedir. Yine aynı şekilde 127.0.0.1 hedef sunucusunun tcp/3737 portuna 192.x.x.37 kaynak ip adres bloğundan paket göndermek için;
# hping3 -c 3 -S -p 3737 127.0.0.1 --rand-pattern-source 192.x.x.37
şeklinde bir kullanım gerekmektedir. İlgili paketlere ait tcpdump çıktısı ise aşağıda görüldüğü gibi olmaktadır.
Görüldüğü gibi 192.181.54.37, 192.27.215.37 ve kaynak ip adreslerinden paketler gelmektedir. Tamamen değişken kaynak IP adresleri üretmek için ise --rand-pattern-source x.x.x.x kullanılamamaktadır. Hping ile ön tanımlı sağlanan bu özellik --rand-source parametresi aracılığı ile gerçekleştirilmektedir. Bu şekilde kullanıldığında ise aşağidaki gibi uyarı alınacaktır.
# hping3 -c 3 -S -p 3737 127.0.0.1 --rand-pattern-source x.x.x.x
Try --rand-source yeah :)
Yine aynı şekilde hem --rand-pattern-source ve --rand-source parametreleri aynı anda kullanılamamaktadır. Bu durumda aşağıdaki gibi uyarı mesaji alınacaktır.
# hping3 -c 3 -S -p 3737 127.0.0.1 --rand-pattern-source 127.x.x.x --rand-source
Not use both --rand-pattern-source && --rand-source options !
Özetle bu yama ile Hping istenen kaynak IP adresi yada IP adres bloğundan istenen paketleri üretebilmektedir. Özellikle network testlerinde kullanilan bu yöntem hping ile gerçekleştirilebilmektedir.
NOT: Bu makalenin en guncel surumune http://www.galkan.net/2013/12/hping-ile-random-source-yamasi-ile-ddos-testleri.html adresinden erisim saglanabilir.
ağ analizi, DOS/DDOS attack, hacking, hping, LAN security, network scanning, pentest, security articles, security tools, tcpdump