[해킹보안] 창과 방패 끝없는 전쟁

clicker.apk
0.23MB

 

Jadx decompile툴을 사용해서 찾기 기능으로 flag 찾아 봤습니다.

flag 검색 소스코드로 직접 접근해서 확인해 보니 flag 획득하면 “Conguraturations!” The flag is ... TMCTF{ …………………} 이런 형식으로 flag 나올 거라는 예상을 봤습니다.

flag로 의심되는 소스코드

 

 

또한, NOX프로그램에서 clicker.apk 실행 시키면 아래와 같은 화면이 실행 되었습니다. 클릭을 1 때마다 1 증가하게 되고, 1000만번을 클릭 경우 flag 획득할 것으로 예상이 되었습니다.

앱 실행 시 화면

 

 

 

디컴파일 툴에 있는 찾기 기능을 통해 SCORE 찾아 봤습니다. 화면 창을 클릭 또는 터치하게 되면 this.g++; 값이 1 증가하게 되고, this.g값이 3769, 10007, 59239, 100003, 495221, 1000003, 9999999 일치하게 되면 브로드캐스트 메시지를 송신하게 됩니다.

Broadcast 메시지 송신 소스코드

 

 

화면을 클릭 경우, 브로드캐스트 메시지가 송신될 있도록 this.g값을 3768, 10006, 59238, 100002, 495220, 1000002, 9999998 되게 스크립트 코드를 작성하였습니다. 그런데 Frida 스크립트를 통해 명령을 실행한 , 9999998 자동 클릭 상태에서 마지막 한번을 클릭해도 flag 나오지 않았고, NOX프로그램의 clicker.apk 앱이 강제 종료 되었습니다.

자동 클릭 스크립트 작성 및 frida실행

 

 

문제는 CongraturationsActivity onCreate 메소드에서 com.tm.ctf.clicker.a.a.c() 메소드를 호출

앱 강제종료 원인 분석 -1

 

SharedPreferences 저장 COUNT 값이 10000000 아니면(if(10000000 !=a.c()) 강제종료(finish();) 되는 문제였습니다.

앱 강제종료 원인 분석 -2

 

 

 소스코드를 수정하기 위해 Apktool 사용하여 디컴파일을 하고

Apktool 로   디컴파일

 

 

smali 파일을 문서 편집기를 사용하여 변조했습니다.

(COUNT값이 10000000 아니어도 앱이 종료되지 않게, if-eq값을 if-ne 변경)

Smali 파일을 수정

 

 

 

Smali  파일을   문서   편지기로   수정

 

 

 

소스코드를 수정한 ,  Apktool 사용하여 리패키징을 했습니다.

 

Apktool 로   리패키징

 

 

그리고 Uber(keytool 종류) 사용하여 서명을 줬습니다.

 

예시) C:\>java -jar uber-apk-signer-1.2.1.jar -a repack_clicker.apk --allowResign –overwrite

 

마지막 단계로 frida 사용해서 후킹을 하고 앱 화면을 1 클릭하자 flag 획득 할 있었습니다.

Frida 로   후킹을   한   후   flag  획득

 

The end!

[참고]

안드로이드CTF - VirusClicker 프리다 활용 :: HACKCATML (tistory.com)

안녕하세요? hackbyr0k입니다.

정말 오랜만에 블로그 글을 쓰게 되었네요.

 

근 2년간 보안업무를 안하고, 창업 준비 및 부동산 경매/공매 공부를 하다가, 다시 내 천직인 보안 쪽으로 돌아왔습니다. ㅎ

 

제가 최근에 모바일 앱 진단 스터디를 하고 있는데, iOS 앱 진단이 진입 장벽이 정말 정말 높더라구요. 구글링을 해도 명쾌한 글들이 많지 않아서, 제가 삽질을 하면서 알게 되는 정보들은 한개씩 시간날 때 마다 올리도록 하겠습니다.

 

그럼. 설명 들어갑니다. ^^

 

iOS 앱 진단을 하기 전에 실습 해 보면 좋은 사이트가 있습니다.

DVIA (Damn Vulnerable iOS App) | A vulnerable iOS app for pentesting

 

DVIA (Damn Vulnerable iOS App) | A vulnerable iOS app for pentesting

Downloads Swift Version (April, 2018) – Download the IPA file from here here Github – Here Make sure to read this for instructions on how to install the app on any device (jailbroken or not jailbroken), and how to compile the app with Xcode. This versi

damnvulnerableiosapp.com

여기에 나와 있는 문제들을 풀기 위해 필요한 tool들 중 IDA Pro를 통해 리버싱을 하는 부분이 여러군데 나오는데, 처음에 DVIA-v2-swift.ipa 파일을 통으로 리버싱을 하려고 하니, 열리기는 열리는데 함수 명이 한개도 안떠서 이방법은 아닌것 같아서 다시 구글링 열심히 해서 다른 방법을 찾아 봤더니 Clutch나 CrackerXI 같은 복호화 툴로 크랙해야 한다는 말도 있어서 아이폰에다가 CrackerXI 내려받기 해서 실행했는데 DVia-v2 앱이 검색이 안되는 겁니다. ㅎㅎㅎ;

 

각설하고,

아래 순서대로 하면 DVia-v2를 역분석 할 수 있습니다.

 

 

1. 위 사이트에서 내려받기한 DVIA-v2-swift.ipa 파일이 있는 곳으로 갑니다.

 

 

 

2. ipa 파일을 우클릭 합니다. 그런 다음 DVIA-v2.app을 더블클릭 합니다.(반디집 설치 필요)

 

 

3. 우측 상단을 보시면 압축 크기를 클릭해서 용량이 큰 순서로 정렬합니다. 그러면 아래 그림과 같이 DVIA-v2란 파일이 있을 겁니다. 용량이 제일 크네요 ㅎㅎㅎ

 

 

 

4. DVIA-v2 파일을 바탕화면이나 자신이 가져다 놓고 싶은 경로에 내려받기 합니다.

 

 

5. 이제 DVIA-v2 파일을 IDA Pro를 통해 실행합니다.

팝업 창이 뜨면 Mach-O file(EXECUTE). ARM64 [macho64.dll]에서 더블 클릭 합니다.

 

 

6. 드디어 좌측 Function name 하단에 함수들이 뜨네요 *.*

이제 DVIA-v2를 신나게 리버싱 하시면 됩니다.

 

 

끝!!!

http://blog.naver.com/PostView.nhn?blogId=lomas&logNo=220673190643 

 

봄 배스낚시 채비 추천 Top 5

배스낚시의 피크 시즌이라는 봄! 남들은 오짜다 육짜다 막 끄집어 내는데 왜 내가 가는 날 내가 가는 곳은 ...

blog.naver.com

 

'취미생활 > 베스 낚시' 카테고리의 다른 글

[충남권]부사호, 예당지 베스 포인트  (0) 2018.03.30
[전라북도]베스 포인트  (0) 2018.03.30