Networking Basics — اللي محدش شرحه لك صح
TCP/IP و OSI والـ packet لما بتمشي على السلك فعلاً
إيه الفرق بين اللي بيركّب راوتر واللي بيحلّل pcap؟
سؤال جدّي.
إيه الفرق بين الشخص اللي بيركّب راوتر في البيت، والشخص اللي بيفتح pcap حجمه 2 جيجا في Wireshark ويعرف يطلّع منه الإبرة؟
الفرق مش في الـ tool.
الراوتر زرار، Wireshark زرار، nmap زرار. الناس كلها بتعرف تدوس على الزراير.
الفرق إن واحد بيشوف "الإنترنت اشتغل"، والتاني بيشوف 3-way handshake، ثم TLS Client Hello، ثم HTTP/2 frame، ثم redirect لـ CDN. وبيعرف فين بالظبط الحاجة الغريبة لو فيه حاجة غريبة.
الدرس ده هو اللي بيحوّلك من الأول للتاني. من غيره، Wireshark هيروغليفية، وnmap حفظ صم.
اعتراف: أول مرة شفت ARP spoofing في الحقيقة، أنا اللي اتسرقت. كنت في كافيه عامل لاب اشتغال على HackTheBox، الراجل اللي قاعد جنبي كان معاه bettercap، ولفّ كل ترافيكي. نعم. الواقع مش كتب.
نموذج OSI — 7 طبقات
الطبقة 7 Application HTTP, DNS, SSH, FTP, SMTP
الطبقة 6 Presentation TLS, تشفير، تنسيق
الطبقة 5 Session إدارة الجلسات
الطبقة 4 Transport TCP, UDP ← منافذ (ports)
الطبقة 3 Network IP, ICMP, routing ← عناوين IP
الطبقة 2 Data Link Ethernet, ARP ← MAC addresses
الطبقة 1 Physical كابل، WiFiالقاعدة: كل طبقة بتلفّ داتا الطبقة اللي فوقها وبتضيف header بتاعها.
تشبيه البريد المصري على ايامنا: الجواب جوّه ظرف، الظرف جوّه شنطة البوسطجي، الشنطة جوّه عربية البوسطة، العربية ماشية في الشارع. كل مرحلة معاها "header" خاص بيها (عنوان البيت، اسم الفرع، رقم العربية).
طب أمنياً، إيه قيمة الكلام ده؟
كل طبقة فيها هجوم مشهور. لو ما عرفتش الطبقات، مش هتعرف الهجوم بيحصل فين فعلياً:
- L2 — ARP Spoofing. إنت في كافيه أو شركة، المهاجم بيقول للراوتر "أنا فلان" وبيقول لفلان "أنا الراوتر". كل ترافيك بيمر عليه. الـ Defense: 802.1X و Dynamic ARP Inspection على الـ switch.
- L3 — IP Spoofing. تزييف الـ source IP. أساس DDoS reflection (DNS amplification, NTP amp). الـ Defense: BCP38 / uRPF على حدود الـ ISP — وللأسف أغلب الـ ISPs مش مفعّلاها.
- L4 — TCP RST Injection / SYN Flood. تبعت RST لطرفي اتصال فيقفل. الصينيين بيستخدموها كـ Great Firewall. الـ SYN Flood بياكل موارد الـ server بـ half-open connections.
- L7 — HTTP Request Smuggling, SQLi, XSS, SSRF. كل هجمات الويب اللي إنت سامع عنها. الطبقة 7 هي اللي فيها الفلوس النهارده.
الواقع vs المفروض: المفروض كل طبقة عندها defense. الواقع، أغلب الشبكات مكشوفة على L2 لإن محدش فعّل 802.1X — "الموضوع معقّد".
TCP/IP — النموذج العملي
OSI نظري بحت. الإنترنت بيشتغل بـ TCP/IP، 4 طبقات بس:
Application HTTP, DNS, SSH, … (= OSI 5-7)
Transport TCP, UDP (= OSI 4)
Internet IP, ICMP (= OSI 3)
Link Ethernet, WiFi (= OSI 1-2)عناوين IP — الجوهر
كل جهاز على الشبكة ليه IP فريد. IPv4 = 4 أرقام (0-255): 192.168.1.5.
- Public IPs — موصول ليها من الإنترنت.
- Private IPs (RFC 1918) — للشبكات الداخلية: 10.0.0.0/8، 172.16.0.0/12، 192.168.0.0/16.
- Loopback: 127.0.0.1 = الجهاز نفسه.
- Subnet mask بيحدّد "شبكتي" إيه. /24 = 254 جهاز.
192.168.1.0/24
│ │
│ └── prefix length — أول 24 bit للشبكة
└────── شبكة = 192.168.1.0
نطاق المضيفين = 192.168.1.1 - 192.168.1.254
bcast = 192.168.1.255TCP vs UDP
- Three-way handshake (SYN → SYN-ACK → ACK).
- بيضمن الترتيب وعدم الفقد.
- بيعيد الإرسال لو حاجة ضاعت.
- بيستخدم في: HTTP, HTTPS, SSH, SMB, RDP.
- ابعت وانسى (fire-and-forget).
- مفيش handshake.
- ممكن يضيع، ممكن يوصل مش بالترتيب.
- بيستخدم مع: DNS, NTP, VoIP, VPN.
الـ Three-Way Handshake = مكالمة بين اتنين متربيين
تخيل اتنين بيتكلموا في التليفون لأول مرة:
- Client → Server: SYN — "أهلاً، أنا عايز أكلّمك. التسلسل بتاعي بيبدأ من رقم 1000، تمام؟"
- Server → Client: SYN-ACK — "أهلاً وسهلاً. سامعك. وصلني رقمك 1000، التالي بقى 1001 من عندك. وبالمناسبة، أنا تسلسلي من 5000، خلّي بالك."
- Client → Server: ACK — "تمام، وصلني 5000، هبعتك ACK = 5001 ونبدأ."
كده الاتنين متفقين على نقطة بداية. أي packet هييجي بعد كده، الطرف التاني عارف يرتّبه.
طب لو المهاجم اعترض المكالمة وبعت RST في النص؟ الاتصال بيقفل. ده هجوم TCP Reset Injection — قديم بس فعّال على شبكات بدون TLS.
وفي SYN Flood: المهاجم بيبعت SYN بس ما بيردش بـ ACK. السيرفر فاضل مستني، وكل واحد ماخد مكان في الذاكرة. مع آلاف الـ SYNs، السيرفر بياكل نفسه. الـ Defense: SYN cookies في الـ kernel.
المنافذ المهمة (Well-known)
20/21 FTP (نقل ملفات — قديم، نص واضح)
22 SSH (أهم بروتوكول إدارة)
23 Telnet (نص واضح — يجب أن يُمنع)
25 SMTP (إرسال بريد)
53 DNS (UDP عادة، TCP أحياناً)
80 HTTP
110 POP3
135 RPC (Windows)
139, 445 SMB (Windows file share — هدف ثمين)
143 IMAP
389 LDAP (AD directory)
443 HTTPS
445 SMB
465/587 SMTP+TLS
587 SMTP submission
636 LDAPS
993 IMAPS
995 POP3S
1433 MSSQL
3306 MySQL
3389 RDP (Remote Desktop)
5985/5986 WinRM (PowerShell remote)
8080 HTTP-alt (proxy)
8443 HTTPS-altتحفظ القايمة دي = ضمنت نص شغل nmap. Port 445 مفتوح = SMB = يمكن EternalBlue.
DNS — كيف يصبح اسم IP
الجهاز بيسأل: "إيه الـ IP بتاع example.com؟"
بيبص في /etc/hosts (أو C:\\Windows\\System32\\drivers\\etc\\hosts)، وبعدين الـ cache.
غالباً الـ ISP، أو 8.8.8.8 (Google)، أو 1.1.1.1 (Cloudflare).
Root → TLD (.com) → authoritative server لـ example.com → الرد: 93.184.216.34.
DNS Tunneling — السكة اللي محدش بيقفلها
تعالى أحكيلك حاجة عبيطة — اوي.
أغلب الشبكات الـ enterprise بتقفل كل بورت إلا 53 (DNS). الـ firewall رأيه: "DNS؟ ده عادي. سيبه يعدي."
المهاجم: "كده؟ تمام."
الفكرة بسيطة: الـ DNS بيقبل أسماء طويلة (lookup). الـ malware على الجهاز المخترق بيشفّر الـ data بتاعه ويحطها في اسم الدومين:
dGhpc2lzc2VjcmV0ZGF0YQ.attacker.com → DNS query
السيرفر بتاع المهاجم بيستقبل الاسم، يفكّ الـ base64، يشوف الـ data.
بيرد بـ TXT record فيه الأمر التالي مشفّر.ده مش tutorial. ده DNSCAT2 وiodine وdnscat2-powershell — أدوات موجودة من 2010.
قصة حقيقية: مجموعة OilRig (APT34) — منسوبة لإيران — استخدمت DNS tunneling في حملات على دول الخليج. الـ malware اسمه DNSpionage. السبب الوحيد إنه نجح: الـ defense ما كانش بيبص على DNS أصلاً.
الحماية: راقب DNS query length و entropy. أي domain طويل غريب الشكل بيتسأل عليه كل دقيقة = علامة استفهام كبيرة. Zeek (Bro) + passive DNS = اللي بياكل عيش في الموضوع ده.
HTTP — لغة الويب
كل صفحة ويب = HTTP request + response. الـ request:
GET /index.html HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: text/html
Cookie: session=abc123
الـ response:
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1256
Set-Cookie: session=xyz789
Server: nginx/1.24
<html>...</html>- Status codes: 2xx نجاح، 3xx redirect، 4xx خطأ من الـ client (404, 401, 403)، 5xx خطأ سيرفر (500, 502).
- Methods: GET (قراءة)، POST (إرسال)، PUT/PATCH (تحديث)، DELETE.
- Headers مهمة أمنياً: Cookie, Authorization, X-Forwarded-For, Host, Origin, Referer, Content-Security-Policy.
ARP — كيف تتحدث الأجهزة فيزيائياً
على الـ LAN، الأجهزة بتتكلم بـ MAC addresses مش بـ IPs. ARP هو اللي بيربط بينهم.
Wireshark — إزاي تلاقي الإبرة في الكوم
Wireshark = أداة التقاط وتحليل packets.
بُص.
أول مرة تفتح pcap كبير، هتلاقي 50 ألف packet قدامك. الناس العاديين بيقفلوا الأداة. الناس الشاطرة بتعرف تـ filter.
الـ filtering هو الموضوع كله. كل دقيقة في Wireshark = filter. ولو مش حافظ شوية فلاتر بظهر قلب، إنت في كل مرة بتبدأ من الصفر.
فلاتر مفيدة:
ip.addr == 10.10.10.5 الحزم من/إلى IP
tcp.port == 443 منفذ محدد
http HTTP فقط
http.request.method == "POST" POST requests
dns DNS
tcp.flags.syn == 1 && tcp.flags.ack == 0 SYN فقط (port scan)
tls.handshake.type == 1 TLS Client Hello (يكشف SNI)لما تفتح pcap لأول مرة، اتبع الخطوات دي بالترتيب:
- Statistics → Conversations — مين بيتكلم مع مين أكتر؟ أكتر IPs ترافيكاً غالباً هي القصة.
- Statistics → Protocol Hierarchy — هل في DNS بنسبة 60%؟ ده مش طبيعي = tunneling مشكوك فيه.
- filter: tcp.flags.syn==1 && tcp.flags.ack==0 — لو لاقيت IP واحد بيبعت SYN لـ 1000 host، ده port scan.
- Follow → TCP Stream على أي اتصال — بتشوف الـ payload الخام كأنه نص.
- filter: http.request — كل HTTP requests في مكان واحد.
NAT و Firewalls و Segmentation — بسرعة
- NAT: راوتر البيت بيحوّل العنوان الداخلي (192.168.1.10) لعنوان عام (203.x.x.x). كل أجهزة البيت من برّه بتبان IP واحد.
- Firewall: قواعد "اسمح/امنع" على البورتات والـ IPs والبروتوكولات.
- Stateful firewall: فاكر الـ sessions. أنت فتحت اتصال للخارج، الرد بيرجعلك تلقائي.
- Egress filtering: تحدّد إيه اللي بيخرج من شبكتك. شركات كتير بتنسى ده — وعشان كده C2 على بورت 443 بيشتغل ببلاش.
- Network Segmentation: تقسيم الشبكة لـ VLANs/zones. المفروض جهاز الـ HR ما يقدرش يكلّم الـ Domain Controller مباشرة. الواقع: شبكة مسطحة، أي جهاز يكلّم أي جهاز، والـ ransomware بيلف الشركة كلها في 4 ساعات.
- NetFlow/sFlow: ملخّص ميتاداتا لكل اتصال (مين، فين، إمتى، كام بايت). أرخص بكتير من full packet capture، وكافي لـ 80% من الـ detection. لو الـ SOC عندك مش بيشغّل NetFlow analysis، ده gap.
الواقع المصري/العربي: في كتير من الجهات، الـ segmentation موجود "على الـ slide". الواقع switch واحد flat، عشان "الموضوع كده أسهل في الإدارة". ولما الـ incident يحصل، بيكتشفوا إن مفيش حدود يقفوا عندها.
ممارسة
- افتح Wireshark على Kali، التقط 30 ثانية، وحاول تفهم اللي قدامك.
- افتح موقع HTTP عادي، التقط، اعمل Follow TCP Stream، اقرا الـ raw HTTP.
- اعمل dig على 5 دومينات مختلفة، شوف فرق الـ records.
- درّب نفسك على الـ subnetting:
ipcalc 192.168.1.0/24
# Network: 192.168.1.0
# Hosts: 192.168.1.1 - 192.168.1.254
# Broadcast: 192.168.1.255الخلاصة الناشفة
الشبكات مش حفظ بورتات.
الشبكات إنك تشوف الـ packet وتعرف هي عند أي طبقة، ومين كاتبها، وليه.
اكتبها على ظهر إيدك:
الـ 7 طبقات + TCP handshake + DNS chain + HTTP request = إنت قدرت تقرا الإنترنت.
والباقي tools.
الـ tools بتتغيّر كل سنة. الأساسيات دي من 1981 ولسة شغّالة. اوعى تستهتر بيها.