Android ์•ˆํ‹ฐ ์ธ์ŠคํŠธ๋ฃจ๋ฉ˜ํ…Œ์ด์…˜ & SSL Pinning ์šฐํšŒ (Frida/Objection)

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

์ด ํŽ˜์ด์ง€๋Š” Android ์•ฑ์ด instrumentation์„ ๊ฐ์ง€/์ฐจ๋‹จํ•˜๊ฑฐ๋‚˜ TLS pinning์„ ์ ์šฉํ•  ๋•Œ dynamic analysis๋ฅผ ๋ณต๊ตฌํ•˜๊ธฐ ์œ„ํ•œ ์‹ค์šฉ์ ์ธ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋น ๋ฅธ ๋ถ„๋ฅ˜, ์ผ๋ฐ˜์ ์ธ ๊ฐ์ง€ ๊ธฐ๋ฒ•, ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์žฌํŒจํ‚ค์ง• ์—†์ด ์šฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” ๋ณต์‚ฌยท๋ถ™์—ฌ๋„ฃ๊ธฐ ๊ฐ€๋Šฅํ•œ ํ›…/์ „์ˆ ์— ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค.

Detection Surface (์•ฑ์ด ๊ฒ€์‚ฌํ•˜๋Š” ํ•ญ๋ชฉ)

  • Root checks: su binary, Magisk paths, getprop values, common root packages
  • Frida/debugger checks (Java): Debug.isDebuggerConnected(), ActivityManager.getRunningAppProcesses(), getRunningServices(), scanning /proc, classpath, loaded libs
  • Native antiโ€‘debug: ptrace(), syscalls, antiโ€‘attach, breakpoints, inline hooks
  • Early init checks: Application.onCreate() or process start hooks that crash if instrumentation is present
  • TLS pinning: custom TrustManager/HostnameVerifier, OkHttp CertificatePinner, Conscrypt pinning, native pins

Step 1 โ€” Quick win: Magisk DenyList๋กœ ๋ฃจํŠธ ์ˆจ๊ธฐ๊ธฐ

  • Magisk์—์„œ Zygisk ํ™œ์„ฑํ™”
  • DenyList ํ™œ์„ฑํ™”ํ•˜๊ณ  ๋Œ€์ƒ ํŒจํ‚ค์ง€ ์ถ”๊ฐ€
  • ์žฌ๋ถ€ํŒ… ํ›„ ์žฌ๊ฒ€์ฆ

๋งŽ์€ ์•ฑ์€ ๋ช…๋ฐฑํ•œ ์ง€ํ‘œ(su/Magisk ๊ฒฝ๋กœ/getprop)๋งŒ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. DenyList๋Š” ๋Œ€๊ฐœ ๋‹จ์ˆœํ•œ ๊ฒ€์‚ฌ๋“ค์„ ๋ฌด๋ ฅํ™”ํ•ฉ๋‹ˆ๋‹ค.

References:

  • Magisk (Zygisk & DenyList): https://github.com/topjohnwu/Magisk

Step 2 โ€” 30โ€‘second Frida Codeshare ํ…Œ์ŠคํŠธ

์‹ฌ์ธต ๋ถ„์„์— ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ํ”ํžˆ ์‚ฌ์šฉํ•˜๋Š” dropโ€‘in ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹œ๋„ํ•ด๋ณด์„ธ์š”:

  • anti-root-bypass.js
  • anti-frida-detection.js
  • hide_frida_gum.js

Example:

frida -U -f com.example.app -l anti-frida-detection.js

์ด๋“ค์€ ์ผ๋ฐ˜์ ์œผ๋กœ Java์˜ root/debug ์ฒดํฌ, ํ”„๋กœ์„ธ์Šค/์„œ๋น„์Šค ์Šค์บ”, ๊ทธ๋ฆฌ๊ณ  ๋„ค์ดํ‹ฐ๋ธŒ ptrace()๋ฅผ ์Šคํ… ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋ณดํ˜ธ ์ˆ˜์ค€์ด ๋‚ฎ์€ ์•ฑ์—์„œ๋Š” ์œ ์šฉํ•˜์ง€๋งŒ, ๊ฐ•ํ™”๋œ ๋Œ€์ƒ์€ ๋งž์ถคํ˜• ํ›…์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Codeshare: https://codeshare.frida.re/

Medusa๋กœ ์ž๋™ํ™” (Frida framework)

