root@kali: ~

هزینه استفاده از این فایل دعا برای ظهور هست

یا رَبَّ الْحُسَیْنِ بِحَقِّ الْحُسَیْنِ
اِشْفِ صَدْرَ الْحُسَیْنِ
بِظُهُورِ الْحُجَّةِ
root@kali: ~/ceh/session-04
root@kali:~/ceh# cat README.md

جزوه آموزشی تکنیک‌های Enumeration در شبکه (دوره CEH v13 - ماژول ۴)

CEH v13 · Module 4: Network Enumeration
root@kali:~/ceh# cd chapter-1

۱ کلیات و مفاهیم پایه Enumeration

این جزوه آموزشی بر اساس سورس‌های رسمی، اسلایدها و کلاس‌های آموزشی دوره CEH v13 (ماژول ۴: Network Enumeration) تنظیم شده است. در این فایل، تمامی مطالب حاشیه‌ای حذف شده و مفاهیم به صورت گام‌به‌گام و مرتب تدوین گردیده‌اند.

مرحله Enumeration (شمارش و شناسایی عمیق) یکی از مراحل اصلی ارزیابی امنیتی است. در این گام، برخلاف مراحل جمع‌آوری غیرفعال اطلاعات (Reconnaissance)، یک ارتباط فعال (Active Connection) با سیستم هدف برقرار شده و درخواست‌های متعددی برای استخراج جزئیات ساختاری شبکه ارسال می‌شود. هدف اصلی این گام، گردآوری اطلاعات لازم برای ارزیابی جامع سیستم‌هاست.

منابع و اطلاعات قابل استخراج در مرحله Enumeration

پروتکل‌ها و سرویس‌های مختلف شبکه امکان استخراج اطلاعات زیر را فراهم می‌سازند:

  • منابع شبکه و فایل‌های به اشتراک گذاشته شده (Shared Resources & Drives)
  • جداول مسیریابی (Routing Tables) و توپولوژی شبکه
  • تنظیمات و بنرهای سرویس‌ها (Service Banners & Configurations)
  • جزئیات دقیق سرویس‌های DNS و SNMP
  • نام ماشین‌ها، نام‌های کاربری (Usernames) و گروه‌ها (Groups)
  • اطلاعات مربوط به اکتیو دایرکتوری (Active Directory Objects & OUs)
root@kali:~/ceh# cd ../chapter-2

۲ مرجع پورت‌ها و سرویس‌های کلیدی Enumeration

جدول زیر پورت‌های استاندارد و سرویس‌های مرتبط مطرح‌شده در این دوره را خلاصه می‌کند:

شماره پورت پروتکل سرویس مرتبط توضیحات و اطلاعات قابل استخراج
53 TCP/UDP DNS انتقال زون (Zone Transfer)، استخراج رکوردهای DNS و نام ماشین‌ها
135 TCP/UDP MS RPC Endpoint Mapper شناسایی ایندپوئینت‌های RPC و سرویس‌های ویندوزی
137 UDP NetBIOS Name Service (NBNS) شناسایی نام سیستم‌ها و دامین‌ها در شبکه محلی
139 TCP NetBIOS Session Service ارتباطات SMB over NetBIOS، مشاهده اشتراک‌گذاری‌ها
445 TCP/UDP SMB over TCP (Direct Host) اشتراک‌گذاری فایل/پرینتر، استخراج اطلاعات سیستم‌عامل و حساب‌ها
161 UDP SNMP Agent پایش شبکه، استخراج مشخصات تجهیزات، کاربران و تنظیمات
162 TCP/UDP SNMP Trap دریافت هشدارها و رخدادهای سیستم از سمت Agent
389 TCP/UDP LDAP پرس‌وجو در Active Directory، استخراج کاربران، گروه‌ها و ساختار دایرکتوری
123 UDP NTP همسان‌سازی زمان، استخراج لیست کلاینت‌ها و آدرس‌های IP متصل
25 TCP SMTP سرویس ارسال ایمیل، استخراج نام‌های کاربری با دستورات VRFY/EXPN
500 UDP IPSec / ISAKMP (IKE) ارتباطات VPN، شناسایی الگوریتم‌های رمزنگاری و هش
2049 TCP NFS فایل سیستم شبکه‌ای در سیستم‌عامل‌های یونیکس/لینوکس
22 TCP SSH ریموت شل امن، شناسایی نسخه و بنر سرویس
2000, 2001, 5050, 5060, 5061 TCP/UDP VoIP / SIP ارتباطات صوتی و تصویری IP-PBX، شناسایی کلاینت‌ها و گیت‌وی‌ها
root@kali:~/ceh# cd ../chapter-3

