DNS Tünelleme Kullanarak Firewall/IPS Atlatma

dns tünel

Senaryo: Firewall ve Web Proxy (/Content Filter) ile tüm internet trafiği engellenmiş bir kullanıcı/hacker internete  ulaşmak istiyor. Yerel ağdan internete giden tüm port ve protokoller Firewal tarafından engellenmiştir. Web erişimi için hizmet veren proxy ise yalnızca yetkili kulllanıcılara internet erişimi sağlamaktadır. Bu sistemlere takılmadan sınırsız ve kayıt altına alınamaz internet trafiği nasıl elde edilebilir?

DNS Tunnel

Bir protokol içerisinde başka bir protokole ait veri taşıma işlemine protokol tünelleme denir. DNS paketleri içersinden herhangi bir tcp/udp paketini (örneğin, http,ftp, ssh vb.) taşıma işlemi de DNS Tünnelleme olarak isimlendirilir.

DNS sunucu kendisinden sorgulanan bir dns isteğine önce önbelleğini kontrol ederek yanıt vermek ister eğer alan adı dns önbelleğinde yoksa, sorgulanan alan adından sorumlu dns sunucuyu bulur ve ona sorar. Sorgulanan alan adından yetkili dns sunucu ilgili dns kaydı için yanıt verir ve DNS sunucu bu yanıtı istemciye iletir.

Örnek:

Kullanıcı, tunnel.bga.com.tr alan adını sorgulamak istediğinde yerel ağındaki dns sunucu bu kayıt önbelleğinde yoksa bu isteğe doğrudan yanıt veremez. tunnel.bga.com.tr  alan adından sorumlu dns sunucuyu bulur dns.bga.com.tr  ve ona tunnel A kaydını sorar aldığı yanıtı istemciye iletir.

Tcp-Over-Dns Çalışma Prensibi

tcp-over-dns client, dns verisini encode ederek ISP’nin dns sunucusuna iletir. ISP’nin dns sunucuyu bu isteğe yanıt veremez ve dns isteğini tcp-over-dns server a iletir. tcp-over-dns server gelen isteği decode eder ve ilgili isteğe yanıtı client a  geri gönderir.  DNS isteklerinin, dns sunucu tarafından önbelleğe alınma ihtimaline karşı her dns sorgusunda rastgele bir subdomain kullanılır.

Ön Gereksinimler:

  1. Dns isteklerinize yanıt alabildiğinizi doğrulamalısınız. Örneğin; ‘nslookup  google.com.tr’ komutu ile google ip adreslerini öğrenebiliyorsanız. DNS isteklerinize yanıt veriliyordur.
  2. İnternet dünyasında sizin kontrolünüzde olan bir sunucu.Administrator veya root yetkilerine sahip olmalısınız. UDP 53 portu farklı bir uygulama tarafından kullanılmıyor olmalı ve erişim problemi yaşanmamalıdır.
  3. Kullandığınız işletim sistemine göre tcp-over-dns yazılımı. Mutlaka java kurulu olmalıdır.
    http://analogbit.com/software/tcp-over-dns/

Tcp-Over-Dns Server Yapılandırması

Bu işlem için bir  alan adına ve bu alan adından sorumlu dns sunucuya ihtiyaç vardır. Bu örnekde aşağıdaki dns kayıtları oluşturup, kullanılmıştır.

NS = dns.bga.com.tr
A   = tunnel.bga.com.tr

tcpoverdns, multi platform çalışmaktadır (Windows,Linux,*BSD). Bu örnekde dns sunucu FreeBSD istemci ise Windows 7  işletim sisteminde kurulmuştur.

 

Not: Tcp-Over-Dns server, gelen trafiği port 443 (ssh servisine) yönlendirecektir.

Tcp-Over-Dns Client Yapılandırması

İstemci bilgisayarda client-example.bat dosyası düzenlenerek DOMAIN değeri bu iş için oluşturulan alan adı ile değiştirilir.

client-example.bat dosyası çalıştırıldığında tünel için 127.0.0.1:8080 portu dinleme alınacaktır.

Tcp-Over-Dns Client, yerel bilgisayarda 8080 portunu dinleme açtı ve bu porta yapılan bağlantıları tunnel.bga.com.tr makinasının 443 (ssh) portuna iletecektir. Test için, putty aracı ile 127.0.0.1:8080 portuna bağlantı isteği başlatıldığında  bga.com.tr adresinin 443 portuna erişim kurulacaktır.

SSH trafiği Firewall tarafından engellenmiş olsada, DNS paketleri ile ssh trafiği internete kaçırıldı. Bu yöntem ile birçok yerde bulunan Hotspot sistemleri de atlatılabilmek mümkündür.

2 Yorum

  1. Bi tavsiye 13 Kasım 2019 18:56

    linuxta internete erişmeye çalışıyorsanız nc ile de karşıdaki ssh sunucusu üzerinden socks proxy’si açıp tünelleyebilirsiniz. ör.

    mkfifo piped
    nc -u host 53 piped
    ssh -vD 8080(socks sunucu adresi) k.adi@localhost -p 2222

    ile açabilirisiniz ör.

  2. Umut cem 22 Mart 2014 08:45

    Servis sağlayıcınının dns sunucusu cevap veremiyorsa, server'a nasıl iletiliyor?

Yorum Yaz

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*
*

Mail listemize üye olarak eğitim fırsatlarını kaçırmayın!
Eğitim ve ücretsiz etkinliklerizden haberdar olmak için e-posta listesimize üye olun!.