Adversary Simulation
Demo Video ๐น
์ฌ์ฉ๋ ํด ๋ชฉ๋ก ๐งฐ
parrotsec/mimikatz.exe (https://github.com/ParrotSec/mimikatz)
fortra/Impacket.py (https://github.com/fortra/impacket)
mandiant/ADFSdump.exe (https://github.com/mandiant/ADFSDump)
mandiant/ADFSpoof.py (https://github.com/mandiant/ADFSpoof)
portswigger/Burpsuite Community Edition (https://portswigger.net/burp/communitydownload)
Golden SAML
Backgrounds: Golden SAML
AD FS(Active Directory Federation Service)๋ IdP(Identity Provider)๋ก์ ๋๋ฉ์ธ ๋ด์์ ์ ๋ขฐ๋ฐ๋ SP(Service Provider), ์๋ฅผ ๋ค์ด, AWS, M365, Github ๋ฑ์๊ฒ ๋๋ฉ์ธ ์ฌ์ฉ์์ Identities๋ฅผ ์์ ํ๊ฒ ์ ๊ณตํ๋ ์ญํ ์ ํ๋ค.
ํํ ์๊ณ ์๋ SSO(Single Sign-On)์ ์กฐ์ง ๋ด์์ ๋๋ฉ์ธ ๋จ์๋ก ์ค์์ง์คํ์ฌ ๊ด๋ฆฌํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฐ๋ ์ผ๋ก ์ดํดํ๋ฉด ๋๋ค.
์ ์ ๋์ ์๋ฆฌ

[Client] AD FS sts(portal)์ ์ ์ํ์ฌ ์ ๊ทผํ ์ ์๋ ์๋น์ค ๋ชฉ๋ก์ ํ์ธ, AWS ์ ํ

[Client โ AD FS] AD ์ฌ์ฉ์ ID/PW ์ ๋ ฅํ์ฌ AD FS์ ์ธ์ฆ ์์ฒญ

[AD FS โ AD DS] AD ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด ํ์ธ ์์ฒญ (Redirect)

[AD DS โ AD FS] AD ์ฌ์ฉ์ ๊ฒ์ฆ๋จ(Kerberos)

[AD FS] AWS SAML ์์์ ๋ด์ฉ์ ์ฑ์ ์๋ช ํ์ฌ Response

[Client โ AWS] AD FS๋ก ๋ฐ์ SAML์ AWS๋ก ์ ๋ฌ

/saml -> ๋ฐ์ SAMLResponse=ํ๋ผ๋ฏธํฐ ์กด์ฌํจ [AWS] AWS๋ ์ด SAML์ ๊ฒ์ฆํ๋ค SAML์ ์ง์ ๋ Role, IAM์ ๋ฐ๋ผ ์ฌ์ฉ์์ ์ ๊ทผ์ ํ๋ฝ

Golden SAML ๊ณต๊ฒฉ ์๋ฆฌ

[AD DS] dkm ํ์ทจ / [AD FS] tks ํ์ทจ
[Attacker] dkm์ผ๋ก tks ๋ณตํธํ ํ Private Key ํ๋, ์์์ SAML ์๋ช ํ์ฌ Golden SAML ์ ์
[Client โ AWS] GoldenSAML์ด ํฌํจ๋ Auth Request Packet์ AWS๋ก ์ ๋ฌ
[AWS] AWS๋ ์ด SAML์ ๊ฒ์ฆํ๋ค SAML์ ์ง์ ๋ Role, IAM์ ๋ฐ๋ผ ์ฌ์ฉ์์ ์ ๊ทผ์ ํ๋ฝ
DKM (Distributed Key Manager)
AD FS์์ ์ฌ์ฉ๋๋ ์ํธํ ํค(Token Signing Key, Token Encryption Key ๋ฑ)์ ๋ณดํธํ๊ธฐ ์ํ ๋งค์ปค๋์ฆ์ผ๋ก, DKM ๋ง์คํฐ ํค๋ AD์ ์ ์ฅ๋์ด ์์ผ๋ฉฐ contact object์thumbnailPhoto ์์ฑ์ ์ ์ฅ๋์ด ์๋ค.
๋ง์คํฐํค๋ฅผ ํ๋ํ๋ฉด AD FS์ ์ ์ฅ๋ ์ธ์ฆ์๋ฅผ ๋ณตํธํํ ์ ์๊ฒ ๋๋ค.
ADFSdump์์๋ ## Extracting Private Key from Active Directory Store ์๋์์ ํ์ธํ ์ ์๋ค.
์ฐธ๊ณ : https://threathunterplaybook.com/library/windows/adfs_dkm_keys.html
TKS (Token Signing Key)
AD FS ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ServiceSettingsData ํ๋๊ฐ ์กด์ฌํ๋ฉฐ, ์ฌ๊ธฐ์๋ Encrypted PFX(๊ฐ์ธํค ํฌํจ ์ธ์ฆ์)๊ฐ Base64๋ก Encoding๋์ด ์ ์ฅ๋์ด ์๋ค.
์ด ๊ฐ์ Base64๋ก ๋์ฝ๋ฉ ํ DKM์ ์ฌ์ฉํ์ฌ ๋ณตํธํํ ์ ์์ผ๋ฉฐ, Private Key๋ฅผ ํ๋ํ๊ฒ ๋๋ฉด ์์์ ์ธ์ฆ์ AD FS์ ์ด๋ฆ์ผ๋ก ์ธ์ฆํ ์ ์๊ฒ ๋์ด Golden SAML ๊ณต๊ฒฉ์ ์ํํ ์ ์๊ฒ ๋๋ค.
ADFSdump์์๋ Reading Encrypted Signing Key from Database ์๋์์ ํ์ธํ ์ ์๋ค.
Last updated