۳ بررسی تخصصی تکنیک‌های Enumeration به تفکیک پروتکل

۳.۱. NetBIOS Enumeration

نام‌های NetBIOS رشته‌های ۱۶ کاراکتری هستند که برای شناسایی دستگاه‌ها روی پروتکل TCP/IP استفاده می‌شوند. ساختار نام‌گذاری آن به صورت Flat (بدون قوانین ساختاریافته) بوده و از Broadcast برای پیدا کردن ماشین‌ها در شبکه استفاده می‌کند.

  • اطلاعات قابل استخراج: لیست کامپیوترهای دامین، لیست منابع به اشتراک گذاشته شده (Shares)، سیاست‌های کلمه عبور (Password Policies).
  • ابزارها و دستورات کاربردی:
    • دستور nbtstat (ویندوز):
      • nbtstat.exe -c: نمایش محتوای cache نام‌های NetBIOS و جدول IPهای حل‌شده.
      • nbtstat.exe -a <IP>: دریافت جدول نام‌های NetBIOS یک ماشین از راه دور.
    • ابزار nbtscan (لینوکس/کالی):
      • nbtscan 192.168.233.0/24: اسکن رنج شبکه برای کشف نام ماشین‌ها و دامین‌ها.
      • نکته کلیدی: اگر در خروجی nbtscan عبارت Unknown یا Anon در برابر یک آدرس IP درج شود، نشان‌دهنده آن است که هدف احتمالاً یک سیستم غیرویندوزی (مانند روتر، سویچ، فایروال یا لینوکس) است که سرویس NetBIOS ندارد.
    • دستور net view (ویندوز):
      • net view \\<IP> /ALL: نمایش منابع به اشتراک گذاشته شده در صورت وجود سشن فعال.
    • اسکریپت ان‌مپ (Nmap):
      • nmap -sV -v --script nbstat.nse <IP>: استخراج اطلاعات NetBIOS با ان‌مپ.
    • ابزارهای گرافیکی: SuperScan 4.1.

۳.۲. SNMP Enumeration

پروتکل SNMP برای پایش و مدیریت دستگاه‌های شبکه (سوئیچ‌ها، روترها، سرورها) استفاده می‌شود. این سرویس بر پایه معماری Agent (روی دستگاه هدف، پورت UDP 161) و Manager (دستگاه مدیریتی) کار می‌کند.

  • کلیدهای جامعه (Community Strings):
    • Read Community String: به صورت پیش‌فرض public است؛ اجازه مشاهده تنظیمات سیستم را می‌دهد.
    • Read/Write Community String: به صورت پیش‌فرض private است؛ اجازه تغییر تنظیمات از راه دور را می‌دهد.
  • تفاوت نسخه‌های SNMP:
    • SNMP v1 & v2c: کلمات عبور و اطلاعات را به صورت متن ساده (Cleartext) منتقل می‌کنند.
    • SNMP v3: قابلیت‌های رمزنگاری (Encryption)، احراز هویت (Authentication)، و مفاهیم Inform و Trap امن را اضافه کرده است.
  • عملیات‌های اصلی SNMP:
    • Get / GetNext / GetBulk: دریافت اطلاعات از Agent.
    • Set: تغییر تنظیمات روی Agent.
    • Trap / Inform: ارسال پیام‌های نخواسته یا گزارش رخدادها از Agent به Manager.
  • ابزارهای شناسایی SNMP:
    • snmp-check, snmpwalk, SNMP Scanner, OpUtils, Getif, PRTG, SolarWinds, Cacti, SNScan, Net-SNMP.

۳.۳. LDAP Enumeration

