Abusing Tokens
Last updated
Last updated
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE) GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE)
Windows Access Tokens๊ฐ ๋ฌด์์ธ์ง ๋ชจ๋ฅธ๋ค๋ฉด ๊ณ์ํ๊ธฐ ์ ์ ์ด ํ์ด์ง๋ฅผ ์ฝ์ด๋ณด์ธ์:
Access Tokens์ด๋ฏธ ๊ฐ์ง๊ณ ์๋ ํ ํฐ์ ๋จ์ฉํ์ฌ ๊ถํ ์์น์ ํ ์ ์์์ง๋ ๋ชจ๋ฆ ๋๋ค.
์ด ๊ถํ์ ์ด๋ค ํ๋ก์ธ์ค๊ฐ ํ ํฐ์ ์์ฑํ์ง ์๊ณ ๋ ์์๋ก ์ฌ์ฉํ ์ ์๋๋ก ํ์ฉํฉ๋๋ค. ํธ๋ค์ ์ป์ ์ ์๋ ๊ฒฝ์ฐ, Windows ์๋น์ค(DCOM)์์ ํน๊ถ ํ ํฐ์ ํ๋ํ ์ ์์ผ๋ฉฐ, ์ด๋ฅผ ํตํด NTLM ์ธ์ฆ์ ์ ๋ํ์ฌ SYSTEM ๊ถํ์ผ๋ก ํ๋ก์ธ์ค๋ฅผ ์คํํ ์ ์์ต๋๋ค. ์ด ์ทจ์ฝ์ ์ juicy-potato, RogueWinRM (winrm ๋นํ์ฑํ ํ์), SweetPotato, PrintSpoofer์ ๊ฐ์ ๋ค์ํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฉ๋ ์ ์์ต๋๋ค.
RoguePotato, PrintSpoofer, SharpEfsPotato, GodPotatoJuicyPotatoSeImpersonatePrivilege์ ๋งค์ฐ ์ ์ฌํ๋ฉฐ, ํน๊ถ ํ ํฐ์ ์ป๊ธฐ ์ํด ๊ฐ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค. ๊ทธ ํ, ์ด ๊ถํ์ ์๋ก์ด/์ค๋จ๋ ํ๋ก์ธ์ค์ ๊ธฐ๋ณธ ํ ํฐ์ ํ ๋นํ ์ ์๊ฒ ํด์ค๋๋ค. ํน๊ถ ์์ ํ ํฐ์ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ ํ ํฐ์ ํ์ํ ์ ์์ต๋๋ค(DuplicateTokenEx). ์ด ํ ํฐ์ ์ฌ์ฉํ์ฌ 'CreateProcessAsUser'๋ก ์ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๊ฑฐ๋ ์ค๋จ๋ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๊ณ ํ ํฐ์ ์ค์ ํ ์ ์์ต๋๋ค(์ผ๋ฐ์ ์ผ๋ก ์คํ ์ค์ธ ํ๋ก์ธ์ค์ ๊ธฐ๋ณธ ํ ํฐ์ ์์ ํ ์๋ ์์ต๋๋ค).
์ด ํ ํฐ์ด ํ์ฑํ๋์ด ์๋ค๋ฉด, KERB_S4U_LOGON์ ์ฌ์ฉํ์ฌ ์๊ฒฉ ์ฆ๋ช ์์ด ๋ค๋ฅธ ์ฌ์ฉ์์ ์์ ํ ํฐ์ ์ป์ ์ ์์ผ๋ฉฐ, ์์์ ๊ทธ๋ฃน(๊ด๋ฆฌ์)์ ํ ํฐ์ ์ถ๊ฐํ๊ณ , ํ ํฐ์ ๋ฌด๊ฒฐ์ฑ ์์ค์ "์ค๊ฐ"์ผ๋ก ์ค์ ํ๊ณ , ์ด ํ ํฐ์ ํ์ฌ ์ค๋ ๋์ ํ ๋นํ ์ ์์ต๋๋ค(SetThreadToken).
์ด ๊ถํ์ ์์คํ ์ด ๋ชจ๋ ํ์ผ์ ๋ํ ์ฝ๊ธฐ ์ ๊ทผ ์ ์ด๋ฅผ ๋ถ์ฌํ๋๋ก ํฉ๋๋ค(์ฝ๊ธฐ ์์ ์ ํ์ ๋จ). ์ด๋ ๋ก์ปฌ ๊ด๋ฆฌ์ ๊ณ์ ์ ๋น๋ฐ๋ฒํธ ํด์๋ฅผ ๋ ์ง์คํธ๋ฆฌ์์ ์ฝ๋ ๋ฐ ์ฌ์ฉ๋๋ฉฐ, ์ดํ "psexec" ๋๋ "wmiexec"์ ๊ฐ์ ๋๊ตฌ๋ฅผ ํด์์ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค(ํจ์ค-๋-ํด์ ๊ธฐ๋ฒ). ๊ทธ๋ฌ๋ ์ด ๊ธฐ๋ฒ์ ๋ ๊ฐ์ง ์กฐ๊ฑด์์ ์คํจํฉ๋๋ค: ๋ก์ปฌ ๊ด๋ฆฌ์ ๊ณ์ ์ด ๋นํ์ฑํ๋์ด ์๊ฑฐ๋, ์๊ฒฉ์ผ๋ก ์ฐ๊ฒฐํ๋ ๋ก์ปฌ ๊ด๋ฆฌ์์๊ฒ ๊ด๋ฆฌ ๊ถํ์ ์ ๊ฑฐํ๋ ์ ์ฑ ์ด ์ํ๋ ๋์ ๋๋ค. ์ด ๊ถํ์ ๋จ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
https://www.youtube.com/watch?v=IfCysW0Od8w&t=2610&ab_channel=IppSec์์ IppSec๋ฅผ ๋ฐ๋ฅด๊ธฐ
๋๋ ๋ค์์ Backup Operators๋ก ๊ถํ ์์น ์น์ ์์ ์ค๋ช ๋ ๋๋ก:
์ด ๊ถํ์ ํ์ผ์ ์ ๊ทผ ์ ์ด ๋ชฉ๋ก(ACL)์ ๊ด๊ณ์์ด ๋ชจ๋ ์์คํ ํ์ผ์ ๋ํ ์ฐ๊ธฐ ์ ๊ทผ ๊ถํ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ ์๋น์ค ์์ , DLL ํ์ด์ฌํน, ์ด๋ฏธ์ง ํ์ผ ์คํ ์ต์ ์ ํตํ ๋๋ฒ๊ฑฐ ์ค์ ๋ฑ ๋ค์ํ ๊ถํ ์์น ๊ฐ๋ฅ์ฑ์ ์ด์ด์ค๋๋ค.
SeCreateTokenPrivilege๋ ๊ฐ๋ ฅํ ๊ถํ์ผ๋ก, ์ฌ์ฉ์๊ฐ ํ ํฐ์ ์์๋ก ์ฌ์ฉํ ์ ์๋ ๋ฅ๋ ฅ์ ๊ฐ์ง ๋ ํนํ ์ ์ฉํ์ง๋ง, SeImpersonatePrivilege๊ฐ ์์ ๋๋ ์ ์ฉํฉ๋๋ค. ์ด ๊ธฐ๋ฅ์ ๋์ผํ ์ฌ์ฉ์๋ฅผ ๋ํ๋ด๋ ํ ํฐ์ ์์๋ก ์ฌ์ฉํ ์ ์๋ ๋ฅ๋ ฅ์ ์์กดํ๋ฉฐ, ์ด ํ ํฐ์ ๋ฌด๊ฒฐ์ฑ ์์ค์ด ํ์ฌ ํ๋ก์ธ์ค์ ๋ฌด๊ฒฐ์ฑ ์์ค์ ์ด๊ณผํ์ง ์์์ผ ํฉ๋๋ค.
์ฃผ์ ์ฌํญ:
SeImpersonatePrivilege ์์ด ์์ ์ฌ์ฉ: ํน์ ์กฐ๊ฑด์์ ํ ํฐ์ ์์๋ก ์ฌ์ฉํ์ฌ EoP๋ฅผ ์ํด SeCreateTokenPrivilege๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค.
ํ ํฐ ์์ ์ฌ์ฉ ์กฐ๊ฑด: ์ฑ๊ณต์ ์ธ ์์ ์ฌ์ฉ์ ๋์ ํ ํฐ์ด ๋์ผํ ์ฌ์ฉ์์๊ฒ ์ํ๊ณ , ์์ ์ฌ์ฉ์ ์๋ํ๋ ํ๋ก์ธ์ค์ ๋ฌด๊ฒฐ์ฑ ์์ค๋ณด๋ค ๋ฎ๊ฑฐ๋ ๊ฐ์์ผ ํฉ๋๋ค.
์์ ํ ํฐ์ ์์ฑ ๋ฐ ์์ : ์ฌ์ฉ์๋ ์์ ํ ํฐ์ ์์ฑํ๊ณ ํน๊ถ ๊ทธ๋ฃน์ SID(๋ณด์ ์๋ณ์)๋ฅผ ์ถ๊ฐํ์ฌ ์ด๋ฅผ ํฅ์์ํฌ ์ ์์ต๋๋ค.
์ด ๊ถํ์ ํน์ ๊ฐ์ผ๋ก ๋ ์ง์คํธ๋ฆฌ ํญ๋ชฉ์ ์์ฑํ์ฌ ์ฅ์น ๋๋ผ์ด๋ฒ๋ฅผ ๋ก๋ ๋ฐ ์ธ๋ก๋ํ ์ ์๊ฒ ํด์ค๋๋ค. HKLM
(HKEY_LOCAL_MACHINE)์ ๋ํ ์ง์ ์ฐ๊ธฐ ์ ๊ทผ์ด ์ ํ๋๋ฏ๋ก, ๋์ HKCU
(HKEY_CURRENT_USER)๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋๋ผ์ด๋ฒ ๊ตฌ์ฑ์ ์ํด HKCU
๊ฐ ์ปค๋์ ์ธ์๋๋๋ก ํ๋ ค๋ฉด ํน์ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ์ผ ํฉ๋๋ค.
์ด ๊ฒฝ๋ก๋ \Registry\User\<RID>\System\CurrentControlSet\Services\DriverName
์ด๋ฉฐ, ์ฌ๊ธฐ์ <RID>
๋ ํ์ฌ ์ฌ์ฉ์์ ์๋ ์๋ณ์์
๋๋ค. HKCU
๋ด์์ ์ด ์ ์ฒด ๊ฒฝ๋ก๋ฅผ ์์ฑํ๊ณ ๋ ๊ฐ์ง ๊ฐ์ ์ค์ ํด์ผ ํฉ๋๋ค:
ImagePath
, ์คํํ ๋ฐ์ด๋๋ฆฌ์ ๊ฒฝ๋ก
Type
, ๊ฐ์ SERVICE_KERNEL_DRIVER
(0x00000001
).
๋ฐ๋ผ์ผ ํ ๋จ๊ณ:
์ ํ๋ ์ฐ๊ธฐ ์ ๊ทผ์ผ๋ก ์ธํด HKLM
๋์ HKCU
์ ์ ๊ทผํฉ๋๋ค.
HKCU
๋ด์ \Registry\User\<RID>\System\CurrentControlSet\Services\DriverName
๊ฒฝ๋ก๋ฅผ ์์ฑํฉ๋๋ค. ์ฌ๊ธฐ์ <RID>
๋ ํ์ฌ ์ฌ์ฉ์์ ์๋ ์๋ณ์๋ฅผ ๋ํ๋
๋๋ค.
ImagePath
๋ฅผ ๋ฐ์ด๋๋ฆฌ์ ์คํ ๊ฒฝ๋ก๋ก ์ค์ ํฉ๋๋ค.
Type
์ SERVICE_KERNEL_DRIVER
(0x00000001
)๋ก ํ ๋นํฉ๋๋ค.
๋ ๋ง์ ๋ฐฉ๋ฒ์ https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges#seloaddriverprivilege์์ ํ์ธํ ์ ์์ต๋๋ค.
์ด๋ SeRestorePrivilege์ ์ ์ฌํฉ๋๋ค. ์ด ํน๊ถ์ ์ฃผ์ ๊ธฐ๋ฅ์ ํ๋ก์ธ์ค๊ฐ ๊ฐ์ฒด์ ์์ ๊ถ์ ๊ฐ์ ํ ์ ์๋๋ก ํ์ฌ, WRITE_OWNER ์ ๊ทผ ๊ถํ์ ์ ๊ณตํจ์ผ๋ก์จ ๋ช ์์ ์ธ ์ฌ๋ ์ ๊ทผ ์๊ตฌ ์ฌํญ์ ์ฐํํ๋ ๊ฒ์ ๋๋ค. ์ด ๊ณผ์ ์ ๋จผ์ ์ฐ๊ธฐ ๋ชฉ์ ์ผ๋ก ์๋๋ ๋ ์ง์คํธ๋ฆฌ ํค์ ์์ ๊ถ์ ํ๋ณดํ ๋ค์, DACL์ ๋ณ๊ฒฝํ์ฌ ์ฐ๊ธฐ ์์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๊ฒ์ ๋๋ค.
์ด ๊ถํ์ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ๋๋ฒ๊ทธํ ์ ์๊ฒ ํ๋ฉฐ, ๋ฉ๋ชจ๋ฆฌ์์ ์ฝ๊ณ ์ธ ์ ์์ต๋๋ค. ๋๋ถ๋ถ์ ์ํฐ๋ฐ์ด๋ฌ์ค ๋ฐ ํธ์คํธ ์นจ์ ๋ฐฉ์ง ์๋ฃจ์ ์ ํํผํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ์ ์ํ ๋ค์ํ ์ ๋ต์ ์ด ๊ถํ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
ProcDump๋ฅผ SysInternals Suite์์ ์ฌ์ฉํ์ฌ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์บก์ฒํ ์ ์์ต๋๋ค. ํนํ, ์ด๋ ์ฌ์ฉ์๊ฐ ์์คํ ์ ์ฑ๊ณต์ ์ผ๋ก ๋ก๊ทธ์ธํ ํ ์ฌ์ฉ์ ์๊ฒฉ ์ฆ๋ช ์ ์ ์ฅํ๋ ๋ก์ปฌ ๋ณด์ ๊ถํ ํ์ ์์คํ ์๋น์ค (LSASS) ํ๋ก์ธ์ค์ ์ ์ฉ๋ ์ ์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ด ๋คํ๋ฅผ mimikatz์ ๋ก๋ํ์ฌ ๋น๋ฐ๋ฒํธ๋ฅผ ์ป์ ์ ์์ต๋๋ค:
NT SYSTEM
์
ธ์ ์ป๊ณ ์ถ๋ค๋ฉด ๋ค์์ ์ฌ์ฉํ ์ ์์ต๋๋ค:
The ๋นํ์ฑํ๋ ํ ํฐ์ ํ์ฑํํ ์ ์์ผ๋ฉฐ, ์ค์ ๋ก ํ์ฑํ๋ ๋ฐ ๋นํ์ฑํ๋ ํ ํฐ์ ์ ์ฉํ ์ ์์ต๋๋ค.
๋นํ์ฑํ๋ ํ ํฐ์ด ์๋ ๊ฒฝ์ฐ, ์คํฌ๋ฆฝํธ EnableAllTokenPrivs.ps1๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ํ ํฐ์ ํ์ฑํํ ์ ์์ต๋๋ค:
Or the script embed in this post.
Full token privileges cheatsheet at https://github.com/gtworek/Priv2Admin, summary below will only list direct ways to exploit the privilege to obtain an admin session or read sensitive files.
Privilege | Impact | Tool | Execution path | Remarks |
---|---|---|---|---|
| Admin | 3rd party tool | "์ฌ์ฉ์๊ฐ ํ ํฐ์ ๊ฐ์ฅํ๊ณ nt ์์คํ ์ผ๋ก ๊ถํ ์์น์ ํ์ฉํฉ๋๋ค. ๋๊ตฌ๋ก๋ potato.exe, rottenpotato.exe ๋ฐ juicypotato.exe๊ฐ ์์ต๋๋ค." | Thank you Aurรฉlien Chalot for the update. I will try to re-phrase it to something more recipe-like soon. |
| Threat | Built-in commands |
| - %WINDIR%\MEMORY.DMP๋ฅผ ์ฝ์ ์ ์๋ค๋ฉด ๋ ํฅ๋ฏธ๋ก์ธ ์ ์์ต๋๋ค.
- |
| Admin | 3rd party tool |
| |
| Admin | PowerShell |
| Script to be found at FuzzySecurity |
| Admin | 3rd party tool | 1. | 1. |
| Admin | PowerShell | 1. SeRestore ๊ถํ์ด ์๋ ์ํ์์ PowerShell/ISE ์คํ. 2. Enable-SeRestorePrivilege๋ก ๊ถํ ํ์ฑํ. 3. utilman.exe๋ฅผ utilman.old๋ก ์ด๋ฆ ๋ณ๊ฒฝ 4. cmd.exe๋ฅผ utilman.exe๋ก ์ด๋ฆ ๋ณ๊ฒฝ 5. ์ฝ์ ์ ๊ทธ๊ณ Win+U ๋๋ฅด๊ธฐ | ๊ณต๊ฒฉ์ ์ผ๋ถ AV ์ํํธ์จ์ด์ ์ํด ํ์ง๋ ์ ์์ต๋๋ค. ๋์ฒด ๋ฐฉ๋ฒ์ ๋์ผํ ๊ถํ์ ์ฌ์ฉํ์ฌ "Program Files"์ ์ ์ฅ๋ ์๋น์ค ๋ฐ์ด๋๋ฆฌ๋ฅผ ๊ต์ฒดํ๋ ๊ฒ์ ๋๋ค. |
| Admin | Built-in commands | 1. | ๊ณต๊ฒฉ์ ์ผ๋ถ AV ์ํํธ์จ์ด์ ์ํด ํ์ง๋ ์ ์์ต๋๋ค. ๋์ฒด ๋ฐฉ๋ฒ์ ๋์ผํ ๊ถํ์ ์ฌ์ฉํ์ฌ "Program Files"์ ์ ์ฅ๋ ์๋น์ค ๋ฐ์ด๋๋ฆฌ๋ฅผ ๊ต์ฒดํ๋ ๊ฒ์ ๋๋ค. |
| Admin | 3rd party tool | ํ ํฐ์ ์กฐ์ํ์ฌ ๋ก์ปฌ ๊ด๋ฆฌ์ ๊ถํ์ ํฌํจํ๋๋ก ํฉ๋๋ค. SeImpersonate๊ฐ ํ์ํ ์ ์์ต๋๋ค. ํ์ธ ํ์. |
Take a look to this table defining Windows tokens: https://github.com/gtworek/Priv2Admin
Take a look to this paper about privesc with tokens.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)