Module 04: التعداد والاستخلاص (Enumeration)

⬦ ما هو الـ Enumeration؟

Enumeration هو عملية استخراج Usernames وأسماء الأجهزة والـ Network Resources والـ Shares والخدمات من نظام أو شبكة. في مرحلة الـ Enumeration، المهاجم بيُنشئ اتصالات نشطة مع النظام ويُرسَل استعلامات موجَّهة للحصول على مزيد من المعلومات عن الهدف.

ما الذي يستخرجه الـ Enumeration؟

✓Network Resources وShares
✓Routing Tables
✓Audit و Service Settings
✓SNMP و FQDN Details
✓أسماء الأجهزة (Machine Names)
✓Users وGroups
✓Applications وBanners

تقنيات الـ Enumeration

01
Email IDs → Usernames
كل Email يحتوي username@domain — يمكن استخراج الـ Usernames من عناوين البريد الإلكتروني المتاحة.
02
Default Passwords
كتير من المستخدمين ما بيغيّروش كلمات المرور الافتراضية — المهاجم يجربها مباشرة.
03
Brute Force Active Directory
Active Directory ممكن يكشف Usernames عبر رسائل الخطأ المختلفة لما "logon hours" مُفعَّل.
04
DNS Zone Transfer
لو DNS Server مُهيَّأ بشكل خاطئ، Zone Transfer بيكشف كل Host Names وSubzones والـ IPs.
05
SNMP Community Strings
تخمين Community Strings بالـ SNMP API لاستخراج Usernames وNetwork Resources والـ Topology.
06
Windows User Groups
بـ Registered ID في Active Directory، المهاجم يستخرج معلومات المجموعات اللي هو عضو فيها.

الـ Services والـ Ports المهمة في الـ Enumeration

53 TCP/UDP DNS Zone Transfer 123 UDP NTP 135 TCP/UDP RPC Endpoint Mapper 137 UDP NetBIOS NBNS 139 TCP NetBIOS Session/SMB 161 / 162 UDP SNMP Agent / Trap 179 TCP BGP 389 TCP/UDP LDAP 445 TCP/UDP SMB over TCP 500 UDP IPsec / ISAKMP 2049 TCP NFS 3268 TCP/UDP Global Catalog (AD) 22 TCP SSH / SFTP 23 TCP Telnet (Cleartext!) 25 TCP SMTP 69 UDP TFTP 636 TCP LDAPS (Secure) 587 / 2525 TCP SMTP (Alt ports)
الـ Ports الأساسية في مرحلة الـ Enumeration — الصف الأول والثاني هم الأكثر استهدافاً

01NetBIOS Enumeration

NetBIOS Name = سلسلة مكوَّنة من 16 ASCII character — 15 حرف لاسم الجهاز والـ 16th محجوز لنوع الخدمة. يعمل على UDP 137 (Name Service)، TCP 139 (Session Service).

⚠ ما يكشفه NetBIOS Enumeration

قائمة الأجهزة في الـ Domain، قائمة الـ Shares على كل Host، السياسات وكلمات المرور. الجهاز لازم يكون عنده File and Printer Sharing مُفعَّل. TCP 139 من أعلى الأولويات للحجب في Windows Firewalls.

nbtstat Utility

windows cmd — nbtstat
# عرض 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

Net View — عرض الـ Shared Resources

windows cmd — net view
# عرض Resources جهاز محدَّد
net view \\

# عرض كل الـ Shares بما فيها المخفية
net view \\ /ALL

# عرض كل الـ Shares في الـ Domain
net view /domain

# عرض Shares في Domain محدَّد
net view /domain:

Nmap لـ NetBIOS

bash — nmap netbios
# استخدام NSE script للـ NetBIOS
nmap --script nbstat 
nmap -sU --script nbstat -p 137 

# نتيجة: اسم الجهاز، المستخدم المسجَّل، MAC Address

PsTools Suite — Enumerating User Accounts

الأداةالوظيفة
PsExecتنفيذ عمليات على أنظمة بعيدة — Telnet replacement خفيف الوزن
PsFileعرض الملفات المفتوحة عن بُعد على النظام وإغلاقها
PsGetSidترجمة SIDs لأسماء مقروءة والعكس — يعمل عبر الشبكة
PsKillإيقاف Processes على الأنظمة البعيدة بدون تثبيت Client
★ CEH Exam Tip

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.


02SNMP Enumeration — MIB وCommunity Strings

SNMP Community Strings

RRead Community String (Public): بتسمح بعرض إعدادات الجهاز — عادةً "public" افتراضياً
RWRead/Write Community String (Private): بتسمح بتعديل إعدادات الجهاز — عادةً "private" افتراضياً

SNMP Operations — أنواع الرسائل

SNMP Manager Network Management Station Port 162 (receives) Traps + Informs Get / GetNext / GetBulk / Set Request Response PDU Trap / Inform (Unsolicited) SNMP Agent Port 161 (listens) Network Device Router/Switch/Server MIB Management Info Base OIDs (Object IDs) Hierarchical DB All managed objects
SNMP Manager ← → Agent: Manager على Port 162، Agent على Port 161

