💻 PC10 Windows klijent malware beacon ~20s 📋 Event Viewer DNS query 🔍 DNS Resolver provjera /etc/hosts → prije DNS servera 🚫 127.0.0.1 (blocked) query DNS 🌐 DNS Server autoritativni odgovor ili cache (non-auth) konekcija ☠ C2 Server badsite.ru komand-kontrola 🛡 Automatska zaštita: block-DNS.sh (cron 0 3 * * *) curl bad_DNS.feed → doda 127.0.0.1 badsite.ru u /etc/hosts → blokira C2 pristup

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

  1. Otvori Event Viewer
  2. Idi na Applications and Services Logs → Microsoft → Windows → DNS Client Events → Operational
  3. 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
ProcessID: Svaki DNS događaj u Event Vieweru sadrži ProcessID koji identificira aplikaciju koja je pokrenula DNS upit. Ovaj podatak je ključan za otkrivanje zloćudnog procesa koji komunicira s C2/C&C poslužiteljem.

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.com u /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/hosts modificiran

DNS rekognicija — nslookup i dig

nslookup — interaktivni način

  • Pokreni: nslookup (bez argumenata)
  • server — promjena DNS poslužitelja
  • set type=SOA — Start of Authority zapis
  • set type=a — A (IPv4) zapisi
  • set type=ns — Name Server zapisi
  • set type=mx — Mail Exchange zapisi
  • set type=cname — Canonical Name zapisi
  • exit — izlaz iz interaktivnog načina

dig — napredniji alat

  • dig -t SOA comptia.org — SOA zapis za domenu
  • dig -t A server — A zapis za host
  • dig @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
Na ispitu zapamti: DNS beaconing = ponavljajući upiti prema C2/C&C u pravilnim intervalima (~20s). Event ID 3010 = inicijalni DNS upit. Type 1 = A (IPv4), Type 28 = AAAA (IPv6). ProcessID u Event logu identificira zloćudni proces. Blokiranje = mapiranje na 127.0.0.1 u /etc/hosts. Non-authoritative answer = odgovor iz cache-a, ne s autoritativnog DNS servera.

Kviz — 15 pitanja

0 / 15
Odgovori na pitanja da vidiš rezultat.

1. Gdje se u Windows Event Vieweru aktivira DNS logiranje?

DNS Client Events log se nalazi pod Applications and Services Logs → Microsoft → Windows → DNS Client Events → Operational. Desnim klikom aktiviramo "Enable Log".

2. Koji Event ID označava početni DNS upit u Windows Event Vieweru?

Event ID 3010 bilježi svaki početni DNS upit (initial DNS query). Ovaj ID je specifičan za DNS Client Events Operational log.

3. Koji DNS tip zapisa (Type) odgovara IPv4 adresi?

Type 1 = A zapis (IPv4 adresa). Type 28 = AAAA zapis (IPv6 adresa). Type 5 = CNAME, Type 15 = MX.

4. Što je karakteristična oznaka DNS beaconinga?

Beaconing = ponavljajući DNS upiti u pravilnim intervalima (~20 sekundi) prema C2/C&C poslužitelju. Zloćudni softver "beacon-a" natrag kući kako bi primio naredbe.

5. Koji podatak u DNS Event ID 3010 zapisu pomaže identificirati koji proces šalje upite?

ProcessID u DNS Event zapisu identificira koji proces (aplikacija) je pokrenuo DNS upit. Ključno za otkrivanje zloćudnog softvera koji se beacon-a prema C2 poslužitelju.

6. Kojom naredbom na KALI sustavu možemo pregledati simulirani DNS threat feed?

Naredba 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?

Skripta dodaje zapise u obliku 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...

Cron format: minuta sat dan-u-mjesecu mjesec dan-u-tjednu. 0 3 * * * = svaki dan (* * *) u 3:00 ujutro (0 3).

10. Koje je glavno ograničenje DNS blokiranja putem /etc/hosts?

Modifikacija /etc/hosts djeluje samo lokalno — štiti samo sustav na kojemu je primijenjena. Za zaštitu cijele mreže potrebno je koristiti mrežni DNS resolver ili firewall.

11. Što znači "Non-authoritative answer" u ispisu nslookup-a?

Non-authoritative answer znači da je odgovor dobiven od caching DNS resolvera koji je podatke pohranio iz prethodnog upita. Autoritativni odgovor dolazi direktno s DNS poslužitelja koji "posjeduje" zonu.

12. Koji podatak u SOA zapisu predstavlja primarni autoritativni DNS poslužitelj?

U SOA zapisu, polje origin sadrži FQDN primarnog autoritativnog DNS poslužitelja za tu zonu. Polje mail addr je email adresa administratora (s točkom umjesto @).

13. Kojom dig naredbom upitamo specifični DNS server (npr. 10.1.16.5) za A zapis domene www.primjer.hr?

U dig-u, @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?

U interaktivnom nslookup načinu rada (pokrenutom bez argumenata), izlazi se naredbom exit. Unosom server mijenjamo DNS server, a set type= mijenja vrstu zapisa.

15. Nakon pokretanja block-DNS.sh, ping prema reallybadsite.com vraća odgovor. Koje su od sljedećih tvrdnji točne? (Označi sve točne)

Nakon što block-DNS.sh doda "127.0.0.1 reallybadsite.com" u /etc/hosts: (1) FQDN se razrješava na 127.0.0.1 (loopback) — ne na javnu IP C2 servera. (2) Ping šalje ICMP Echo Request prema 127.0.0.1, ali nema odgovarajućeg servisa koji odgovara — nema ECHO_REPLY. Firewall nije uključen u ovaj proces, a blokiranje je DNS/hosts razina, ne firewall.
0 / 15
Riješi kviz da vidiš rezultat.