الأساسياتأساسي55mL00

أساسيات الشبكات للأمن السيبراني

TCP/IP، OSI، البروتوكولات، تدفق الحزم

#TCP/IP#OSI#DNS#HTTP#Beginner

لماذا الشبكات قبل أي recon

كل هجوم يحتاج فهم الشبكات. بدون فهم TCP/IP و DNS و HTTP، Wireshark = هيروغليفية، nmap = أوامر تحفظها بدون فهم. هذا الدرس يبني الجسر.

نموذج OSI — 7 طبقات

text
الطبقة 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 خاصاً بها. كحزمة بريد داخل ظرف داخل صندوق.

في الأمن: hackers يهاجمون كل طبقة. Layer 2 = ARP poisoning. Layer 3 = IP spoofing. Layer 4 = SYN flood. Layer 7 = SQLi/XSS.

TCP/IP — النموذج العملي

OSI نظري. الإنترنت يستخدم نموذج TCP/IP بـ 4 طبقات:

text
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 = 255 جهاز.
text
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.255

TCP vs UDP

TCP — موثوق
  • Three-way handshake (SYN → SYN-ACK → ACK).
  • يضمن الترتيب وعدم الفقد.
  • يعيد الإرسال لو ضاع شيء.
  • يستخدم في: HTTP, HTTPS, SSH, SMB, RDP.
UDP — سريع، لا ضمانات
  • أرسل وانس (fire-and-forget).
  • لا handshake.
  • قد يضيع، قد يصل بالعكس.
  • يستخدم في: DNS, NTP, VoIP, VPN.
لماذا يهم في الأمن
فحص TCP يعرف بدقة (المنفذ مفتوح/مغلق/مفلتر). فحص UDP أبطأ وأقل دقة لأن لا ACK افتراضي.

المنافذ المهمة (Well-known)

text
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. منفذ 445 مفتوح = SMB = ربما EternalBlue.

DNS — كيف يصبح اسم IP

01
تكتب example.com في المتصفح

الجهاز يسأل: "ما IP لـ example.com؟".

02
استعلام محلي أولاً

يفحص /etc/hosts (أو C:\\Windows\\System32\\drivers\\etc\\hosts)، ثم cache.

03
إن لم يجد، يسأل DNS resolver

عادة الـ ISP أو 8.8.8.8 (Google) أو 1.1.1.1 (Cloudflare).

04
الـ resolver يسأل سلسلة

Root → TLD (.com) → authoritative for example.com → الجواب: 93.184.216.34.

$ dig example.com # استعلام DNS كامل
$ dig example.com MX # خوادم البريد
$ dig example.com TXT # سجلات نصية (SPF, DKIM)
$ dig @8.8.8.8 example.com # اسأل خادم محدد
$ dig -x 93.184.216.34 # عكسي (PTR)
أنواع سجلات DNS مهمة
A = IPv4، AAAA = IPv6، CNAME = اسم بديل، MX = خادم بريد، NS = خادم أسماء، TXT = نصوص (SPF/DKIM/DMARC مهمة لأمن البريد).

HTTP — لغة الويب

كل صفحة ويب = طلب HTTP + رد. الطلب:

http
GET /index.html HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: text/html
Cookie: session=abc123

الرد:

http
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1256
Set-Cookie: session=xyz789
Server: nginx/1.24

<html>...</html>
  • أكواد الحالة: 2xx نجح، 3xx إعادة توجيه، 4xx خطأ عميل (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 — كيف تتحدث الأجهزة فيزيائياً

على شبكة محلية، الأجهزة تتكلم عبر MAC addresses لا IPs. ARP يربط بينهما.

$ # جدول ARP الحالي:
$ arp -a # كل من تكلمت معه
$ # مثال:
10.10.10.5 at 08:00:27:ab:cd:ef on eth0
ARP poisoning
المهاجم يرد على ARP queries بـ MAC الخاص به. يصبح man-in-the-middle لكل traffic بين الضحية و الـ gateway. أسلوب قديم لكن ما زال يعمل على شبكات بدون 802.1X.

Wireshark — قراءة الحزم

Wireshark = أداة التقاط وتحليل الـ packets. إن لم تتقنها لن تكون مدافعاً جاداً ولا مهاجماً قارئاً.

text
فلاتر مفيدة:
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)
$ # على Linux من سطر الأوامر:
$ sudo tshark -i eth0 -f 'port 80' -Y 'http.request' -T fields -e http.request.method -e http.host -e http.request.uri

NAT و Firewalls — بسرعة

  • NAT: راوتر بيتك يحوّل عنوان داخلي (192.168.1.10) إلى عنوان عام (203.x.x.x). كل أجهزة بيتك يبدون كـIP واحد على الإنترنت.
  • Firewall: قواعد "اسمح / امنع" على المنافذ والـ IPs والبروتوكولات.
  • Stateful firewall: يتذكر الجلسات. لو فتحت اتصال خارجاً، يسمح بالرد.
  • Egress filtering: تحديد ما يخرج من شبكتك. كثير من المؤسسات تنسى — لذا C2 يعمل بسهولة عبر port 443.

ممارسة

  1. افتح Wireshark على Kali، التقط 30 ثانية، افهم ما تراه.
  2. افتح موقع HTTP بسيط، التقط، تابع TCP stream، اقرأ الـ raw HTTP.
  3. افعل dig على 5 نطاقات مختلفة، انظر اختلاف الـ records.
  4. افهم subnet bash:
bash
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