MIB — Management Information Base

MIB هو قاعدة بيانات افتراضية تحتوي وصفاً رسمياً لكل Network Objects التي يديرها SNMP. كل عنصر مُعرَّف بـ OID (Object Identifier) — رقم فريد يحدَّد العنصر في هرمية MIB.

MIB Fileما تراقبه
DHCP.MIBNetwork Traffic بين DHCP Servers والـ Remote Hosts
HOSTMIB.MIBHost Resources — مراقبة وإدارة
MIB_II.MIBإدارة TCP/IP-based Internet
WINS.MIBWindows Internet Name Service
LNMIB2.MIBObject Types لـ Workstation وServer Services

أدوات SNMP Enumeration

bash — snmp enumeration commands
# 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
✓ AI Prompt للـ Exam

مثال على Prompt للاستخدام مع ChatGPT: "Perform SNMP enumeration on target IP 10.10.1.22 using SnmpWalk and display the result"


03LDAP Enumeration — Active Directory

LDAP (Lightweight Directory Access Protocol) بروتوكول للوصول وصيانة Directory Information Services الموزَّعة عبر شبكة IP. بيستخدم TCP/UDP Port 389 (و636 للـ Secure LDAP). يعمل مع Active Directory ويستخدم DNS لـ Quick Lookups.

⚠ LDAP Anonymous Query

المهاجم ممكن يستعلم الـ LDAP Service بشكل مجهول للحصول على: Usernames، Addresses، Departmental Details، وServer Names — كلها بدون مصادقة لو الـ Anonymous Bind مُفعَّل.

LDAP Enumeration اليدوي بـ Python

python — manual ldap enum
# تثبيت مكتبة 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 Enumeration بـ Nmap

bash — nmap ldap
# فحص الـ 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 

ldapsearch — Command Line

bash — ldapsearch
# 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"

04NTP وNFS Enumeration

NTP Enumeration

⬦ NTP — Network Time Protocol

بروتوكول مصمَّم لمزامنة ساعات الأجهزة المتصلة بالشبكة. يستخدم UDP Port 123. بيقدر يحافظ على الوقت بدقة 10ms عبر الإنترنت وحتى 200μs في الـ LANs المثالية. المسؤولون عن الأمان غالبًا بيغفلوا عنه رغم أن استعلامه يكشف معلومات قيّمة.

ما يمكن استخراجه من NTP Server:

!قائمة الأجهزة المتصلة بالـ NTP Server
!IP Addresses للـ Clients وأسماء الأنظمة وأنظمة التشغيل
!Internal IPs لو الـ NTP Server في الـ DMZ
bash — ntp enumeration
# 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 

NFS Enumeration

⬦ NFS — Network File System

نوع من أنظمة الملفات يتيح للمستخدمين الوصول والتخزين والتحديث للملفات على Remote Server. NFS Servers بتستمع على TCP Port 2049. العملاء يتفاعلون مع الـ Remote Files كأنها محلية.

ما يكشفه NFS Enumeration: المجلدات المُصدَّرة (Exported Directories)، Clients المتصلين والـ IPs، البيانات المشتركة. المهاجم يمكنه Spoof IP للوصول الكامل للـ Shared Files.

bash — nfs enumeration
# فحص 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 

05SMTP وDNS Enumeration

SMTP Enumeration

SMTP يعمل على TCP Port 25 (وأيضاً 2525 و587). بيستخدم MX Records لتوجيه البريد عبر DNS. يمكن استخدام Telnet للتفاعل اليدوي معه.

bash — smtp enumeration
# 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 Enumeration — Zone Transfer

DNS Zone Transfer هو عملية نسخ Zone File من DNS Server الأساسي للثانوي. لو DNS Server مُهيَّأ بشكل خاطئ — المهاجم يحصل على نسخة كاملة من الـ Zone.

Primary DNS Zone File All hosts, IPs Subdomains... Legitimate Zone Transfer Secondary DNS Backup Copy Redundancy ✓ Authorized Attacker Request Misconfigured Server! Attacker Gets: All Named Hosts Sub-zones & IP Addresses Internal Server Names ⚡ Complete Network Map!
DNS Zone Transfer مع Misconfigured Server = نقشة الشبكة الداخلية كاملة للمهاجم
bash — dns enumeration commands
# نعرف الـ 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 Snooping

تقنية لمعرفة المواقع التي زارها مستخدمو الشبكة مؤخّراً عبر الاستعلام عن الـ DNS Cache المُخزَّن.

الطريقةالآليةكيف تعمل
Non-RecursiveRD bit = 0لو الـ Record موجود في Cache → DNS يُجيب → إثبات أن مستخدماً زار الموقع
Recursive+recurse optionفحص قيمة TTL — لو TTL أقل من الأصلي = الـ Record مُخزَّن = زيارة سابقة
bash — dns cache snooping
# Non-Recursive Method
dig @  A +norecurse

