Iodine ile DNS Tünelleme

BGA Security Wiki sitesinden
Şuraya atla: kullan, ara

Amaç:

Iodine programı kullanılarak DNS protokolü üzerinden internet erişim engellemelerinin aşılması.

Araç:

  • iodine

Lab Senaryosu:

Iodine açık kaynak ve desteği devam eden bir uygulamadır. Sunucu ve istemci mantığı ile çalışmaktadır. Özelleştirilmiş DNS paketlerini kullanarak uzakta bulunan bir sunucu ile haberleşmek için kullanılmaktadır. Bu uygulama aynı zamanda bir saldırı aracı olarak da kullanılmaktadır. İnternet erişiminin engellendiği bir yerel ağda, DNS isteklerinin kısıtlanmaması durumunda, DNS istekleri üzerinden internete çıkabilmeye olanak sağlamaktadır. Ayrıca ilgili ağda bulunan bilgilerin dışarıya çıkarılması mümkün olmaktadır.

Iodine programı Kali Linux sistemlerde kurulu olarak gelmektedir. Ubuntu işletim sistemlerinde ise repository depolarında bulunmaktadır.

Sunucu tarafında iodine programı indirmek için;

apt-get install iodine

iodine sunucusunu yapılandırmak için;

root@ub:~# iodined -f 10.0.0.1 v.sibercik.com –P tus

Burada verilen vpn.sibercik.com adresine DNS kaydı girilmiştir. Hedef sunucu için bir DNS kaydının girilmesi daha pratik olmaktadır.

İstemci tarafında girilmesi gereken komut;

iodine -P tus -T A 178.62.183.203 v.sibercik.com

Bu aşamada başarılı bir bağlantı kurulduktan sonra ifconfig komutu ile ağ arayüzleri görüntülendiğinde “dns0” adında bir ağ arayüzünün sisteme eklendiği gözlemlenecektir.

root@kali:~# ifconfig
dns0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
     	inet addr:10.0.0.3  P-t-P:10.0.0.3  Mask:255.255.255.224
     	UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1130  Metric:1
     	RX packets:0 errors:0 dropped:0 overruns:0 frame:0
     	TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
     	collisions:0 txqueuelen:500
     	RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
eth0 Link encap:Ethernet  HWaddr 00:0c:29:b2:93:5c  
     	inet addr:192.168.1.34  Bcast:192.168.1.255  Mask:255.255.255.0
     	inet6 addr: fe80::20c:29ff:feb2:935c/64 Scope:Link
     	UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
     	RX packets:11231 errors:0 dropped:0 overruns:0 frame:0
     	TX packets:12631 errors:0 dropped:0 overruns:0 carrier:0
     	collisions:0 txqueuelen:1000
     	RX bytes:2329705 (2.2 MiB)  TX bytes:1970042 (1.8 MiB)
lo   Link encap:Local Loopback  
     	inet addr:127.0.0.1  Mask:255.0.0.0
     	inet6 addr: ::1/128 Scope:Host
     	UP LOOPBACK RUNNING  MTU:65536  Metric:1
     	RX packets:234 errors:0 dropped:0 overruns:0 frame:0
     	TX packets:234 errors:0 dropped:0 overruns:0 carrier:0
     	collisions:0 txqueuelen:0
     	RX bytes:14060 (13.7 KiB)  TX bytes:14060 (13.7 KiB)

Görüldüğü gibi 10.0.0.3 adresine sahip bir ağ arayüzü oluşturulmuştur. Bu arayüz aracılığı ile 10.0.0.1 yani uzakta bulunan iodine suncusuna erişebilmek mümkün olacaktır.

root@kali:~# ping 10.0.0.1
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_req=1 ttl=64 time=80.3 ms
64 bytes from 10.0.0.1: icmp_req=2 ttl=64 time=77.3 ms

Sunucu tarafında gelen trafik incelendiğinde ise;

root@ub:~# tcpdump -i dns0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on dns0, link-type RAW (Raw IP), capture size 65535 bytes
10:46:25.872259 IP 10.0.0.3 > 10.0.0.1: ICMP echo request, id 8016, seq 1, length 64
10:46:25.872315 IP 10.0.0.1 > 10.0.0.3: ICMP echo reply, id 8016, seq 1, length 64
10:46:26.887299 IP 10.0.0.3 > 10.0.0.1: ICMP echo request, id 8016, seq 2, length 64
10:46:26.887333 IP 10.0.0.1 > 10.0.0.3: ICMP echo reply, id 8016, seq 2, length 64

Yukarıda verilen tabloda görüldüğü gibi gelen trafikte atılan ping istekleri görülmektedir.