๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ”’์ •๋ณด๋ณด์•ˆ/๋ชจ๋ฐ”์ผ ๋ณด์•ˆ

ํ”„๋ฆฌ๋‹ค - Uncrackable1 ROOTING ๊ฐ์ง€ ์šฐํšŒํ•˜๊ธฐ

by Janger 2022. 6. 23.
728x90
๋ฐ˜์‘ํ˜•
์•ฑ ์„ค์น˜

https://github.com/OWASP/owasp-mstg/tree/master/Crackmes/Android/Level_01

 

GitHub - OWASP/owasp-mstg: The Mobile Security Testing Guide (MSTG) is a comprehensive manual for mobile app security testing an

The Mobile Security Testing Guide (MSTG) is a comprehensive manual for mobile app security testing and reverse engineering. It describes the technical processes for verifying the controls listed in...

github.com

 

์œ„์—์„œ "UnCrackable-Level1.apk"๋ฅผ ๋‹ค์šดํ•ด์„œ ์•ˆ๋“œ๋กœ์ด๋“œ๋กœ ์„ค์น˜

NOX๋ผ๋ฉด ์‹คํ–‰ํŒŒ์ผ์„ ๋”๋ธ” ํด๋ฆญํ•˜๋ฉด ๋ฐ”๋กœ ์„ค์น˜๊ฐ€ ๊ฐ€๋Šฅํ•จ

 

 

 

โ€ป ์ด ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ๋Š” NOX์˜ ROOT๊ฐ€ ํ™œ์„ฑํ™”๊ฐ€ ๋˜์–ด์žˆ์–ด์•ผ ํ•จ.

 

 

 

๋ฐฉ๊ธˆ์ „์˜ apk๋ฅผ ์„ค์น˜ํ•˜๊ฒŒ ๋˜๋ฉด Uncrackable1์ด๋ผ๋Š” ์•ฑ ์•„์ด์ฝ˜์ด ์ƒ๊ธฐ๊ฒŒ ๋˜๋Š”๋ฐ ์ด๋ฅผ ํด๋ฆญํ•˜๋ฉด ROOT๊ฐ€ ํ™œ์„ฑํ™” ๋˜์–ด์žˆ๋‹ค๋ฉฐ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๊ฐ•์ œ ์ข…๋ฃŒํ•˜๊ฒŒ ๋œ๋‹ค. 

 

 

 

์ด๋ฒˆ์˜ ๋ชฉํ‘œ๋Š” ์ด OK ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋Š” ์ˆœ๊ฐ„ ์‹œ์Šคํ…œ์ด ์ข…๋ฃŒ๋˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒƒ์„ ์บ์น˜ํ•ด์„œ ์ข…๋ฃŒ๊ฐ€ ์•ˆ๋˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ(ํ›„ํ‚น)

 

์•ฑ ํŒจํ‚ค์ง€ ์ด๋ฆ„ ํ™•์ธ

์šฐ์„  ์•ฑ ํŒจํ‚ค์ง€๋ช…์„ ์•Œ์•„๋‚ด์•ผ ํ•˜๋ฏ€๋กœ "frida-ps -U"๋ฅผ ์จ์ค€๋‹ค. 

 

โ€ป ์ฃผ์˜ํ• ์ ์€ ํ•ดํ‚นํ•  ๋Œ€์ƒ์˜ ์•ฑํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰์ƒํƒœ์•ผ ์ฐพ์„ ์ˆ˜๊ฐ€ ์žˆ๋‹ค. 

 

 

๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰์‹œํ‚ค๋‹ˆ "Uncrackable1"์ด๋ผ๋Š” ํŒจํ‚ค์ง€๋ช…์ด ๋ณด์ธ๋‹ค. 

์ด์ œ ์ด๊ฒƒ์„ ๋Œ€์ƒ์œผ๋กœ ํ›„ํ‚น ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์งœ๋ณด์ž.

 

 

[app.py]

import frida, sys

def on_message(message, data):
	print(message)

    
PACKAGE_NAME = "Uncrackable1"

jscode = """
console.log("[+] Start Script");

Java.perform(function() {
	console.log("[+] Hooking System.exit");
	var exitClass = Java.use("java.lang.System");
	exitClass.exit.implementation = function() {
		console.log("[+] System.exit called");
	}
});
"""

process = frida.get_usb_device(1).attach(PACKAGE_NAME)
script = process.create_script(jscode)
script.on('message', on_message)
print('[+] Running Hook')
script.load()
sys.stdin.read()

์œ„๋Š” ํŒŒ์ด์ฌ ์Šคํฌ๋ฆฝํŠธ์ด๋ฉฐ

ํ›„ํ‚นํ•  ๋Œ€์ƒ์˜ ํŒจํ‚ค์ง€ ์ด๋ฆ„์„ ๊ฐ์ง€๋ฅผ ํ•œ ๋‹ค์Œ

jscode์•ˆ์— ์žˆ๋Š” "java.lang.System" ๋ชจ๋“ˆ์— ์žˆ๋Š” exit ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ์ด ๋˜๋Š” ๊ฒƒ์„ ๊ฐ์ง€ํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ฃผ์ž…ํ•œ๋‹ค. 

์ด๋Ÿฌ๋ฉด ์ •์ƒ์ ์œผ๋กœ exit๊ฐ€ ํ˜ธ์ถœ์ด ๋˜๋ฉด ์•ฑ์ด ์ข…๋ฃŒ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, console.log ๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ์ด ๋˜๋Š” ํ˜•ํƒœ

 

๋†€๋ž๊ฒŒ๋„ ์ •๋ง ๋”์ด์ƒ ํŠ•๊ธฐ์ง€๊ฐ€ ์•Š๋Š”๋‹ค.

 

 

 

 

์ฐธ๊ณ : 

https://taesun1114.tistory.com/entry/Uncrackable1-frida

 

Uncrackable1 - frida

Frida ์ž๋ฃŒ๋ฅผ ์ฐพ๋˜ ์ค‘ ์ข‹์€ ์‹ค์Šต์•ฑ์ด ์žˆ์–ด Frida๋ฅผ ํ†ตํ•ด Uncrackable1 ์•ฑ ์šฐํšŒ๋ฅผ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค ์•ฑ ์‹คํ–‰ ์‹œ, ๋ฃจํŒ…ํƒ์ง€ ํ›„ ์ข…๋ฃŒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค ๋””์ปดํŒŒ์ผ ํ›„์— ๋ฃจํŒ… ํƒ์ง€ ๋กœ์ง์„ ํ™•์ธํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค sg.vant

taesun1114.tistory.com

 

https://redteam-securitylab.tistory.com/16

 

0x02 - Frida Hooking: ๊ฐ€์Šด์ด ์›…์žฅํ•ด์ง€๋Š” ํ›„-ํ‚น

์•ˆ๋…•ํ•˜์„ธ์š” ์ถ˜์‹์ž…๋‹ˆ๋‹ค. ๋ณธ๊ฒฉ์ ์œผ๋กœ ์•ˆ๋“œ๋กœ์ด๋“œ ํ›„ํ‚น์— ๋“ค์–ด๊ฐ€๋ด…์‹œ๋‹ค. ---------------------------------------------------------(์ง„์ง€)--------------------------------------------------------- ์ธ๋„ค์ผ๊ณผ..

redteam-securitylab.tistory.com

 

728x90
๋ฐ˜์‘ํ˜•