پروتکل LDAP (پورت TCP 389) سرویسی برای دسترسی به دایرکتوری‌های توزیع‌شده مانند Active Directory است. از LDAP برای جستجوی سریع اطلاعات کاربران، ایمیل‌ها، دپارتمان‌ها و سرورها استفاده می‌شود.

  • اسکریپت‌نویسی دستی LDAP با پایتون (Python LDAP Enumeration):

    با استفاده از کتابخانه ldap3 در پایتون می‌توان به سرور LDAP متصل شد و اطلاعات را استخراج نمود:

    python
    import ldap3
    
    # اتصال به سرور هدف روی پورت 389
    server = ldap3.Server('Target_IP', get_info=ldap3.ALL, port=389)
    connection = ldap3.Connection(server)
    connection.bind() # در صورت موفقیت True برمی‌گرداند
    
    # دریافت اطلاعات دامنه و Naming Context
    print(server.info)
    
    # جستجوی تمامی اشیاء دایرکتوری
    connection.search(
        search_base='DC=DOMAIN,DC=LOCAL',
        search_filter='(&(objectClass=*))',
        search_scope='SUBTREE',
        attributes='*'
    )
    
    # مشاهده نتایج استخراج شده
    print(connection.entries)
  • ابزارهای مدیریت و استخراج LDAP:
    • AD Explorer (Sysinternals): ابزار قدرتمند مایکروسافت برای مشاهده هیرارکی و ساختار درختی Active Directory.
    • سایر ابزارها: JXplorer, LDAP Administrator, LDAP Admin Tool, LDAP Account Manager, LEX The LDAP Explorer.

۳.۴. NTP Enumeration

پروتکل NTP (پورت UDP 123) برای همسان‌سازی زمان در شبکه استفاده می‌شود. دقت زمان در این پروتکل ۱۰ میلی‌ثانیه و در شبکه‌های داخلی تا ۲۰۰ میکروثانیه می‌رسد.

  • اطلاعات قابل استخراج: لیست سیستم‌های متصل به سرور NTP، آدرس‌های IP کلاینت‌ها، نام سیستم‌ها و مشخصات سیستم‌عامل.
  • ابزارها و دستورات:
    • ntptrace: ردگیری زنجیره سرورهای NTP تا منبع اصلی.
    • ntpdc: پایش عملکرد NTP daemon (کوئری monlist برای استخراج لیست کلاینت‌های اخیر).
    • ntpq: بررسی وضعیت و کارایی سرور NTP (کوئری readlist).

۳.۵. SMTP Enumeration

پروتکل SMTP (پورت TCP 25) پروتکل ارسال ایمیل است. در صورت پیکربندی نامناسب، امکان استخراج حساب‌های کاربری وجود دارد.

  • دستورات استخراج کاربر در SMTP:
    • VRFY: تایید وجود نام کاربری روی سرور.
    • EXPN: نمایش لیست واقعی کاربران یک لیست توزیع ایمیل.
    • RCPT TO: مشخص کردن گیرنده پیام.
  • ابزارها و دستورات:
    • اتصال دستی: telnet <IP> 25.
    • اسکریپت ان‌مپ: nmap -p 25 --script=smtp-enum-users <IP>.

۳.۶. DNS Enumeration

در فرآیند DNS Enumeration، هدف پیدا کردن سرورهای DNS، نام‌های میزبان، رکوردهای DNS (مانند A, MX, NS, CNAME, TXT) و آدرس‌های IP شبکه است.

  • روش‌های استخراج و ابزارها:
    • دستور nslookup:
      • nslookup -> server <IP> -> set type=any -> ls -d domain (جهت تست Zone Transfer).
    • دستورات dig, dnsenum, dnsrecon.
    • تکنیک DNSSEC Zone Walking:
      • استخراج رکوردهای DNSSEC سرور با ابزارهای dnsrecon -d <Domain> -z یا ldns-walk @<DNS_IP> <Domain>.
    • ابزار OWASP Amass:
      • اجرای ترکیبی شناسایی فعال و غیرفعال: ابزار Amass جهت استخراج رکوردهای DNS بدون ایجاد هشدار روی سیستم هدف.

۳.۷. IPSec / IKE Enumeration

پروتکل IPSec برای امن‌سازی ترافیک (از جمله VPNها) از پروتکل‌های AH, ESP و IKE/ISAKMP استفاده می‌کند.

  • پورت: اسکن پورت UDP 500 جهت کشف سرویس ISAKMP.
  • دستورات:
    • nmap -sU -p 500 <Target_IP>.
    • ike-scan -M <Target_IP>: ارسال بسته‌های IKE جهت کشف الگوریتم‌های رمزنگاری (Encryption)، هش (Hash)، نوع احراز هویت (Auth) و LifeDuration.

۳.۸. VoIP Enumeration

