iOS ๊ธฐ๋ณธ ํ…Œ์ŠคํŠธ ์ž‘์—…

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 ์ง€์›ํ•˜๊ธฐ

iOS ๊ธฐ๊ธฐ ์‹๋ณ„ ๋ฐ ์ ‘๊ทผ ์š”์•ฝ

iOS ๊ธฐ๊ธฐ์˜ UDID ์‹๋ณ„

iOS ๋””๋ฐ”์ด์Šค๋ฅผ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๋ ค๋ฉด UDID๋ผ๊ณ  ์•Œ๋ ค์ง„ 40์ž๋ฆฌ ์‹œํ€€์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. macOS Catalina ์ด์ƒ์—์„œ๋Š” Finder app์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, iTunes๋Š” ๋” ์ด์ƒ ์ œ๊ณต๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๊ธฐ๋ฅผ USB๋กœ ์—ฐ๊ฒฐํ•˜๊ณ  Finder์—์„œ ์„ ํƒํ•œ ํ›„ ์ด๋ฆ„ ์•„๋ž˜์˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ํด๋ฆญํ•˜๋ฉด UDID๋ฅผ ๋น„๋กฏํ•œ ๊ธฐํƒ€ ์ •๋ณด๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

Catalina ์ด์ „ ๋ฒ„์ „์˜ macOS์—์„œ๋Š” iTunes์—์„œ UDID๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์ง€์นจ์€ here์—์„œ ํ™•์ธํ•˜์„ธ์š”.

Command-line ๋„๊ตฌ๋Š” UDID๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋Œ€์•ˆ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

  • I/O Registry Explorer ๋„๊ตฌ ioreg ์‚ฌ์šฉ:
$ ioreg -p IOUSB -l | grep "USB Serial"
  • macOS (๋ฐ Linux)์—์„œ ideviceinstaller ์‚ฌ์šฉํ•˜๊ธฐ:
$ brew install ideviceinstaller
$ idevice_id -l
  • system_profiler ํ™œ์šฉ:
$ system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p;/iPhone/,/Serial/p;/iPod/,/Serial/p' | grep "Serial Number:"
  • instruments๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์žฅ์น˜ ๋‚˜์—ด:
$ instruments -s devices

๋””๋ฐ”์ด์Šค ์…ธ ์ ‘๊ทผ

SSH access๋Š” ํƒˆ์˜ฅ ํ›„ OpenSSH package๋ฅผ ์„ค์น˜ํ•˜๋ฉด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ssh root@<device_ip_address>๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์žฅ์น˜๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋ ค๋ฉด ์‚ฌ์šฉ์ž root์™€ mobile์˜ ๊ธฐ๋ณธ ๋น„๋ฐ€๋ฒˆํ˜ธ(alpine)๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

SSH over USB๋Š” Wi-Fi๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ํ•„์š”ํ•ด์ง€๋ฉฐ, SSH ์—ฐ๊ฒฐ์„ ์œ„ํ•ด ๋””๋ฐ”์ด์Šค ํฌํŠธ๋ฅผ ๋งคํ•‘ํ•˜๊ธฐ ์œ„ํ•ด iproxy๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค์ •์œผ๋กœ ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์—ฌ USB๋ฅผ ํ†ตํ•ด SSH์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

$ iproxy 2222 22
$ ssh -p 2222 root@localhost

On-device shell applications, like NewTerm 2, ๊ธฐ๊ธฐ์™€์˜ ์ง์ ‘ ์ƒํ˜ธ์ž‘์šฉ์„ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๋ฉฐ, ํŠนํžˆ ๋ฌธ์ œ ํ•ด๊ฒฐ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. Reverse SSH shells๋Š” ๋˜ํ•œ ํ˜ธ์ŠคํŠธ ์ปดํ“จํ„ฐ์—์„œ์˜ ์›๊ฒฉ ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•ด ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Resetting Forgotten Passwords

