سلبي ولا نشط؟ والنطاق القانوني

جارٍ التحميل…

01 / ملخص الدرس

سلبي ولا نشط؟ والنطاق القانوني

الفرق بين الجمع السلبي والجمع النشط، وليه لازم يبقى معاك إذن مكتوب ونطاق واضح، وإزاي تعمل Scope Checker بـ Python.

02 / شرح الدرس مكتوبًا

نص شرح المعلم والكود الذي كتبه ونتيجة تشغيله، بنفس ترتيب الدرس.

في جمع المعلومات فيه نوعين أساسيين: سلبي ونشط. والفرق بينهم بسيط جداً، بس مهم جداً.

الجمع السلبي، أو Passive Recon: إنك تجمع معلومات من غير ما تلمس الهدف نفسه. بتدوّر في مصادر عامة، زي WHOIS و DNS ومحركات البحث. الهدف مش بيشوفك خالص. ومفيش أي traffic بيروح من عندك لأجهزته.

الجمع النشط، أو Active Recon: إنك تبعت traffic للهدف مباشرةً. زي إنك تعمل ping، أو Port Scan بـ Nmap. ده بيبان في الـ logs بتاعة الهدف. وممكن يِعَطّل خدمة لو اتعمل غلط.

ودي أهم حاجة في الكورس كله: الجمع النشط من غير إذن جريمة. لازم يبقى معاك إذن مكتوب من صاحب الأنظمة. ونطاق واضح، أو Scope: إيه الـ IPs والـ domains المسموح بيها. وإيه الممنوع، حتى لو جُوّه نفس الشبكة. وإتدرّب على أجهزتك أو على منصات زي Hack The Box و TryHackMe. قبل أي Scan، اسأل نفسك: الـ IP ده جُوّه النطاق؟ نعمل function بسيطة اسمها in scope. بتستخدم مكتبة ipaddress، وبتشوف الـ IP جُوّه أنهي network، وكمان بتستبعد الـ IPs الممنوعة. نشغّل… أول IP جُوّه النطاق. التاني OUT، علشان العميل استبعده، غالباً ده الـ router. التالت جُوّه، والرابع برّه خالص.

main.py
import ipaddress

scope = [
    ipaddress.ip_network("10.10.10.0/24"),
    ipaddress.ip_network("203.0.113.0/28"),
]
excluded = [ipaddress.ip_address("10.10.10.1")]

def in_scope(ip):
    ip = ipaddress.ip_address(ip)
    if ip in excluded:
        return False
    return any(ip in net for net in scope)

for ip in ["10.10.10.5", "10.10.10.1", "203.0.113.20", "192.168.5.20"]:
    print(f"{ip:15}", "IN" if in_scope(ip) else "OUT")

المخرجات

10.10.10.5      IN
10.10.10.1      OUT
203.0.113.20    OUT
192.168.5.20    OUT

دورك: العميل بعتلك إيميل وضاف network جديدة: one ninety two dot one sixty eight dot five dot zero slash twenty four. ضيفها للـ scope، واتأكد إن آخر IP بقى IN.

تمرين

ضيف ipaddress.ip_network("192.168.5.0/24") للـ scope.

الحل: نشغّل…

main.py
import ipaddress

scope = [
    ipaddress.ip_network("10.10.10.0/24"),
    ipaddress.ip_network("203.0.113.0/28"),
    ipaddress.ip_network("192.168.5.0/24"),
]
excluded = [ipaddress.ip_address("10.10.10.1")]

def in_scope(ip):
    ip = ipaddress.ip_address(ip)
    if ip in excluded:
        return False
    return any(ip in net for net in scope)

for ip in ["10.10.10.5", "10.10.10.1", "203.0.113.20", "192.168.5.20"]:
    print(f"{ip:15}", "IN" if in_scope(ip) else "OUT")

المخرجات

10.10.10.5      IN
10.10.10.1      OUT
203.0.113.20    OUT
192.168.5.20    IN

الدرس الجاي: أول أداة في الجمع السلبي: WHOIS. يلا بينا.

03 / دروس المسار (22)
  1. 01يعني إيه جمع معلومات (Recon)؟
  2. 02سلبي ولا نشط؟ والنطاق القانونيانت هنا
  3. 03WHOIS: مين صاحب الـ Domain؟
  4. 04سجلات DNS: كنز المعلومات
  5. 05اكتشاف الـ Subdomains
  6. 06Certificate Transparency: الشهادات بتتكلم
  7. 07Google Dorking
  8. 08OSINT: الموظفين والإيميلات
  9. 09الـ Metadata: أسرار جُوّه الملفات
  10. 10اكتشاف الأجهزة الشغّالة (Host Discovery)
  11. 11الـ Port Scanning بيشتغل إزاي؟
  12. 12Nmap: البداية
  13. 13أنواع الـ Scan والسرعة في Nmap
  14. 14كشف الخدمات والإصدارات ونظام التشغيل
  15. 15NSE Scripts وحفظ النتايج
  16. 16تعداد الويب: الـ Headers والتكنولوجيا
  17. 17الـ Directory Brute Force
  18. 18تعداد SMB
  19. 19تعداد خدمات تانية: FTP و DNS و SNMP وغيرهم
  20. 20تنظيم نتايج الـ Recon
  21. 21أتمتة الـ Recon بـ Python
  22. 22مراجعة شاملة وخطة Recon