ํฐ์คํ ๋ฆฌ ๋ทฐ
๊ฐ์
์๋๋ก์ด๋์ Activity๋ ์ ํ๋ฆฌ์ผ์ด์ ์ 4๋ ๊ตฌ์ฑ๋จ์ ์ค ํ์์ ์ธ ์์๋ก ์ธํ ํธ(Intent)๋ผ๋ ์ผ์ข ์ ๋ฉ์์ง ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ ์ํธ์์ฉ์ ํ๋ฉด์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ํฌํจํ ํ๋์ ํ๋ฉด์ ๋ํ๋ ๋๋ค. 4๋ ์ปดํฌ๋ํธ ์ค ๊ฐ์ฅ ๋ง์ด ์์ฉ๋๋ฉฐ ์ฃผ๋ก UI(User Interface)ํ๋ฉด์ ๋ด๋นํฉ๋๋ค.
์์๋ก ์ด๋ฉ์ผ ์ฑ์ Activity์ ๋ํด ๊ฐ๋จํ๊ฒ ์๊ฐํด๋ณด์๋ฉด
(1) ์ด๋ฉ์ผ ๋ชฉ๋ก์ ํ์
(2) ์ด๋ฉ์ผ ์์ฑ
(3) ์ ๋ฌ๋ฐ์ ์ด๋ฉ์ผ ์ฝ๊ธฐ
๋ฑ ์ฌ๋ฌ ๊ธฐ๋ฅ์ด ์กด์ฌํ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ์ฌ๋ฌ Activity๊ฐ ํจ๊ป ๋์ํ์ฌ ์ฌ์ฉ์์๊ฒ ๋ณด๊ธฐ ์ฌ์ด ํ๊ฒฝ์ ๊ตฌ์ฑํ์ง๋ง (1), (2), (3) ๊ฐ๊ฐ์ด ๋ ๋ฆฝ๋์ด ์คํ ๋ฉ๋๋ค. ๋ง์น (2) ์ด๋ฉ์ผ ์์ฑ์ ํ ๋ ์ฌ์ฉ๋๋ Activity๊ฐ ํ์ฉ๋์ด ์์ ๊ฒฝ์ฐ ์ฌ์ง(๋ค๋ฅธ ์ฑ)์์ ๊ฐ์ ธ์ ๊ณต์ ํ ์ ์๊ฒ ๋๋ ๊ฒ์ ๋๋ค.
๋ง์ฝ ๊ฐ์ธ์ ๋ณด๋ฅผ ์ ๋ ฅ๋ฐ๋ ๊ณณ์ด๋ ์ธ์ฆ ๊ฑฐ์ณ์ผ ์ ๊ทผ์ด ๊ฐ๋ฅํ ๊ณณ์ Activity ์์ฑ์ด ์ทจ์ฝํ๊ฒ ์ค์ ๋์ด ์๋ค๋ฉด ์ง์ธ ๋ก์ง๋ค์ ๋ฌด์ํ๊ณ Activity๋ฅผ ๊ฐ์ ํธ์ถํ์ฌ ๋น์ ์์ ์ธ ์ ๊ทผ์ด ๊ฐ๋ฅํด์ง ์ ์์ต๋๋ค.
ํด๋น ์ทจ์ฝ์ ์ ํ์ธํ๊ธฐ ์ํด ๋์ ๋ถ์๋๊ตฌ์ธ "Drozer(๋๋ก์ )"๋ฅผ ์ฌ์ฉํ๋๋ก ํ๊ฒ ์ต๋๋ค.
๊ตฌ์ถ ๋ฐฉ๋ฒ์ ํ๋จ์ ํฌ์คํ ์ฐธ๊ณ
Using Drozer
๋๋ก์ ์ฝ์์ ํตํด Activity๋ฅผ ํธ์ถํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์์ ์ ๋๋ฐ์ด์ค์ ์ฐ๊ฒฐ์ ํด๋๊ฒ ์ต๋๋ค.
์์ ํ์ง ์์ ์กํฐ๋นํฐ ๊ถํ์ ํ์ด ํ๊ธฐ ์ํด Androidmanifest.xml ํ์ผ์ ํ์ธํด๋ด์ผ ๋ฉ๋๋ค. jadx๋ฅผ ํตํด ๋์ปดํ์ผํ์ฌ ํ์ธํด ๋ณธ ๊ฒฐ๊ณผ ํจ์ค์๋ ๋ณ๊ฒฝ ๊ด๋ จํ ์กํฐ๋นํฐ ํธ์ถ์ด "True"๋ก ๋์ด์์ต๋๋ค.
Activity๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์ ๋ฐ๋์ ๋งค๋ํ์คํธ ํ์ผ์ ๋ฑ๋ก๋์ด ์์ด์ผ ๋ฉ๋๋ค. jadx ํ๋ก๊ทธ๋จ ์ด์ธ์๋ ๋๋ก์ ๋ช ๋ น์ ์ด์ฉํ์๋ฉด ์ข ๋ ํธํ๊ฒ ๋ด๋ถ ์ค์ ์ ๋ณด๋ฅผ ํ์ธํ์ค ์ ์์ต๋๋ค.
๋์ ๋ถ์๋๊ตฌ์ธ "๋๋ก์ "๋ฅผ ํตํด ๊ณต๊ฒฉ ํ๋ฉด์ ์ค์บํด๋ณธ ๊ฒฐ๊ณผ 5๊ฐ์ Activity๊ฐ ์ธ๋ถ์ ๋ ธ์ถ๋์ด ์๋ ๊ฒ์ผ๋ก ๋ณด์Activity๋ ํ๋ ์ด์์ View๋ฅผ ๊ฐ์ง ์ ์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
์ธ๋ถ์ ๋ ธ์ถ๋ 5๊ฐ์ Activity ์ ๋ณด๋ฅผ ์์ธํ๊ฒ ํ์ธ์ด ๊ฐ๋ฅํ๋ฉฐ Permission: null์ด๋ผ๋ ๋ฉ์์ง๋ฅผ ํตํด ๋ณ๋์ ๊ถํ์ด ์กด์ฌํ์ง ์๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
์์ฑ๋ ๋ก์ง์ ์ํ๋ฉด ํจ์ค์๋๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ํด์ "Login"์ ์ ํํ๊ณ "Login"๋ ๊ณ์ ์ ํํด์ ์ ๋ณด๋ฅผ ๋ณ๊ฒฝํ ์ ์๋๋ก ๋์ด ์์ต๋๋ค.
๋ก๊ทธ์ธ์ด ๋์ด ์์ง ์์ ์ํ์์ ์์ ํ์ง ์์ ๊ถํ์ ๊ฐ์ง ChangePassword๋ฅผ ํธ์ถํด๋ณด๊ฒ ์ต๋๋ค.
drozer๋ฅผ ํตํด ํธ์ถํด๋ณธ ๊ฒฐ๊ณผ ๊ธฐ์กด์ "Login" ๋ก์ง ์ธ์ฆ์ ์ฐํํ๊ณ ์ ๊ทผํ๊ณ ์ ํ๋ ํ์ด์ง๋ก ๋์ด์จ ๊ฒ์ ํ์ธํ์ค ์ ์์ต๋๋ค.
์ด๋ฒ์๋ ์๋๋ก ๊ณ ํธ๋ฅผ ํตํด ์์ ํ์ง ์์ ์กํฐ๋นํฐ ํธ์ถ์ ํด๋ณด๊ฒ ์ต๋๋ค. ํ์ฌ ์์ ์ ์ธ๋ณด์ด์ค ๋ด์ญ์ ๋ค์ด๋ฐ๊ธฐ ์ํด์ ๊ธฐ์กด์ "PIN"์ฝ๋๋ฅผ ์ ๋ ฅ๋ฐ์ ๊ฒ์ฆ์ ํ๋๋ก ๋์ด ์์ต๋๋ค.
๋๋ก์ ๋ฅผ ํ์ฉํ๊ธฐ ์ํด ์๋๋ก ๊ณ ํธ์ ํจํค์ง ๋ช ์ ์๊ณ ์์ด์ผ ๋ฉ๋๋ค.
๋๋ก์ ๋ฅผ ํ์ฉํ์ฌ ๋์ ๋ถ์์ ํด๋ณด๋ฉด ์ธ๋ถ์ ๋ ธ์ถ๋ 2๊ฐ์ Activity๊ฐ ํ์ธ๋๊ณ ์์ต๋๋ค.
๋ ธ์ถ๋ SplashActivity์ AccessControl1ViewActivity ์ Permission: null์ด ๋ถ์ฌ๋ ๊ฒ์ผ๋ก ๋ณด์ ๋ณ๋์ ์ ๊ทผ ๊ถํ์ด ์กด์ฌํ์ง ์๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
๋งค๋ํ์คํธ์ ์ค์ ์ ๋ณด๋ฅผ ํ์ธํด๋ณธ ๊ฒฐ๊ณผ exported: "true"๋ ํ์ธ๋์ง ์์ง๋ง ๋ณ๋์ ์ ๊ทผ๊ถํ์ด ๋ถ์ฌ๋์ด ์์ง ์์ต๋๋ค.
์ธ๋ณด์ด์ค ๋ค์ด๋ก๋ ๊ด๋ จํ ์กํฐ๋นํฐ ์ค์ ์ด ์กด์ฌํ๋๋ฐ ์ค์ ์ผ๋ก ๋์ด ์๋ ๊ฒ์ผ๋ก ๋ณด์ ์ธ๋ถ์์ ์ก์ธ์ค๊ฐ ๊ฐ๋ฅํ๊ณ ์๋จ์ ๋ ธ์ถ๋ ์กํฐ๋นํฐ์ ์ฐ๊ด์ด ์๋๊ฒ์ผ๋ก ํ๋จ๋ฉ๋๋ค.
jadx๋ก ์๋๋ก๊ณ ํธ.apk๋ฅผ ๋์ปดํ์ผํ์ฌ ์ด๋ค ์ฐ๊ด์ด ์๋์ง ๋ฌธ์์ด ๊ฒ์์ ํตํด ํ์ธํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๊ธฐ์กด์ ์ ๋ ฅ๋ฐ์ ํ์ฝ๋๋ฅผ ๊ฒ์ฆํ๋ ๋ก์ง์ด ๋ณ๋๋ก ์กด์ฌํ์ง ์์ผ๋ฉฐ ๋จ์ ์ธ๋ณด์ด์ค ๊ด๋ จ Activity๊ฐ ํธ์ถ๋ง ๋๋๋ผ๋ ์ด์ ๋ก์ง์ ๋ฐ์ด๋์ด ๋ฐ๋ก ์คํ๋๋ ๊ฒ์ผ๋ก ํ์ธ๋ฉ๋๋ค.
์ธ๋ถ์ ๋ ธ์ถ๋ AccessControl1ViewActivity๋ฅผ ํธ์ถํ์ฌ PIN ์ฝ๋ ์ ๋ ฅ ์์ด ๋ฐ๋ก DownloadInvoiceService ํธ์ถ์ด ๊ฐ๋ฅํ์ง ์คํํด ๋ณด๊ฒ ์ต๋๋ค.
์ฑ๊ณต์ ์ผ๋ก ๋ณ๋์ PIN์ฝ๋ ์ ๋ ฅ ์์ด ๋ฐ๋ก ๋ค์ ๋ก์ง์ผ๋ก ์ฐํํ ์ ์๋ ๊ฒ ํ์ธํ์์ต๋๋ค.
๋์๋ฐฉ์
1. Androidmanifest.xml ํ์ผ ์์ฑ ์ค์ฑ
- ์ฌ์ฉ์ด ๋ถํ์ํ ๊ฒฝ์ฐ android : exported ="false" #true์ผ ๊ฒฝ์ฐ ํ์ฑํ
2. ์ฌ์ฉ์ ์ง์ ๊ถํ์ผ๋ก ์ก์ธ์ค ์ ํ
- activity์ ๋ํ ์ฌ์ฉ์ ์ง์ (๊ฐ๋ฐ์, ์ด๋ฉ์ผ ๋ฑ ์ ์ผํ ๊ฐ)์ ํตํด ์๋ฌด๋ ์ก์ธ์ค ํ ์ ์๋๋ก ์ง์
ex) ์ฌ์ ์ permission="com.secure.test" ๋ผ๊ณ ์คฌ๋ค๋ฉด ๋งค๋ํ์คํธ ์ค์ ์๋<uses-permission name= "com.secure.test/> ๋ผ๊ณ ๋ช ์ํด์ค์ผ๋จ
'MOBILE' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Android] Content Provider ์ทจ์ฝ์ (2) | 2021.02.10 |
---|---|
[Android] Broadcast Receiver ์ทจ์ฝ์ (0) | 2021.02.09 |
[Android] Rooting ํ์ง ์ฐํ(Objection) (0) | 2021.02.07 |
[Android] SSL Pinning ์ฐํ (0) | 2021.02.06 |
[Android] Burp Suite ์ฐ๋(NOX) (0) | 2021.02.05 |