-
[CheatEngine] Themida Debugger 탐지 우회#1System/Reversing 2019. 7. 10. 13:15
Windows환경에서 Themida로 패킹되어 있는 프로그램을 CheatEngine으로 분석할 때 우회 팁이다. 우선 탐지하는 수준이 엄격하냐, 느슨하냐 차이가 있겠지만나같은 경우는 CheatEngine이 실행되어 Target Process에 Attach하는 것까지는 탐지하지 않고 있었다. [ CheatEngine Error ]Attach이후에 BreakPoint를 설정하거나, Memory를 조작하는 순간 위와 같은 에러창이 뜨면서 Target Process가 종료되는 상황이였다. [ Themida Packing ]Target Process를 ExeInfo로 확인해보니 Themida로 패킹된 것을 확인할 수 있었다. 보통 이런 Anti-Debugging을 우회하는 방법 중 하나가 User영역에서 메모리를..
-
Frida zgote에러 발생할 때 (SystemApp Hooking)Mobile/Frida 2019. 7. 8. 12:53
[ Frida zygote Error ]Frida로 App을 실행할 때, 위와 같은 에러가 발생하는 경우가 있다. 에러문을 보면, zygote와 Magisk 라는 단어가 언급된다. zygote는 Android System에서 부모프로세스같은 개념으로 생각하면 된다.Magisk는 디바이스를 루팅할 때, SuperSU처럼 루팅HelperApp이다. 이런 에러를 해결하려면 'Magisk의 Hide옵션이 활성화 된 경우 비활성화 하라' 라는 경고문 대로Magisk Hide옵션을 비활성화를 하면 된다고 한다. 근데 나는 그래도 저 에러가 계속 뜨더라.. 그래서 더 찾아본 결과, frida-server를 /system경로에서 실행하면 된다고 한다. [ /system ]이렇게 frida-server를 /system으..
-
Frida를 이용한 App DB복호화Key 알아내기(with.TigerText)Mobile/Frida 2019. 7. 5. 10:16
이번에는 Frida를 이용해서 TigerText App의 암호화된 DB를 복호화 해볼 것이다.TigerText App은 카카오톡과 같은 메신저App이며, 텔레그램처럼 보안메시지 기능을 지원하는 App이다.현재는 TigerConnect라는 이름으로 서비스하고 있다.1. Frida란?모바일 환경에서 대표적인 DBI(Dynamic Binary Instrumentation)Tool로 스크립트를 통해서 App을 분석할 수 있다.Frida를 사용하는 목적은 Java Method나 Native함수를 후킹해서 흐름을 조작하려는 것이 가장 크다.대표적인 예로는 SSL Pinning Bypass, Decrypt Key Leak, Method Trace 등이 있다.Frida는 Python이나 C언어등 다양한 언어환경에서 F..
-
FRIDA Hooking (OWASP-UnCrackable1)Mobile/Frida 2019. 6. 24. 20:19
Frida로 함수를 후킹해서 우리 입맛대로 바꿔볼 것이다.실습 App은 OWASP에서 실습용으로 만든 Crackme 시리즈로 진행할 것이다.OWASP-mstg : https://github.com/OWASP/owasp-mstg/tree/master/Crackmes 총 3개로 Level1 / Level2 / Level3로 나뉜다.이번 글에서는 Level1을 Clear하는것을 목표로 진행해보겠다.[ UnCrackable1 ] 설치는 루팅된 기기에 [adb install APK경로]로 설치해줘도 되고, Nox같은 에뮬레이터에 올려도 된다.나는 루팅된 기기에 APK를 설치하고 진행하였다. [ App 실행 ]우선 실행하면 위와 같이 루팅된 것을 탐지하고 [OK]를 누르면 App이 종료된다.코드를 보면서 어떤 로직..
-
[DBI Tool] FridaMobile/Frida 2019. 6. 24. 19:43
모바일 환경에서 DBI(Dynamic Binary Instrumentation) Tool로 유명한 Frida에 대해서 알아보자 DBI란 말 그대로 동적으로 바이너리를 분석하는 행위인데,대표적으로 리눅스에서는 Angr가 있고, 윈도우에서는 Pin이 있다.(예시로 제시된 툴들이 각 플랫폼에 국한된다는 뜻은 아니다.) Frida 또한 모바일 환경뿐만 아니라 PC환경에서도 사용이 가능하다.Frida스크립트는 Python, C 등 다양하게 언어로 작성할 수 있으며, 실질적인 후킹 스크립트는 JavaScript로 작성한다. 나는 평소에 사용하던 언어인 Python으로 스크립트를 작성하였다. 루트권한이 없으면 사용할 수 있는 리소스범위가 극도로 좁아진다.안드로이드의 권한체계는 샌드박스 개념과 같아서 각 UID가 접근..
-
패턴 검사하는 문제 풀 때공부정리 2019. 6. 18. 13:07
리얼월드나 CTF문제를 풀 때, 사용자의 입력값을 검사하는 루틴이 존재하는 경우가 있다. 예를 들면, FacebookCTF 2019 Web문제 중 'RCE Service'라는 문제에서는위와 같이 php의 preg_match( )를 이용해서 사용자의 입력값을 검사한다.이런 유형의 문제를 낸 출제자의 의도를 추측해보자면,'패턴검사를 하는 preg_match( )의 어떠한 취약점을 알려주기 위해서 이런 문제를 내지 않았을까?' 라는생각을 해볼 수 있다. 결론적으로는 preg_match( )의 취약점을 이용하는 문제가 맞다.이러한 하나의 예시로는 위의 추측이 절대적이라고 말할 수 없지만,새로운 기법이나 취약점을 알려주는 것이 CTF대회의 주된 목적 중 하나라고 봤을 때,이런 추측은 합리적이라고 말할 수 있을 것..
-
checksec없이 NXbit 확인하기공부정리 2019. 6. 17. 19:42
NXbit란 Stack, Heap, Data영역과 같이 Data가 저장되는 영역에는 실행권한을 부여하지 않는 보호기법이다. 보호기법 네이밍대로 ELF특정 헤더값에 특수한 Bit값으로 실행권한 부여 여부를 정하게 되는데,우리들이 보호기법을 확인할 때 자주 사용하는 'Checksec.sh'도 ELF특정 헤더값을 확인하고NXbit Enable/Disable 여부를 판단한다.[ GNUSTACK ] readelf -W -l check_DEP |grep 'GNU_STACK' | grep 'RWE' 위 명령어로 readelf를 이용해서 NXbit 여부를 확인할 수 있다. ELF헤더의 GNU_STACK Flag값이 RWE(7)로 설정되어 있으면 NXbit가 해제되어 있는 상태이며,Flag값이 RW(6)으로 설정되어 있..