무기는 끈기

[모바일 앱 해킹 / 안드로이드] Frida를 이용한 KGB Messenger.apk 해킹 CTF write up 본문

Hacking/Mobile Hacking

[모바일 앱 해킹 / 안드로이드] Frida를 이용한 KGB Messenger.apk 해킹 CTF write up

김유비야 2024. 6. 18. 16:59

오늘은 안드로이드 앱 해킹 실습용으로 제작된 KGB Messenger 어플을 해킹해보려고 한다.

 

Step 1. KGB Messenger 안드로이드 어플리케이션을 설치한다.

안드로이드 애뮬레이터인 Noxkgb-messenger.apk 파일을 install 한다.

 

Step 2. KGB Messenger 문제 확인.

KGB Messenger CTF 에 대한 문제내용과 apk 파일은 하단의 깃허브에서 확인할 수 있다.

https://github.com/tlamb96/kgb_messenger

 

GitHub - tlamb96/kgb_messenger: An Android CTF practice challenge

An Android CTF practice challenge. Contribute to tlamb96/kgb_messenger development by creating an account on GitHub.

github.com

 

문제 1. Strings.xml에서 인코딩 된 Flag 찾기.
문제 2. 접속 시 뜨는 오류 우회하기.
문제 3. Login 우회해서 Flag 찾기.

 

Step 3. 문제 1) Strings.xml에서 Flag 찾기.

일단 문제 1을 풀기 위해 apk apktool로 디컴파일 해주고, res/values/Strings.xml 을 확인한다.

가장 위에 디코딩 해보고 싶게 생긴 암호가 있다. 해당 암호를 디코딩 사이트에서 디코딩 해보자.

 

Step 4. 문제 2) 러시아 국가 접속 우회.

문제 2 를 풀기 위해선 앱 접속 시 뜨는 오류를 분석해야 한다.

오류 문구를 텍스트 검색해서 메소드를 찾는다.

아래 코드를 살펴보니 2개의 if 조건을 통과해야 앱에 정상적으로 접속할 수 있는 것 같다.

 

아예 smali 코드에서 해당 조건을 제거하고 앱을 다시 빌딩하고 인증해서 설치하는 방식으로 우회할 것이다.

MainActivity.smali 파일을 문서 편집기에서 열어준다.

 

2개의 if 조건을 담당하는 코드를 전부 제거한다.

빨간 부분에 위치했던 코드들을 제거하면 아래와 같은 코드가 된다.
저장하고 apktool로 재빌딩해준다.

Apktool로 수정한 smali 파일이 있는 폴더를 재빌딩한다.

Uber라는 keytool을 사용해서 인증까지 이어서 완료한다.

 

리패키징 한 어플리케이션으로 재설치하고 접속하니 성공적으로 우회가 된 모습을 볼 수 있다.

 

 

Step 5. Login을 우회하여 Flag를 획득.

Strings.xml에서 usernamepassword를 찾아 집어넣어 본다.

 

적혀진대로 집어넣었더니 로그인에 실패했다.

Password가 복호화를 할 수 있게 생겨서 복호화를 돌려봤지만 전부 실패했다.

문제 페이지에 접속해서 문제를 다시 살펴보니 해당 문제는 사회공학기법을 사용해서 풀어야 한다고 되어있다.

 

Usernamecodename duchess password 를 구글링해보았다.

첫번째로 나오는 사이트에 접속해서 password 를 검색했더니 Guest라는 단어가 나온다.

 

문제 페이지에서 비밀번호는 전부 소문자라고 했던 힌트를 참고해서 앱에 로그인 해본다.

 

로그인에 성공하고 내부 모습이 보이게 되었다.