چطوری هانیپاتهای اکتیو دایرکتوری رو لو بدیم
خلاصهٔ کاملتر
تو عملیات تیم قرمز، شناسایی اولیه یعنی کشیدن کمترین دادهٔ ممکن که هنوز به سؤال اصلی جواب بده: کدوم هویتها تو شبکه واقعیان و کدوما فقط برای گیر انداختن مهاجم ساخته شدن. به گفتهٔ نویسنده، همین ناسازگاریهای ریز تو دادهٔ هویتی، کنترلهای دفاعی مثل هانیپات و هانیتوکن رو لو میده، اون هم قبل از اینکه دست به هیچ حسابی بزنی.
نکتهٔ اصلی اینه که LDAP پرمحتواترین منبع شناساییه ولی حسابی هم رصد میشه؛ مدافع رفتار عادی کوئریها رو مدل میکنه و هر جستجوی پهن روی صفتهای حساس رو بهعنوان نشونهٔ شناسایی علامت میزنه. برای همین نویسنده پیشنهاد میده بهجاش از رابط SAM ریموت (پروتکل MS-SAMR) استفاده کنی که همون اطلاعات رو رو پورت ۴۴۵ برمیگردونه و لای ترافیک عادی مدیریتی گم میشه.
قلب ترفند، صفت lastLogon هست. این صفت آخرین احراز هویت موفق یه حساب رو نگه میداره و بهشکل یه عدد بزرگ (FILETIME) ذخیره میشه. حسنش اینه که رفتار مرزی تمیزی داره: حسابی که هیچوقت لاگین نکرده، مقدارش صفر میمونه. پس یه حساب یا تایماستمپ واقعی داره چون ازش استفاده شده، یا صفره چون هیچوقت استفاده نشده.
منطق نهایی سادهست: حسابی که رو کاغذ ارزشمند بهنظر میرسه ولی هیچوقت استفاده نشده، بهاحتمال زیاد مصنوعیه. نویسنده میگه اینجا یه عدمتقارن هست؛ مدافع کلی انرژی میذاره ساختار تله (اسم، عضویت تو گروه Tier 0) قانعکننده باشه، ولی جعل سابقهٔ رفتاری گرونه چون یعنی باید واقعاً از حساب استفاده کنه و لوش بده. برای همین دروغ همونجای تاریخچه لو میره.
همین تل رو حسابهای کامپیوتری (اونایی که با علامت دلار تموم میشن مثل WS014$) حتی برندهتره؛ چون یه ماشین بدون احراز هویت با کنترلر اصلاً عضو دامین نمیشه، پس lastLogon صفر برای یه کامپیوتر واقعی تقریباً غیرممکنه. یه حساب کامپیوتری خوشآبورنگ با lastLogon صفر، تقریباً حتماً تلهست.
نویسنده تأکید میکنه هانیپاتها هنوز ابزار دفاعی خیلی خوبیان چون هشدارشون کمخطای بالاست و این ترفند از ارزششون کم نمیکنه؛ فقط یادآوری میکنه که lastLogon بین کنترلرها همگام نمیشه، پس باید مقدار رو رو چند کنترلر چک کنی تا به اشتباه یه حساب شلوغ رو طعمه فرض نکنی.
نکات کلیدی:
- صفت lastLogon صفر یعنی حساب هیچوقت لاگین نکرده — نشونهٔ قوی هانیتوکن
- جمعآوری از SAM/LSA رو پورت ۴۴۵ بهجای LDAP، از فعالشدن هشدار جلوگیری میکنه
- رو حسابهای کامپیوتری ($) این نشونه حتی قطعیتره
- lastLogon بین کنترلرها همگام نمیشه؛ حتماً چند کنترلر رو چک کن




