-
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)으로 설정되어 있..
-
vsyscall을 이용한 Exploit공부정리 2019. 6. 16. 01:55
리눅스 ELF 바이너리에는 고정적인 주소를 가진 vsyscall영역이 있다. [ vsyscall ]해당 영역은 ASLR, PIE와 같은 주소랜덤화 기법이 적용되어 있어도 항상 고정적인 주소를 갖는다. 또한, 실행권한(x)이 부여되어 있어 필요한 가젯을 가져와서 사용할 수 있다.[ vsyscall ]vsyscall영역은 syscall의 Overhead를 줄이기 위해 User Space에 할당된 커널 영역이다. syscall을 사용하면 User mode에서 Kernel mode로 Context Switching이 발생하게 된다.User의 Context는 따로 저장해두고 Kernel의 Context를 불러오고,Kernel에서 모든 작업이 종료되면, 저장해뒀던 User Context를 불러오는 작업을 하게된다...
-
Notepad++_v7.6.3 Command InjectionSystem/Windows 2019. 6. 13. 23:37
얼마전에 Windows 기본 프로그램 메모장에서 RCE가 발견됐다는 기사를 본 적이 있었다. 보자마자 드는 생각이 '가능해?'라는 생각이 들었는데, Notepad++ 에서도 취약점이 발견됐다고 한다. 이것도 마찬가지로 처음에 드는 생각이 '가능한가?' 였다.나는 Notepad++를 써본 적이 없어서 기본 메모장처럼 글만 쓰는 아주 베이직한 프로그램일 줄 알았다. 근데 공격벡터가 아예 없는건 아니였다.Search Engine을 설정해서 구글이나 야후등의 검색 서비스 기능도 있었고,각종 플러그인으로 추가적인 기능들을 프로그램에서 사용할 수 있었다. 이번에 발견된 취약점 재현 절차는 다음과 같으며, v7.6.3이하의 버전에서만 유효하다.1. [설정] - [환경 설정] - [Search Engine]에서 사용자..