تعداد خدمات تانية: FTP و DNS و SNMP وغيرهم
خطوات تعداد سريعة لخدمات شائعة: FTP و DNS و SNMP و SMTP و MySQL و Redis، وفكرة الـ Enumeration Playbook، وتبنيه بـ Python.
نص شرح المعلم والكود الذي كتبه ونتيجة تشغيله، بنفس ترتيب الدرس.
الويب و 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.
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 بقى ليها خطوة واضحة.
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)
- 01يعني إيه جمع معلومات (Recon)؟
- 02سلبي ولا نشط؟ والنطاق القانوني
- 03WHOIS: مين صاحب الـ Domain؟
- 04سجلات DNS: كنز المعلومات
- 05اكتشاف الـ Subdomains
- 06Certificate Transparency: الشهادات بتتكلم
- 07Google Dorking
- 08OSINT: الموظفين والإيميلات
- 09الـ Metadata: أسرار جُوّه الملفات
- 10اكتشاف الأجهزة الشغّالة (Host Discovery)
- 11الـ Port Scanning بيشتغل إزاي؟
- 12Nmap: البداية
- 13أنواع الـ Scan والسرعة في Nmap
- 14كشف الخدمات والإصدارات ونظام التشغيل
- 15NSE Scripts وحفظ النتايج
- 16تعداد الويب: الـ Headers والتكنولوجيا
- 17الـ Directory Brute Force
- 18تعداد SMB
- 19تعداد خدمات تانية: FTP و DNS و SNMP وغيرهمانت هنا
- 20تنظيم نتايج الـ Recon
- 21أتمتة الـ Recon بـ Python
- 22مراجعة شاملة وخطة Recon