وقتی ساعت به ضررته!
نذار هکرها با زمان بمب ساعتی بسازن!
NTP (Network Time Protocol) که روی پورت UDP 123 کار میکنه، وظیفهش اینه که ساعت همه دستگاههای شبکه رو هماهنگ نگه داره. شاید بگی “خب ساعت که چیزی نیست!” اما اشتباه نکن. اگه ساعت سرورها یکی نباشه، لاگها به هم میریزه، کرونجابها (Cron Jobs) قاطی میکنن و حتی پروتکلهای امنیتی مثل TLS/SSL از کار میفتن.
حالا NTP Enumeration یعنی چی؟ یعنی ما بیایم از همین سرویس بیسر و صدا، اطلاعات حساس بکشیم بیرون. هکرها عاشق اینن که با این اطلاعات، نقشه شبکه رو در بیارن یا بدتر از اون، از سرور تو برای حملات وحشتناک DDoS استفاده کنن.
⌛چی گیرمون میاد؟ (گنجینه اطلاعات)
اگه بتونیم این سرویس رو تخلیه اطلاعاتی کنیم، چیزهای زیر رو میفهمیم:
- لیست همگامشدگان (Peers): سرور تو داره ساعت رو از کی میگیره و به کی میده؟ (اینطوری IPهای داخلی شبکه لو میره).
- شناسایی نسخه NTP: اگه نسخه قدیمی باشه، پر از حفره امنیتیه.
- زمان دقیق سیستم: شاید ساده به نظر بیاد، ولی برای حملات زمانی (Timing Attacks) حیاتیه.
- توپولوژی شبکه: با دیدن اینکه کی به کی وصله، نقشه شبکه رو میکشیم.
⏰جعبهابزار هکرها (دستورات و ابزارهای Enumerate)
این بخش رو با دقت بخون چون اصل کاری همینجاست. IP هدف رو <Target-IP> در نظر بگیر.
۱. اسکن اولیه با Nmap
مثل همیشه، اول با Nmap شروع میکنیم. این اسکریپت میاد اطلاعات کلی، نسخه و لیست کلاینتها رو میکشه بیرون:
nmap -sU -p 123 –script=ntp-info Target-IP
۲. ابزار ntpq (پرسوجوی حرفهای)
این ابزار خوراک مانیتور کردن و گرفتن آمار دقیقه.
- دیدن لیست Peers (رفقا):
لیست سرورهایی که سیستم باهاشون هماهنگه رو نشون میده.
ntpq -p Target-IP
نکته: تو خروجی، * یعنی سرور اصلی، + یعنی جایگزین خوب، x یعنی سرور ناسازگار.
- نمایش IP به جای اسم: (سرعتش بیشتره چون DNS رو بیخیال میشه)
ntpq -pn Target-IP
- خوندن متغیرهای وضعیت (rv):
اطلاعات فنی مثل تاخیر (delay) و دقت (offset) رو میده.
ntpq -c rv Target-IP
- حالت تعاملی (Interactive):
اگه میخوای بری داخل کنسول خود برنامه و دستور بزنی:
ntpq -i
# حالا دستوراتی مثل peers یا lassoc رو تایپ کن
۳. ابزار ntpdate (تنظیم و تست ساعت)
این ابزار قدیمیه ولی هنوزم عالیه. معمولا برای تنظیم ساعت استفاده میشه ولی ما برای تست استفاده میکنیم.
- فقط پرسوجو (Query Only):
مهمترین سوییچ برای ما -q هست. ساعت رو تغییر نمیده، فقط میپرسه “ساعت چنده؟” و اتصال رو چک میکنه.
ntpdate -q Target-IP
# مثال: ntpdate -q time.google.com
- دور زدن فایروال (Unprivileged Port):
اگه فایروال پورت ۱۲۳ رو بسته، با -u از یه پورت رندوم دیگه درخواست میدیم.
ntpdate -u Target-IP
- حالت دیباگ (Debug):
ریز به ریزِ مکالمه با سرور رو نشون میده (عالی برای عیبیابی).
ntpdate -d Target-IP
- تنظیم اجباری و فوری (Boot):
این ساعت رو آروم تغییر نمیده، یهو عوضش میکنه!
ntpdate -b Target-IP
۴. ابزار ntptrace (ردیابی مسیر زمان)
میخوای بدونی سرور هدف، خودش از کجا ساعت میگیره و اون یکی از کجا؟ این دستور زنجیره (Chain) رو نشون میده.
- ردیابی ساده:
ntptrace Target-IP
- محدود کردن عمق ردیابی:
مثلا فقط تا ۴ لایه برو عقب.
ntptrace -r 4 Target-IP
نمایش IPها (بدون DNS):
ntptrace -n Target-IP
۵. ابزار ntpdc
این ابزار دسترسیهای مدیریتی میده و خطرناکترین ابزار برای حملات Amplification هست.
- حمله Monlist (خطرناک!):
این دستور لیست ۶۰۰ تا کلاینت آخری که به سرور وصل شدن رو میده! هکرها عاشق اینن چون با یه درخواست کوچیک، یه جواب خیلی بزرگ (مگابایتی) میگیرن و ترافیک رو میندازن روی قربانی.
ntpdc -c monlist Target-IP
# یا به فرم قدیمی: ntpdc -n -c monlist Target-IP
دیدن لیست Peers:
ntpdc -l Target-IP
آمار سرور (Sysinfo):
ntpdc -s Target-IP
تغییر تنظیمات با کلید امنیتی:
ntpdc -k keyfile -c command Target-IP
حملات وحشیانه روی NTP
- حمله تقویتی (NTP Amplification Attack):
هکر با جعل IP قربانی، دستور monlist رو به سرور NTP تو میفرسته. سرور تو هم یه لیست بلند بالا رو میفرسته واسه قربانی. نتیجه؟ اینترنت قربانی قطع میشه و سرور تو میشه شریک جرم!
- مرد میانی (MITM):
اگه هکر بتونه ساعت سرور رو تغییر بده، میتونه گواهیهای امنیتی (Certificates) رو نامعتبر کنه یا لاگها رو دستکاری کنه تا ردی از خودش نمونه.
- حملات زمانی (Timing Attacks):
اختلال در سرویسهایی که به زمان حساسن (مثل احراز هویتهای دو مرحلهای یا تراکنشهای بانکی).
🤖دیوارهای دفاعی (چطور امنش کنیم؟)
- غیرفعال کردن Monlist (حیاتیترین کار): توی فایل کانفیگ NTP (
ntp.conf) باید دستورdisable monitorرو اضافه کنی. نسخههای جدید NTP خودشون پیشفرض بستن اینو. - فایروال: پورت ۱۲۳ UDP رو روی اینترنت باز نذار! فقط IPهای خاص شبکه داخلی یا سرورهای تایم مرجع بتونن وصل بشن.
- استفاده از NTP Secure (NTS): این استاندارد جدید از رمزنگاری استفاده میکنه تا کسی نتونه ساعت رو دستکاری کنه.
- آپدیت باش: همیشه نرمافزار NTP رو بهروز نگه دار تا باگهای قدیمی پچ بشن.
- محدودیت دسترسی: فقط به کلاینتهای شبکه خودت سرویس بده، نه به کل دنیا.