목록2016/12 (8)
#dokydoky
0x01. Intro안녕하세요. dokydoky 입니다.이전 포스팅에서는 NX+ASLR 환경에서 익스플로잇을 해봤습니다. 이번 포스팅에서는 Stack Canaray를 추가하여 익스플로잇 해보겠습니다.이번엔 nginx2 바이너리로 진행합니다. nginx1은 Stack Canary가 적용되어 있지 않고, nginx2는 적용되어 있습니다. Stack Canary란 RET, SFP(Stack Frame pointer)가 변조되는 것을 감지하기 위해, SFP앞에 stack cookie를 저장해놓는 기법입니다. 컴파일 옵션은 이곳을 참조하시기 바랍니다.이하 존칭어를 생략합니다. 0x02. Exploit checksec으로 확인해보면 nginx2에 Stack Canary가 추가적으로 적용된 것을 확인 할 수 있다. ..
0x01. Intro 안녕하세요. dokydoky입니다. 이전 포스팅에서는 NX만 적용되어 있는 환경에서 어떻게 익스플로잇 하는지 알아봤습니다. 이번 포스팅에서는 ASLR이 추가적으로 적용되어 있는 환경에서 어떻게 익스플로잇 하는지 알아보겠습니다. 이전 포스팅에서는 libc-2.19.so에서 가젯을 구성했지만, ASLR이 적용되면 libc-2.19.so의 메모리 주소가 달라지기 때문에 이전의 방식으로는 익스플로잇 할 수 없습니다. (ASLR이 적용되면 Stack, VDSO(Virtual Dynamic Shared Object), 공유메모리 영역, Data 세그먼트의 주소가 랜덤화됩니다.)그렇다면 어떻게 가젯을 구성할까요?nginx 1.4.0 버전에서는 PIE가 적용되어 있지 않습니다. 이를 이용해 봅시다..
0x01. Intro안녕하세요. dokydoky입니다.이전 포스팅에서는 환경을 구성하고 CVE-2013-2028 취약점이 발생되는 코드를 살펴봤습니다.이번 포스팅에서는 어떻게 익스플로잇을 하는지 알아보겠습니다. 바이너리 파일은 nginx1을 사용하시면 됩니다.mitigation중 NX, ASLR, Stack Canary를 순차적으로 적용해서 우회해보려고 합니다.우선 이번 포스팅에서는 NX만 걸려 있는 환경입니다. NX가 걸려있으면 Heap, Stack 영역에 실행권한이 없어 쉘코드를 바로 실행할 수 없습니다. 본문에서 사용할 도구들은 아래와 같습니다.mitigation 확인 : checksecoffset 찾기 : pattern.pyROP gadget 확인 : rp-ln-x64이하 본문에서는 존칭어를 생략..
0x01. Intro안녕하세요. dokydoky입니다. Nginx 1.3.9/1.4.0에서 unsigned int와 signed int의 잘못된 Type Conversion으로 stack buffer overflow가 발생될 수 있는 취약점이 있습니다. 2013년 5월에 발표된 취약점(CVE-2013-2028)이지만, 취약점을 공부하는데 좋은 예라고 생각되어 정리해봤습니다. 우선 왜 취약점이 발생하는지 코드를 통해 살펴본 후, Ubuntu x64 환경에 3가지 mitigation(NX, ASLR, STACK CANARY)을 하나씩 추가하면서 어떻게 익스플로잇을 하는지 알아보겠습니다. * Environment Github에 Vagrant로 작업환경을 만들어둔 감사한 분이 있어서, 해당 환경을 이용했습니다...
context에서 architecture, os를 지정한 후 아래와 같이 쉘코드를 생성할 수 있다.shellcraft.bindsh은 standalone 데몬을 remote exploit하기 위한 쉘코드.shellcraft.sh은 local exploit이나 xinetd로 관리되는 바이너리를 exploit하기 위한 쉘코드(stanalone, xinetd가 이해되지 않는다면 참고 : http://dokydoky.tistory.com/446) In [57]: from pwn import * In [58]: context(arch='amd64', os='linux') In [59]: print "".join(['\\x{:02X}'.format(ord(i)) for i in asm(shellcraft.bindsh..
0x1. 들어가며안녕하세요. dokydoky입니다. remote에서 exploit 할 때, shell을 얻는 방법에 대해서 정리해보겠습니다. 이하 존칭어는 생략하겠습니다.네트워크 프로그램을 구현하는 방법에는 두 가지가 있다. - 표준 입출력을 사용해 프로그램을 구현한 후, Inetd 혹은 Xinetd 데몬을 이용하여 네트워크로 연결. - Standalone 모드 : socket과 같은 독립적인 네트워크 프로토콜을 사용하여 구현하여 실행.각 방법에 따라 어떻게 원격에서 쉘을 얻을 수 있는지 예를 통해 알아보겠다.예제 코드에서는 원격에서 shellcode를 삽입하는 대신, 서버 코드에 미리 shellcode의 기능을 하는 동일한 코드를 구현해놓았다.exploit할 때는 서버에서 shellcode 라고 표시되..
0x0. Introduction 0x1. Vulnerable code 0x2. How to trigger 0x3. Exploit > Populate LookAside List of Paged pool > Shellcode(Privilege Escalation) > Full Exploit code 0x0. Introduction Hi, This is dokydoky. I wrote about "Uninitialize Heap Variable", an assignment for Windows Kernel Exploitation (by Ashfaq Ansari). I would like to thank Ashfaq Ansari for your help. I used many of the source codes..
0x0. Introduction 0x1. Vulnerable code 0x2. How to trigger 0x3. Exploit > Populate LookAside List of Paged pool > Shellcode(Privilege Escalation) > Full Exploit code 0x0. Introduction 안녕하세요. dokydoky입니다. Windows Kernel Exploitation(by Ashfaq Ansari)의 과제였던 "Uninitialize Heap Variable"에 대해 정리해봤습니다. 도움을 주신 Ashfaq Ansari에게 감사의 말씀을 전합니다. 그리고 HackSysExtremeVulnerableDriver의 Pool Overflow, UAF 익스플로잇 코드..