๊ธฐ๋ณธ๊ฐ’(alpine)์œผ๋กœ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์žฌ์„ค์ •ํ•˜๋ ค๋ฉด /private/etc/master.passwd ํŒŒ์ผ์„ ํŽธ์ง‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” root ๋ฐ mobile ์‚ฌ์šฉ์ž ํ•ญ๋ชฉ ์˜†์˜ ๊ธฐ์กด ํ•ด์‹œ๋ฅผ alpine์˜ ํ•ด์‹œ๋กœ ๊ต์ฒดํ•˜๋Š” ๊ฒƒ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

Data Transfer Techniques

Transferring App Data Files

Archiving and Retrieval via SSH and SCP: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ Data ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ tar๋กœ ์•„์นด์ด๋ธŒํ•œ ๋‹ค์Œ scp๋กœ ์ „์†กํ•˜๋Š” ๊ฒƒ์ด ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ๋ช…๋ น์€ Data ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ .tgz ํŒŒ์ผ๋กœ ์•„์นด์ด๋ธŒํ•œ ๋’ค ๋””๋ฐ”์ด์Šค์—์„œ ๋Œ์–ด์˜ต๋‹ˆ๋‹ค:

tar czvf /tmp/data.tgz /private/var/mobile/Containers/Data/Application/8C8E7EB0-BC9B-435B-8EF8-8F5560EB0693
exit
scp -P 2222 root@localhost:/tmp/data.tgz .

๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ๋„๊ตฌ

iFunbox์™€ iExplorer ์‚ฌ์šฉ: ์ด๋Ÿฌํ•œ GUI ๋„๊ตฌ๋“ค์€ iOS ๋””๋ฐ”์ด์Šค์˜ ํŒŒ์ผ ๊ด€๋ฆฌ๋ฅผ ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ iOS 8.4๋ถ€ํ„ฐ๋Š” ๊ธฐ๊ธฐ๊ฐ€ jailbroken ์ƒํƒœ๊ฐ€ ์•„๋‹ˆ๋ฉด Apple์ด ์ด๋Ÿฌํ•œ ๋„๊ตฌ๋“ค์˜ application sandbox ์ ‘๊ทผ์„ ์ œํ•œํ–ˆ์Šต๋‹ˆ๋‹ค.

ํŒŒ์ผ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ Objection ์‚ฌ์šฉ

Objection์„ ์ด์šฉํ•œ ๋Œ€ํ™”ํ˜• ์…ธ: objection์„ ์‹คํ–‰ํ•˜๋ฉด ์•ฑ์˜ Bundle directory์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์•ฑ์˜ Documents directory๋กœ ์ด๋™ํ•ด ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, iOS device๋กœ๋ถ€ํ„ฐ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ฑฐ๋‚˜ iOS device๋กœ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

objection --gadget com.apple.mobilesafari explorer
cd /var/mobile/Containers/Data/Application/72C7AAFB-1D75-4FBA-9D83-D8B4A2D44133/Documents
file download <filename>

์•ฑ ํš๋“ ๋ฐ ์ถ”์ถœ

IPA ํŒŒ์ผ ํš๋“

Over-The-Air (OTA) ๋ฐฐํฌ ๋งํฌ: OTA๋ฅผ ํ†ตํ•ด ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ ๋ฐฐํฌ๋œ ์•ฑ์€ npm์œผ๋กœ ์„ค์น˜ํ•˜๋Š” ITMS services asset downloader ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  IPA ํŒŒ์ผ์„ ๋กœ์ปฌ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

npm install -g itms-services
itms-services -u "itms-services://?action=download-manifest&url=https://s3-ap-southeast-1.amazonaws.com/test-uat/manifest.plist" -o - > out.ipa

์•ฑ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ถ”์ถœ

  1. From an IPA: IPA์˜ ์••์ถ•์„ ํ’€์–ด decrypted app binary์— ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค.
  2. From a Jailbroken Device: ์•ฑ์„ ์„ค์น˜ํ•˜๊ณ  memory์—์„œ decrypted binary๋ฅผ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.

