Port taramalari guvenlik testlerinin en onemli bolumlerindendir. Eger hedef sistemi tarama izniniz yoksa ve taramaniz gerekiyorsa bunu Firewall ve IDS/IPS sistemlerine yakalanmadan yapmaniz gerekir. IDS/IPS atlatarak port taramanin cesitli yontemleri var(bkz. Network Pentest Egitimi*)fakat en kolay ve ise yarar yontemlerden birisi Acik Proxyler uzerinden port tarama.
Tor gibi herkese acik ve guvenilir(!) aglar kullanicilarin gercek ip adreslerini gizleyerek ulastiklari sistemlerde daha az iz birakmalarini saglar. Her bir baglanti farkli bir cikis noktasindan hedefe ulasacagi icin arka plandaki kullanicinin gercek bilgileri gozukmez.
Port tarama icin bu konudaki en yetkin program olan Nmap’i kullandigimiz dusunulurse Nmap’in guncel surumlerinde bu tip taramalari yapabilecegimiz proxy ozelligi yok. Yani Nmap port taramalarini herhangi bir proxy uzerinden geciremez. Ileriki surumlerde bu ozelligin eklenecegini dusunuyorum.
Simdilik isimizi Linux uzerinde proxy destegi olmayan uygulamalari Proxy uzerinden kullanilabilmesiin saglayan Tsocks ile halledelim.(Benzeri isi yapan farkli uygulamarda mevcut, bunlardan birisi de Proxychains uygulamasidir)
Tsocks, uygulamayi calistiracak kullanicinin LD_PRELOAD degiskenini tsocks uygulamasi olarak degistirerek uygulamayi transparan olarak proxy ozelligi ekleyen bir wrapper uygulamasi.
TSOCKS(1)
NAME tsocks – Shell wrapper to simplify the use of the tsocks(8) library to transparently allow an application to use a SOCKS proxy
root@elmasekeri:~# env|grep -i LD LD_PRELOAD=/usr/lib/libtsocks.so
Proxy uzerinden hangi tur port taramalar mumkundur.
Port taramalari cesit cesitdir . Yogun kullanilan port taramalari UDP ve TCP kullanilarak yapilir. Bu ikili arasindan da en gercekci sonuclara TCP taramalari ile erisilebilir. TCP kullanilarak yapilacak taramalarda da bayraklar on plana cikar. Bayrak kavrami bir TCP baglantisi icin iletisimin her adimini belirler. Yani baglantinin baslamasi, veri aktarimi, aniden kesilmesi ve sonlandirilmasi tamamen bayraklar araciligi ile yapilir.
Port taramalari da bu bayraklari kullanarak gerceklestirilir. Proxy’lerin calisma mantigi dusunuldugunde oncelikle istemci ile proxy arasinda bir tcp baglantisi kurulur ve sonrasinda Proxy’e ilgili hedefe ulasilacak istek gonderilir.
Normal bir baglanti
I:3050—-SYN————->google.com:80
I:3050<—-SYN/ACK——–google.com>80
I:3050——ACK———–>google.com:80
ve TCP baglanti kanali kurulmustur artik ilgili protokole ait komutlar calistirilabilir.
I——GET / HTTP/1/1 ——>google.com:80 ….
Araya Proxy girdikten sonraki baglanti durumu
I:3050—-SYN————->Proxy_IP:8080
I:3050<—-SYN/ACK——–Proxy_IP:8080
I:3050——ACK———–>Proxy_IP:8080
I======Proxy_IP——> CONNECT mail.google.com:25 HTTP/1.1 —–>mail.google.com:25
Benzer sekilde istemciler Proxy’lerin CONNECT(HTTP1.1 ‘de bulunan bir methoddur) ozelligini kullanarak uzaktaki sunucularin herhangi bir portuna baglanarak veri iletisiminde bulunabilirler.
Burada dikkat edilmesi gereken nokta TCP 3 way handshake isleminin proxy tarafindan tamamlanmasi ve sonrasinda ilgili verilern iletilmesi icin kanal kuruldugudur. Dolayisi ile PRoxy uzerinden SYN taramasi ya da diger bayraklarla yapilacak taramalar basarili olamayacaktir. Sadece TCP Connect Scan ya da buna dayanan tarama turleri proxy uzerinden yapilabilir.
Ornek:TOR uzerinden Servis Versiyonlarinin Belirlenmesi
Normal Port tarama icin kullanacagimiz komut asagidaki gibidir.
# nmap -P0 -n -sV vpn.lifeoverip.net -p 22,80,443
Starting Nmap 4.76 ( http://nmap.org ) at 2009-02-16 10:59 EET Interesting ports on 80.93.212.86: PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 4.5p1 (FreeBSD 20061110; protocol 2.0) 80/tcp open http Apache httpd 5.2.0 ((Fedora)) 443/tcp open ssl OpenSSL 80/tcp open mysql MySQL (unauthorized)
Tarama yapilan sunucuda IDS loglarina bakilirsa ya da tcpdump ile dinleme yapilirsa tarama yapan IP adresi gorunecektir.
[root@mail ~]# tcpdump -ttnn tcp port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on rl0, link-type EN10MB (Ethernet), capture size 96 bytes 1234774220.900855 IP 1.1.1.1.22481 > 80.93.212.86.80: S 3140092660:3140092660(0) win 1024 1234774220.900874 IP 80.93.212.86.80 > 1.1.1.1.22481: S 1425084160:1425084160(0) ack 3140092661 win 65535 1234774220.903685 IP 1.1.1.1.22481 > 80.93.212.86.80: R 3140092661:3140092661(0) win 0
Ciktilardan gorulecegu izere tarama yapan IP Adresi 1.1.1.1 (Orjinal IP degistirilmistir)
Tsocks +Nmap ve TOR uzerinden yapilan tarama
root@elmasekeri:~# tsocks nmap -P0 -n -sV vpn.lifeoverip.net -p 80
Starting Nmap 4.76 ( http://nmap.org ) at 2009-02-16 11:15 EET 11:15:21 libtsocks(8937): IP (0.0.0.0) & 11:15:21 libtsocks(8937): SUBNET (255.0.0.0) != IP on line 20 in configuration file, ignored
Interesting ports on 80.93.212.86: PORT STATE SERVICE VERSION 80/tcp open http Apache httpd 5.2.0 ((Fedora))
Service detection performed. Please report any incorrect results at http://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 8.52 seconds
Ve Tarama yapilan sunucudaki loglar
# tcpdump -ttnn tcp port 80 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on rl0, link-type EN10MB (Ethernet), capture size 96 bytes
1234775091.125584 IP 69.39.49.199.49258 > 80.93.212.86.80: S 3877762938:3877762938(0) win 32768 1234775091.125607 IP 80.93.212.86.80 > 69.39.49.199.49258: S 3916248154:3916248154(0) ack 3877762939 win 65535 1234775091.321998 IP 69.39.49.199.49258 > 80.93.212.86.80: . ack 1 win 33304 1234775091.810724 IP 80.93.212.86.80 > 69.39.49.199.49258: P 1:79(78) ack 1 win 33304 1234775091.810745 IP 80.93.212.86.80 > 69.39.49.199.49258: F 79:79(0) ack 1 win 33304 1234775092.007005 IP 69.39.49.199.49258 > 80.93.212.86.80: . ack 79 win 33226 1234775092.007014 IP 69.39.49.199.49258 > 80.93.212.86.80: . ack 80 win 33304 1234775092.007709 IP 69.39.49.199.49258 > 80.93.212.86.80: F 1:1(0) ack 80 win 33304 1234775092.007743 IP 80.93.212.86.80 > 69.39.49.199.49258: . ack 2 win 33303
Taramalarin kaynak ip adreslerine bakilirsa(69.39.49.199)tor networkune ait oldugu gorulecektir. Benzer sekilde diger guvenlik taramalari da Tor ve benzeri networkler uzerinden yapilabilir.
Saygýlar..
|