[안드로이드 모의해킹] 안드로이드 정적 분석 실습 Q1 part2

직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다.
공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제48조 1항)
학습자료 apk파일은 https://github.com/colfax0483/Vulnerable_apk 에서 clone할 수 있습니다.

개요

이전 포스팅에서 이어지는 글입니다.

2023.08.05 - [Security/Mobile] - [안드로이드 모의해킹] 안드로이드 정적 분석 실습 Q1 part1

 

두 번째 Flag 찾기

두 번째 버튼에 관련 로직이 존재하고 있다. 계속 MainActivity를 분석하면 버튼을 생성하고 버튼에 실행할 class를 명시하고 있다.

setOnClickListener()로 사용자 버튼 클릭 입력을 대기하는 리스너를 등록한 후 클릭 시 동작을 메소드로 선언해주었다.

this.startActivity()의 인자로 Question1.class를 실행하도록 하고 있다. 좌측 목록에서 Question1 클래스를 찾아서 분석한다.

Question1.class

암복호화 로직과 사용되는 키가 노출되고 있는 것을 확인할 수 있다.

* 이처럼 암복호화 로직과 Key가 앱 내에 존재하고 있는 경우 서버에서 수신한 페이로드가 해당 로직으로 복호화되는지 분석할 필요가 있다. 공격자가 스니핑을 통해 패킷을 탈취했을 경우, 앱의 복호화 로직으로 민감정보를 평문을 확인할 수 있는 경우 취약으로 진단한다.

decryptECB()와 encryptECB()함수는 사용자 정의 함수이므로 액티비티 생명주기에 직접적인 영향을 주지 않는다. 좀 더 분석을 해보면 아래에 onCreate() 메소드가 있다.

암호화에 사용할 평문(_Mobil3_h4CKiNg)이 노출되고 있음을 확인한다.

마치며

하드코딩된 암호화키는 통신 구간의 암호화를 무력화할 수 있다. 로직에 대한 분석은 Frida를 이용한 후킹을 통해서도 가능하다. 다음 포스트에서 다룰 예정.

 

반응형