Writable Sys Path +Dll Hijacking Privesc
Tip
AWS ν΄νΉ λ°°μ°κΈ° λ° μ°μ΅νκΈ°:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ν΄νΉ λ°°μ°κΈ° λ° μ°μ΅νκΈ°:HackTricks Training GCP Red Team Expert (GRTE)
Azure ν΄νΉ λ°°μ°κΈ° λ° μ°μ΅νκΈ°:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks μ§μνκΈ°
- ꡬλ κ³ν νμΈνκΈ°!
- **π¬ λμ€μ½λ κ·Έλ£Ή λλ ν λ κ·Έλ¨ κ·Έλ£Ήμ μ°Έμ¬νκ±°λ νΈμν° π¦ @hacktricks_liveλ₯Ό νλ‘μ°νμΈμ.
- HackTricks λ° HackTricks Cloud κΉνλΈ λ¦¬ν¬μ§ν 리μ PRμ μ μΆνμ¬ ν΄νΉ νΈλ¦μ 곡μ νμΈμ.
μκ°
λ§μ½ λΉμ μ΄ write in a System Path folderμ μΈ μ μλ€λ κ²μ λ°κ²¬νλ€λ©΄(μ°Έκ³ : μ΄κ²μ User Path folderμ μΈ μ μλ κ²½μ°μλ μλνμ§ μμ΅λλ€), μμ€ν μμ escalate privilegesν κ°λ₯μ±μ΄ μμ΅λλ€.
μ΄λ₯Ό μν΄ λΉμ μ Dll Hijackingμ μ μ©ν μ μμ΅λλ€. μ΄λ λΉμ λ³΄λ€ more privilegesλ₯Ό κ°μ§ μλΉμ€λ νλ‘μΈμ€κ° λ‘λνλ λΌμ΄λΈλ¬λ¦¬λ₯Ό hijack a library being loadedνλ λ°©λ²μ λλ€. κ·Έλ¦¬κ³ κ·Έ μλΉμ€κ° μμ€ν μ 체μ μ‘΄μ¬νμ§ μμ κ°λ₯μ±μ΄ ν° Dllμ λ‘λνλ € νκΈ° λλ¬Έμ, λΉμ μ΄ μΈ μ μλ System Pathμμ κ·Έκ²μ λ‘λνλ € μλν κ²μ λλ€.
μμΈν λ΄μ©μ what is Dll Hijackigμ(λ₯Ό) νμΈνμΈμ:
Privesc with Dll Hijacking
λλ½λ Dll μ°ΎκΈ°
λ¨Όμ νμν κ²μ λΉμ λ³΄λ€ more privilegesλ‘ μ€νλλ©° λΉμ μ΄ μΈ μ μλ load a Dll from the System Pathμ μλνλ νλ‘μΈμ€λ₯Ό identify a processνλ κ²μ λλ€.
λ¬Έμ λ μ΄λ¬ν κ²½μ° ν΄λΉ νλ‘μΈμ€λ€μ΄ μ΄λ―Έ μ€ν μ€μΌ κ°λ₯μ±μ΄ ν¬λ€λ μ μ λλ€. μ΄λ€ Dllλ€μ΄ λλ½λμλμ§ μ°ΎμΌλ €λ©΄ νλ‘μΈμ€λ€μ΄ λ‘λλκΈ° μ μ κ°λ₯ν 빨리 procmonμ μ€νν΄μΌ ν©λλ€. λ°λΌμ λλ½λ .dllμ μ°ΎμΌλ €λ©΄ λ€μμ μννμΈμ:
C:\privesc_hijackingν΄λλ₯Ό μμ±νκ³ ν΄λΉ κ²½λ‘C:\privesc_hijackingλ₯Ό System Path env variableμ μΆκ°νμΈμ. μ΄ μμ μ μλ(manually)μΌλ‘ νκ±°λ PSλ‘ μνν μ μμ΅λλ€:
# Set the folder path to create and check events for
$folderPath = "C:\privesc_hijacking"
# Create the folder if it does not exist
if (!(Test-Path $folderPath -PathType Container)) {
New-Item -ItemType Directory -Path $folderPath | Out-Null
}
# Set the folder path in the System environment variable PATH
$envPath = [Environment]::GetEnvironmentVariable("PATH", "Machine")
if ($envPath -notlike "*$folderPath*") {
$newPath = "$envPath;$folderPath"
[Environment]::SetEnvironmentVariable("PATH", $newPath, "Machine")
}
procmonλ₯Ό μ€ννκ³Optionsβ>Enable boot loggingλ‘ μ΄λν λ€μ ν둬ννΈμμOKλ₯Ό λλ¦ λλ€.- κ·Έλ€μ μ¬λΆν
(reboot) ν©λλ€. μ»΄ν¨ν°κ° μ¬μμλλ©΄
procmonμ΄ κ°λ₯ν ν 빨리 μ΄λ²€νΈ κΈ°λ‘μ μμν©λλ€. - Windowsκ° μμλ ν
procmonμ λ€μ μ€ννλ©΄ μ΄λ―Έ μ€ν μ€μ΄μλ€κ³ μλ¦¬κ³ μ΄λ²€νΈλ₯Ό νμΌμ μ μ₯ν μ§ λ¬Όμ΄λ΄ λλ€. yes λΌκ³ λ΅νκ³ μ΄λ²€νΈλ₯Ό νμΌμ μ μ₯ ν©λλ€. - νμΌμ΄ μμ±λ ν, μ΄λ € μλ
procmonμ°½μ λ«κ³ μ΄λ²€νΈ νμΌμ μ½λλ€. - λ€μ νν°λ€μ μΆκ°νλ©΄ writable System Path ν΄λμμ μ΄λ€ νλ‘μΈμ€κ° λ‘λνλ €κ³ νλμ§ λͺ¨λ Dllμ μ°Ύμ μ μμ΅λλ€:
.png)
λλ½λ Dlls
λ¬΄λ£ κ°μ(vmware) Windows 11 λ¨Έμ μμ μ΄ λ°©λ²μ μ€ννμ λ λ€μκ³Ό κ°μ κ²°κ³Όλ₯Ό μ»μμ΅λλ€:
.png)
μ΄ κ²½μ° .exe νμΌλ€μ μΈλͺ¨μμΌλ 무μνκ³ , λλ½λ DLLλ€μ λ€μμμ λ‘λλμμ΅λλ€:
| μλΉμ€ | Dll | CMD line |
|---|---|---|
| Task Scheduler (Schedule) | WptsExtensions.dll | C:\Windows\system32\svchost.exe -k netsvcs -p -s Schedule |
| Diagnostic Policy Service (DPS) | Unknown.DLL | C:\Windows\System32\svchost.exe -k LocalServiceNoNetwork -p -s DPS |
| ??? | SharedRes.dll | C:\Windows\system32\svchost.exe -k UnistackSvcGroup |
μ΄κ±Έ μ°Ύμ λ€, λ€μ ν₯λ―Έλ‘μ΄ λΈλ‘κ·Έ ν¬μ€νΈλ λ°κ²¬νλλ° abuse WptsExtensions.dll for privesc μμλ μ΄λ₯Ό μ€λͺ ν©λλ€. μ΄κ²μ΄ μ§κΈ μ°λ¦¬κ° νλ €λ μμ μ λλ€.
Exploitation
κΆνμ μμΉμν€κΈ° μν΄ WptsExtensions.dll λΌμ΄λΈλ¬λ¦¬λ₯Ό νμ΄μ¬νΉν κ²μ λλ€. κ²½λ‘μ μ΄λ¦μ μμμΌλ μ μ± dllμ μμ±νλ©΄ λ©λλ€.
try to use any of these examples λ₯Ό μλν΄λ³Ό μ μμ΅λλ€. μ€νν μ μλ νμ΄λ‘λ μ: rev shell νλ, μ¬μ©μ μΆκ°, beacon μ€ν λ±β¦
Warning
λͺ¨λ μλΉμ€κ°
NT AUTHORITY\SYSTEMμΌλ‘ μ€νλλ κ²μ μλλλ€. μΌλΆλNT AUTHORITY\LOCAL SERVICEλ‘ μ€νλλ©° κΆνμ΄ λ μ κΈ° λλ¬Έμ μ μ¬μ©μλ₯Ό μμ±ν μ μμ μ μμ΅λλ€.
νμ§λ§ ν΄λΉ κ³μ μseImpersonateκΆνμ κ°μ§κ³ μμΌλ―λ‘ potato suite to escalate privileges λ₯Ό μ¬μ©ν΄ κΆνμ μμΉμν¬ μ μμ΅λλ€. λ°λΌμ μ΄ κ²½μ° μ μ¬μ©μ λ§λ€κΈ°λ₯Ό μλνλ κ²λ³΄λ€ rev shellμ΄ λ λμ μ νμ λλ€.
μμ± μμ μμλ Task Scheduler μλΉμ€κ° Nt AUTHORITY\SYSTEM μΌλ‘ μ€νλκ³ μμμ΅λλ€.
μ μ± Dllμ μμ±ν ν(μ κ²½μ° x64 rev shellμ μ¬μ©νκ³ μ Έμ μ»μμ§λ§ msfvenomμμ μμ±λμ΄ defenderκ° μ°¨λ¨νμ΅λλ€), μ΄λ₯Ό writable System Pathμ μ΄λ¦μ WptsExtensions.dll λ‘ μ μ₯νκ³ μ»΄ν¨ν°λ₯Ό μ¬μμνκ±°λ(λλ ν΄λΉ μλΉμ€/νλ‘κ·Έλ¨μ μ¬μμνμ¬ λ€μ μ€νλκ² ν©λλ€).
μλΉμ€κ° μ¬μμλλ©΄ ν΄λΉ dllμ΄ λ‘λλμ΄ μ€νλμ΄μΌ ν©λλ€(λΌμ΄λΈλ¬λ¦¬κ° μμλλ‘ λ‘λλμλμ§ νμΈνλ €λ©΄ procmon νΈλ¦μ μ¬μ¬μ©ν μ μμ΅λλ€).
Tip
AWS ν΄νΉ λ°°μ°κΈ° λ° μ°μ΅νκΈ°:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ν΄νΉ λ°°μ°κΈ° λ° μ°μ΅νκΈ°:HackTricks Training GCP Red Team Expert (GRTE)
Azure ν΄νΉ λ°°μ°κΈ° λ° μ°μ΅νκΈ°:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks μ§μνκΈ°
- ꡬλ κ³ν νμΈνκΈ°!
- **π¬ λμ€μ½λ κ·Έλ£Ή λλ ν λ κ·Έλ¨ κ·Έλ£Ήμ μ°Έμ¬νκ±°λ νΈμν° π¦ @hacktricks_liveλ₯Ό νλ‘μ°νμΈμ.
- HackTricks λ° HackTricks Cloud κΉνλΈ λ¦¬ν¬μ§ν 리μ PRμ μ μΆνμ¬ ν΄νΉ νΈλ¦μ 곡μ νμΈμ.


