macOS Keychain
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์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
Main Keychains
- ์ฌ์ฉ์ ํค์ฒด์ธ (
~/Library/Keychains/login.keychain-db): ์ ํ๋ฆฌ์ผ์ด์ ๋น๋ฐ๋ฒํธ, ์ธํฐ๋ท ๋น๋ฐ๋ฒํธ, ์ฌ์ฉ์ ์์ฑ ์ธ์ฆ์, ๋คํธ์ํฌ ๋น๋ฐ๋ฒํธ ๋ฐ ์ฌ์ฉ์ ์์ฑ ๊ณต๊ฐ/๊ฐ์ธ ํค์ ๊ฐ์ ์ฌ์ฉ์ ํน์ ์๊ฒฉ ์ฆ๋ช ์ ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. - ์์คํ
ํค์ฒด์ธ (
/Library/Keychains/System.keychain): WiFi ๋น๋ฐ๋ฒํธ, ์์คํ ๋ฃจํธ ์ธ์ฆ์, ์์คํ ๊ฐ์ธ ํค ๋ฐ ์์คํ ์ ํ๋ฆฌ์ผ์ด์ ๋น๋ฐ๋ฒํธ์ ๊ฐ์ ์์คํ ์ ์ฒด ์๊ฒฉ ์ฆ๋ช ์ ์ ์ฅํฉ๋๋ค. /System/Library/Keychains/*์์ ์ธ์ฆ์์ ๊ฐ์ ๋ค๋ฅธ ๊ตฌ์ฑ ์์๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.- iOS์๋
/private/var/Keychains/์ ์์นํ ํค์ฒด์ธ์ด ํ๋๋ง ์์ต๋๋ค. ์ด ํด๋์๋TrustStore, ์ธ์ฆ์ ๊ธฐ๊ด(caissuercache) ๋ฐ OSCP ํญ๋ชฉ(ocspache)์ ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํฌํจ๋์ด ์์ต๋๋ค. - ์ฑ์ ์ ํ๋ฆฌ์ผ์ด์ ์๋ณ์์ ๋ฐ๋ผ ํค์ฒด์ธ์์ ์์ ์ ๊ฐ์ธ ์์ญ์ผ๋ก๋ง ์ ํ๋ฉ๋๋ค.
๋น๋ฐ๋ฒํธ ํค์ฒด์ธ ์ ๊ทผ
์ด ํ์ผ๋ค์ ๋ณธ๋ ๋ณดํธ๊ฐ ์๊ณ ๋ค์ด๋ก๋ํ ์ ์์ง๋ง, ์ํธํ๋์ด ์์ผ๋ฉฐ ์ฌ์ฉ์์ ํ๋ฌธ ๋น๋ฐ๋ฒํธ๋ก ๋ณตํธํํด์ผ ํฉ๋๋ค. Chainbreaker์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ณตํธํํ ์ ์์ต๋๋ค.
ํค์ฒด์ธ ํญ๋ชฉ ๋ณดํธ
ACLs
ํค์ฒด์ธ์ ๊ฐ ํญ๋ชฉ์ **์ก์ธ์ค ์ ์ด ๋ชฉ๋ก(ACLs)**์ ์ํด ๊ด๋ฆฌ๋๋ฉฐ, ์ด๋ ํค์ฒด์ธ ํญ๋ชฉ์ ๋ํด ๋ค์ํ ์์ ์ ์ํํ ์ ์๋ ์ฌ๋์ ๊ท์ ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค:
- ACLAuhtorizationExportClear: ๋ณด์ ์๊ฐ ๋น๋ฐ์ ํ๋ฌธ์ ๊ฐ์ ธ์ฌ ์ ์๋๋ก ํ์ฉํฉ๋๋ค.
- ACLAuhtorizationExportWrapped: ๋ณด์ ์๊ฐ ๋ค๋ฅธ ์ ๊ณต๋ ๋น๋ฐ๋ฒํธ๋ก ์ํธํ๋ ํ๋ฌธ์ ๊ฐ์ ธ์ฌ ์ ์๋๋ก ํ์ฉํฉ๋๋ค.
- ACLAuhtorizationAny: ๋ณด์ ์๊ฐ ๋ชจ๋ ์์ ์ ์ํํ ์ ์๋๋ก ํ์ฉํฉ๋๋ค.
ACL์ ์ด๋ฌํ ์์ ์ ์ํํ ์ ์๋ ์ ๋ขฐํ ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ชฉ๋ก๊ณผ ํจ๊ป ์ ๊ณต๋ฉ๋๋ค. ์ด๋ ๋ค์๊ณผ ๊ฐ์ ์ ์์ต๋๋ค:
- N
il(์ธ์ฆ ํ์ ์์, ๋ชจ๋ ์ ๋ขฐ๋จ) - ๋น ๋ชฉ๋ก (์๋ฌด๋ ์ ๋ขฐ๋์ง ์์)
- ํน์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชฉ๋ก.
๋ํ ํญ๋ชฉ์๋ **ACLAuthorizationPartitionID**๋ผ๋ ํค๊ฐ ํฌํจ๋ ์ ์์ผ๋ฉฐ, ์ด๋ teamid, apple, ๋ฐ cdhash๋ฅผ ์๋ณํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- teamid๊ฐ ์ง์ ๋ ๊ฒฝ์ฐ, ํ๋กฌํํธ ์์ด ํญ๋ชฉ ๊ฐ์ ์ก์ธ์คํ๋ ค๋ฉด ์ฌ์ฉ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๊ฐ์ teamid๋ฅผ ๊ฐ์ ธ์ผ ํฉ๋๋ค.
- apple์ด ์ง์ ๋ ๊ฒฝ์ฐ, ์ฑ์ Apple์ ์ํด ์๋ช ๋์ด์ผ ํฉ๋๋ค.
- cdhash๊ฐ ํ์๋ ๊ฒฝ์ฐ, ์ฑ์ ํน์ cdhash๋ฅผ ๊ฐ์ ธ์ผ ํฉ๋๋ค.
ํค์ฒด์ธ ํญ๋ชฉ ์์ฑ
**Keychain Access.app**๋ฅผ ์ฌ์ฉํ์ฌ ์๋ก์ด ํญ๋ชฉ์ด ์์ฑ๋ ๋ ๋ค์ ๊ท์น์ด ์ ์ฉ๋ฉ๋๋ค:
- ๋ชจ๋ ์ฑ์ด ์ํธํํ ์ ์์ต๋๋ค.
- ์ด๋ค ์ฑ๋ ๋ด๋ณด๋ด๊ธฐ/๋ณตํธํํ ์ ์์ต๋๋ค(์ฌ์ฉ์์๊ฒ ํ๋กฌํํธ ์์ด).
- ๋ชจ๋ ์ฑ์ด ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
- ์ด๋ค ์ฑ๋ ACL์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
- partitionID๋ **
apple**๋ก ์ค์ ๋ฉ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ด ํค์ฒด์ธ์ ํญ๋ชฉ์ ์์ฑํ ๋ ๊ท์น์ ์ฝ๊ฐ ๋ค๋ฆ ๋๋ค:
- ๋ชจ๋ ์ฑ์ด ์ํธํํ ์ ์์ต๋๋ค.
- ์์ฑํ๋ ์ ํ๋ฆฌ์ผ์ด์ (๋๋ ๋ช ์์ ์ผ๋ก ์ถ๊ฐ๋ ๋ค๋ฅธ ์ฑ)๋ง ๋ด๋ณด๋ด๊ธฐ/๋ณตํธํํ ์ ์์ต๋๋ค(์ฌ์ฉ์์๊ฒ ํ๋กฌํํธ ์์ด).
- ๋ชจ๋ ์ฑ์ด ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
- ์ด๋ค ์ฑ๋ ACL์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
- partitionID๋ **
teamid:[teamID here]**๋ก ์ค์ ๋ฉ๋๋ค.
ํค์ฒด์ธ ์ ๊ทผ
security
# List keychains
security list-keychains
# Dump all metadata and decrypted secrets (a lot of pop-ups)
security dump-keychain -a -d
# Find generic password for the "Slack" account and print the secrets
security find-generic-password -a "Slack" -g
# Change the specified entrys PartitionID entry
security set-generic-password-parition-list -s "test service" -a "test acount" -S
# Dump specifically the user keychain
security dump-keychain ~/Library/Keychains/login.keychain-db
APIs
Tip
ํค์ฒด์ธ ์ด๊ฑฐ ๋ฐ ๋น๋ฐ ๋คํ๋ ํ๋กฌํํธ๋ฅผ ์์ฑํ์ง ์๋ ๋น๋ฐ์ ๋ํด ๋๊ตฌ LockSmith๋ฅผ ์ฌ์ฉํ์ฌ ์ํํ ์ ์์ต๋๋ค.
๋ค๋ฅธ API ์๋ํฌ์ธํธ๋ SecKeyChain.h ์์ค ์ฝ๋์์ ์ฐพ์ ์ ์์ต๋๋ค.
Security Framework๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ํค์ฒด์ธ ํญ๋ชฉ์ ๋ํ ์ ๋ณด๋ฅผ ๋์ดํ๊ณ ๊ฐ์ ธ์ค๊ฑฐ๋, Apple์ ์คํ ์์ค CLI ๋๊ตฌ security**.**๋ฅผ ํ์ธํ ์๋ ์์ต๋๋ค. ๋ช ๊ฐ์ง API ์์:
- API **
SecItemCopyMatching**์ ๊ฐ ํญ๋ชฉ์ ๋ํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ฉฐ, ์ฌ์ฉํ ๋ ์ค์ ํ ์ ์๋ ๋ช ๊ฐ์ง ์์ฑ์ด ์์ต๋๋ค: kSecReturnData: true์ธ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ๋ณตํธํํ๋ ค๊ณ ์๋ํฉ๋๋ค(ํ์ ์ ํผํ๋ ค๋ฉด false๋ก ์ค์ ).kSecReturnRef: ํค์ฒด์ธ ํญ๋ชฉ์ ๋ํ ์ฐธ์กฐ๋ ๊ฐ์ ธ์ต๋๋ค(๋์ค์ ํ์ ์์ด ๋ณตํธํํ ์ ์๋ ๊ฒฝ์ฐ true๋ก ์ค์ ).kSecReturnAttributes: ํญ๋ชฉ์ ๋ํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.kSecMatchLimit: ๋ฐํํ ๊ฒฐ๊ณผ ์.kSecClass: ํค์ฒด์ธ ํญ๋ชฉ์ ์ข ๋ฅ.
๊ฐ ํญ๋ชฉ์ ACL์ ๊ฐ์ ธ์ต๋๋ค:
- API **
SecAccessCopyACLList**๋ฅผ ์ฌ์ฉํ์ฌ ํค์ฒด์ธ ํญ๋ชฉ์ ACL์ ๊ฐ์ ธ์ฌ ์ ์์ผ๋ฉฐ, ๊ฐ ๋ชฉ๋ก์๋ ๋ค์๊ณผ ๊ฐ์ ACL ๋ชฉ๋ก์ด ๋ฐํ๋ฉ๋๋ค(์:ACLAuhtorizationExportClear๋ฐ ์ด์ ์ ์ธ๊ธ๋ ๋ค๋ฅธ ํญ๋ชฉ๋ค): - ์ค๋ช
- ์ ๋ขฐํ ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ชฉ๋ก. ์ด๋ ๋ค์๊ณผ ๊ฐ์ ์ ์์ต๋๋ค:
- ์ ํ๋ฆฌ์ผ์ด์ : /Applications/Slack.app
- ๋ฐ์ด๋๋ฆฌ: /usr/libexec/airportd
- ๊ทธ๋ฃน: group://AirPort
๋ฐ์ดํฐ๋ฅผ ๋ด๋ณด๋ ๋๋ค:
- API **
SecKeychainItemCopyContent**๋ ํ๋ฌธ์ ๊ฐ์ ธ์ต๋๋ค. - API **
SecItemExport**๋ ํค์ ์ธ์ฆ์๋ฅผ ๋ด๋ณด๋ด์ง๋ง, ์ํธํ๋ ์ฝํ ์ธ ๋ฅผ ๋ด๋ณด๋ด๋ ค๋ฉด ์ํธ๋ฅผ ์ค์ ํด์ผ ํ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ๋กฌํํธ ์์ด ๋น๋ฐ์ ๋ด๋ณด๋ด๊ธฐ ์ํ ์๊ตฌ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- 1๊ฐ ์ด์์ ์ ๋ขฐํ ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋์ด๋ ๊ฒฝ์ฐ:
- ์ ์ ํ ๊ถํ์ด ํ์ํฉ๋๋ค (
Nil, ๋๋ ๋น๋ฐ ์ ๋ณด์ ์ ๊ทผํ๊ธฐ ์ํ ๊ถํ์ ํ์ฉ ๋ชฉ๋ก์ ํฌํจ๋์ด์ผ ํจ). - ์ฝ๋ ์๋ช ์ด PartitionID์ ์ผ์นํด์ผ ํฉ๋๋ค.
- ์ฝ๋ ์๋ช ์ด ํ๋์ ์ ๋ขฐํ ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ผ์นํด์ผ ํฉ๋๋ค(๋๋ ์ฌ๋ฐ๋ฅธ KeychainAccessGroup์ ๊ตฌ์ฑ์์ด์ด์ผ ํจ).
- ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ๋ขฐํ ์ ์๋ ๊ฒฝ์ฐ:
- ์ ์ ํ ๊ถํ์ด ํ์ํฉ๋๋ค.
- ์ฝ๋ ์๋ช ์ด PartitionID์ ์ผ์นํด์ผ ํฉ๋๋ค.
- PartitionID๊ฐ ์๋ ๊ฒฝ์ฐ, ์ด๋ ํ์ํ์ง ์์ต๋๋ค.
Caution
๋ฐ๋ผ์ 1๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋์ด๋ ๊ฒฝ์ฐ, ํด๋น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๋๋ฅผ ์ฃผ์ ํด์ผ ํฉ๋๋ค.
apple์ด partitionID์ ํ์๋ ๊ฒฝ์ฐ, **
osascript**๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ทผํ ์ ์์ผ๋ฉฐ, partitionID์ apple์ด ํฌํจ๋ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ขฐํ ์ ์์ต๋๋ค. **Python**๋ ์ด๋ฅผ ์ํด ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ ๊ฐ์ง ์ถ๊ฐ ์์ฑ
- Invisible: UI ํค์ฒด์ธ ์ฑ์์ ํญ๋ชฉ์ ์จ๊ธฐ๊ธฐ ์ํ ๋ถ์ธ ํ๋๊ทธ์ ๋๋ค.
- General: ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค(๋ฐ๋ผ์ ์ํธํ๋์ง ์์).
- Microsoft๋ ๋ฏผ๊ฐํ ์๋ํฌ์ธํธ์ ์ ๊ทผํ๊ธฐ ์ํด ๋ชจ๋ ์๋ก ๊ณ ์นจ ํ ํฐ์ ํ๋ฌธ์ผ๋ก ์ ์ฅํ๊ณ ์์์ต๋๋ค.
References
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์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


