Enumeration هو عملية استخراج Usernames وأسماء الأجهزة والـ Network Resources والـ Shares والخدمات من نظام أو شبكة. في مرحلة الـ Enumeration، المهاجم بيُنشئ اتصالات نشطة مع النظام ويُرسَل استعلامات موجَّهة للحصول على مزيد من المعلومات عن الهدف.
NetBIOS Name = سلسلة مكوَّنة من 16 ASCII character — 15 حرف لاسم الجهاز والـ 16th محجوز لنوع الخدمة. يعمل على UDP 137 (Name Service)، TCP 139 (Session Service).
قائمة الأجهزة في الـ Domain، قائمة الـ Shares على كل Host، السياسات وكلمات المرور. الجهاز لازم يكون عنده File and Printer Sharing مُفعَّل. TCP 139 من أعلى الأولويات للحجب في Windows Firewalls.
# عرض NetBIOS Name Table لجهاز بعيد (باسمه)
nbtstat -a
# عرض NetBIOS Name Table لجهاز بعيد (بالـ IP)
nbtstat -A
# عرض NetBIOS Name Cache المحلي
nbtstat -c
# عرض NetBIOS Names المحلية
nbtstat -n
# مثال عملي
nbtstat -A 192.168.1.100
# عرض Resources جهاز محدَّد
net view \\
# عرض كل الـ Shares بما فيها المخفية
net view \\ /ALL
# عرض كل الـ Shares في الـ Domain
net view /domain
# عرض Shares في Domain محدَّد
net view /domain:
# استخدام NSE script للـ NetBIOS
nmap --script nbstat
nmap -sU --script nbstat -p 137
# نتيجة: اسم الجهاز، المستخدم المسجَّل، MAC Address
| الأداة | الوظيفة |
|---|---|
PsExec | تنفيذ عمليات على أنظمة بعيدة — Telnet replacement خفيف الوزن |
PsFile | عرض الملفات المفتوحة عن بُعد على النظام وإغلاقها |
PsGetSid | ترجمة SIDs لأسماء مقروءة والعكس — يعمل عبر الشبكة |
PsKill | إيقاف Processes على الأنظمة البعيدة بدون تثبيت Client |
NetBIOS Name Structure: 15 characters = Device Name + 1 character = Service Type. Port TCP 139 = SMB over NetBIOS. Port TCP/UDP 445 = SMB Direct (بدون NetBIOS). Microsoft لا يدعم NetBIOS Name Resolution مع IPv6.
MIB هو قاعدة بيانات افتراضية تحتوي وصفاً رسمياً لكل Network Objects التي يديرها SNMP. كل عنصر مُعرَّف بـ OID (Object Identifier) — رقم فريد يحدَّد العنصر في هرمية MIB.
| MIB File | ما تراقبه |
|---|---|
DHCP.MIB | Network Traffic بين DHCP Servers والـ Remote Hosts |
HOSTMIB.MIB | Host Resources — مراقبة وإدارة |
MIB_II.MIB | إدارة TCP/IP-based Internet |
WINS.MIB | Windows Internet Name Service |
LNMIB2.MIB | Object Types لـ Workstation وServer Services |
# SnmpWalk — فحص شامل لكل OIDs
snmpwalk -v2c -c public
snmpwalk -v2c -c public 1.3.6.1.2.1.25.4.2.1.2 # Running Processes
# Nmap SNMPscripts
nmap -sU -p 161 --script=snmp-info
nmap -sU -p 161 --script=snmp-processes
nmap -sU -p 161 --script=snmp-win32-users
nmap -sU -p 161 --script=snmp-brute
# snmp-check (شامل ومنظَّم)
snmp-check
snmp-check -t -c public
# Metasploit
use auxiliary/scanner/snmp/snmp_enum
set RHOSTS
run
مثال على Prompt للاستخدام مع ChatGPT: "Perform SNMP enumeration on target IP 10.10.1.22 using SnmpWalk and display the result"
LDAP (Lightweight Directory Access Protocol) بروتوكول للوصول وصيانة Directory Information Services الموزَّعة عبر شبكة IP. بيستخدم TCP/UDP Port 389 (و636 للـ Secure LDAP). يعمل مع Active Directory ويستخدم DNS لـ Quick Lookups.
المهاجم ممكن يستعلم الـ LDAP Service بشكل مجهول للحصول على: Usernames، Addresses، Departmental Details، وServer Names — كلها بدون مصادقة لو الـ Anonymous Bind مُفعَّل.
# تثبيت مكتبة ldap3
pip3 install ldap3
# الاتصال بالـ LDAP Server
import ldap3
server = ldap3.Server('TARGET_IP', get_info=ldap3.ALL, port=389)
# للـ Secure LDAP: use_ssl=True, port=636
connection = ldap3.Connection(server)
connection.bind()
# True = Connection ناجح!
# استخراج معلومات الـ Domain
print(server.info)
# → Naming Contexts, Domain Name, Schema...
# البحث عن Users
connection.search(
search_base='dc=example,dc=com',
search_filter='(objectClass=person)',
attributes=['cn', 'mail', 'sAMAccountName']
)
print(connection.entries)
# فحص الـ LDAP Port أولاً
nmap -p 389,636
# Brute Force الـ LDAP Authentication
nmap -p 389 --script ldap-brute \
--script-args 'ldap.base="cn=users,dc=CEH,dc=com"' \
# استخراج معلومات LDAP
nmap -p 389 --script ldap-search
nmap -p 389 --script ldap-rootdse
# Anonymous LDAP Search
ldapsearch -x -H ldap:// -b "dc=example,dc=com"
# البحث عن Users
ldapsearch -x -H ldap:// \
-b "dc=example,dc=com" \
"(objectClass=user)" cn mail
# مع Credentials
ldapsearch -x -H ldap:// \
-D "cn=admin,dc=example,dc=com" \
-w PASSWORD \
-b "dc=example,dc=com"
بروتوكول مصمَّم لمزامنة ساعات الأجهزة المتصلة بالشبكة. يستخدم UDP Port 123. بيقدر يحافظ على الوقت بدقة 10ms عبر الإنترنت وحتى 200μs في الـ LANs المثالية. المسؤولون عن الأمان غالبًا بيغفلوا عنه رغم أن استعلامه يكشف معلومات قيّمة.
ما يمكن استخراجه من NTP Server:
# Nmap NTP Enumeration
nmap -sU -p 123 --script ntp-info
nmap -sU -p 123 --script ntp-monlist
# ntpdate — معلومات الـ NTP Server
ntpdate -q
# ntptrace — تتبّع سلسلة الـ NTP Servers
ntptrace
نوع من أنظمة الملفات يتيح للمستخدمين الوصول والتخزين والتحديث للملفات على Remote Server. NFS Servers بتستمع على TCP Port 2049. العملاء يتفاعلون مع الـ Remote Files كأنها محلية.
ما يكشفه NFS Enumeration: المجلدات المُصدَّرة (Exported Directories)، Clients المتصلين والـ IPs، البيانات المشتركة. المهاجم يمكنه Spoof IP للوصول الكامل للـ Shared Files.
# فحص NFS Port والـ Services
rpcinfo -p
# عرض الـ Mounted Shares
showmount -e
showmount -a # عرض Clients + Shares
# RPCScan
python3 rpc-scan.py --rpc
# Nmap NFS Scripts
nmap -p 111 --script=nfs-ls
nmap -p 111 --script=nfs-showmount
nmap -p 111 --script=nfs-statfs
SMTP يعمل على TCP Port 25 (وأيضاً 2525 و587). بيستخدم MX Records لتوجيه البريد عبر DNS. يمكن استخدام Telnet للتفاعل اليدوي معه.
# Nmap SMTP Scripts
# عرض كل أوامر SMTP المتاحة
nmap -p 25,365,587 --script=smtp-commands
# فحص Open Relay
nmap -p 25 --script=smtp-open-relay
# تعداد Mail Users
nmap -p 25 --script=smtp-enum-users
# Metasploit SMTP Enumeration
use auxiliary/scanner/smtp/smtp_enum
set RHOSTS
run
# Banner Grabbing بـ Telnet
telnet 25
# EHLO test
# VRFY username → تحقق من وجود المستخدم
# EXPN mailinglist → توسيع قائمة بريدية
DNS Zone Transfer هو عملية نسخ Zone File من DNS Server الأساسي للثانوي. لو DNS Server مُهيَّأ بشكل خاطئ — المهاجم يحصل على نسخة كاملة من الـ Zone.
# نعرف الـ Name Servers أول
dig ns
nslookup -type=NS
# Zone Transfer بـ dig
dig axfr @
dig axfr @ns1.target.com target.com
# Zone Transfer بـ nslookup
nslookup
> server ns1.target.com
> ls -d target.com
# DNSRecon — Zone Transfer
dnsrecon -t axfr -d
dnsrecon -d target.com -t axfr
# DNSRecon — DNSSEC Zone Walking
dnsrecon -d -z
# LDNS Walk
ldns-walk @
ldns-walk @8.8.8.8 iana.org
تقنية لمعرفة المواقع التي زارها مستخدمو الشبكة مؤخّراً عبر الاستعلام عن الـ DNS Cache المُخزَّن.
| الطريقة | الآلية | كيف تعمل |
|---|---|---|
| Non-Recursive | RD bit = 0 | لو الـ Record موجود في Cache → DNS يُجيب → إثبات أن مستخدماً زار الموقع |
| Recursive | +recurse option | فحص قيمة TTL — لو TTL أقل من الأصلي = الـ Record مُخزَّن = زيارة سابقة |
# Non-Recursive Method
dig @ A +norecurse
# Recursive Method
dig @ A +recurse
# فحص TTL: لو أقل من الأصلي → cached → مستخدم زار الموقع
# مثال عملي
dig @162.241.216.11 www.google.com A +norecurse
IPsec الحل الأكثر شيوعاً لـ VPN Solutions — يوفَّر أمان البيانات عبر ESP, AH, وIKE. المهاجم بيستهدف ISAKMP على UDP Port 500.
# فحص ISAKMP على Port 500
nmap -sU -p 500
# ike-scan — اكتشاف VPN Gateways وبصمة الـ IPsec
ike-scan -M
ike-scan --showbackoff
VoIP بيستخدم Internet Infrastructure لمكالمات الصوت — معرَّض لنفس هجمات TCP/IP. المهاجم يستهدف SIP Devices والـ PBX Systems.
# Svmap — فحص SIP Devices
svmap
svmap 192.168.1.0/24
# Metasploit — SIP Username Enumeration
use auxiliary/scanner/sip/options
use auxiliary/scanner/sip/enumerator
set RHOSTS
run
ما يمكن جمعه: VoIP Gateways/Servers، IP-PBX Systems، User-Agent IP Addresses، User Extensions للـ Softphones.
# rusers — عرض المستخدمين على الأجهزة البعيدة
rusers -l
# يعطي: Username, Hostname, Session Start Time
# finger — معلومات تفصيلية عن المستخدمين
finger @
finger @ # كل المستخدمين
# يعطي: Login Name, Real Name, Terminal, Idle Time, Login Time
SMB يوفَّر Shared Access للملفات والطابعات. يعمل على TCP 445 مباشرةً أو عبر NetBIOS على UDP 137-138 وTCP 137-139.
# Nmap SMB Scripts
nmap -p 445 --script=smb-enum-shares
nmap -p 445 --script=smb-enum-users
nmap -p 445 --script=smb-os-discovery
nmap -p 445 --script=smb-vuln-ms17-010
nmap -p 445 --script=smb2-security-mode
# enum4linux — أشمل أداة SMB
enum4linux -a # Full Enumeration
enum4linux -U # Users
enum4linux -S # Shares
enum4linux -G # Groups
enum4linux -P # Password Policy
# SMBMap — فحص الـ Shares والـ Permissions
smbmap -H
smbmap -H -u guest
# smbclient — التفاعل المباشر
smbclient -L // -N # Null Session
smbclient ///SHARE -N
# nullinux — Null Session Enumeration
./nullinux.py
TCP 139 = SMB over NetBIOS (Old). TCP/UDP 445 = SMB Direct (Modern). SMB Enumeration = Banner Grabbing للحصول على OS Details → يُستخدَم لاختيار SMB Relay Attacks وBrute-Force Attacks.
| Port | Protocol | Service | ما يُستخرَج |
|---|---|---|---|
22 | TCP | SSH/SFTP | Banner, Version → Brute Force Credentials |
23 | TCP | Telnet | Cleartext Credentials, Banner Grabbing |
25 | TCP | SMTP | Mail Users, Open Relays |
53 | TCP/UDP | DNS | Zone Transfer → All Hosts & IPs |
69 | UDP | TFTP | File Upload/Download بدون Auth |
123 | UDP | NTP | Connected Clients, Internal IPs |
135 | TCP/UDP | RPC | Endpoint Mapper → Services Discovery |
137 | UDP | NetBIOS-NS | NetBIOS Names, MAC Addresses |
139 | TCP | NetBIOS-SS | File Shares, Null Session |
161 | UDP | SNMP Agent | Device Config, Users, Topology |
162 | UDP | SNMP Trap | Unsolicited Notifications |
179 | TCP | BGP | Routing Tables |
389 | TCP/UDP | LDAP | Users, Groups, Domain Structure |
445 | TCP/UDP | SMB Direct | Shares, OS Info, Users |
500 | UDP | ISAKMP/IPsec | VPN Gateway Detection |
636 | TCP | LDAPS | Secure LDAP |
2049 | TCP | NFS | Exported Directories, Mounted Shares |
3268 | TCP/UDP | Global Catalog | Cross-domain Object Lookup |
# NetBIOS
nmap --script nbstat -p 137
# SNMP
nmap -sU -p 161 --script snmp-info,snmp-processes,snmp-win32-users
# LDAP
nmap -p 389 --script ldap-search,ldap-rootdse,ldap-brute
# SMTP
nmap -p 25,587 --script smtp-commands,smtp-open-relay,smtp-enum-users
# DNS
nmap -p 53 --script dns-zone-transfer
# NFS
nmap -p 111 --script nfs-ls,nfs-showmount,nfs-statfs
# SMB
nmap -p 445 --script smb-enum-shares,smb-enum-users,smb-os-discovery,smb2-security-mode
# IPsec
nmap -sU -p 500
| الخدمة | AI Prompt المقترَح |
|---|---|
| NetBIOS | "Perform NetBIOS enumeration on target IP 10.10.1.11" |
| SNMP | "Perform SNMP enumeration on target IP 10.10.1.22 using SnmpWalk" |
| DNS | "Use Nmap to perform DNS Enumeration on target domain www.certifiedhacker.com" |
| DNS Cache Snooping | "Use dig command to perform DNS cache snooping on target domain using recursive method. Use DNS server IP as 162.241.216.11" |
| IPsec | "Perform IPsec enumeration on target IP 10.10.1.22 with nmap" |
| SMB | "Scan the target IP 10.10.1.22 for the port using SMB with nmap" |
| الخدمة | الأدوات الرئيسية |
|---|---|
| NetBIOS | nbtstat, NetBIOS Enumerator, Nmap (nbstat), Global Network Inventory |
| SNMP | SnmpWalk, snmp-check, SoftPerfect Network Scanner, Nmap (snmp-*) |
| LDAP | ldapsearch, Softerra LDAP Admin, AD Explorer, Nmap (ldap-*) |
| NTP | ntpdate, ntptrace, Nmap (ntp-*), PRTG Network Monitor |
| NFS | rpcinfo, showmount, RPCScan, SuperEnum |
| SMTP | Nmap (smtp-*), Metasploit (smtp_enum), Telnet |
| DNS | dig, nslookup, DNSRecon, LDNS, Knock, Subfinder |
| SMB | enum4linux, Nmap (smb-*), SMBMap, smbclient, nullinux |
| VoIP | Svmap, Metasploit (sip_*) |
| IPsec | Nmap (-sU -p 500), ike-scan |
الموديول ده غطّى مرحلة الـ Enumeration كاملة — الخطوة التالية بعد الـ Scanning. الـ Enumeration بيخلّي المهاجم يبني صورة تفصيلية عن الشبكة الداخلية عبر اتصالات نشطة.
الـ Enumeration هو الفرق بين المهاجم الأعمى والمهاجم الاستراتيجي. المعلومات المُجمَّعة هنا — Users وShares والـ Services والـ Banners — بتحدَّد مسار كل الهجمات اللاحقة. كل خدمة مفتوحة هي باب محتمل.
تذكَّر: NetBIOS = 16 chars (15 name + 1 type). SNMP = public/private Community Strings. DNS Zone Transfer = axfr. SMTP User Enum = VRFY + EXPN commands. SMB = 139 (over NetBIOS) و445 (Direct). NTP = UDP 123. NFS = TCP 2049. LDAP = TCP 389. IPsec/VPN = UDP 500.
نهاية نوتس الموديول الرابع — CEHv13: Enumeration