Penetrasyon testlerinde firewall keşfi

Penetrasyon testlerinin ilk ve en önemli adımı olan bilgi toplama kısmında pentest yapan kişi/firma öncelikle hedef ağın bir haritasını çıkarır. Bu harita test edilen ağın dışardan nasıl göründüğünü belirler aynı zamanda testi yapanların ne kadar işin ehli olduğunu belirlemeye de yarar.

Gerçi Türkiye’de yapılan pentestlerde firmalar IPS ve Firewall üzerinden full erişim istemekte ve aslında çok sağlam bulgulara yol açacak bu adım es geçilmekte. Çok sağlam bulgulardan kastım yapılan testlerde hedef sisteme sızma değil, hedef sistemin avaibility’sini sıkıntıya sokabilecek bulgular(birkaç yüz paketle 1-2Gblik hatta sahip olan bir sistemi DOS’a maruz bırakma vs gibi).

Evet günümüzde sık kullanılan bazı güvenlik sistemleri(Firewall/IPS/DDOS Engelleme)eğer dikkatli ayarlanmadıysa rahatlıkla DOS’a maruz bırakılabiliyor(DOS yapmak için 3-4 Mb hat yeterli oluyor). Bunlardan 4-5 tanesini bizzat çalışan sistemlerde firmaların izinlerini alarak test ettim ve sonuç tam manasıyla ürkütücü çıktı. Çeşitli saldırılardan korunmak üzere kurduğumuz  sistemlere karşı yapılacak akıllı saldırılar sonucu koruma sistemleri birden kılık değiştirerek tüm ağı engellemeye başlayabiliyor.

Nasıl’ı merak ediyorsanız Beyaz Şapkalı Hacker veya Uygulamalı TCP/IP Güvenliği eğitimlerinden birine kontenjanınızı ayırtmanızı öneririm.

Lafı bırakıp icraata geçelim: Amacımız hedef sistem önündeki Router ve Firewall’u keşfetme. IPS keşfini daha önce burada yazmaya çalışmıştım. 

Hedef sistem önünde bulunan firewallu keşfetme için öncelikle babadan kalma traceroute’u denemek gerekiyor ki buradan bir ekmek çıkmayacağını peşinen biliyoruz ama yine de ayıp olmasın diye ilk  adım olarak deniyoruz.

 # traceroute www.checkpoint.com
traceroute to www.checkpoint.com (216.200.241.66), 64 hops max, 40 byte packets
 1 ….
 2  …
 3  21.9.229.240 (212.98.229.240)  0.231 ms  0.243 ms  0.378 ms
 4  84.44.45.21 (84.44.45.21)  0.730 ms  0.589 ms  0.457 ms
 5  195.175.51.157 (195.175.51.157)  3.862 ms  17.334 ms  9.852 ms
 6  gayrettepe-t2-2-gayrettepe-t3-2.turktelekom.com.tr (212.156.118.241)  2.080 ms  94.674 ms  4.689 ms
 7  static.turktelekom.com.tr (212.156.103.33)  67.097 ms  56.423 ms  59.083 ms
 8  xe-11-1-0.edge3.London1.Level3.net (212.113.15.109)  67.160 ms  67.119 ms  67.198 ms
 9  ae-22-52.car2.London1.Level3.net (4.69.139.99)  68.780 ms
    ae-12-51.car2.London1.Level3.net (4.69.139.67)  68.719 ms  69.232 ms
10  ge-3-0-0.mpr1.lhr2.uk.above.net (208.185.188.185)  68.731 ms  68.871 ms  68.811 ms
11  ge-4-1-0.mpr1.lhr2.uk.above.net (64.125.27.145)  68.930 ms  69.333 ms  68.821 ms
12  so-1-1-0.mpr1.dca2.us.above.net (64.125.31.186)  133.635 ms  133.576 ms  135.907 ms
13  so-1-2-0.mpr1.lga5.us.above.net (64.125.26.102)  132.384 ms  132.603 ms  132.791 ms
14  xe-0-1-0.er1.lga5.us.above.net (64.125.27.61)  132.520 ms  133.093 ms  132.402 ms
15  xe-0-2-0.er1.sjc2.us.above.net (64.125.25.6)  215.351 ms  215.059 ms  215.109 ms
16  64.124.201.234 (64.124.201.234)  216.458 ms  216.444 ms  216.469 ms
17  * * *
18  * *^C

Görüleceği üzere klasik traceroute işimize yaramadı. Hedefe ulaşamadan aradaki sistemlerin ACL’lerine takıldı.

Hedef sistemin web sunucusu olduğunu bildiğimizden yöntem değiştirerek TCP paketlerini kullanarak trace çekmeyi deniyoruz. Burada amacımız Firewall arkasında olan web sunucuya 80. Porttan TCP SYN bayraklı paketler göndermek (her pakette TTL değerini bir düşürerek) ve dönecek cevaplara gore Router-Firewall-Web sunucu üçlüsünü bulmak.
Tcptraceroute için hping kullanıyoruz, isteyen aynı işi yapan tcptraceroute  programını da kullanabilir.

