تعداد SMB
إيه هو SMB و ports بتاعته، والـ Null Session والـ Shares، وأدوات smbclient و smbmap و enum4linux و netexec، وتطلّع الـ shares المفتوحة بـ Python.
نص شرح المعلم والكود الذي كتبه ونتيجة تشغيله، بنفس ترتيب الدرس.
SMB هو البروتوكول اللي بتتشارك بيه الملفات والطابعات في شبكات Windows. وهو من أهم الأهداف في أي شبكة داخلية، وفي OSCP.
بيشتغل على port one thirty nine و four forty five. الحاجات اللي بنتشارك بيها اسمها Shares. وساعات بيسمح بـ Null Session، يعني تدخل من غير username أو password خالص.
الأدوات: smbclient dash capital L، بيعرض الـ shares. smbmap، بيعرض الـ shares وصلاحياتك عليها. enum4linux، بيجمع كل حاجة: users و shares و groups. و netexec، أو اسمه القديم crackmapexec، أداة قوية جداً. ده output من smbmap، بيعرض كل share وصلاحياتك عليه. نقسم كل سطر: الاسم الأول، والصلاحية بعده. نشغّل… فيه shares كتير NO ACCESS، بس Public فيها READ و WRITE، و Backups فيها READ. الـ shares اللي آخرها علامة dollar دي مخبّية وإدارية.
# Output of: smbmap -H 10.10.10.20 -u guest (lab data)
output = """Disk Permissions Comment
---- ----------- -------
ADMIN$ NO ACCESS Remote Admin
C$ NO ACCESS Default share
IPC$ READ ONLY Remote IPC
Finance NO ACCESS Finance team
Public READ, WRITE Shared files
Backups READ ONLY Old backups"""
shares = []
for line in output.splitlines()[2:]:
name, rest = line.split(maxsplit=1)
perm = rest[:14].strip()
shares.append((name, perm))
for name, perm in shares:
print(f"{name:8} {perm}")المخرجات
ADMIN$ NO ACCESS C$ NO ACCESS IPC$ READ ONLY Finance NO ACCESS Public READ, WRITE Backups READ ONLY
دورك: اطبع بس الـ shares اللي تقدر تقرا منها، وتجاهل اللي آخرها dollar.
اطبع الـ share لو "READ" in perm و not name.endswith("$").
الحل: نشغّل… Public و Backups. لازم ندخل نشوف اللي جُوّاهم.
# Output of: smbmap -H 10.10.10.20 -u guest (lab data)
output = """Disk Permissions Comment
---- ----------- -------
ADMIN$ NO ACCESS Remote Admin
C$ NO ACCESS Default share
IPC$ READ ONLY Remote IPC
Finance NO ACCESS Finance team
Public READ, WRITE Shared files
Backups READ ONLY Old backups"""
shares = []
for line in output.splitlines()[2:]:
name, rest = line.split(maxsplit=1)
perm = rest[:14].strip()
shares.append((name, perm))
for name, perm in shares:
if "READ" in perm and not name.endswith("$"):
print(f"[+] {name:8} {perm}")المخرجات
[+] Public READ, WRITE [+] Backups READ ONLY
الدرس الجاي: خدمات تانية مهمة بسرعة: DNS و SNMP وغيرهم. يلا بينا.
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