DNS logiranje u Windows Event Vieweru
DNS logovi bilježe svaki upit koji računalo upućuje prema DNS serveru. Prema zadanim postavkama, DNS logiranje u Windowsima nije aktivirano — treba ga ručno uključiti.
Aktivacija DNS logiranja
- Otvori Event Viewer
- Idi na Applications and Services Logs → Microsoft → Windows → DNS Client Events → Operational
- Desni klik → Enable Log
Ključni Event ID-jevi
- Event ID 3010 — početni DNS upit (initial DNS query)
- Type 1 — A zapis (IPv4 adresa)
- Type 28 — AAAA zapis (IPv6 adresa)
- ProcessID — identificira koji proces je postavio DNS upit
Detekcija beaconinga
Beaconing je tehnika gdje zloćudni softver periodički kontaktira C2 (Command & Control) poslužitelje kako bi primao naredbe ili slao ukradene podatke. Karakteristika beaconinga su ponavljajući DNS upiti u pravilnim intervalima (~20 sekundi).
Kako prepoznati beaconing
- Ponavljajući DNS upiti prema istom FQDN-u u kratkim razmacima
- Interval ~20 sekundi = tipičan znak C2 beaconinga
- Nepoznata domena (npr.
badsite.ru) kojoj se pristupa automatski - ProcessID ukazuje na zloćudni ili neočekivani proces
Simulirani DNS threat feed
- Na KALI:
curl 127.0.0.1/bad_DNS.feed - Prikazuje popis FQDN-ova označenih kao prijetnje
- Svaki FQDN = potencijalni C2 poslužitelj ili zloćudna domena
Blokiranje DNS prijetnji skriptom
Jedna od metoda blokiranja zloćudnih domena je preusmjeravanje njihovog FQDN-a na 127.0.0.1 (localhost) u datoteci /etc/hosts, čime sustav ne može doseći stvarnu zloćudnu adresu.
block-DNS.sh skripta
- Preuzima DNS threat feed
- Za svaki FQDN dodaje zapis:
127.0.0.1 fqdn.primjer.comu/etc/hosts awk '!x[$0]++'— deduplikacija (uklanja duplikate)- Izvršavanje:
chmod +x block-DNS.sh && ./block-DNS.sh
Automatizacija s crontabom
echo "0 3 * * * /bin/bash /root/block-DNS.sh" | crontab - - Pokreće skriptu svaki dan u 3:00 ujutro
crontab -l— provjera aktivnih cron zadataka- Ograničenje: štiti samo sustav na kojemu je
/etc/hostsmodificiran
DNS rekognicija — nslookup i dig
nslookup — interaktivni način
- Pokreni:
nslookup(bez argumenata) server— promjena DNS poslužiteljaset type=SOA— Start of Authority zapisset type=a— A (IPv4) zapisiset type=ns— Name Server zapisiset type=mx— Mail Exchange zapisiset type=cname— Canonical Name zapisiexit— izlaz iz interaktivnog načina
dig — napredniji alat
dig -t SOA comptia.org— SOA zapis za domenudig -t A server— A zapis za hostdig @IP -t A www.domain.org— upit prema specifičnom DNS serveru-t— odabir vrste zapisa (SOA, A, MX, NS, CNAME)
SOA zapis — tumačenje
- origin — primarni autoritativni DNS poslužitelj za domenu
- mail addr — email adresa admina (prva točka zamijenjena s @)
- serial — verzija zone (povećava se pri svakoj promjeni)
- refresh/retry/expire — parametri replikacije
Autoritativni vs. ne-autoritativni odgovor
- Autoritativni odgovor — dolazi izravno od DNS poslužitelja koji je zadužen za zonu
- "Non-authoritative answer" — odgovor dolazi iz cache DNS poslužitelja, nije s autoritativnog izvora
- nslookup često pokazuje non-authoritative odgovore jer komunicira s caching resolverom
1. Gdje se u Windows Event Vieweru aktivira DNS logiranje?
2. Koji Event ID označava početni DNS upit u Windows Event Vieweru?
3. Koji DNS tip zapisa (Type) odgovara IPv4 adresi?
4. Što je karakteristična oznaka DNS beaconinga?
5. Koji podatak u DNS Event ID 3010 zapisu pomaže identificirati koji proces šalje upite?
6. Kojom naredbom na KALI sustavu možemo pregledati simulirani DNS threat feed?
curl 127.0.0.1/bad_DNS.feed dohvaća simulirani DNS threat feed koji sadrži popis zloćudnih FQDN-ova.7. Gdje block-DNS.sh skripta upisuje zloćudne FQDN-ove radi blokiranja?
127.0.0.1 zloćudna-domena.com u /etc/hosts. Time se DNS razrješavanje preusmjerava na localhost umjesto na stvarni C2 poslužitelj.8. Što radi awk '!x[$0]++' unutar block-DNS.sh skripte?
awk '!x[$0]++' je klasična awk tehnika deduplikacije — svaki redak se pojavljuje samo prvi puta u izlazu, duplikati se preskaču.9. Cron izraz 0 3 * * * znači pokretanje skripte...
0 3 * * * = svaki dan (* * *) u 3:00 ujutro (0 3).10. Koje je glavno ograničenje DNS blokiranja putem /etc/hosts?
11. Što znači "Non-authoritative answer" u ispisu nslookup-a?
12. Koji podatak u SOA zapisu predstavlja primarni autoritativni DNS poslužitelj?
13. Kojom dig naredbom upitamo specifični DNS server (npr. 10.1.16.5) za A zapis domene www.primjer.hr?
@IP specificira koji DNS server se koristi za upit, a -t određuje vrstu zapisa. Format: dig @DNS_IP -t TIP domena.14. U nslookup interaktivnom načinu, kojom naredbom izlazimo iz programa?
exit. Unosom server mijenjamo DNS server, a set type= mijenja vrstu zapisa.