# Recursive Method
dig @  A +recurse
# فحص TTL: لو أقل من الأصلي → cached → مستخدم زار الموقع

# مثال عملي
dig @162.241.216.11 www.google.com A +norecurse

06IPsec · VoIP · RPC · Linux/Unix · SMB Enumeration

IPsec Enumeration

IPsec الحل الأكثر شيوعاً لـ VPN Solutions — يوفَّر أمان البيانات عبر ESP, AH, وIKE. المهاجم بيستهدف ISAKMP على UDP Port 500.

bash — ipsec enumeration
# فحص ISAKMP على Port 500
nmap -sU -p 500 

# ike-scan — اكتشاف VPN Gateways وبصمة الـ IPsec
ike-scan -M 
ike-scan --showbackoff 

VoIP Enumeration

VoIP بيستخدم Internet Infrastructure لمكالمات الصوت — معرَّض لنفس هجمات TCP/IP. المهاجم يستهدف SIP Devices والـ PBX Systems.

bash — voip enumeration
# 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.

Linux/Unix User Enumeration

bash — linux unix enumeration
# rusers — عرض المستخدمين على الأجهزة البعيدة
rusers -l 
# يعطي: Username, Hostname, Session Start Time

# finger — معلومات تفصيلية عن المستخدمين
finger @
finger @         # كل المستخدمين
# يعطي: Login Name, Real Name, Terminal, Idle Time, Login Time

SMB Enumeration

SMB يوفَّر Shared Access للملفات والطابعات. يعمل على TCP 445 مباشرةً أو عبر NetBIOS على UDP 137-138 وTCP 137-139.

bash — smb enumeration
# 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 
★ CEH Exam — SMB Ports

TCP 139 = SMB over NetBIOS (Old). TCP/UDP 445 = SMB Direct (Modern). SMB Enumeration = Banner Grabbing للحصول على OS Details → يُستخدَم لاختيار SMB Relay Attacks وBrute-Force Attacks.


Cheat Sheet مرجعي — كل الأوامر

Ports Reference الكامل

PortProtocolServiceما يُستخرَج
22TCPSSH/SFTPBanner, Version → Brute Force Credentials
23TCPTelnetCleartext Credentials, Banner Grabbing
25TCPSMTPMail Users, Open Relays
53TCP/UDPDNSZone Transfer → All Hosts & IPs
69UDPTFTPFile Upload/Download بدون Auth
123UDPNTPConnected Clients, Internal IPs
135TCP/UDPRPCEndpoint Mapper → Services Discovery
137UDPNetBIOS-NSNetBIOS Names, MAC Addresses
139TCPNetBIOS-SSFile Shares, Null Session
161UDPSNMP AgentDevice Config, Users, Topology
162UDPSNMP TrapUnsolicited Notifications
179TCPBGPRouting Tables
389TCP/UDPLDAPUsers, Groups, Domain Structure
445TCP/UDPSMB DirectShares, OS Info, Users
500UDPISAKMP/IPsecVPN Gateway Detection
636TCPLDAPSSecure LDAP
2049TCPNFSExported Directories, Mounted Shares
3268TCP/UDPGlobal CatalogCross-domain Object Lookup

Nmap Scripts Reference

bash — nmap enumeration scripts
# 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 Prompts للـ Enumeration (CEHv13)

الخدمة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"

أدوات الـ Enumeration — مرجع سريع

الخدمةالأدوات الرئيسية
NetBIOSnbtstat, NetBIOS Enumerator, Nmap (nbstat), Global Network Inventory
SNMPSnmpWalk, snmp-check, SoftPerfect Network Scanner, Nmap (snmp-*)
LDAPldapsearch, Softerra LDAP Admin, AD Explorer, Nmap (ldap-*)
NTPntpdate, ntptrace, Nmap (ntp-*), PRTG Network Monitor
NFSrpcinfo, showmount, RPCScan, SuperEnum
SMTPNmap (smtp-*), Metasploit (smtp_enum), Telnet
DNSdig, nslookup, DNSRecon, LDNS, Knock, Subfinder
SMBenum4linux, Nmap (smb-*), SMBMap, smbclient, nullinux
VoIPSvmap, Metasploit (sip_*)
IPsecNmap (-sU -p 500), ike-scan

الخلاصة العامة للموديول

الموديول ده غطّى مرحلة الـ Enumeration كاملة — الخطوة التالية بعد الـ Scanning. الـ Enumeration بيخلّي المهاجم يبني صورة تفصيلية عن الشبكة الداخلية عبر اتصالات نشطة.

$ cat ./module04_summary.txt

الـ Enumeration هو الفرق بين المهاجم الأعمى والمهاجم الاستراتيجي. المعلومات المُجمَّعة هنا — Users وShares والـ Services والـ Banners — بتحدَّد مسار كل الهجمات اللاحقة. كل خدمة مفتوحة هي باب محتمل.

★ CEH Exam Key Points

تذكَّر: 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