Medusa๋Š” SSL unpinning, root/emulator detection bypass, HTTP comms logging, crypto key interception ๋“ฑ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” 90๊ฐœ ์ด์ƒ์˜ ๊ธฐ์„ฑ ๋ชจ๋“ˆ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

git clone https://github.com/Ch0pin/medusa
cd medusa
pip install -r requirements.txt
python medusa.py

# Example interactive workflow
show categories
use http_communications/multiple_unpinner
use root_detection/universal_root_detection_bypass
run com.target.app

ํŒ: Medusa๋Š” custom hooks๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์ „์— ๋น ๋ฅธ ์„ฑ๊ณผ๋ฅผ ์–ป๊ธฐ์— ๋งค์šฐ ์ข‹์Šต๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์„ ์„ ๋ณ„(cherry-pick)ํ•˜์—ฌ ์ž์ฒด ์Šคํฌ๋ฆฝํŠธ์™€ ๊ฒฐํ•ฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Step 3 โ€” ๋Šฆ๊ฒŒ attachํ•˜์—ฌ init-time detectors๋ฅผ ์šฐํšŒ

๋งŽ์€ ํƒ์ง€๋“ค์€ process spawn/onCreate() ๋™์•ˆ์—๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. Spawnโ€‘time injection (-f)์ด๋‚˜ gadgets๋Š” ํƒ์ง€๋  ์ˆ˜ ์žˆ๊ณ , UI๊ฐ€ ๋กœ๋“œ๋œ ์ดํ›„์— attachingํ•˜๋ฉด ์šฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

# Launch the app normally (launcher/adb), wait for UI, then attach
frida -U -n com.example.app
# Or with Objection to attach to running process
aobjection --gadget com.example.app explore  # if using gadget

Step 4 โ€” Jadx์™€ string hunting์„ ํ†ตํ•ด ํƒ์ง€ ๋กœ์ง ๋งคํ•‘

Jadx์—์„œ์˜ ์ •์  ๋ถ„๋ฅ˜ ํ‚ค์›Œ๋“œ:

  • โ€œfridaโ€, โ€œgumโ€, โ€œrootโ€, โ€œmagiskโ€, โ€œptraceโ€, โ€œsuโ€, โ€œgetpropโ€, โ€œdebuggerโ€

์ผ๋ฐ˜์ ์ธ Java ํŒจํ„ด:

public boolean isFridaDetected() {
return getRunningServices().contains("frida");
}

๊ฒ€ํ† /ํ›„ํ‚นํ•  ์ผ๋ฐ˜์ ์ธ API:

  • android.os.Debug.isDebuggerConnected
  • android.app.ActivityManager.getRunningAppProcesses / getRunningServices
  • java.lang.System.loadLibrary / System.load (native bridge)
  • java.lang.Runtime.exec / ProcessBuilder (probing commands)
  • android.os.SystemProperties.get (root/emulator heuristics)

5๋‹จ๊ณ„ โ€” Frida (Java)๋ฅผ ์‚ฌ์šฉํ•œ ๋Ÿฐํƒ€์ž„ ์Šคํ… ์ ์šฉ

repacking ์—†์ด ์ปค์Šคํ…€ ๊ฐ€๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œํ•˜์—ฌ ์•ˆ์ „ํ•œ ๊ฐ’์„ ๋ฐ˜ํ™˜:

Java.perform(() => {
const Checks = Java.use('com.example.security.Checks');
Checks.isFridaDetected.implementation = function () { return false; };

// Neutralize debugger checks
const Debug = Java.use('android.os.Debug');
Debug.isDebuggerConnected.implementation = function () { return false; };

// Example: kill ActivityManager scans
const AM = Java.use('android.app.ActivityManager');
AM.getRunningAppProcesses.implementation = function () { return java.util.Collections.emptyList(); };
});

์ดˆ๊ธฐ ํฌ๋ž˜์‹œ๋ฅผ ๋ถ„๋ฅ˜ ์ค‘์ธ๊ฐ€์š”? ์ข…๋ฃŒ ์ง์ „์— ํด๋ž˜์Šค๋ฅผ ๋คํ”„ํ•˜์—ฌ ํƒ์ง€ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ฐพ์•„๋ณด์„ธ์š”:

Java.perform(() => {
Java.enumerateLoadedClasses({
onMatch: n => console.log(n),
onComplete: () => console.log('Done')
});
});