# hping -T -S -p 80 www.checkpoint.com -n
HPING www.checkpoint.com (em0 216.200.241.66): S set, 40 headers + 0 data bytes
hop=1 TTL 0 during transit from ….
hop=1 hoprtt=4.3 ms
hop=2 TTL 0 during transit from ip=….
hop=2 hoprtt=0.2 ms
hop=3 TTL 0 during transit from ip=212.98.229.240
hop=3 hoprtt=1.9 ms
hop=4 TTL 0 during transit from ip=84.44.45.21
hop=4 hoprtt=0.6 ms
hop=5 TTL 0 during transit from ip=195.175.51.157
hop=5 hoprtt=4.3 ms
hop=6 TTL 0 during transit from ip=212.156.118.241
hop=6 hoprtt=33.0 ms
hop=7 TTL 0 during transit from ip=212.156.103.33
hop=7 hoprtt=56.9 ms
hop=8 TTL 0 during transit from ip=212.113.15.109
hop=8 hoprtt=68.5 ms
hop=9 TTL 0 during transit from ip=4.69.139.99
hop=9 hoprtt=239.8 ms
hop=10 TTL 0 during transit from ip=208.185.188.185
hop=10 hoprtt=67.6 ms
hop=11 TTL 0 during transit from ip=64.125.27.145
hop=11 hoprtt=69.4 ms
hop=12 TTL 0 during transit from ip=64.125.31.186
hop=12 hoprtt=133.4 ms
hop=13 TTL 0 during transit from ip=64.125.26.102
hop=13 hoprtt=132.8 ms
hop=14 TTL 0 during transit from ip=64.125.27.61
hop=14 hoprtt=132.4 ms
hop=15 TTL 0 during transit from ip=64.125.25.6
hop=15 hoprtt=214.9 ms
hop=16 TTL 0 during transit from ip=64.124.201.234
hop=16 hoprtt=216.0 ms
hop=17 TTL 0 during transit from ip=216.200.160.5
hop=17 hoprtt=231.9 ms
len=46 ip=216.200.241.66 ttl=48 DF id=0 sport=80 flags=SA seq=17 win=5840 rtt=206.7 ms
len=46 ip=216.200.241.66 ttl=48 DF id=0 sport=80 flags=SA seq=18 win=5840 rtt=206.8 ms
len=46 ip=216.200.241.66 ttl=48 DF id=0 sport=80 flags=SA seq=19 win=5840 rtt=245.8 ms
^C
www.checkpoint.com hping statistic —

ilk traceroute denemesinde son gördüğümüz ip adresi 64.124.201.234 idi. Tcptrace çekerek iki adım daha ileriye gidebildik.(-> 216.200.160.5 ve 216.200.241.66)

Burada web sunucudan bir önceki adımı -17.adım-(216.200.160.5) Firewall olarak düşünebiliriz(ya da benzeri işlev gören bir ağ cihazı). Bu bulgumuzu kesinleştirmek için aynı hedefe açık olmadığını düşündüğümüz bir porttan tekrar TCPtrace çekelim ve sonucunu inceleyelim.

#  hping -T -S -p 81 www.checkpoint.com  -n
HPING www.checkpoint.com (em0 216.200.241.66): S set, 40 headers + 0 data bytes
hop=1 TTL 0 during transit from ip=…
hop=1 hoprtt=0.7 ms
hop=2 TTL 0 during transit from ip=….
hop=2 hoprtt=0.3 ms
hop=3 TTL 0 during transit from ip=212.98.229.240
hop=3 hoprtt=0.2 ms
hop=4 TTL 0 during transit from ip=84.44.45.21
hop=4 hoprtt=0.5 ms
hop=5 TTL 0 during transit from ip=195.175.51.157
hop=5 hoprtt=8.2 ms
hop=6 TTL 0 during transit from ip=212.156.118.241
hop=6 hoprtt=57.7 ms
hop=7 TTL 0 during transit from ip=212.156.103.33
hop=7 hoprtt=59.5 ms
hop=8 TTL 0 during transit from ip=212.113.15.109
hop=8 hoprtt=67.1 ms
hop=9 TTL 0 during transit from ip=4.69.139.99
hop=9 hoprtt=67.5 ms
hop=10 TTL 0 during transit from ip=208.185.188.185
hop=10 hoprtt=67.4 ms
hop=11 TTL 0 during transit from ip=64.125.27.145
hop=11 hoprtt=69.1 ms
hop=12 TTL 0 during transit from ip=64.125.31.186
hop=12 hoprtt=133.6 ms
hop=13 TTL 0 during transit from ip=64.125.26.102
hop=13 hoprtt=132.5 ms
hop=14 TTL 0 during transit from ip=64.125.27.61
hop=14 hoprtt=132.3 ms
hop=15 TTL 0 during transit from ip=64.125.25.6
hop=15 hoprtt=215.2 ms
hop=16 TTL 0 during transit from ip=64.124.201.234
hop=16 hoprtt=216.2 ms
19: ^C
www.checkpoint.com hping statistic —
51 packets tramitted, 16 packets re

