System
-
[64bit] FSB Exploit GeneratorSystem/CTF 2019. 7. 10. 19:44
한동안 64Bit FSB를 못 풀었었는데 Jsec님이 정리해주신 글을 보고 64Bit FSB Exploit Generator 툴을 만들어 봤다. 32Bit같은 경우는 PwnTool 모듈에 있는데왜인지는 모르겠지만 64Bit는 따로 없는 것 같았다.( context.arch를 amd64로 설정하거나, 옵션을 건드리면 되는 것 같긴한데 익스가 안되더라.. 쓰기도 어렵고.. ) 그래서 다음에 64Bit FSB문제를 만나면 써먹으려고 간단한 Generator를 만들었다.https://github.com/Py0zz1/x64_FSBSolver[ Download ]git clone https://github.com/Py0zz1/x64_FSBSolver.gitcd ./x64_FSBSolvercp ./x64fsb [Yo..
-
[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영역에서 메모리를..
-
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를 실행하면 아래와 같이 기본 ..
-
[ Rookiss ] Ascii_easySystem/Pwnable.kr 2019. 4. 5. 18:45
'Printable-ascii-only' Exploit payload 출력가능한 ASCII문자범위(0x21~0x7F)내에서 Payload를 작성해야 한다. [ Ascii_easy@pwnable.kr ] ascii_easy : 문제 바이너리 ascii_easy.c : 바이너리 소스파일 libc-2.15.so : 바이너리에 로드되는 라이브러리 intended_solution.txt : 문제를 풀면 확인할 수 있는 출제자가 의도한 풀이방법 [ Ascii_easy.c ] #include #include #include #include #include #include #define BASE ((void*)0x5555e000) int is_ascii(int c){ if(c>=0x20 && c
-
[ Rookiss ] AllocaSystem/Pwnable.kr 2019. 3. 24. 17:58
" Buffer Overflow를 예방하는 법에 대해서 알려주겠다. "고 한다. [ Alloca.c ]12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273#include #include #include void callme(){ system("/bin/sh");} void clear_newlines(){ int c; do{ c = getchar(); }while (c != '\n' && c != EOF);} int g_canary;int check_canary(int canary){ int result = cana..
-
[ Toddler's Bottle ] asmSystem/Pwnable.kr 2019. 3. 9. 00:54
문제를 보면 Shellcode를 만들어서 익스하는 유형인것 같다. [ asm.c ]1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859#include #include #include #include #include #include #include #include #define LENGTH 128 void sandbox(){ scmp_filter_ctx ctx = seccomp_init(SCMP_ACT_KILL); if (ctx == NULL) { printf("seccomp error\n"); exit(0); } seccomp_rule_add(ctx, SCMP_A..
-
[ 500pts ] UnexploitableSystem/Pwnable.tw 2019. 3. 8. 18:35
pwnable.kr의 unexploitable보다 더 어렵게 만들었다고 한다. 딱히 뭐가 더 어렵다기 보다는 풀이방식이 서로 다르기 때문에 각 각의 매력이 있는 것 같다. [ File ]64Bit : FastcallDynamically Linked: 공유라이브러리 사용not stripped: 안티 디버깅 미적용 [ Mitigation ]Partial RELRO: GOT Overwrite 가능NX: 실행권한 없음 [ Gadget ] Exploit에 필요한 가젯도 없는 상태다.[ How to Exploit? ] 우선 인자구성에 필요한 가젯이 없기 때문에 ( pop rdi, rsi, rdx, ret )이럴 때는 'Return to csu'를 이용해서 인자들을 세팅해줄 수 있다. Exploit시나리오는 여러가지..