분류 전체보기
-
[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]에서 사용자..
-
GDB 소스코드 보면서 디버깅 하기System/Reversing 2019. 6. 8. 17:12
오픈소스인 프로그램을 직접 컴파일하고 GDB로 분석할 때 소스코드를 보면서 디버깅할 수 있다.우선 gef라는 GDB 플러그인을 설치해야 한다. [ gef Document ]https://gef.readthedocs.io/en/master/# via the install script wget -q -O- https://github.com/hugsy/gef/raw/master/scripts/gef.sh | sh # manually wget -O ~/.gdbinit-gef.py -q https://github.com/hugsy/gef/raw/master/gef.py echo source ~/.gdbinit-gef.py >> ~/.gdbinit위 명령어를 차례대로 입력하고, gdb를 실행하면 아래와 같이 기본 ..
-
Android Hacker's Handbook_1장 [정리 및 번역]Mobile/Android 2019. 4. 6. 18:06
해당 번역글은 개인 공부를 위해 번역한 글로써, 다소 틀린 표현들이 있을 수 있으니 참고할 때 유의해주시길 바랍니다. 원문은 https://www.pdfdrive.com/android-hackers-handbookpdf-e39599871.html 여기에서 받으실 수 있습니다. - Google Nexus Nexus는 안드로이드 개발자를 위한 오픈 플랫폼 역할을 한다. 사용자 정의 빌드를 허용하기 때문에 사용자에 맞게 원하는 OS를 로드해서 자유롭게 사용할 수 있다. - CPU 안드로이드는 다수의 아키텍처를 지원하는 리눅스 커널을 기반으로 한다. 여러 아키텍처들 중 저전력이 장점인 'ARM'이 가장 널리 사용되는 아키텍처가 되었다. 'ARM'은 ARM11, Cortex-A8, Cortex-A9, 및 Cort..
-
Android Hacker's Handbook [번역]Mobile/Android 2019. 4. 6. 16:45
해당 번역글은 개인 공부를 위해 번역한 글로써, 다소 틀린 표현들이 있을 수 있으니 참고할 때 유의해주시길 바랍니다. 원문은 https://www.pdfdrive.com/android-hackers-handbookpdf-e39599871.html 여기에서 받으실 수 있습니다. - 1장. Android 모바일 장치 주변의 시스템(ECO System)들을 알아본다. [1장 정리] Android에 대한 소프트웨어의 구성, Public Circulation, 주요 업체 등의 역사적인 사실에 대해 알아본 후, 고차원의 보안기법들과 Android보안 연구에 대해 토론하고 결론을 짓도록 한다. - 2장. Android 운영 체제 기본 사항을 검토한다. [2장 정리] Android 기기를 유지하는데 사용되는 핵심 보안..