๋ณตํ˜ธํ™”(Decryption) ํ”„๋กœ์„ธ์Šค

์ˆ˜๋™ ๋ณตํ˜ธํ™” ๊ฐœ์š”: iOS ์•ฑ ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” Apple์ด FairPlay๋ฅผ ์‚ฌ์šฉํ•ด ์•”ํ˜ธํ™”ํ•ฉ๋‹ˆ๋‹ค. To reverse-engineer, memory์—์„œ decrypted binary๋ฅผ dumpํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ณตํ˜ธํ™” ๊ณผ์ •์€ PIE flag ํ™•์ธ, memory flags ์กฐ์ •, encrypted section ์‹๋ณ„, ๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ์„น์…˜์„ dumpํ•˜์—ฌ decrypted form์œผ๋กœ ๊ต์ฒดํ•˜๋Š” ๊ฒƒ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

PIE Flag ํ™•์ธ ๋ฐ ์ˆ˜์ •:

otool -Vh Original_App
python change_macho_flags.py --no-pie Original_App
otool -Vh Hello_World

์•”ํ˜ธํ™”๋œ ์„น์…˜ ์‹๋ณ„ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ๋คํ”„:

otool์„ ์‚ฌ์šฉํ•ด ์•”ํ˜ธํ™”๋œ ์„น์…˜์˜ ์‹œ์ž‘ ๋ฐ ๋ ์ฃผ์†Œ๋ฅผ ๊ฒฐ์ •ํ•˜๊ณ , jailbroken device์—์„œ gdb๋ฅผ ์‚ฌ์šฉํ•ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.

otool -l Original_App | grep -A 4 LC_ENCRYPTION_INFO
dump memory dump.bin 0x8000 0x10a4000

Encrypted Section ๋ฎ์–ด์“ฐ๊ธฐ:

์›๋ณธ app binary์— ์žˆ๋Š” encrypted section์„ decrypted dump๋กœ ๋ฎ์–ด์”๋‹ˆ๋‹ค.

dd bs=1 seek=<starting_address> conv=notrunc if=dump.bin of=Original_App

Finalizing Decryption: ๋ฐ”์ด๋„ˆ๋ฆฌ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ์•”ํ˜ธํ™”๊ฐ€ ์—†์Œ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. MachOView ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด cryptid๋ฅผ 0์œผ๋กœ ์„ค์ •ํ•˜์„ธ์š”.

Decryption (์ž๋™์œผ๋กœ)

frida-ios-dump

The frida-ios-dump ๋„๊ตฌ๋Š” iOS ๊ธฐ๊ธฐ์—์„œ ์•ฑ์„ ์ž๋™์œผ๋กœ ์•”ํ˜ธ ํ•ด์ œํ•˜๊ณ  ์ถ”์ถœํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋จผ์ € dump.py๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ iOS ๊ธฐ๊ธฐ์— ์—ฐ๊ฒฐํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋Š” iproxy๋ฅผ ํ†ตํ•ด localhost์˜ ํฌํŠธ 2222๋กœ ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜ ๊ธฐ๊ธฐ์˜ IP ์ฃผ์†Œ์™€ ํฌํŠธ๋กœ ์ง์ ‘ ์—ฐ๊ฒฐํ•˜์—ฌ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๊ธฐ์— ์„ค์น˜๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋‹ค์Œ ๋ช…๋ น์œผ๋กœ ๋‚˜์—ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

$ python dump.py -l

Telegram๊ณผ ๊ฐ™์€ ํŠน์ • ์•ฑ์„ dumpํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค:

$ python3 dump.py -u "root" -p "<PASSWORD>" ph.telegra.Telegraph

