관리 메뉴

Information Security

Frida - sieve.apk 로그인 우회 본문

모바일/Frida

Frida - sieve.apk 로그인 우회

HackingPractice 2020. 12. 20. 18:19

sieve.apk

- 역할 : master password를 설정 -> pin번호 4자리 설정

- 앱 최초 실행 : master password 입력, 다른 앱이나 홈 접속 후 실행하면 pin번호 입력

- 단말기 재부팅 : master password 입력해야 앱의 내용 확인 가능

 

16자리 비밀번호를 입력했다.

그림 1-1 비밀번호

비밀번호 입력후 PIN를 입력했다.

그림 1-2 PIN 번호

만들었던 비밀번호를 입력했다.

그림 1-3 비밀번호

비밀번호 입력 후 [+] 버튼을 클릭했다.

그림 1-4 Add

서비스에 대한 정보를 입력했다.

그림 1-5 서비스

​서비스가 만들어진 것을 알 수 있다.

그림 1-6 shadow

앱을 나간 후 들어오면  해당 핀 번호에 대한 BruteForce 공격은 후에 진행할 것이고 이번에는 초기에 입력했던 master password를 입력해서 내부 데이터 접근하는 과정 없이 바로 내부 데이터로 접근할 수 있도록 로그인 우회를 해 볼 것이다.

앱을 다시 시작하면 PIN 번호를 입력하라는 창을 보여준다.

그림 1-8 PIN

Sieve 앱이 백그라운드로 동작하기 때문에 [설정] - [애플리케이션] - [Sieve] - [강제 종료] 한다.

그림 1-9 Sieve

PIN을 입력하라는 메시지가 아닌 패스워드를 입력하라는 메시지를 보여준다. test 문자를 입력 후 로그인을 시도했다. 

그림 1-10 test

패스워드가 옳지 않는다는 메시지를 확인할 수 있다.

그림 1-11 incorrect

 

Jadx에서 Text search를 이용해 incorrect 문구를 찾아 MainActivity로 들어가 본다.

그림 1-12 Jadx

error_incorrect_password 문자열로 다시 한번 찾았다.

그림 1-13 error

package = "com.mwr.example.sieve"에서 MainActivity를 찾을 수 있다.

그림 1-14 package

로그인의 성공과 실패 부분을 발견할 수 있다. checkKeyResult가 어디서 호출되는지 찾아보았다.

그림 1-15 checkkey

MainLoginActivity와 ShortLoginActivity에서 호출하고 있다. ShortLoginActivity로 들어가 보았다.

그림 1-16 checkresult

클래스를 확인해 보면 submint 버튼을 클릭했을 때 PIN 관련된 것을 알 수 있다.

그림 1-17 submit

checkKeyResult 메서드를 재작성하여 무조건 로그인이 성공될 수 있도록 한다. 이 유형은 Frida 기본 연습문제 4번과 유사하다.

그림 1-18 자바스크립트

Sieve 프로세스 패키지 이름을 확인했다.

그림 1-19 패키지

해당 스크립트를 입력해 실행했다.

그림 1-20 frida

 

test를 입력 해 로그인이 우회되는 것을 알 수 있다.

그림 1-21 로그인 우회

 

'모바일 > Frida' 카테고리의 다른 글

SSL Pinning 우회  (0) 2020.12.24
Frida - sieve.apk BruteForce PIN  (0) 2020.12.21
Uncrackable1 - 암호화  (0) 2020.12.18
UnCrackable - Level1  (0) 2020.12.17
FridaLab - Change 'check' button's text value to 'Confirm'  (0) 2020.12.16