macOS Apps - Inspecting, debugging and Fuzzing
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
์ ์ ๋ถ์
otool & objdump & nm
jtool2 & Disarm
You can ์ฌ๊ธฐ์์ disarm์ ๋ค์ด๋ก๋ํ์ธ์.
์ฌ๊ธฐ์์ jtool2๋ฅผ ๋ค์ด๋ก๋ํ์ธ์ ๋๋ brew
๋ก ์ค์นํ ์ ์์ต๋๋ค.
jtool์ disarm์ ์ํด ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ต๋๋ค
Codesign / ldid
**Codesign
**์ macOS์์ ์ฐพ์ ์ ์์ผ๋ฉฐ **ldid
**๋ iOS์์ ์ฐพ์ ์ ์์ต๋๋ค
SuspiciousPackage
SuspiciousPackage๋ .pkg ํ์ผ(์ค์น ํ๋ก๊ทธ๋จ)์ ๊ฒ์ฌํ๊ณ ์ค์นํ๊ธฐ ์ ์ ๋ด๋ถ ๋ด์ฉ์ ํ์ธํ๋ ๋ฐ ์ ์ฉํ ๋๊ตฌ์
๋๋ค.
์ด ์ค์น ํ๋ก๊ทธ๋จ์๋ ๋งฌ์จ์ด ์์ฑ์๊ฐ ์ผ๋ฐ์ ์ผ๋ก ๋งฌ์จ์ด๋ฅผ ์ง์ํ๊ธฐ ์ํด ์
์ฉํ๋ preinstall
๋ฐ postinstall
bash ์คํฌ๋ฆฝํธ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
hdiutil
์ด ๋๊ตฌ๋ Apple ๋์คํฌ ์ด๋ฏธ์ง(.dmg) ํ์ผ์ ๋ง์ดํธํ์ฌ ์คํํ๊ธฐ ์ ์ ๊ฒ์ฌํ ์ ์๋๋ก ํฉ๋๋ค:
It will be mounted in /Volumes
Packed binaries
๋์ ์ํธ๋กํผ ํ์ธ
๋ฌธ์์ด ํ์ธ (์ดํดํ ์ ์๋ ๋ฌธ์์ด์ด ๊ฑฐ์ ์์ผ๋ฉด, ํจํน๋จ)
MacOS์ฉ UPX ํจ์ปค๋ "__XHDR"๋ผ๋ ์น์ ์ ์์ฑํฉ๋๋ค.
Static Objective-C analysis
Metadata
Objective-C๋ก ์์ฑ๋ ํ๋ก๊ทธ๋จ์ Mach-O binaries๋ก ์ปดํ์ผ๋ ๋ ํด๋์ค ์ ์ธ์ ์ ์งํฉ๋๋ค. ์ด๋ฌํ ํด๋์ค ์ ์ธ์๋ ๋ค์์ ์ด๋ฆ๊ณผ ์ ํ์ด ํฌํจ๋ฉ๋๋ค:
์ ์๋ ์ธํฐํ์ด์ค
์ธํฐํ์ด์ค ๋ฉ์๋
์ธํฐํ์ด์ค ์ธ์คํด์ค ๋ณ์
์ ์๋ ํ๋กํ ์ฝ
์ด ์ด๋ฆ๋ค์ ์ด์ง ํ์ผ์ ๋ฆฌ๋ฒ์ฑ์ ๋ ์ด๋ ต๊ฒ ๋ง๋ค๊ธฐ ์ํด ๋๋ ํ๋ ์ ์์ต๋๋ค.
Function calling
Objective-C๋ฅผ ์ฌ์ฉํ๋ ์ด์ง ํ์ผ์์ ํจ์๊ฐ ํธ์ถ๋ ๋, ์ปดํ์ผ๋ ์ฝ๋๋ ํด๋น ํจ์๋ฅผ ํธ์ถํ๋ ๋์ **objc_msgSend
**๋ฅผ ํธ์ถํฉ๋๋ค. ์ด๋ ์ต์ข
ํจ์๋ฅผ ํธ์ถํ๊ฒ ๋ฉ๋๋ค:
์ด ํจ์๊ฐ ๊ธฐ๋ํ๋ ๋งค๊ฐ๋ณ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์ (self)๋ "๋ฉ์์ง๋ฅผ ๋ฐ์ ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ"์ ๋๋ค. ๋ ๊ฐ๋จํ ๋งํ๋ฉด, ๋ฉ์๋๊ฐ ํธ์ถ๋๋ ๊ฐ์ฒด์ ๋๋ค. ๋ฉ์๋๊ฐ ํด๋์ค ๋ฉ์๋์ธ ๊ฒฝ์ฐ, ์ด๋ ํด๋์ค ๊ฐ์ฒด์ ์ธ์คํด์ค(์ ์ฒด)์ด๋ฉฐ, ์ธ์คํด์ค ๋ฉ์๋์ ๊ฒฝ์ฐ, self๋ ํด๋์ค์ ์ธ์คํด์คํ๋ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํต๋๋ค.
๋ ๋ฒ์งธ ๋งค๊ฐ๋ณ์ (op)๋ "๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฉ์๋์ ์ ํ์"์ ๋๋ค. ๋ค์ ๋งํด, ์ด๋ ๋จ์ํ ๋ฉ์๋์ ์ด๋ฆ์ ๋๋ค.
๋๋จธ์ง ๋งค๊ฐ๋ณ์๋ ๋ฉ์๋(op)์ ์ํด ํ์ํ ๊ฐ๋ค์ ๋๋ค.
์ด ์ ๋ณด๋ฅผ ARM64์์ lldb
๋ก ์ฝ๊ฒ ์ป๋ ๋ฐฉ๋ฒ์ ์ด ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์:
x64:
Argument | Register | (for) objc_msgSend |
1st argument | rdi | self: ๋ฉ์๋๊ฐ ํธ์ถ๋๋ ๊ฐ์ฒด |
2nd argument | rsi | op: ๋ฉ์๋์ ์ด๋ฆ |
3rd argument | rdx | ๋ฉ์๋์ ๋ํ 1๋ฒ์งธ ์ธ์ |
4th argument | rcx | ๋ฉ์๋์ ๋ํ 2๋ฒ์งธ ์ธ์ |
5th argument | r8 | ๋ฉ์๋์ ๋ํ 3๋ฒ์งธ ์ธ์ |
6th argument | r9 | ๋ฉ์๋์ ๋ํ 4๋ฒ์งธ ์ธ์ |
7th+ argument | rsp+ (์คํ์์) | ๋ฉ์๋์ ๋ํ 5๋ฒ์งธ+ ์ธ์ |
Dump ObjectiveC metadata
Dynadump
Dynadump๋ Objective-C ์ด์ง ํ์ผ์ ํด๋์ค ๋คํํ๋ ๋๊ตฌ์ ๋๋ค. GitHub์์๋ dylibs๋ฅผ ๋ช ์ํ์ง๋ง, ์คํ ํ์ผ์๋ ์๋ํฉ๋๋ค.
At the time of the writing, this is ํ์ฌ ๊ฐ์ฅ ์ ์๋ํ๋ ๊ฒ.
์ผ๋ฐ ๋๊ตฌ
class-dump
class-dump๋ ObjetiveC ํ์์ ์ฝ๋์์ ํด๋์ค, ์นดํ ๊ณ ๋ฆฌ ๋ฐ ํ๋กํ ์ฝ์ ๋ํ ์ ์ธ์ ์์ฑํ๋ ์๋ ๋๊ตฌ์ ๋๋ค.
์ค๋๋์๊ณ ์ ์ง ๊ด๋ฆฌ๋์ง ์์์ ์ ๋๋ก ์๋ํ์ง ์์ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
ICDump
iCDump๋ ํ๋์ ์ด๊ณ ํฌ๋ก์ค ํ๋ซํผ Objective-C ํด๋์ค ๋คํ์ ๋๋ค. ๊ธฐ์กด ๋๊ตฌ์ ๋น๊ตํ ๋, iCDump๋ Apple ์ํ๊ณ์ ๋ ๋ฆฝ์ ์ผ๋ก ์คํ๋ ์ ์์ผ๋ฉฐ Python ๋ฐ์ธ๋ฉ์ ๋ ธ์ถํฉ๋๋ค.
Static Swift analysis
Swift ๋ฐ์ด๋๋ฆฌ์ ๊ฒฝ์ฐ, Objective-C ํธํ์ฑ ๋๋ถ์ ๋๋๋ก class-dump๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ธ์ ์ถ์ถํ ์ ์์ง๋ง ํญ์ ๊ฐ๋ฅํ ๊ฒ์ ์๋๋๋ค.
jtool -l
๋๋ otool -l
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด __swift5
์ ๋์ฌ๋ก ์์ํ๋ ์ฌ๋ฌ ์น์
์ ์ฐพ์ ์ ์์ต๋๋ค:
์ด ์น์ ์ ์ ์ฅ๋ ์ ๋ณด์ ๋ํ ์ถ๊ฐ ์ ๋ณด๋ ์ด ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์์ ํ์ธํ ์ ์์ต๋๋ค.
๊ฒ๋ค๊ฐ, Swift ๋ฐ์ด๋๋ฆฌ๋ ๊ธฐํธ๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค (์: ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํจ์๊ฐ ํธ์ถ๋ ์ ์๋๋ก ๊ธฐํธ๋ฅผ ์ ์ฅํด์ผ ํฉ๋๋ค). **๊ธฐํธ๋ ์ผ๋ฐ์ ์ผ๋ก ํจ์ ์ด๋ฆ๊ณผ ์์ฑ์ ๋ํ ์ ๋ณด๋ฅผ ๋ณด๊ธฐ ์ข์ง ์๊ฒ ๊ฐ์ง๊ณ ์์ผ๋ฏ๋ก ๋งค์ฐ ์ ์ฉํ๋ฉฐ, ์๋ ์ด๋ฆ์ ์ป์ ์ ์๋ "๋๋ง๊ธ๋ฌ"๊ฐ ์์ต๋๋ค:
๋์ ๋ถ์
์ด์ง ํ์ผ์ ๋๋ฒ๊น
ํ๋ ค๋ฉด SIP๋ฅผ ๋นํ์ฑํํด์ผ ํฉ๋๋ค (csrutil disable
๋๋ csrutil enable --without debug
) ๋๋ ์ด์ง ํ์ผ์ ์์ ํด๋๋ก ๋ณต์ฌํ๊ณ ์๋ช
์ ์ ๊ฑฐํด์ผ ํฉ๋๋ค codesign --remove-signature <binary-path>
๋๋ ์ด์ง ํ์ผ์ ๋๋ฒ๊น
์ ํ์ฉํด์ผ ํฉ๋๋ค ( ์ด ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค).
macOS์์ ์์คํ
์ด์ง ํ์ผ(์: cloudconfigurationd
)์ ๊ณ์ธกํ๋ ค๋ฉด SIP๋ฅผ ๋นํ์ฑํํด์ผ ํฉ๋๋ค (์๋ช
๋ง ์ ๊ฑฐํ๋ ๊ฒ์ผ๋ก๋ ์๋ํ์ง ์์ต๋๋ค).
API
macOS๋ ํ๋ก์ธ์ค์ ๋ํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ๋ช ๊ฐ์ง ํฅ๋ฏธ๋ก์ด API๋ฅผ ๋ ธ์ถํฉ๋๋ค:
proc_info
: ๊ฐ ํ๋ก์ธ์ค์ ๋ํ ๋ง์ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ์ฃผ์ API์ ๋๋ค. ๋ค๋ฅธ ํ๋ก์ธ์ค ์ ๋ณด๋ฅผ ์ป์ผ๋ ค๋ฉด root ๊ถํ์ด ํ์ํ์ง๋ง ํน๋ณํ ๊ถํ์ด๋ mach ํฌํธ๋ ํ์ํ์ง ์์ต๋๋ค.libsysmon.dylib
: XPC๋ก ๋ ธ์ถ๋ ํจ์๋ฅผ ํตํด ํ๋ก์ธ์ค์ ๋ํ ์ ๋ณด๋ฅผ ์ป์ ์ ์๊ฒ ํด์ฃผ์ง๋ง,com.apple.sysmond.client
๊ถํ์ด ํ์ํฉ๋๋ค.
์คํ์ท ๋ฐ ๋ง์ดํฌ๋ก์คํ์ท
์คํ์ทํ
์ ํ๋ก์ธ์ค์ ์ํ๋ฅผ ์บก์ฒํ๋ ๊ธฐ์ ๋ก, ๋ชจ๋ ์คํ ์ค์ธ ์ค๋ ๋์ ํธ์ถ ์คํ์ ํฌํจํฉ๋๋ค. ์ด๋ ๋๋ฒ๊น
, ์ฑ๋ฅ ๋ถ์ ๋ฐ ํน์ ์์ ์์ ์์คํ
์ ๋์์ ์ดํดํ๋ ๋ฐ ํนํ ์ ์ฉํฉ๋๋ค. iOS ๋ฐ macOS์์๋ sample
๋ฐ **spindump
**์ ๊ฐ์ ์ฌ๋ฌ ๋๊ตฌ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ์คํ์ทํ
์ ์ํํ ์ ์์ต๋๋ค.
Sysdiagnose
์ด ๋๊ตฌ (/usr/bini/ysdiagnose
)๋ ๊ธฐ๋ณธ์ ์ผ๋ก ps
, zprint
์ ๊ฐ์ ์์ญ ๊ฐ์ ๋ค์ํ ๋ช
๋ น์ ์คํํ์ฌ ์ปดํจํฐ์์ ๋ง์ ์ ๋ณด๋ฅผ ์์งํฉ๋๋ค.
root๋ก ์คํํด์ผ ํ๋ฉฐ, ๋ฐ๋ชฌ /usr/libexec/sysdiagnosed
๋ com.apple.system-task-ports
๋ฐ get-task-allow
์ ๊ฐ์ ๋งค์ฐ ํฅ๋ฏธ๋ก์ด ๊ถํ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
๊ทธ์ plist๋ /System/Library/LaunchDaemons/com.apple.sysdiagnose.plist
์ ์์นํ๋ฉฐ, 3๊ฐ์ MachServices๋ฅผ ์ ์ธํฉ๋๋ค:
com.apple.sysdiagnose.CacheDelete
: /var/rmp์ ์ค๋๋ ์์นด์ด๋ธ๋ฅผ ์ญ์ ํฉ๋๋ค.com.apple.sysdiagnose.kernel.ipc
: ํน๋ณ ํฌํธ 23 (์ปค๋)com.apple.sysdiagnose.service.xpc
:Libsysdiagnose
Obj-C ํด๋์ค๋ฅผ ํตํ ์ฌ์ฉ์ ๋ชจ๋ ์ธํฐํ์ด์ค. ์ฌ์ ์ ์๋ ์ธ ๊ฐ์ง ์ธ์(compress
,display
,run
)๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค.
ํตํฉ ๋ก๊ทธ
MacOS๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ ๋ ๋ฌด์์ ํ๊ณ ์๋์ง ์ดํดํ๋ ๋ฐ ๋งค์ฐ ์ ์ฉํ ์ ์๋ ๋ง์ ๋ก๊ทธ๋ฅผ ์์ฑํฉ๋๋ค.
๊ฒ๋ค๊ฐ, <private>
ํ๊ทธ๊ฐ ํฌํจ๋ ๋ก๊ทธ๊ฐ ์์ด ์ฌ์ฉ์ ๋๋ ์ปดํจํฐ ์๋ณ ๊ฐ๋ฅํ ์ ๋ณด๋ฅผ ์จ๊น๋๋ค. ๊ทธ๋ฌ๋ ์ด ์ ๋ณด๋ฅผ ๊ณต๊ฐํ๊ธฐ ์ํด ์ธ์ฆ์๋ฅผ ์ค์นํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์์ ์ค๋ช
์ ๋ฐ๋ฅด์ธ์.
ํธํผ
์ผ์ชฝ ํจ๋
ํธํผ์ ์ผ์ชฝ ํจ๋์์๋ ์ด์ง ํ์ผ์ ๊ธฐํธ(Labels), ์ ์ฐจ ๋ฐ ํจ์ ๋ชฉ๋ก(Proc), ๋ฌธ์์ด(Str)์ ๋ณผ ์ ์์ต๋๋ค. ์ด๋ค์ ๋ชจ๋ ๋ฌธ์์ด์ด ์๋๋ผ Mac-O ํ์ผ์ ์ฌ๋ฌ ๋ถ๋ถ(์: cstring ๋๋ objc_methname
)์ ์ ์๋ ๋ฌธ์์ด์
๋๋ค.
์ค๊ฐ ํจ๋
์ค๊ฐ ํจ๋์์๋ ๋์ค์ด์ ๋ธ๋ ์ฝ๋๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ์์ ๋์ค์ด์ ๋ธ, ๊ทธ๋ํ, ๋์ปดํ์ผ๋ ์ฝ๋ ๋ฐ ์ด์ง ํ์ผ๋ก ๊ฐ๊ฐ์ ์์ด์ฝ์ ํด๋ฆญํ์ฌ ๋ณผ ์ ์์ต๋๋ค:
์ฝ๋ ๊ฐ์ฒด๋ฅผ ์ค๋ฅธ์ชฝ ํด๋ฆญํ๋ฉด ํด๋น ๊ฐ์ฒด์ ๋ํ ์ฐธ์กฐ๋ฅผ ๋ณด๊ฑฐ๋ ์ด๋ฆ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค (์ด๊ฒ์ ๋์ปดํ์ผ๋ ์์ฌ ์ฝ๋์์๋ ์๋ํ์ง ์์ต๋๋ค):
๋ํ, ์ค๊ฐ ํ๋จ์์ ํ์ด์ฌ ๋ช ๋ น์ ์์ฑํ ์ ์์ต๋๋ค.
์ค๋ฅธ์ชฝ ํจ๋
์ค๋ฅธ์ชฝ ํจ๋์์๋ ํ์ ๊ธฐ๋ก(ํ์ฌ ์ํฉ์ ๋๋ฌํ ๋ฐฉ๋ฒ์ ์ ์ ์์), ํธ์ถ ๊ทธ๋ํ(์ด ํจ์๋ฅผ ํธ์ถํ๋ ๋ชจ๋ ํจ์์ ์ด ํจ์๊ฐ ํธ์ถํ๋ ๋ชจ๋ ํจ์), ์ง์ญ ๋ณ์ ์ ๋ณด๋ฅผ ํฌํจํ ํฅ๋ฏธ๋ก์ด ์ ๋ณด๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
dtrace
dtrace๋ ์ฌ์ฉ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋งค์ฐ ์ ์์ค์ผ๋ก ์ ๊ทผํ ์ ์๊ฒ ํด์ฃผ๋ฉฐ, ์ฌ์ฉ์๊ฐ ํ๋ก๊ทธ๋จ์ ์ถ์ ํ๊ณ ์คํ ํ๋ฆ์ ๋ณ๊ฒฝํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. Dtrace๋ ํ๋ก๋ธ๋ฅผ ์ฌ์ฉํ๋ฉฐ, ์ด๋ ์ปค๋ ์ ์ญ์ ๋ฐฐ์น๋์ด ์์คํ ํธ์ถ์ ์์๊ณผ ๋๊ณผ ๊ฐ์ ์์น์ ์์ต๋๋ค.
DTrace๋ ๊ฐ ์์คํ
ํธ์ถ์ ๋ํ ํ๋ก๋ธ๋ฅผ ์์ฑํ๊ธฐ ์ํด dtrace_probe_create
ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๋ฌํ ํ๋ก๋ธ๋ ๊ฐ ์์คํ
ํธ์ถ์ ์ง์
๋ฐ ์ข
๋ฃ ์ง์ ์์ ๋ฐ์ฌ๋ ์ ์์ต๋๋ค. DTrace์์ ์ํธ์์ฉ์ /dev/dtrace๋ฅผ ํตํด ์ด๋ฃจ์ด์ง๋ฉฐ, ์ด๋ root ์ฌ์ฉ์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
SIP ๋ณดํธ๋ฅผ ์์ ํ ๋นํ์ฑํํ์ง ์๊ณ Dtrace๋ฅผ ํ์ฑํํ๋ ค๋ฉด ๋ณต๊ตฌ ๋ชจ๋์์ ๋ค์์ ์คํํ ์ ์์ต๋๋ค: csrutil enable --without dtrace
๋ํ dtrace
๋๋ dtruss
์ด์ง ํ์ผ์ ์ปดํ์ผํ ๊ฒฝ์ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
dtrace์ ์ฌ์ฉ ๊ฐ๋ฅํ ํ๋ก๋ธ๋ ๋ค์๊ณผ ๊ฐ์ด ์ป์ ์ ์์ต๋๋ค:
ํ๋ก๋ธ ์ด๋ฆ์ ๋ค ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค: ์ ๊ณต์, ๋ชจ๋, ํจ์ ๋ฐ ์ด๋ฆ (fbt:mach_kernel:ptrace:entry
). ์ด๋ฆ์ ์ผ๋ถ๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด, Dtrace๋ ํด๋น ๋ถ๋ถ์ ์์ผ๋์นด๋๋ก ์ ์ฉํฉ๋๋ค.
DTrace๋ฅผ ๊ตฌ์ฑํ์ฌ ํ๋ก๋ธ๋ฅผ ํ์ฑํํ๊ณ ํ๋ก๋ธ๊ฐ ์๋ํ ๋ ์ํํ ์์ ์ ์ง์ ํ๋ ค๋ฉด D ์ธ์ด๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์์ธํ ์ค๋ช ๊ณผ ๋ ๋ง์ ์์ ๋ https://illumos.org/books/dtrace/chp-intro.html์์ ํ์ธํ ์ ์์ต๋๋ค.
์์
man -k dtrace
๋ฅผ ์คํํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ DTrace ์คํฌ๋ฆฝํธ๋ฅผ ๋์ดํฉ๋๋ค. ์: sudo dtruss -n binary
์คํฌ๋ฆฝํธ
dtruss
kdebug
์ปค๋ ์ถ์ ๊ธฐ๋ฅ์
๋๋ค. ๋ฌธ์ํ๋ ์ฝ๋๋ **/usr/share/misc/trace.codes
**์์ ์ฐพ์ ์ ์์ต๋๋ค.
latency
, sc_usage
, fs_usage
๋ฐ trace
์ ๊ฐ์ ๋๊ตฌ๋ ๋ด๋ถ์ ์ผ๋ก ์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
kdebug
์ ์ธํฐํ์ด์คํ๊ธฐ ์ํด sysctl
์ kern.kdebug
๋ค์์คํ์ด์ค๋ฅผ ํตํด ์ฌ์ฉ๋๋ฉฐ, ์ฌ์ฉํ MIB๋ bsd/kern/kdebug.c
์ ๊ตฌํ๋ ํจ์๊ฐ ์๋ sys/sysctl.h
์์ ์ฐพ์ ์ ์์ต๋๋ค.
์ปค์คํ ํด๋ผ์ด์ธํธ๋ก kdebug์ ์ํธ์์ฉํ๊ธฐ ์ํ ์ผ๋ฐ์ ์ธ ๋จ๊ณ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
KERN_KDSETREMOVE๋ก ๊ธฐ์กด ์ค์ ์ ๊ฑฐ
KERN_KDSETBUF ๋ฐ KERN_KDSETUP์ผ๋ก ์ถ์ ์ค์
KERN_KDGETBUF๋ก ๋ฒํผ ํญ๋ชฉ ์ ๊ฐ์ ธ์ค๊ธฐ
KERN_KDPINDEX๋ก ์ถ์ ์์ ์์ ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ธ์ค๊ธฐ
KERN_KDENABLE๋ก ์ถ์ ํ์ฑํ
KERN_KDREADTR ํธ์ถ๋ก ๋ฒํผ ์ฝ๊ธฐ
๊ฐ ์ค๋ ๋๋ฅผ ํ๋ก์ธ์ค์ ๋งค์นญํ๊ธฐ ์ํด KERN_KDTHRMAP ํธ์ถ.
์ด ์ ๋ณด๋ฅผ ์ป๊ธฐ ์ํด Apple ๋๊ตฌ trace
๋๋ ์ปค์คํ
๋๊ตฌ kDebugView (kdv)๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Kdebug๋ ํ ๋ฒ์ 1๋ช ์ ๊ณ ๊ฐ๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋์์ ์คํํ ์ ์๋ k-debug ๊ธฐ๋ฐ ๋๊ตฌ๋ ํ๋๋ฟ์ ๋๋ค.
ktrace
ktrace_*
API๋ libktrace.dylib
์์ ์ ๊ณต๋๋ฉฐ, ์ด๋ Kdebug
์ ๋ํผ์
๋๋ค. ๊ทธ๋ฐ ๋ค์ ํด๋ผ์ด์ธํธ๋ ktrace_session_create
๋ฐ ktrace_events_[single/class]
๋ฅผ ํธ์ถํ์ฌ ํน์ ์ฝ๋์ ๋ํ ์ฝ๋ฐฑ์ ์ค์ ํ๊ณ ktrace_start
๋ก ์์ํ ์ ์์ต๋๋ค.
SIP๊ฐ ํ์ฑํ๋ ์ํ์์๋ ์ด ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํด๋ผ์ด์ธํธ๋ก๋ ์ ํธ๋ฆฌํฐ ktrace
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค:
Or tailspin
.
kperf
์ด๊ฒ์ ์ปค๋ ์์ค ํ๋กํ์ผ๋ง์ ์ํํ๋ ๋ฐ ์ฌ์ฉ๋๋ฉฐ Kdebug
ํธ์ถ์ ์ฌ์ฉํ์ฌ ๊ตฌ์ถ๋ฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก, ์ ์ญ ๋ณ์ kernel_debug_active
๊ฐ ํ์ธ๋๊ณ ์ค์ ๋๋ฉด Kdebug
์ฝ๋์ ํธ์ถํ๋ ์ปค๋ ํ๋ ์์ ์ฃผ์๋ก kperf_kdebug_handler
๋ฅผ ํธ์ถํฉ๋๋ค. Kdebug
์ฝ๋๊ฐ ์ ํ๋ ๊ฒ๊ณผ ์ผ์นํ๋ฉด ๋นํธ๋งต์ผ๋ก ๊ตฌ์ฑ๋ "์์
"์ ๊ฐ์ ธ์ต๋๋ค(์ต์
์ osfmk/kperf/action.h
๋ฅผ ํ์ธํ์ญ์์ค).
Kperf์๋ sysctl MIB ํ
์ด๋ธ๋ ์์ต๋๋ค: (๋ฃจํธ๋ก) sysctl kperf
. ์ด ์ฝ๋๋ osfmk/kperf/kperfbsd.c
์์ ์ฐพ์ ์ ์์ต๋๋ค.
๊ฒ๋ค๊ฐ, Kperf์ ๊ธฐ๋ฅ์ ์ผ๋ถ๋ kpc
์ ์กด์ฌํ๋ฉฐ, ์ด๋ ๋จธ์ ์ฑ๋ฅ ์นด์ดํฐ์ ๋ํ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
ProcessMonitor
ProcessMonitor๋ ํ๋ก์ธ์ค๊ฐ ์ํํ๋ ํ๋ก์ธ์ค ๊ด๋ จ ์์ ์ ํ์ธํ๋ ๋ฐ ๋งค์ฐ ์ ์ฉํ ๋๊ตฌ์ ๋๋ค(์: ํ๋ก์ธ์ค๊ฐ ์์ฑํ๋ ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ๋ชจ๋ํฐ๋ง).
SpriteTree
SpriteTree๋ ํ๋ก์ธ์ค ๊ฐ์ ๊ด๊ณ๋ฅผ ์ถ๋ ฅํ๋ ๋๊ตฌ์
๋๋ค.
**sudo eslogger fork exec rename create > cap.json
**์ ๊ฐ์ ๋ช
๋ น์ผ๋ก Mac์ ๋ชจ๋ํฐ๋งํด์ผ ํฉ๋๋ค(์ด๋ฅผ ์คํํ๋ ํฐ๋ฏธ๋์ FDA๊ฐ ํ์ํฉ๋๋ค). ๊ทธ๋ฐ ๋ค์ ์ด ๋๊ตฌ์์ json์ ๋ก๋ํ์ฌ ๋ชจ๋ ๊ด๊ณ๋ฅผ ๋ณผ ์ ์์ต๋๋ค:
FileMonitor
FileMonitor๋ ํ์ผ ์ด๋ฒคํธ(์์ฑ, ์์ ๋ฐ ์ญ์ ์ ๊ฐ์)๋ฅผ ๋ชจ๋ํฐ๋งํ์ฌ ์ด๋ฌํ ์ด๋ฒคํธ์ ๋ํ ์์ธํ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
Crescendo
Crescendo๋ Microsoft Sysinternal์ _Procmon_์์ Windows ์ฌ์ฉ์๊ฐ ์ ์ ์๋ ๋ชจ์๊ณผ ๋๋์ ๊ฐ์ง GUI ๋๊ตฌ์ ๋๋ค. ์ด ๋๊ตฌ๋ ๋ค์ํ ์ด๋ฒคํธ ์ ํ์ ๊ธฐ๋ก์ ์์ํ๊ณ ์ค์งํ ์ ์์ผ๋ฉฐ, ํ์ผ, ํ๋ก์ธ์ค, ๋คํธ์ํฌ ๋ฑ๊ณผ ๊ฐ์ ์นดํ ๊ณ ๋ฆฌ๋ณ๋ก ์ด๋ฌํ ์ด๋ฒคํธ๋ฅผ ํํฐ๋งํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ , ๊ธฐ๋ก๋ ์ด๋ฒคํธ๋ฅผ json ํ์์ผ๋ก ์ ์ฅํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
Apple Instruments
Apple Instruments๋ Xcode์ ๊ฐ๋ฐ์ ๋๊ตฌ์ ์ผ๋ถ๋ก, ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง, ๋ฉ๋ชจ๋ฆฌ ๋์ ์๋ณ ๋ฐ ํ์ผ ์์คํ ํ๋ ์ถ์ ์ ์ฌ์ฉ๋ฉ๋๋ค.
fs_usage
ํ๋ก์ธ์ค๊ฐ ์ํํ๋ ์์ ์ ์ถ์ ํ ์ ์์ต๋๋ค:
TaskExplorer
Taskexplorer๋ ์ด์ง ํ์ผ์์ ์ฌ์ฉ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ์ฌ์ฉ ์ค์ธ ํ์ผ ๋ฐ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ํ์ธํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค. ๋ํ ์ด์ง ํ๋ก์ธ์ค๋ฅผ virustotal๊ณผ ๋์กฐํ์ฌ ์ด์ง ํ์ผ์ ๋ํ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ค๋๋ค.
PT_DENY_ATTACH
์ด ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์์๋ **SIP๊ฐ ๋นํ์ฑํ๋๋๋ผ๋ ๋๋ฒ๊น
์ ๋ฐฉ์งํ๊ธฐ ์ํด PT_DENY_ATTACH
**๋ฅผ ์ฌ์ฉํ ์คํ ์ค์ธ ๋ฐ๋ชฌ์ ๋๋ฒ๊น
ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
lldb
lldb๋ macOS ์ด์ง ๋๋ฒ๊น ์ ์ํ ์ฌ์ค์์ ๋๊ตฌ์ ๋๋ค.
๋น์ ์ ํ ํด๋์ ๋ค์ ์ค์ ํฌํจํ **.lldbinit
**๋ผ๋ ํ์ผ์ ์์ฑํ์ฌ lldb๋ฅผ ์ฌ์ฉํ ๋ intel ๋ง์ ์ค์ ํ ์ ์์ต๋๋ค:
lldb ๋ด๋ถ์์ process save-core
๋ก ํ๋ก์ธ์ค๋ฅผ ๋คํํฉ๋๋ค.
(lldb) ๋ช ๋ น์ด | ์ค๋ช |
run (r) | ์ค๋จ์ ์ ๋๋ฌํ๊ฑฐ๋ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋ ๋๊น์ง ๊ณ์ ์คํ์ ์์ํฉ๋๋ค. |
process launch --stop-at-entry | ์ง์ ์ ์์ ์ค๋จํ๋ฉฐ ์คํ์ ์์ํฉ๋๋ค. |
continue (c) | ๋๋ฒ๊น ์ค์ธ ํ๋ก์ธ์ค์ ์คํ์ ๊ณ์ํฉ๋๋ค. |
nexti (n / ni) | ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค. ์ด ๋ช ๋ น์ด๋ ํจ์ ํธ์ถ์ ๊ฑด๋๋๋๋ค. |
stepi (s / si) | ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค. nexti ๋ช ๋ น์ด์ ๋ฌ๋ฆฌ ์ด ๋ช ๋ น์ด๋ ํจ์ ํธ์ถ๋ก ๋ค์ด๊ฐ๋๋ค. |
finish (f) | ํ์ฌ ํจ์(โํ๋ ์โ)์ ๋๋จธ์ง ๋ช ๋ น์ด๋ฅผ ์คํํ๊ณ ๋ฐํ ํ ์ค๋จํฉ๋๋ค. |
control + c | ์คํ์ ์ผ์ ์ค์งํฉ๋๋ค. ํ๋ก์ธ์ค๊ฐ ์คํ(run)๋์๊ฑฐ๋ ๊ณ์(continue)๋์๋ค๋ฉด, ํ์ฌ ์คํ ์ค์ธ ์์น์์ ํ๋ก์ธ์ค๊ฐ ์ค๋จ๋ฉ๋๋ค. |
breakpoint (b) |
breakpoint delete <num> |
help | help breakpoint # ์ค๋จ์ ๋ช ๋ น์ด ๋์๋ง help memory write # ๋ฉ๋ชจ๋ฆฌ์ ์ฐ๊ธฐ ์ํ ๋์๋ง |
reg | |
x/s <reg/memory address> | ๋ฉ๋ชจ๋ฆฌ๋ฅผ null๋ก ์ข ๋ฃ๋ ๋ฌธ์์ด๋ก ํ์ํฉ๋๋ค. |
x/i <reg/memory address> | ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด์ ๋ธ๋ฆฌ ๋ช ๋ น์ด๋ก ํ์ํฉ๋๋ค. |
x/b <reg/memory address> | ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ฐ์ดํธ๋ก ํ์ํฉ๋๋ค. |
print object (po) | ์ด ๋ช ๋ น์ด๋ ๋งค๊ฐ๋ณ์๋ก ์ฐธ์กฐ๋ ๊ฐ์ฒด๋ฅผ ์ถ๋ ฅํฉ๋๋ค. po $raw
๋๋ถ๋ถ์ Apple์ Objective-C API ๋๋ ๋ฉ์๋๋ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ฏ๋ก โprint objectโ (po) ๋ช
๋ น์ด๋ฅผ ํตํด ํ์ํด์ผ ํฉ๋๋ค. po๊ฐ ์๋ฏธ ์๋ ์ถ๋ ฅ์ ์์ฑํ์ง ์์ผ๋ฉด |
memory | memory read 0x000.... memory read $x0+0xf2a memory write 0x100600000 -s 4 0x41414141 # ํด๋น ์ฃผ์์ AAAA ์ฐ๊ธฐ memory write -f s $rip+0x11f+7 "AAAA" # ํด๋น ์ฃผ์์ AAAA ์ฐ๊ธฐ |
disassembly | dis # ํ์ฌ ํจ์์ ๋์ค์ด์ ๋ธ๋ฆฌ dis -n <funcname> # ํจ์์ ๋์ค์ด์ ๋ธ๋ฆฌ dis -n <funcname> -b <basename> # ํจ์์ ๋์ค์ด์ ๋ธ๋ฆฌ dis -c 6 # 6์ค ๋์ค์ด์ ๋ธ๋ฆฌ dis -c 0x100003764 -e 0x100003768 # ํ ์ฃผ์์์ ๋ค๋ฅธ ์ฃผ์๊น์ง dis -p -c 4 # ํ์ฌ ์ฃผ์์์ ๋์ค์ด์ ๋ธ๋ฆฌ ์์ |
parray | parray 3 (char **)$x1 # x1 ๋ ์ง์คํฐ์ 3๊ฐ ๊ตฌ์ฑ ์์ ๋ฐฐ์ด ํ์ธ |
image dump sections | ํ์ฌ ํ๋ก์ธ์ค ๋ฉ๋ชจ๋ฆฌ์ ๋งต์ ์ถ๋ ฅํฉ๋๋ค. |
image dump symtab <library> |
|
objc_sendMsg
ํจ์๋ฅผ ํธ์ถํ ๋, rsi ๋ ์ง์คํฐ๋ null๋ก ์ข
๋ฃ๋ (โCโ) ๋ฌธ์์ด๋ก์ ๋ฉ์๋์ ์ด๋ฆ์ ๋ณด์ ํฉ๋๋ค. lldb๋ฅผ ํตํด ์ด๋ฆ์ ์ถ๋ ฅํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํ์ธ์:
(lldb) x/s $rsi: 0x1000f1576: "startMiningWithPort:password:coreCount:slowMemory:currency:"
(lldb) print (char*)$rsi:
(char *) $1 = 0x00000001000f1576 "startMiningWithPort:password:coreCount:slowMemory:currency:"
(lldb) reg read $rsi: rsi = 0x00000001000f1576 "startMiningWithPort:password:coreCount:slowMemory:currency:"
๋์ ๋ถ์ ๋ฐฉ์ง
VM ํ์ง
sysctl hw.model
๋ช ๋ น์ด๋ ํธ์คํธ๊ฐ MacOS์ผ ๋ "Mac"์ ๋ฐํํ์ง๋ง VM์ผ ๋๋ ๋ค๋ฅธ ๊ฐ์ ๋ฐํํฉ๋๋ค.hw.logicalcpu
๋ฐ **hw.physicalcpu
**์ ๊ฐ์ ์กฐ์ํ์ฌ ์ผ๋ถ ์ ์ฑ์ฝ๋๋ VM์ธ์ง ๊ฐ์งํ๋ ค๊ณ ํฉ๋๋ค.์ผ๋ถ ์ ์ฑ์ฝ๋๋ MAC ์ฃผ์(00:50:56)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก VMware์ธ์ง๋ ํ์งํ ์ ์์ต๋๋ค.
๊ฐ๋จํ ์ฝ๋๋ก ํ๋ก์ธ์ค๊ฐ ๋๋ฒ๊น ๋๊ณ ์๋์ง ํ์ธํ ์ ์์ต๋๋ค:
if(P_TRACED == (info.kp_proc.p_flag & P_TRACED)){ //๋๋ฒ๊น ์ค์ธ ํ๋ก์ธ์ค }
ptrace
์์คํ ํธ์ถ์PT_DENY_ATTACH
ํ๋๊ทธ์ ํจ๊ป ํธ์ถํ ์๋ ์์ต๋๋ค. ์ด๋ ๋๋ฒ๊ฑฐ๊ฐ ์ฐ๊ฒฐํ๊ณ ์ถ์ ํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.sysctl
๋๋ptrace
ํจ์๊ฐ ๊ฐ์ ธ์์ง๋์ง ํ์ธํ ์ ์์ต๋๋ค (ํ์ง๋ง ์ ์ฑ์ฝ๋๋ ๋์ ์ผ๋ก ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค).์ด ๊ธ์์ ์ธ๊ธ๋ ๋ฐ์ ๊ฐ์ด, โ๋๋ฒ๊ทธ ๋ฐฉ์ง ๊ธฐ์ ๋ฌด๋ ฅํ: macOS ptrace ๋ณํโ : โ๋ฉ์์ง Process # exited with **status = 45 (0x0000002d)**๋ ๋๋ฒ๊ทธ ๋์์ด PT_DENY_ATTACH๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ ์ ํธ์ ๋๋ค.โ
์ฝ์ด ๋คํ
์ฝ์ด ๋คํ๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ์์ฑ๋ฉ๋๋ค:
kern.coredump
sysctl์ด 1๋ก ์ค์ ๋์ด ์์ ๋ (๊ธฐ๋ณธ๊ฐ)ํ๋ก์ธ์ค๊ฐ suid/sgid๊ฐ ์๋๊ฑฐ๋
kern.sugid_coredump
๊ฐ 1์ผ ๋ (๊ธฐ๋ณธ๊ฐ์ 0)AS_CORE
์ ํ์ด ์์ ์ ํ์ฉํ ๋.ulimit -c 0
์ ํธ์ถํ์ฌ ์ฝ๋ ๋คํ ์์ฑ์ ์ต์ ํ ์ ์์ผ๋ฉฐ,ulimit -c unlimited
๋ก ๋ค์ ํ์ฑํํ ์ ์์ต๋๋ค.
์ด ๊ฒฝ์ฐ ์ฝ์ด ๋คํ๋ kern.corefile
sysctl์ ๋ฐ๋ผ ์์ฑ๋๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก /cores/core/.%P
์ ์ ์ฅ๋ฉ๋๋ค.
ํผ์ง
ReportCrash๋ ์ถฉ๋ํ๋ ํ๋ก์ธ์ค๋ฅผ ๋ถ์ํ๊ณ ์ถฉ๋ ๋ณด๊ณ ์๋ฅผ ๋์คํฌ์ ์ ์ฅํฉ๋๋ค. ์ถฉ๋ ๋ณด๊ณ ์๋ ๊ฐ๋ฐ์๊ฐ ์ถฉ๋ ์์ธ์ ์ง๋จํ๋ ๋ฐ ๋์์ด ๋๋ ์ ๋ณด๋ฅผ ํฌํจํฉ๋๋ค.
์ฌ์ฉ์๋ณ launchd ์ปจํ
์คํธ์์ ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์
๋ฐ ๊ธฐํ ํ๋ก์ธ์ค์ ๋ํด ReportCrash๋ LaunchAgent๋ก ์คํ๋๋ฉฐ ์ฌ์ฉ์์ ~/Library/Logs/DiagnosticReports/
์ ์ถฉ๋ ๋ณด๊ณ ์๋ฅผ ์ ์ฅํฉ๋๋ค.
๋ฐ๋ชฌ, ์์คํ
launchd ์ปจํ
์คํธ์์ ์คํ๋๋ ๊ธฐํ ํ๋ก์ธ์ค ๋ฐ ๊ธฐํ ๊ถํ ์๋ ํ๋ก์ธ์ค์ ๋ํด ReportCrash๋ LaunchDaemon์ผ๋ก ์คํ๋๋ฉฐ ์์คํ
์ /Library/Logs/DiagnosticReports
์ ์ถฉ๋ ๋ณด๊ณ ์๋ฅผ ์ ์ฅํฉ๋๋ค.
์ถฉ๋ ๋ณด๊ณ ์๊ฐ Apple๋ก ์ ์ก๋๋ ๊ฒ์ด ๊ฑฑ์ ๋๋ค๋ฉด ์ด๋ฅผ ๋นํ์ฑํํ ์ ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ถฉ๋ ๋ณด๊ณ ์๋ ์๋ฒ๊ฐ ์ด๋ป๊ฒ ์ถฉ๋ํ๋์ง ํ์ ํ๋ ๋ฐ ์ ์ฉํ ์ ์์ต๋๋ค.
Sleep
MacOS์์ ํผ์งํ ๋ Mac์ด ์ ๋ค์ง ์๋๋ก ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค:
systemsetup -setsleep Never
pmset, ์์คํ ํ๊ฒฝ์ค์
SSH Disconnect
SSH ์ฐ๊ฒฐ์ ํตํด ํผ์งํ๋ ๊ฒฝ์ฐ ์ธ์ ์ด ์ข ๋ฃ๋์ง ์๋๋ก ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋ฐ๋ผ์ sshd_config ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝํ์ญ์์ค:
TCPKeepAlive Yes
ClientAliveInterval 0
ClientAliveCountMax 0
Internal Handlers
๋ค์ ํ์ด์ง๋ฅผ ํ์ธํ์ธ์ ์ด๋ค ์ฑ์ด ์ง์ ๋ ์คํด ๋๋ ํ๋กํ ์ฝ์ ์ฒ๋ฆฌํ๋์ง ์ฐพ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์:
macOS File Extension & URL scheme app handlersEnumerating Network Processes
๋คํธ์ํฌ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ํ๋ก์ธ์ค๋ฅผ ์ฐพ๋ ๊ฒ์ ํฅ๋ฏธ๋กญ์ต๋๋ค:
๋๋ netstat
๋๋ lsof
๋ฅผ ์ฌ์ฉํ์ธ์.
Libgmalloc
ํผ์
CLI ๋๊ตฌ์ ์๋ํฉ๋๋ค.
macOS GUI ๋๊ตฌ์ "๊ทธ๋ฅ ์๋ํฉ๋๋ค". ์ผ๋ถ macOS ์ฑ์ ๊ณ ์ ํ ํ์ผ ์ด๋ฆ, ์ฌ๋ฐ๋ฅธ ํ์ฅ์์ ๊ฐ์ ํน์ ์๊ตฌ ์ฌํญ์ด ์์ผ๋ฉฐ, ์๋๋ฐ์ค์์ ํ์ผ์ ์ฝ์ด์ผ ํฉ๋๋ค (~/Library/Containers/com.apple.Safari/Data
)...
๋ช ๊ฐ์ง ์:
๋ ๋ง์ ํผ์ง MacOS ์ ๋ณด
์ฐธ๊ณ ๋ฌธํ
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE) GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE)
Last updated