์ด ๋ช…๋ น์€ ์•ฑ ๋คํ”„๋ฅผ ์‹œ์ž‘ํ•˜์—ฌ ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ์— Telegram.ipa ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์„ธ์Šค๋Š” ํƒˆ์˜ฅ๋œ ์žฅ์น˜์— ์ ํ•ฉํ•˜๋ฉฐ, ์„œ๋ช…๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ๊ฐ€์งœ๋กœ ์„œ๋ช…๋œ ์•ฑ์€ ios-deploy ๊ฐ™์€ ๋„๊ตฌ๋กœ ์žฌ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

frida-ipa-extract

ํƒˆ์˜ฅ๋œ ์žฅ์น˜์šฉ Frida ๊ธฐ๋ฐ˜ IPA ์ถ”์ถœ๊ธฐ; ๋” ๋น ๋ฅธ ์ถ”์ถœ์„ ์œ„ํ•ด USB Frida ์„ธ์…˜๊ณผ ์„ ํƒ์  SSH/SFTP๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ์š”๊ตฌ ์‚ฌํ•ญ: Python 3.9+, frida, paramiko, frida-server๊ฐ€ ์„ค์น˜๋œ ํƒˆ์˜ฅ๋œ ์žฅ์น˜ (SSH ๋ชจ๋“œ์šฉ OpenSSH).
  • ์„ค์ •:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
  • ์‚ฌ์šฉ๋ฒ•:
python extract.py -U -f com.example.app -o MyApp.ipa
python extract.py -U -f com.example.app -o MyApp.ipa --sandbox --no-resume
python extract.py -H 192.168.100.32 -P 2222 -u root -p password -f com.example.app
  • ํ”Œ๋ž˜๊ทธ: -f <bundle>๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค (๋˜๋Š” --pid๋Š” PID ์‚ฌ์šฉ); -o๋Š” ์ถœ๋ ฅ ์ด๋ฆ„์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. -U๋Š” USB๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค; -H/-P/-u/-p๋Š” frida-server์˜ 27042๋กœ SSH ํ„ฐ๋„์„ ์—ด๊ณ  SFTP๋กœ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค( -U์™€ ๊ฒฐํ•ฉ ๊ฐ€๋Šฅ). --sandbox๋Š” ์ƒŒ๋“œ๋ฐ•์Šค๋ฅผ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค; --no-resume๋Š” ์„ธ์…˜์ด ๋Š์–ด์งˆ ๊ฒฝ์šฐ ์‹œ์Šคํ…œ ํ”„๋กœ์„ธ์Šค์— ์˜ํ•œ ํฌ๋ž˜์‹œ์™€ ์žฌ์‹œ๋„๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์•ฑ์„ ์ผ์‹œ์ค‘๋‹จ ์ƒํƒœ๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฌธ์ œ ํ•ด๊ฒฐ: Frida attach timed out โ†’ -f ๋˜๋Š” --no-resume ์‚ฌ์šฉ; script has been destroyed โ†’ --no-resume ๋˜๋Š” SSH ์ „์†ก ์‚ฌ์šฉ; No running apps found โ†’ ์•ฑ์„ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ์ƒ์„ฑํ•˜์„ธ์š”.

flexdecrypt

The flexdecrypt tool, along with its wrapper flexdump, ์„ค์น˜๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ IPA ํŒŒ์ผ์„ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ์žฅ์น˜์— flexdecrypt๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ช…๋ น์—๋Š” .deb ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์„ค์น˜ํ•˜๋Š” ๊ณผ์ •์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. flexdump๋Š” ์•„๋ž˜ ๋ช…๋ น์—์„œ ๋ณด์—ฌ์ฃผ๋“ฏ ์•ฑ์„ ๋‚˜์—ดํ•˜๊ณ  ๋คํ”„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

apt install zip unzip
wget https://gist.githubusercontent.com/defparam/71d67ee738341559c35c684d659d40ac/raw/30c7612262f1faf7871ba8e32fbe29c0f3ef9e27/flexdump -P /usr/local/bin; chmod +x /usr/local/bin/flexdump
flexdump list
flexdump dump Twitter.app

bagbak