// Quick root detection stub example (adapt to target package/class names) Java.perform(() => { try { const RootChecker = Java.use(โ€˜com.target.security.RootCheckโ€™); RootChecker.isDeviceRooted.implementation = function () { return false; }; } catch (e) {} });

์‹คํ–‰ ํ๋ฆ„์„ ํ™•์ธํ•˜๋ ค๋ฉด ์˜์‹ฌ์Šค๋Ÿฌ์šด ๋ฉ”์„œ๋“œ๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ๋ฌด๋ ฅํ™”ํ•˜์„ธ์š”:

Java.perform(() => {
const Det = Java.use('com.example.security.DetectionManager');
Det.checkFrida.implementation = function () {
console.log('checkFrida() called');
return false;
};
});

์—๋ฎฌ๋ ˆ์ดํ„ฐ/VM ํƒ์ง€ ์šฐํšŒ (Java stubs)

์ผ๋ฐ˜์ ์ธ ํœด๋ฆฌ์Šคํ‹ฑ: Build.FINGERPRINT/MODEL/MANUFACTURER/HARDWARE ํ•„๋“œ์— generic/goldfish/ranchu/sdk ํฌํ•จ; QEMU ์•„ํ‹ฐํŒฉํŠธ ์˜ˆ: /dev/qemu_pipe, /dev/socket/qemud; ๊ธฐ๋ณธ MAC 02:00:00:00:00:00; 10.0.2.x NAT; telephony/sensors๊ฐ€ ์—†์Œ.

Build ํ•„๋“œ์˜ ๋น ๋ฅธ ์Šคํ‘ธํ•‘:

Java.perform(function(){
var Build = Java.use('android.os.Build');
Build.MODEL.value = 'Pixel 7 Pro';
Build.MANUFACTURER.value = 'Google';
Build.BRAND.value = 'google';
Build.FINGERPRINT.value = 'google/panther/panther:14/UP1A.231105.003/1234567:user/release-keys';
});

ํŒŒ์ผ ์กด์žฌ ๊ฒ€์‚ฌ ๋ฐ ์‹๋ณ„์ž (TelephonyManager.getDeviceId/SubscriberId, WifiInfo.getMacAddress, SensorManager.getSensorList)์— ๋Œ€ํ•œ ์Šคํ…์„ ์ถ”๊ฐ€ํ•˜์—ฌ ํ˜„์‹ค์ ์ธ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ๋ณด์™„ํ•˜์„ธ์š”.

SSL pinning bypass quick hook (Java)

์‚ฌ์šฉ์ž ์ •์˜ TrustManagers๋ฅผ ๋ฌด๋ ฅํ™”ํ•˜๊ณ  permissive SSL contexts๋ฅผ ๊ฐ•์ œํ•˜์„ธ์š”:

Java.perform(function(){
var X509TrustManager = Java.use('javax.net.ssl.X509TrustManager');
var SSLContext = Java.use('javax.net.ssl.SSLContext');

// No-op validations
X509TrustManager.checkClientTrusted.implementation = function(){ };
X509TrustManager.checkServerTrusted.implementation = function(){ };

// Force permissive TrustManagers
var TrustManagers = [ X509TrustManager.$new() ];
var SSLContextInit = SSLContext.init.overload('[Ljavax.net.ssl.KeyManager;','[Ljavax.net.ssl.TrustManager;','java.security.SecureRandom');
SSLContextInit.implementation = function(km, tm, sr){
return SSLContextInit.call(this, km, TrustManagers, sr);
};
});

์ฐธ๊ณ 

  • OkHttp ํ™•์žฅ: ํ•„์š”์— ๋”ฐ๋ผ okhttp3.CertificatePinner์™€ HostnameVerifier๋ฅผ hookํ•˜๊ฑฐ๋‚˜ CodeShare์˜ universal unpinning script๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.
  • ์‹คํ–‰ ์˜ˆ์‹œ: frida -U -f com.target.app -l ssl-bypass.js --no-pause

Step 6 โ€” Java hooks๊ฐ€ ์‹คํŒจํ•  ๋•Œ JNI/native ํ”์ ์„ ๋”ฐ๋ผ๊ฐ€์„ธ์š”

JNI ์—”ํŠธ๋ฆฌ ํฌ์ธํŠธ๋ฅผ ์ถ”์ ํ•ด native loaders์™€ detection init์„ ์ฐพ์•„๋ณด์„ธ์š”:

