직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다.
공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제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를 이용한 후킹을 통해서도 가능하다. 다음 포스트에서 다룰 예정.
'Security > Mobile' 카테고리의 다른 글
[AOSP] Ubuntu에서 안드로이드 13 빌드하기 (1) | 2023.09.16 |
---|---|
[안드로이드 모의해킹] 안드로이드 정적 분석 실습 Q1 part3 (0) | 2023.07.22 |
[안드로이드 모의해킹] 안드로이드 정적 분석 실습 Q1 part1 (0) | 2023.07.08 |
[안드로이드 모의해킹] HTTP/S 패킷 스니핑, 변조하기 (2) | 2023.06.03 |
[Rooting] 갤럭시 노트 10 루팅 / Galaxy Note 10 rooting (1) | 2023.05.23 |