تعداد خدمات تانية: FTP و DNS و SNMP وغيرهم

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

01 / ملخص الدرس

تعداد خدمات تانية: FTP و DNS و SNMP وغيرهم

خطوات تعداد سريعة لخدمات شائعة: FTP و DNS و SNMP و SMTP و MySQL و Redis، وفكرة الـ Enumeration Playbook، وتبنيه بـ Python.

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

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

الويب و SMB مش كل حاجة. أي port مفتوح، وراه خدمة ليها طريقة تعداد خاصة بيها. هناخد أهمهم بسرعة.

FTP على port twenty one: جرّب anonymous login، أول حاجة. DNS على fifty three: جرّب Zone Transfer. SNMP على one sixty one، وده UDP: جرّب snmpwalk بـ community اسمها public، وممكن يكشف الـ system كله.

SMTP على twenty five: ممكن تعرف منه أسماء users موجودة بأمر VRFY. MySQL على three three zero six: جرّب الـ default creds. Redis على six three seven nine: كتير بيبقى من غير أي authentication خالص.

الفكرة اللي تطلع بيها: لكل خدمة، فيه أول خطوة معروفة. خليك عامل لنفسك Playbook، جدول بيقول: الـ port ده، اعمل عليه إيه. نعمل Playbook: dictionary، الـ port بيوديك لاسم الخدمة وأول خطوة. نلِف على الـ ports المفتوحة، ونطبع الخطوة، ولو الـ port مش معروف نقول: هات الـ banner الأول. نشغّل… كل port وقدامه أول خطوة. بص على eighty eighty، طلع unknown، علشان مش في الـ playbook.

main.py
playbook = {
    21: ("FTP", "anonymous login + grab files"),
    53: ("DNS", "zone transfer, then brute subdomains"),
    110: ("POP3", "read mail, try default creds"),
    161: ("SNMP", "snmpwalk with 'public' community"),
    3306: ("MySQL", "try default creds, enum databases"),
    6379: ("Redis", "often no auth, read/write keys"),
}

open_ports = [21, 53, 161, 3306, 8080]

for port in open_ports:
    if port in playbook:
        name, step = playbook[port]
        print(f"{port:>5}  {name:8} -> {step}")
    else:
        print(f"{port:>5}  {'?':8} -> unknown, grab banner first")

المخرجات

21  FTP      -> anonymous login + grab files
   53  DNS      -> zone transfer, then brute subdomains
  161  SNMP     -> snmpwalk with 'public' community
 3306  MySQL    -> try default creds, enum databases
 8080  ?        -> unknown, grab banner first

دورك: ضيف eighty eighty للـ playbook، خدمة اسمها HTTP alt، وخطوتها إنك تفتحها وتعمل dir brute force.

تمرين

8080: ("HTTP-alt", "browse it, run a dir brute force")

الحل: نشغّل… كل الـ ports بقى ليها خطوة واضحة.

main.py
playbook = {
    21: ("FTP", "anonymous login + grab files"),
    53: ("DNS", "zone transfer, then brute subdomains"),
    110: ("POP3", "read mail, try default creds"),
    161: ("SNMP", "snmpwalk with 'public' community"),
    3306: ("MySQL", "try default creds, enum databases"),
    6379: ("Redis", "often no auth, read/write keys"),
    8080: ("HTTP-alt", "browse it, run a dir brute force"),
}

open_ports = [21, 53, 161, 3306, 8080]

for port in open_ports:
    if port in playbook:
        name, step = playbook[port]
        print(f"{port:>5}  {name:8} -> {step}")
    else:
        print(f"{port:>5}  {'?':8} -> unknown, grab banner first")

المخرجات

21  FTP      -> anonymous login + grab files
   53  DNS      -> zone transfer, then brute subdomains
  161  SNMP     -> snmpwalk with 'public' community
 3306  MySQL    -> try default creds, enum databases
 8080  HTTP-alt -> browse it, run a dir brute force

الدرس الجاي: جمّعنا معلومات كتير… نبدأ نِنَظّمها. يلا بينا.

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