frida-trace -n com.example.app -i "JNI_OnLoad"

๋ฒˆ๋“ค๋œ .so ํŒŒ์ผ์˜ ๋น ๋ฅธ ๋„ค์ดํ‹ฐ๋ธŒ ์„ ๋ณ„:

# List exported symbols & JNI
nm -D libfoo.so | head
objdump -T libfoo.so | grep Java_
strings -n 6 libfoo.so | egrep -i 'frida|ptrace|gum|magisk|su|root'

์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ/๋„ค์ดํ‹ฐ๋ธŒ ๋ฆฌ๋ฒ„์‹ฑ:

  • Ghidra: https://ghidra-sre.org/
  • r2frida: https://github.com/nowsecure/r2frida

์˜ˆ: ptrace๋ฅผ ๋ฌด๋ ฅํ™”ํ•˜์—ฌ libc์˜ ๊ฐ„๋‹จํ•œ antiโ€‘debug๋ฅผ ์šฐํšŒ:

const ptrace = Module.findExportByName(null, 'ptrace');
if (ptrace) {
Interceptor.replace(ptrace, new NativeCallback(function () {
return -1; // pretend failure
}, 'int', ['int', 'int', 'pointer', 'pointer']));
}

์ฐธ๊ณ : Reversing Native Libraries

๋‹จ๊ณ„ 7 โ€” Objection patching (embed gadget / strip basics)

runtime hooks ๋Œ€์‹  repacking์„ ์„ ํ˜ธํ•œ๋‹ค๋ฉด, ์‹œ๋„ํ•ด๋ณด์„ธ์š”:

objection patchapk --source app.apk

Notes:

  • apktool ํ•„์š”; ๋นŒ๋“œ ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๋ ค๋ฉด ๊ณต์‹ ๊ฐ€์ด๋“œ์—์„œ ์ตœ์‹  ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์„ธ์š”: https://apktool.org/docs/install
  • Gadget injection์€ ๋ฃจํŠธ ์—†์ด instrumentation์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜์ง€๋งŒ, ์—ฌ์ „ํžˆ ๋” ๊ฐ•๋ ฅํ•œ initโ€‘time ๊ฒ€์‚ฌ์— ์˜ํ•ด ํƒ์ง€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ ํƒ์ ์œผ๋กœ LSPosed ๋ชจ๋“ˆ๊ณผ Shamiko๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ Zygisk ํ™˜๊ฒฝ์—์„œ ๋” ๊ฐ•๋ ฅํ•˜๊ฒŒ ๋ฃจํŠธ ์ˆจ๊น€์„ ํ•˜๊ณ , DenyList๋ฅผ ์กฐ์ •ํ•˜์—ฌ ์ž์‹ ํ”„๋กœ์„ธ์Šค๊นŒ์ง€ ํฌํ•จํ•˜์„ธ์š”.

For a complete workflow including script-mode Gadget configuration and bundling your Frida 17+ agent into the APK, see:

Frida Tutorial โ€” Self-contained agent + Gadget embedding

References:

  • Objection: https://github.com/sensepost/objection

Step 8 โ€” ํด๋ฐฑ: ๋„คํŠธ์›Œํฌ ๊ฐ€์‹œ์„ฑ ํ™•๋ณด๋ฅผ ์œ„ํ•œ TLS pinning ํŒจ์น˜

instrumentation์ด ์ฐจ๋‹จ๋˜๋ฉด, pinning์„ ์ •์ ์œผ๋กœ ์ œ๊ฑฐํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ์„ ์—ฌ์ „ํžˆ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

apk-mitm app.apk
# Then install the patched APK and proxy via Burp/mitmproxy
  • ๋„๊ตฌ: https://github.com/shroudedcode/apk-mitm
  • ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ CAโ€‘trust ํŠธ๋ฆญ(๋ฐ Android 7+ user CA trust)์— ๋Œ€ํ•ด์„œ๋Š” ๋‹ค์Œ์„ ์ฐธ์กฐ:

Make APK Accept CA Certificate

Install Burp Certificate

์œ ์šฉํ•œ ๋ช…๋ น์–ด ์น˜ํŠธ์‹œํŠธ

# List processes and attach
frida-ps -Uai
frida -U -n com.example.app

# Spawn with a script (may trigger detectors)
frida -U -f com.example.app -l anti-frida-detection.js