سرویس VoIP برای انتقال صوت و تصویر از پروتکل SIP (Session Initiation Protocol) روی پورت‌های 2000, 2001, 5050, 5060, 5061 استفاده می‌کند.

  • اطلاعات قابل استخراج: سیستم‌های IP-PBX، VoIP Gateways، کلاینت‌های نرم‌افزاری و لیست کاربران.
  • ابزارها:
    • svmap: اجرای اسکن روی شبکه (svmap 192.168.0.1/24).
    • ابزارهای اسکن SIP:
      • شناسایی کلاینت‌ها و پاسخ‌های SIP روی پورت 5060.

۳.۹. Linux / Unix Enumeration

برای استخراج لیست کاربران متصل و نشست‌های کاری فعال در سیستم‌های لینوکسی استفاده می‌شود.

  • دستورات کلیدی:
    • finger @<IP> یا finger user@<IP>: استخراج اطلاعات حساب کاربر، مسیر home، شل مورد استفاده و زمان آخرین ورود.
    • rusers, rwho: نمایش کاربران فعال از راه دور (در صورت فعال بودن دمون‌های fingerd, rusersd, rwhod).
root@kali:~/ceh# cd ../chapter-4

۴ سناریوی عملی آزمایشگاهی (Active Directory & Kerberos Enumeration)

این بخش مراحل گام‌به‌گام سناریوی عملی تدریس شده در کلاس و اسلایدها را بازسازی می‌کند [10-16]:

گام‌های اجرای سناریو:

گام ۱
کشف آدرس‌های فعال شبکه (Host Discovery):
root@kali:~#
nmap -sn 192.168.233.0/24
گام ۲
شناسایی نام ماشین‌ها با NetBIOS:
root@kali:~#
nbtscan 192.168.233.0/24

نتیجه: کشف نام کامپیوترها و نام دامین (challenge-dc.local).

گام ۳
استخراج جزئیات سیستم‌عامل و SMB:
  • کشف نسخه سیستم‌عامل و بیلد (Windows Server 2019) و تایید نام دامین (challenge-dc.local).
گام ۴
شناسایی سرور Active Directory (LDAP Port Check):
root@kali:~#
nmap -p 389 192.168.233.0/24 --open

نتیجه: پیدا کردن IP سرور کنترل‌کننده دامین (DC) به آدرس 192.168.233.182.

گام ۵
استخراج نام‌های کاربری دامین با پروتکل Kerberos:
  • تنظیم پارامترهای آدرس DC (192.168.233.182)، نام دامین (challenge-dc.local) و لیست کاربران.
  • اجرای اسکن احراز هویت Kerberos.
  • نتیجه: کشف حساب‌های کاربری معتبر دامین مانند test, admin و وضعیت حساب guest.
گام ۶
اتصال و پیمایش هیرارکی Active Directory با ابزار AD Explorer [13-16]:
  • اجرای AD Explorer از مجموعه Sysinternals.
  • وارد کردن IP سرور (192.168.233.182)، نام کاربری کشف‌شده (test) و کلمه عبور.
  • اقدامات انجام‌شده در AD Explorer:
    • پیمایش ساختار درختی دامین (challenge-dc.local).
    • مشاهده واحد‌های سازمانی (OUها) مانند OU=اداری.
    • بررسی اعضای گروه‌های حساس مانند Domain Admins و Administrators.
    • جستجوی مشخصات سیستم‌عامل‌ها با فیلتر operatingSystem=*2019*.
    • استخراج SID و مشخصات حساب‌های کاربری.
root@kali:~/ceh# cd ../chapter-5

۵ روش‌های مقابله و امن‌سازی (Countermeasures)

جدول زیر راهکارهای دفاعی و امن‌سازی سرورها را در برابر حملات Enumeration خلاصه می‌کند:

