Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 안드로이드
- base64
- lord of sql injection
- MFT
- logstash
- 2018
- ctf
- ESXi
- diva
- 파이썬
- otter
- Reflected XSS
- igoat
- SQL Injection
- beebox
- Volatility
- kibana
- CTF-d
- foremost
- frida
- Strings
- vulnhub
- elasticsearch
- Docker
- Suninatas
- 인시큐어뱅크
- Openstack
- InsecureBank
- XSS
- NTFS
Archives
- Today
- Total
Information Security
루팅 - Bypass Binaries 본문
- 디바이스 루팅 시 사용된 응용프로그램 종류에 따라 특정 바이너리 파일들이 설치되거나, 공격자들의 악의적인 행위 및 시스템 설정 변경을 위하여 특정 명령어 파일들을 설치한다.
- 대표적인 명령어 파일에는 su, busybox, magisk 등이 있다.
- Bypass Binaries 항목은 디바이스 내의 바이너리 파일들을 검사하여 루팅 시 사용되는 명령어 파일들이 존재할 경우 루팅 디바이스로 판단하여 탐지한다.
아래와 같은 내용을 확인할 수 있다.
busybox 명령어를 입력하면 아래와 같이 명령어를 확인할 수 있다.
isCheckRootingBinary() 함수는 Bypass Binaries 탐지 결과를 반환해 주는 역할을 한다. 코드를 보면 rootingPath에서 시스템 디렉터리 목록을 가져오고 있으며 rottingBinaries에서는 루팅 시 설치되는 파일 목록을 가져오고 있다. this.isFile()에서는 rootingPath에서 가져온 디렉터리에 rootingBinaries 루팅 시 설치되는 파일이 존재하는지 검사한다. 이때, 파일이 디바이스에 존재하는지 확인하는 함수가 File 클래스의 exists() 함수이며 파일이 존재할 경우 true를 반환하고 없을 경우 false를 반환한다.
첫 번째 인자 rootingPath, 두 번째 인자 rootingBinaries 값을 확인
isCheckRootingBinary를 찾아가지 않고 frida 코드가 실행되어 우회하여 탐지가 되지 않도록 false 값으로 return 한다.
frida 코드 실행
false 에서 Success! 가 보이는 것으로 보아 탐지 우회가 된 것을 확인
'모바일 > ANDITER' 카테고리의 다른 글
루팅 - Bypass Build-Tags (0) | 2023.12.30 |
---|---|
루팅 - Bypass Command Execution (0) | 2023.12.28 |
루팅 - Bypass Packages (0) | 2023.12.16 |