Iodine Aracı ile DNS Tünelleme

2
3861
views
Genelde kurum iç ağlarında internet erişimi kısıtlanmak istenildiğinde firewall cihazları üzerinde http, https, ssh gibi protokoller engellenir. DNS paketleri için bir kural yazılmaz. Yazılmak istense dahi normal iç ağ trafik akışını engelleyebileceği için tercih edilmeyebilmektedir. Bu yazıda Iodine aracı kullanılarak DNS tünelleme gerçekleştirilecek ve güvenlik duvarı atlatılarak kurum dışına erişim sağlanacaktır.

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

DNS tünelleme ile engellenen bu protokollerin DNS paketleri üzerinden taşınması sağlanır. DNS tünelleme, IP protokolünün DNS paketleri içerisinde kodlanmasıyla çalışır. DNS haricinde hiçbir protokole izin verilmeyen bir bilgisayardan bu tünelleme ile internette dolaşmaya başlayacağız.

Tünelleme öncesinde bilgisayarımızdan http(s) bağlantısı gerçekleştiremiyoruz.

 

SSH trafiğine de iznimiz yok ve bağlantıyı gerçekleştiremiyoruz. Ancak dns sorgusu gönderdiğimizde sorgumuza cevap geliyor.

ssh user@34.197.209.38
host -t A google.com

 

host -t A guvenleak.com

 

DNS tünelleme için iki şeye ihtiyaç vardır.

  • Alan Adı (Domain name): Bu yazıda alan adı olarak guvenleak.com kullanılmıştır.
  • Public IP’ye sahip bir sunucu: Bu yazıda kullanılan sunucunun IP adresi 34.197.209.38’tir.

 

DNS Kayıtlarının Eklenmesi

Alan adına ait aşağıdaki 2 adet DNS kayıtlarını ekliyoruz.

  • A Kaydı: dns -> sunucu_ip_adresi
  • NS Kaydı: tunnel -> dns.guvenleak.com

Not: Eklediğimiz bu iki kayıt sonucunda DNS sunucuna tunnel.guvenleak.com için bir A sorgusu geldiğinde, sorgu verdiğimiz sunucu IP adresine yönlendirilecektir.

 

İstemciye Iodine Aracının Yüklenmesi

İstemci olarak kullanacağım kendi bilgisayarımda Kali Linux yüklüdür. Kali üzerinde yüklü olduğu için tekrar kurulmamıştır.

apt-get install iodine

 

Sunucuya Iodine Aracının Yüklenmesi

Bu uygulamada kullanacağımız 34.197.209.38 IP adresine sahip sunucunun işletim sistemi Ubuntu’dur. Aşağıdaki komut ile sunucuya Iodine aracını yükleyelim. İstemci için kullandığımız aynı komutla Iodine aracını sunucuma da yüklüyorum.

sudo apt-get install iodine

 

Sunucuda Iodine Uygulamasının Çalıştırılması

Sunucuda çalıştıracağımız aşağıdaki gibi bir komutla bu sunucuya gelecek olan DNS sorgu paketlerini dinlemeye başlıyoruz.

sudo iodined -c -f 10.0.0.1 -P secretpassword tunnel.alanadiniz.com

 

Kullanılan değişkenler ve işlevleri aşağıdaki gibidir.

  • 10.0.0.1: Sunucuda oluşturulacak olan dns0 interface’inin ip adresi
  • secretpassword: paketleri kodlarken ve kodu çözerken kullanılacak olan parola
  • tunnel.guvenleak.com: Beklenen DNS sorgusu

 

İstemci Bilgisayarımızda Iodine Uygulamasının Çalıştırılması

Bilgisayarımızda aşağıdaki gibi bir komut çalıştırıyoruz.

iodine -I 50 -f -P secretpassword tunnel.alanadiniz.com

 

Çalıştırdığımız bu komut ile tunnel.guvenleak.com için DNS sorgusu gönderiyoruz. Kurum içerisindeki Firewall DNS sorgusuna izin verdiği için paketimiz servis sağlayıcınız DNS sunucusuna gidiyor. Servis sağlayıcı da sorgunun guvenleak.com domain’ine ait DNS sunucusuna yönlendirilmesini sağlıyor. “DNS Kayıtlarının Eklenmesi” adımında yaptığımız ayarlar ile de DNS sunucusuna gelen bu sorguyu, iodined uygulamasını çalıştırdığımız 34.197.209.38 IP adresli sunucumuza yönlendiriyor.

ifconfig

 

Bağlantı kuruldu ve bilgisayarımızda dns0 interfece’i için 10.0.0.2 IP adresi verildi. Daha önce sunucuda çalıştırdığımız komut ile sunucunun IP adresini 10.0.0.1 olarak vermiştik.

 

Oluşturulan Tünel ile Sunucuya SSH Bağlantısının Yapılması

Yapılan tünel bağlantısı ile artık sunucuya SSH yapabiliriz.

ssh user@10.0.0.1

 

Görüldüğü üzere firewall üzerinde sadece DNS paketlerine izin verilirken, DNS tünelleme ile DNS paketleri üzerinden SSH paketlerini kaçırmış ve firewall’u atlatmış olduk.

 

DNS Tünel İçerisinden SSH Tünel Bağlantısının Kurulması

Aşağıdaki komutla kurulmuş olan DNS tünel üzerinden bir SSH tünel bağlantısı kurabiliriz.

ssh -D 5000 -N user@10.0.0.1

 

Kurduğumuz bu SSH tünel üzerinden internette dolaşabiliriz. Bunun için browser üzerinde Proxy ağ ayarlarını aşağıdaki gibi girmemiz yeterli olacaktır.

 

Proxy ayarlarını browser’a girdikten sonra internet sayfalarında gezinti yapabiliriz. Reel IP adresimiz ise DNS tünelleme ile bağlantı yaptığımız sunucunun IP adresi olarak gözükecektir.

 

Sonuç

Bu yazı ile protokol bazlı internet erişimi engellenen bilgisayarımızdan DNS tünelleme ile güvenlik duvarını atlatabileceğimizden bahsettik. Gerekli önlemler alınmadığı takdirde internet erişimi engellense dahi ağa bağlantıya izin veriliyorsa bu yöntem ile internet erişimi sağlanabilir.

Kurumların misafir ağlarında veya ücretli internet servisi verilen ortamlarda bu yazıda bahsettiğimiz gibi protokol bazlı internet erişimi engellenmesine rağmen, DNS iletişimi göz ardı edilerek DNS sorguları engellenmeyebilmektedir. Gerekli önlemlerin alınmadığı bu ortamlarda DNS tünelleme yöntemi ile internete erişim sağlanabilmektedir.

 

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

2 YORUMLAR

  1. Bu işlemleri yaptığımda ssl proxy den dolayı hata alıyorum. Ayrıca wireshark ile dns0 ı dinlerken sadece tcp ve ssh verilerini görebiliyorum. Bu konuda yardımcı olur musunuz?

    • Merhaba

      Standart DNS sorguları hedefe ulaşıyorsa, SSL tünelleme sırasında DNS firewall gibi bir ürün engelliyor olabilir.

Ertuğrul BAŞARANOĞLU için bir yanıt yazın İptal

Yorumunuzu giriniz
İsminizi giriniz

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.