Az - Pass the PRT
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
SSO ์ํ ์น์
์์ **AzureAdPrt
**๊ฐ YES๋ก ์ค์ ๋์ด ์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
๊ฐ์ ์ถ๋ ฅ์์ ์ฅ์น๊ฐ Azure์ ๊ฐ์
๋์ด ์๋์ง(ํ๋ AzureAdJoined
์์) ํ์ธํ ์ ์์ต๋๋ค:
PRT ์ฟ ํค๋ ์ค์ ๋ก **x-ms-RefreshTokenCredential
**์ด๋ผ๊ณ ํ๋ฉฐ, JSON ์น ํ ํฐ(JWT)์
๋๋ค. JWT๋ 3๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ, ํค๋, ํ์ด๋ก๋ ๋ฐ ์๋ช
์ผ๋ก ๋๋๋ฉฐ .
๋ก ๊ตฌ๋ถ๋๊ณ ๋ชจ๋ URL ์์ ํ base64๋ก ์ธ์ฝ๋ฉ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ธ PRT ์ฟ ํค๋ ๋ค์๊ณผ ๊ฐ์ ํค๋์ ๋ณธ๋ฌธ์ ํฌํจํฉ๋๋ค:
The actual **Primary Refresh Token (PRT)**๋ refresh_token
๋ด์ ์บก์ํ๋์ด ์์ผ๋ฉฐ, ์ด๋ Azure AD์ ์ ์ด ํ์ ์๋ ํค๋ก ์ํธํ๋์ด ์์ด ๊ทธ ๋ด์ฉ์ ์ฐ๋ฆฌ์๊ฒ ๋ถํฌ๋ช
ํ๊ณ ๋ณตํธํํ ์ ์์ต๋๋ค. ํ๋ **is_primary
**๋ ์ด ํ ํฐ ๋ด์์ ๊ธฐ๋ณธ ์๋ก ๊ณ ์นจ ํ ํฐ์ ์บก์ํ๋ฅผ ๋ํ๋
๋๋ค. ์ฟ ํค๊ฐ ์๋๋ ํน์ ๋ก๊ทธ์ธ ์ธ์
์ ๋ฐ์ธ๋ฉ๋๋๋ก ํ๊ธฐ ์ํด, request_nonce
๋ logon.microsoftonline.com
ํ์ด์ง์์ ์ ์ก๋ฉ๋๋ค.
LSASS ํ๋ก์ธ์ค๋ KDF ์ปจํ ์คํธ๋ฅผ TPM์ ์ ์กํ๊ณ , TPM์ ์ธ์ ํค(AzureAD์ ์ฅ์น๊ฐ ๋ฑ๋ก๋ ๋ ์์ง๋์ด TPM์ ์ ์ฅ๋จ)์ ์ด์ ์ปจํ ์คํธ๋ฅผ ์ฌ์ฉํ์ฌ ํค๋ฅผ ํ์ํ๋ฉฐ, ์ด ํ์๋ ํค๋ PRT ์ฟ ํค(JWT)๋ฅผ ์๋ช ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
KDF ์ปจํ ์คํธ๋ AzureAD์ ๋ ผ์ค์ PRT๊ฐ ํผํฉ๋ JWT์ ์ปจํ ์คํธ(๋ฌด์์ ๋ฐ์ดํธ)์ ๋๋ค.
๋ฐ๋ผ์ PRT๊ฐ TPM ๋ด๋ถ์ ์์นํด ์์ด ์ถ์ถํ ์ ์๋๋ผ๋, LSASS๋ฅผ ์ ์ฉํ์ฌ ์๋ก์ด ์ปจํ ์คํธ์์ ํ์๋ ํค๋ฅผ ์์ฒญํ๊ณ ์์ฑ๋ ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ฟ ํค๋ฅผ ์๋ช ํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค.
์ผ๋ฐ ์ฌ์ฉ์๋ก์ LSASS์ SSO ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ์ฌ PRT ์ฌ์ฉ์ ์์ฒญํ ์ ์์ต๋๋ค. ์ด๋ Web Account Manager(ํ ํฐ ๋ธ๋ก์ปค)์์ ํ ํฐ์ ์์ฒญํ๋ ๋ค์ดํฐ๋ธ ์ฑ์ฒ๋ผ ์ํํ ์ ์์ต๋๋ค. WAM์ ์์ฒญ์ LSASS์ ์ ๋ฌํ๊ณ , LSASS๋ ์๋ช ๋ PRT ์ฃผ์ฅ์ ์ฌ์ฉํ์ฌ ํ ํฐ์ ์์ฒญํฉ๋๋ค. ๋๋ PRT ์ฟ ํค๋ฅผ ํค๋๋ก ์ฌ์ฉํ์ฌ Azure AS ๋ก๊ทธ์ธ ํ์ด์ง์ ๋ํ ์์ฒญ์ ์ธ์ฆํ๋ ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฐ(์น) ํ๋ฆ์ผ๋ก ์ํํ ์ ์์ต๋๋ค.
SYSTEM์ผ๋ก์ TPM์ ์ํด ๋ณดํธ๋์ง ์๋ ๊ฒฝ์ฐ PRT๋ฅผ ํ์ทจํ๊ฑฐ๋ LSASS์์ PRT ํค์ ์ํธ์์ฉํ ์ ์์ต๋๋ค.
์ด ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ์ ๋ณด๋ ์ด ๊ฒ์๋ฌผ์ ํ์ธํ์ธ์. ROADtoken์ ์ฌ๋ฐ๋ฅธ ๋๋ ํ ๋ฆฌ์์ **BrowserCore.exe
**๋ฅผ ์คํํ๊ณ ์ด๋ฅผ ์ฌ์ฉํ์ฌ PRT ์ฟ ํค๋ฅผ ์ป์ต๋๋ค. ์ด ์ฟ ํค๋ ์ดํ ROADtools์ ํจ๊ป ์ฌ์ฉ๋์ด ์ธ์ฆํ๊ณ ์ง์์ ์ธ ์๋ก ๊ณ ์นจ ํ ํฐ์ ์ป๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์ ํจํ PRT ์ฟ ํค๋ฅผ ์์ฑํ๊ธฐ ์ํด ํ์ํ ์ฒซ ๋ฒ์งธ ๊ฒ์ ๋ ผ์ค์ ๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ์ป์ ์ ์์ต๋๋ค:
๋๋ roadrecon๋ฅผ ์ฌ์ฉํ์ฌ:
๊ทธ๋ฐ ๋ค์ roadtoken๋ฅผ ์ฌ์ฉํ์ฌ ์๋ก์ด PRT๋ฅผ ์ป์ ์ ์์ต๋๋ค(๊ณต๊ฒฉํ ์ฌ์ฉ์์ ํ๋ก์ธ์ค์์ ๋๊ตฌ๋ฅผ ์คํ):
As oneliner:
๊ทธ๋ฐ ๋ค์ ์์ฑ๋ ์ฟ ํค๋ฅผ ์ฌ์ฉํ์ฌ ํ ํฐ์ ์์ฑํ๊ณ Azure AD Graph ๋๋ Microsoft Graph๋ฅผ ์ฌ์ฉํ์ฌ ๋ก๊ทธ์ธํ ์ ์์ต๋๋ค:
Get-AADIntUserPRTToken
์ฌ์ฉ์์ PRT ํ ํฐ์ Azure AD์ ๊ฐ์
๋ ๋๋ ํ์ด๋ธ๋ฆฌ๋ ๊ฐ์
๋ ์ปดํจํฐ์์ ๊ฐ์ ธ์ต๋๋ค. PRT ํ ํฐ์ ์ป๊ธฐ ์ํด BrowserCore.exe
๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋๋ Mimikatz์์ ๊ฐ์ ๊ฐ์ ธ์จ ๊ฒฝ์ฐ AADInternals๋ฅผ ์ฌ์ฉํ์ฌ ํ ํฐ์ ์์ฑํ ์๋ ์์ต๋๋ค:
https://login.microsoftonline.com๋ก ์ด๋ํ์ฌ login.microsoftonline.com์ ๋ชจ๋ ์ฟ ํค๋ฅผ ์ง์ฐ๊ณ ์ ์ฟ ํค๋ฅผ ์ ๋ ฅํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ https://portal.azure.com์ผ๋ก ์ด๋ํฉ๋๋ค.
๋๋จธ์ง๋ ๊ธฐ๋ณธ๊ฐ์ด์ด์ผ ํฉ๋๋ค. ํ์ด์ง๋ฅผ ์๋ก ๊ณ ์น ์ ์๊ณ ์ฟ ํค๊ฐ ์ฌ๋ผ์ง์ง ์๋์ง ํ์ธํ์ญ์์ค. ๋ง์ฝ ์ฌ๋ผ์ง๋ค๋ฉด ์ค์๋ฅผ ํ์ ์ ์์ผ๋ฉฐ, ๋ค์ ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํฉ๋๋ค. ์ฌ๋ผ์ง์ง ์๋๋ค๋ฉด ๊ด์ฐฎ์ต๋๋ค.
PRT (Primary Refresh Token)๊ฐ LSASS (Local Security Authority Subsystem Service)์์ ์ถ์ถ๋์ด ์ดํ ์ฌ์ฉ์ ์ํด ์ ์ฅ๋ฉ๋๋ค.
์ธ์ ํค๊ฐ ๋ค์์ผ๋ก ์ถ์ถ๋ฉ๋๋ค. ์ด ํค๋ ์ฒ์ ๋ฐ๊ธ๋ ํ ๋ก์ปฌ ์ฅ์น์ ์ํด ๋ค์ ์ํธํ๋๋ฏ๋ก, DPAPI ๋ง์คํฐ ํค๋ฅผ ์ฌ์ฉํ์ฌ ๋ณตํธํํด์ผ ํฉ๋๋ค. DPAPI (Data Protection API)์ ๋ํ ์์ธํ ์ ๋ณด๋ ๋ค์ ์๋ฃ์์ ํ์ธํ ์ ์์ต๋๋ค: HackTricks ๋ฐ ๊ทธ ์์ฉ์ ๋ํ ์ดํด๋ Pass-the-cookie attack๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์ธ์ ํค์ ๋ณตํธํ ํ, PRT์ ๋ํ ํ์ ํค์ ์ปจํ ์คํธ๊ฐ ์ป์ด์ง๋๋ค. ์ด๋ PRT ์ฟ ํค ์์ฑ์ ํ์์ ์ ๋๋ค. ํนํ, ํ์ ํค๋ ์ฟ ํค๋ฅผ ๊ตฌ์ฑํ๋ JWT (JSON Web Token)์ ์๋ช ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ๊ณผ์ ์ ๋ํ ํฌ๊ด์ ์ธ ์ค๋ช ์ Dirk-jan์ด ์ ๊ณตํ ๊ฒ์ผ๋ก, ์ฌ๊ธฐ์์ ํ์ธํ ์ ์์ต๋๋ค.
PRT๊ฐ TPM ๋ด๋ถ์ ์๊ณ lsass
๋ด๋ถ์ ์๋ค๋ฉด mimikatz๋ ์ด๋ฅผ ์ถ์ถํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ TPM์์ ์ปจํ
์คํธ์ ํ์ ํค๋ก๋ถํฐ ํค๋ฅผ ์ป๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ฉฐ, ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ฟ ํค์ ์๋ช
ํ ์ ์์ต๋๋ค (์ต์
3 ํ์ธ).
์ด ์ธ๋ถ ์ ๋ณด๋ฅผ ์ถ์ถํ๋ ๊ณผ์ ์ ๋ํ ์ฌ์ธต ์ค๋ช ์ ์ฌ๊ธฐ์์ ํ์ธํ ์ ์์ต๋๋ค: https://dirkjanm.io/digging-further-into-the-primary-refresh-token/
2021๋ 8์ ์์ ์ดํ ๋ค๋ฅธ ์ฌ์ฉ์์ PRT ํ ํฐ์ ์ป๋ ๊ฒ์ ์ ํํ ์๋ํ์ง ์์ ๊ฒ์ ๋๋ค. ์ค์ง ์ฌ์ฉ์๋ง ์์ ์ PRT๋ฅผ ์ป์ ์ ์์ผ๋ฉฐ (๋ก์ปฌ ๊ด๋ฆฌ์๋ ๋ค๋ฅธ ์ฌ์ฉ์์ PRT์ ์ ๊ทผํ ์ ์์), ์์ ์ PRT์ ์ ๊ทผํ ์ ์์ต๋๋ค.
mimikatz๋ฅผ ์ฌ์ฉํ์ฌ PRT๋ฅผ ์ถ์ถํ ์ ์์ต๋๋ค:
(Images from https://blog.netwrix.com/2023/05/13/pass-the-prt-overview)
Prt๋ก ํ์๋ ๋ถ๋ถ์ ๋ณต์ฌํ๊ณ ์ ์ฅํฉ๋๋ค.
์๋ ๊ฐ์กฐ ํ์๋ ProofOfPossesionKey
ํ๋์ **KeyValue
**์ธ ์ธ์
ํค๋ ์ถ์ถํฉ๋๋ค. ์ด๊ฒ์ ์ํธํ๋์ด ์์ผ๋ฉฐ, ์ด๋ฅผ ๋ณตํธํํ๊ธฐ ์ํด DPAPI ๋ง์คํฐ ํค๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
PRT ๋ฐ์ดํฐ๊ฐ ๋ณด์ด์ง ์๋ ๊ฒฝ์ฐ, PRT๊ฐ ์์ ์ ์์ต๋๋ค. ์ด๋ ์ฅ์น๊ฐ Azure AD์ ๊ฐ์ ๋์ง ์์๊ฑฐ๋ ์ค๋๋ ๋ฒ์ ์ Windows 10์ ์คํํ๊ณ ์์ ์ ์์ต๋๋ค.
์ธ์ ํค๋ฅผ ๋ณตํธํํ๋ ค๋ฉด SYSTEM ๊ถํ์ผ๋ก ์น๊ฒฉํ์ฌ ์ปดํจํฐ ์ปจํ ์คํธ์์ ์คํํด์ผ DPAPI ๋ง์คํฐ ํค๋ฅผ ์ฌ์ฉํ์ฌ ๋ณตํธํํ ์ ์์ต๋๋ค. ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ์ํํ ์ ์์ต๋๋ค:
์ด์ Context ๊ฐ์ ๋ชจ๋ ๋ณต์ฌํ๊ณ ์ถ์ต๋๋ค:
๊ทธ๋ฆฌ๊ณ ํ์๋ ํค ๊ฐ์ ๋ณต์ฌํฉ๋๋ค:
๋ง์ง๋ง์ผ๋ก ์ด ๋ชจ๋ ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ PRT ์ฟ ํค๋ฅผ ์์ฑํ ์ ์์ต๋๋ค:
https://login.microsoftonline.com๋ก ์ด๋ํ์ฌ login.microsoftonline.com์ ๋ชจ๋ ์ฟ ํค๋ฅผ ์ง์ฐ๊ณ ์ ์ฟ ํค๋ฅผ ์ ๋ ฅํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ https://portal.azure.com์ผ๋ก ์ด๋ํฉ๋๋ค.
๋๋จธ์ง๋ ๊ธฐ๋ณธ๊ฐ์ด์ด์ผ ํฉ๋๋ค. ํ์ด์ง๋ฅผ ์๋ก ๊ณ ์น ์ ์๊ณ ์ฟ ํค๊ฐ ์ฌ๋ผ์ง์ง ์๋์ง ํ์ธํ์ธ์. ๋ง์ฝ ์ฌ๋ผ์ง๋ค๋ฉด ์ค์๋ฅผ ํ์ ์ ์์ผ๋ฉฐ, ๊ณผ์ ์ ๋ค์ ์งํํด์ผ ํฉ๋๋ค. ์ฌ๋ผ์ง์ง ์๋๋ค๋ฉด ๊ด์ฐฎ์ต๋๋ค.
๋จผ์ PRT๋ฅผ ๊ฐฑ์ ํ์ฌ roadtx.prt
์ ์ ์ฅํฉ๋๋ค:
์ด์ roadtx browserprtauth
๋ฅผ ์ฌ์ฉํ์ฌ ์ธํฐ๋ํฐ๋ธ ๋ธ๋ผ์ฐ์ ๋ก ํ ํฐ์ ์์ฒญํ ์ ์์ต๋๋ค. roadtx describe
๋ช
๋ น์ ์ฌ์ฉํ๋ฉด ์ก์ธ์ค ํ ํฐ์ MFA ํด๋ ์์ด ํฌํจ๋์ด ์์์ ์ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ฌ์ฉํ PRT์๋ MFA ํด๋ ์์ด ํฌํจ๋์ด ์์์ต๋๋ค.
mimikatz์ ์ํด ๋คํ๋ ์ปจํ ์คํธ์ ํ์ ํค๋ฅผ ๊ฐ์ง๊ณ , roadrecon์ ์ฌ์ฉํ์ฌ ์๋ก์ด ์๋ช ๋ ์ฟ ํค๋ฅผ ์์ฑํ ์ ์์ต๋๋ค:
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE) GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE)