Tunel pozwala nam na fizyczne połączenie się z zasobami naszej firmy za pomocą sieci internet.
Tunel DNS jest implementacją zwykłego tunelu, ale działa na warstwie 5 i w oparciu o aplikacje DNS, która zazwyczaj jest mało monitorowana w małych i średnich firmach.
Tunel DNS ma spore ograniczenia głównie jeśli chodzi o prędkości incoming/ outgoing. W naszym przypadku prędkość będzie miała 10/10 Kb/s. Jest to wystarczający transfer na otwarcie bramy dla hakerów. Z punktu widzenia atakującego nie jest zresztą rozsądne zapychanie łącza ofiary, gdyż może to bardzo szybko ujawnić atakujacego.
Jeżeli ktoś chciałby sprawdzić czy jego sieć jest chroniona przed tego typu wyciekami proponuję zainstalować IODYNE https://github.com/yarrick/iodine jest aplikacją, która wykorzystuje wszystkie zalety wspomnianego protokołu DNS.
Na potrzeby testów stworzyłem maszynę Centos 7 w Azure i wpuściłem port 53.
Uwaga! Dla poprawnego działania aplikacji niezbędne jest instalacja z poziomu roota
Instalujemy aplikację, a następnie modyfikujemy parametry uruchamiania serwera .
yum -y install iodine-server
cd /etc/sysconfig modyfikacja pliku iodine server
plik powinniśmy zmodyfikować według instrukcji
-f -c -P "hasło" adres_ip domena
Dodajemy rekord A i rekord Ns wskazujący na serwery mieszczące się w Azure.
Możemy zweryfikować poprawność konfiguracji klikając w poniższy link
https://code.kryo.se/iodine/check-it/
Krótki filmik ukazujący połączenie tunelu z dystrybucji Kali Linux.
Skoro tak łatwo zestawić tunel, należałoby wspomnieć jak się przed tym chronić.
W urządzeniach klasy UTM powinna być włączona kontrola aplikacji. Mechanizmy te są wstanie zidentyfikować program i uniemożliwić mu komunikację.
Niestety sporo firm które mają tego typu urządzenia nie mają polityk związanych z kontrolą aplikacji. Nie zawsze wynika to z braku świadomości, że takowa jest potrzebna co raczej z wygody. Okazuje się bowiem, że kontrola aplikacji przysparza często nie lada kłopotów z działaniem innych aplikacji 🙂
Jest jeszcze możliwość aby naszę dns były obsługiwane przez cloudflare
https://www.cloudflare.com/learning/dns/dns-security/
Wiele firm funkcjonuje bez urządzeń tego typu. Zaleca się by skorzystali ze snort https://www.snort.org/ lub wiresharka parę zrzutów da informacje czy faktycznie macie do czynienie z tunelem DNS.
Mała uwaga! Chcąc sprawić aby tunel zadziałał na windows 10 należy zainstalować sterownik tap https://openvpn.net/community-downloads/ hasło od dawna nie działa 🙂 .
Niniejszy artykuł ma na celu zwiększenie świadomości czytelników na temat realnego zagrożenia jakim jest wyciek danych w protokole DNS.
autor: Tomasz Rupiewicz
Żródła:
- dnscat2-powershell/dnscat2.ps1 at master · lukebaggett/dnscat2-powershell
- Tunneling Data and Commands Over DNS to Bypass Firewalls
- (1) Tunneling to Bypass NG Firewalls - YouTube
- Using Iodine for DNS Tunneling C2 to Bypass Egress Filtering - TrustFoundry
- Installing Iodine-server on CentOS 7 | PeejSeej
- ThunderDNS: How it works --- dotyczący tunelu opartego o rekordy txt.
- Protect yourself against DNS tunneling | InfoWorld
- DarkHydrus delivers new Trojan that can use Google Drive for C2 communications -
- yarrick/iodine: Official git repo for iodine dns tunnel - oficjalne repo iodyne
- Learn how easy is to bypass firewalls using DNS tunneling (and also how to block it)
- iodine: DNS tunneling – Naah's blog