çıktıdan görüleceği üzere 81. porta yaptığımız tcptrace çalışmasında 16. adımda takıldık. Bulgularımıza göre 16. adım Router, 17. adım Firewall idi. Firewall’a gelen TCP 81 ve TTL değeri 1 olan paket firewall kurallarında DROP olacağı için geriye TTL Expired mesajı dönmüyor ve biz 16.adımdan ileriye geçemiyoruz.

Firewall yanı zamanda NAT yapıyorsa…

Eğer firewall cihazı NAT yapıyorsa son iki adımın IP adresi aynı kalacaktır.

# hping -T -S -p 80 www.sirkett.com -n
HPING www.sirkett.com (em0 11.22.33.66): S set, 40 headers + 0 data bytes
hop=1 TTL 0 during transit from ip=212.98.228.241
hop=1 hoprtt=0.6 ms
hop=2 TTL 0 during transit from ip=62.244.216.145
hop=2 hoprtt=0.2 ms
hop=3 TTL 0 during transit from ip=212.98.229.240
hop=3 hoprtt=0.2 ms
hop=4 TTL 0 during transit from ip=84.44.45.21
hop=4 hoprtt=0.7 ms
hop=5 TTL 0 during transit from ip=92.44.45.1
hop=5 hoprtt=61.8 ms
hop=6 TTL 0 during transit from ip=85.29.56.38
hop=6 hoprtt=1.8 ms
hop=7 TTL 0 during transit from ip=85.29.5.30
hop=7 hoprtt=3.3 ms
hop=8 TTL 0 during transit from ip=85.29.5.54
hop=8 hoprtt=3.4 ms
hop=9 TTL 0 during transit from ip=85.29.5.4
hop=9 hoprtt=3.4 ms
hop=10 TTL 0 during transit from ip=11.22.33.66
hop=10 hoprtt=3.4 ms
len=46 ip=11.22.33.66 ttl=54 DF id=0 sport=80 flags=SA seq=10 win=5840 rtt=3.7 ms

Eğer hedef sistemin önünde Syncooki/synproxy destekleyen bir cihaz varsa tcptrace denemelerimiz başarılı sonuç vermeyecektir. Zira aradaki syncookie korumalı cihaz bizden gelen her SYN paketine kendisi cevap vereceği ve biz üçlü el sıkışmayı tamamlamadan arkasına paket geçirmeyeceği için Firewall cihazını keşfetme planımız TCP üzerinden suya düşecektir.

# hping -p 80 -S www.sirket1.com -n -T
HPING www.sirket1.com (bce1 11.22.33.44): S set, 40 headers + 0 data bytes
hop=1 TTL 0 during transit from ip=91.9.19.5
hop=1 hoprtt=27.2 ms
hop=2 TTL 0 during transit from ip=84.51.1.97
hop=2 hoprtt=2.6 ms
hop=3 TTL 0 during transit from ip=92.44.45.7
hop=3 hoprtt=4.8 ms
hop=4 TTL 0 during transit from ip=212.98.229.240
hop=4 hoprtt=3.4 ms
hop=5 TTL 0 during transit from ip=84.44.64.1
hop=5 hoprtt=4.8 ms
hop=6 TTL 0 during transit from ip=62.244.26.16
hop=6 hoprtt=30.7 ms
len=46 ip=11.22.33.44 ttl=58 DF id=21415 sport=80 flags=SA seq=6 win=0 rtt=6.4 ms
len=46 ip=11.22.33.44 ttl=58 DF id=21504 sport=80 flags=SA seq=7 win=0 rtt=8.4 ms
len=46 ip=11.22.33.44 ttl=58 DF id=21541 sport=80 flags=SA seq=8 win=0 rtt=5.9 ms

6. hoptan sonraki adımda doğrudan SYN-ACK cevapları gelmeye başlıyor. Bu cevapları gönderen 212.98.228.246 adresli cihaz aslında SYNProxy destekli bir system. Bunu aşabilsek arkadaki iki hopu da görebilecektik.

TCP üzerinden yapılacak keşif testlerinde ortamda eğer syncookie destekli bir cihaz varsa sonuçlar sağlıklı olmayacaktır ya da Firewall dışarı doğru ICMP mesajları göndermeye yetkili değilse yine testlerimiz başarısız olacaktır.

Bu gibi durumlarda hedef sistemin DNS sunucusu bulunup dns’e yönelik  udp port 53 üzerinden  trace çekme faydalı olabilir. Tabi ortamda birden fazla firewall vs varsa iş daha da karmaşıklaşacaktır. Sabırla çeşitli paketler göndererek hedef sistemi analiz etmek mutlaka size bir sonuca ulaştıracaktır.

This entry was posted in Misc, Network Security, Penetration and tagged , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

thirteen − 3 =