bagbak, ๋˜ ๋‹ค๋ฅธ Frida ๊ธฐ๋ฐ˜ ๋„๊ตฌ๋กœ, ์•ฑ ๋ณตํ˜ธํ™”๋ฅผ ์œ„ํ•ด ํƒˆ์˜ฅ๋œ ๊ธฐ๊ธฐ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค:

bagbak --raw Chrome

r2flutch

r2flutch, utilizing both radare and frida, serves for app decryption and dumping. More information can be found on its GitHub page.

Installing Apps

Sideloading๋ž€ ๊ณต์‹ App Store ์™ธ๋ถ€์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์„ธ์Šค๋Š” installd daemon์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋˜๋ฉฐ ์•ฑ์€ Apple์ด ๋ฐœํ–‰ํ•œ ์ธ์ฆ์„œ๋กœ ์„œ๋ช…๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํƒˆ์˜ฅ๋œ ๊ธฐ๊ธฐ๋Š” AppSync๋ฅผ ํ†ตํ•ด ์ด๋ฅผ ์šฐํšŒํ•˜์—ฌ ์œ„์กฐ ์„œ๋ช…๋œ IPA ํŒจํ‚ค์ง€์˜ ์„ค์น˜๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

Sideloading Tools

  • Cydia Impactor: iOS์šฉ IPA ํŒŒ์ผ๊ณผ Android์šฉ APK ํŒŒ์ผ์˜ ์„œ๋ช… ๋ฐ ์„ค์น˜๋ฅผ ์œ„ํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๊ฐ€์ด๋“œ์™€ ๋ฌธ์ œ ํ•ด๊ฒฐ์€ yalujailbreak.net์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • libimobiledevice: iOS ์žฅ์น˜์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•œ Linux ๋ฐ macOS์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. USB๋ฅผ ํ†ตํ•œ ์•ฑ ์„ค์น˜์— ์‚ฌ์šฉ๋˜๋Š” ideviceinstaller์˜ ์„ค์น˜ ๋ช…๋ น๊ณผ ์‚ฌ์šฉ ์˜ˆ์ œ๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

  • ipainstaller: ์ด ๋ช…๋ นํ–‰ ๋„๊ตฌ๋Š” iOS ๊ธฐ๊ธฐ์— ์ง์ ‘ ์•ฑ์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

  • ios-deploy: macOS ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ios-deploy๋Š” ์ปค๋งจ๋“œ๋ผ์ธ์—์„œ iOS ์•ฑ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. IPA ์••์ถ• ํ•ด์ œ ๋ฐ ์ง์ ‘ ์•ฑ ์‹คํ–‰์„ ์œ„ํ•œ -m ํ”Œ๋ž˜๊ทธ ์‚ฌ์šฉ์ด ๊ณผ์ •์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค.

  • Xcode: Xcode๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Window/Devices and Simulators๋กœ ์ด๋™ํ•œ ๋‹ค์Œ ์•ฑ์„ Installed Apps์— ์ถ”๊ฐ€ํ•˜์—ฌ ์•ฑ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

Allow Application Installation on Non-iPad Devices

iPad ์ „์šฉ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ iPhone ๋˜๋Š” iPod touch ๊ธฐ๊ธฐ์— ์„ค์น˜ํ•˜๋ ค๋ฉด, Info.plist ํŒŒ์ผ์˜ UIDeviceFamily ๊ฐ’์„ 1๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ณ€๊ฒฝ์€ ์„œ๋ช… ๊ฒ€์ฆ ๋•Œ๋ฌธ์— IPA ํŒŒ์ผ์˜ ์žฌ์„œ๋ช…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์•ฑ์ด ์ตœ์‹  iPad ๋ชจ๋ธ์—๋งŒ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์š”๊ตฌํ•˜๋Š” ๊ฒฝ์šฐ, ๊ตฌํ˜• iPhone ๋˜๋Š” iPod touch์—์„œ ์ด ๋ฐฉ๋ฒ•์ด ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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 ์ง€์›ํ•˜๊ธฐ