سرویس خطرات امنیتی راهکارهای مقابله و امن‌سازی
SNMP افشای اطلاعات با Community String شفاف غیرفعال‌سازی یا حذف SNMP Agent؛ تغییر public/private پیش‌فرض؛ ارتقا به SNMPv3 (دارای رمزنگاری)؛ محدودسازی اتصال کلاینت‌ها.
DNS افشای ساختار شبکه با Zone Transfer غیرفعال‌سازی Zone Transfer برای میزبان‌های نامطمئن؛ عدم قرار دادن آدرس‌های IP خصوصی در DNS عمومی؛ استفاده از Premium DNS؛ پیاده‌سازی Split-DNS.
LDAP افشای ترافیک و حساب‌ها به صورت Cleartext اجبار به استفاده از LDAPS (SSL/TLS - Port 636)؛ انتخاب نام کاربری متفاوت از آدرس ایمیل؛ فعال‌سازی سیاست Account Lockout.
SMTP استخراج نام‌های کاربری با VRFY/EXPN پیکربندی سرور جهت نادیده گرفتن درخواست‌های VRFY/EXPN؛ عدم ارسال پاسخ‌های حاوی جزئیات سیستم و بنرهای امنیتی.
root@kali:~/ceh# cd ../chapter-6

۶ دیکشنری تخصصی و اصطلاح‌نامه Enumeration

در این بخش، کلیه واژه‌ها، ابزارها، پروتکل‌ها و اصطلاحات مطرح‌شده در این ماژول به همراه تعریف مختصر فارسی و انگلیسی گردآوری شده است:

اصطلاح / ابزار / پروتکل عنوان انگلیسی تعریف و کاربرد در Enumeration
Enumeration Enumeration فرآیند برقراری ارتباط فعال با سیستم هدف جهت استخراج نام کاربران، گروه‌ها، مسیرها و تنظیمات سرویس‌ها.
NetBIOS Network Basic Input/Output System API و پروتکل نام‌گذاری سیستم‌های ویندوزی در شبکه محلی که از نام‌های ۱۶ کاراکتری و ساختار Flat استفاده می‌کند.
NBNS NetBIOS Name Service سرویس حل نام NetBIOS که روی پورت UDP 137 کار می‌کند.
SMB Server Message Block پروتکل اشتراک‌گذاری فایل، پرینتر و ارتباطات بین‌پردازشی در ویندوز (پورت‌های TCP 139 و 445).
SNMP Simple Network Management Protocol پروتکل پایش و مدیریت تجهیزات شبکه روی پورت UDP 161.
Community String Community String کلمه عبور احراز هویت در SNMP v1/v2c (شامل public برای خواندن و private برای نوشتن).
MIB Management Information Base پایگاه داده ساختاریافته در SNMP که اطلاعات تجهیزات شبکه را نگهداری می‌کند.
LDAP Lightweight Directory Access Protocol پروتکل پرس‌وجو و دسترسی به سرویس‌های دایرکتوری مانند Active Directory (پورت TCP 389).
LDAPS LDAP Secure نسخه امن LDAP که ترافیک را با SSL/TLS رمزنگاری می‌کند (پورت TCP 636).
NTP Network Time Protocol پروتکل همسان‌سازی زمان در شبکه روی پورت UDP 123.
SMTP Simple Mail Transfer Protocol پروتکل ارسال ایمیل روی پورت TCP 25.
VRFY / EXPN Verify / Expand Commands دستورات SMTP جهت تایید وجود نام کاربری یا گسترش لیست‌های ایمیل.
Zone Transfer DNS Zone Transfer (AXFR) فرآیند کپی کردن کامل پایگاه داده رکوردهای یک زون DNS از سرور اصلی به سرور فرعی.
DNSSEC Zone Walking DNSSEC Zone Walking تکنیک استخراج رکوردهای DNS با سوءاستفاده از رکوردهای NSEC در DNSSEC.
ISAKMP / IKE Internet Key Exchange پروتکل تبادل کلید و برقراری ارتباطات امن در IPSec / VPN (پورت UDP 500).
SIP Session Initiation Protocol پروتکل برقراری و کنترل سشن‌های صوتی و تصویری در VoIP (پورت‌های 5060/5061).
AD Explorer Active Directory Explorer ابزار گرافیکی پیشرفته از Sysinternals جهت پیمایش و جستجو در Active Directory.
nbtscan NetBIOS Scanner ابزار خط فرانی لینوکس برای اسکن نام‌های NetBIOS در یک رنج IP.
ike-scan IKE Scanner ابزار شناسایی و استخراج تنظیمات رمزنگاری سرورهای VPN IPSec.
OWASP Amass OWASP Amass ابزار جامع نگاشت شبکه و DNS Enumeration فعال و غیرفعال.
svmap SIP Scanner (SIPVicious) ابزار کشف و اسکن تجهیزات و کلاینت‌های SIP / VoIP.