모바일 앱 진단을 하기 위해선 보안 솔루션 우회가 필요한 경우도 있다.
규모가 크거나 난독화가 되어 있는 앱들은 정적 분석만으로 보기 힘들어서 동적 분석도 겸한다. 이 때 자주 사용하는 게 frida
frida로 메모리 덤프도 뜨고 로직도 우회하고 별 걸 다하니까 요즘에는 Anti Frida가 적용된 앱들이 많아졌다.
결국 이것도 우회를 할 수 있다면 할 수 있는데 문제는 날이 갈수록 탐지 로직들이 괴랄해진다.
에러 메세지도 안 띄워주고 칼같이 죽여버리는가하면 동적으로 클래스를 호출하기도 하고 .so파일이 앱 실행할 때 생성되고 지워져 라이브러리 분석을 하기 어렵게 하기도 한다.
frida 탐지의 기본적인 탐지 원리
https://hackcatml.tistory.com/96
Frida Detection Bypass(Android)
최근 들어 프리다를 탐지하여 앱을 종료시키는 솔루션들이 꽤 많습니다. 이렇게 되면, 진단하는 입장에서는 애를 먹을 수 밖에 없습니다. 그래서, AOS에서 몇몇 기본적인 프리다 탐지원리 및 우
hackcatml.tistory.com
frida를 앱에 attach 하게 되면 앱에 여러 흔적이 남는데 /proc/<pid>/ 하위의 파일들을 fopen 함수나 java.io.File 클래스로 읽어오거나 혹은 그 외의 방법을 이용해서 그 흔적들을 확인한다는 것.
탐지 로직이 괴랄해서 무슨 Native API를 후킹해야하는지 몇 개의 탐지로직을 제껴야하는지 도저히 파악이 안되니 그냥 frida라는 문자열이 찍히지 않으면 되겠구나 싶었다.
https://github.com/AsenOsen/frida-stealth
GitHub - AsenOsen/frida-stealth: Stealth patch for Frida, stealth knowledge collection
Stealth patch for Frida, stealth knowledge collection - AsenOsen/frida-stealth
github.com
https://github.com/JsHookApp/Frida-Patchs
GitHub - JsHookApp/Frida-Patchs: Simple frida anti-detection patch
Simple frida anti-detection patch. Contribute to JsHookApp/Frida-Patchs development by creating an account on GitHub.
github.com
위의 두 레포를 참고했다. 위 레포에서 추가로 더 수정을 해서 빌드를 한다.
frida-core와 gum에서 frida, gmain 등 탐지 문자열을 다 변경했다.
빌드를 하면 몇가지 파일이 생성되는데 frida-server는 실행은 되지만 심볼 명 등이 변경되서 그런지 python-frida에서 앱에 attach를 못한다.
python-frida도 패치된 frida-core로 빌드해주면 되는데 그냥 대안으로 frida-inject 를 이용했다. spawn 기능은 없지만 Termux 등을 통해 단말기 내부에서 attach가 가능하니 USB 디버깅 탐지도 그냥 옵션을 끄는 것으로 우회 가능하다.
frida가 안 죽으니 마음껏 후킹 할 수 있다.
'Web,Mobile > Tool' 카테고리의 다른 글
Burp Suite에서 Custom 필터링: Bambdas 사용하기 (0) | 2024.06.20 |
---|---|
[Vulhub] 설치 및 실행 방법 (0) | 2021.09.01 |
[Burp Suite] 업데이트 후 Render 기능 사용 시 Embedded browser initialization failed 에러 (1) | 2021.06.23 |
[Python] requests 라이브러리 프록시 툴로 패킷 캡쳐하기 (2) | 2021.04.19 |
[Frida] 앱 진단 시 유용한 우회 Script (0) | 2021.03.24 |