# Trace native init
frida-trace -n com.example.app -i "JNI_OnLoad"

# Objection runtime
objection --gadget com.example.app explore

# Static TLS pinning removal
apk-mitm app.apk

๋ฒ”์šฉ proxy ๊ฐ•์ œํ™” + TLS unpinning (HTTP Toolkit Frida hooks)

์ตœ์‹  ์•ฑ๋“ค์€ ์ข…์ข… system proxies๋ฅผ ๋ฌด์‹œํ•˜๊ณ  pinning(Java + native)์˜ ์—ฌ๋Ÿฌ ๋ ˆ์ด์–ด๋ฅผ ์ ์šฉํ•ด, user/system CAs๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์–ด๋„ ํŠธ๋ž˜ํ”ฝ ์บก์ฒ˜๊ฐ€ ๋งค์šฐ ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค. ์‹ค๋ฌด์ ์œผ๋กœ๋Š” ๋ฒ”์šฉ TLS unpinning๊ณผ ์ค€๋น„๋œ Frida hooks๋ฅผ ํ†ตํ•œ proxy ๊ฐ•์ œํ™”๋ฅผ ๊ฒฐํ•ฉํ•˜๊ณ  ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์„ mitmproxy/Burp๋กœ ๋ผ์šฐํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

Workflow

  • ํ˜ธ์ŠคํŠธ์—์„œ mitmproxy(๋˜๋Š” Burp)๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋””๋ฐ”์ด์Šค๊ฐ€ ํ˜ธ์ŠคํŠธ IP/ํฌํŠธ์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธํ•˜์„ธ์š”.
  • HTTP Toolkit์˜ ํ†ตํ•ฉ Frida hooks๋ฅผ ๋กœ๋“œํ•˜์—ฌ TLS unpinning๊ณผ OkHttp/OkHttp3, HttpsURLConnection, Conscrypt, WebView ๋“ฑ ์ผ๋ฐ˜ ์Šคํƒ ์ „๋ฐ˜์— ๋Œ€ํ•œ proxy ์‚ฌ์šฉ ๊ฐ•์ œํ™”๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ์Šคํฌ๋ฆฝํŠธ๋Š” CertificatePinner/TrustManager ๊ฒ€์‚ฌ๋ฅผ ์šฐํšŒํ•˜๊ณ  proxy selectors๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œํ•˜๋ฏ€๋กœ, ์•ฑ์ด ๋ช…์‹œ์ ์œผ๋กœ proxy๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ด๋„ ํŠธ๋ž˜ํ”ฝ์ด ํ•ญ์ƒ ๋‹น์‹ ์˜ proxy๋ฅผ ํ†ตํ•ด ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
  • Frida์™€ ํ›… ์Šคํฌ๋ฆฝํŠธ๋กœ ๋Œ€์ƒ ์•ฑ์„ ์‹œ์ž‘ํ•œ ๋’ค mitmproxy์—์„œ ์š”์ฒญ์„ ์บก์ฒ˜ํ•˜์„ธ์š”.

Example

# Device connected via ADB or over network (-U)
# See the repo for the exact script names & options
frida -U -f com.vendor.app \
-l ./android-unpinning-with-proxy.js \
--no-pause

# mitmproxy listening locally
mitmproxy -p 8080

๋…ธํŠธ

  • ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์‹œ์Šคํ…œ ์ „์ฒด ํ”„๋ก์‹œ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์„ธ์š”: adb shell settings put global http_proxy <host>:<port>. Frida ํ›„ํฌ๋Š” ์•ฑ์ด ๊ธ€๋กœ๋ฒŒ ์„ค์ •์„ ์šฐํšŒํ•  ๋•Œ์—๋„ ํ”„๋ก์‹œ ์‚ฌ์šฉ์„ ๊ฐ•์ œํ•ฉ๋‹ˆ๋‹ค.
  • ์ด ๊ธฐ์ˆ ์€ pinning/proxy ํšŒํ”ผ๊ฐ€ ํ”ํ•œ ๋ชจ๋ฐ”์ผโ†’IoT ์˜จ๋ณด๋”ฉ ํ”Œ๋กœ์šฐ๋ฅผ MITMํ•ด์•ผ ํ•  ๋•Œ ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค.
  • Hooks: https://github.com/httptoolkit/frida-interception-and-unpinning

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