[Reversing] Self Creation, 디버깅 Emotet 분석중(그림 1)을 살펴보면 서비스 실행 한도 시간을 수정한 후 해당 서비스 실행 파일의 EP의 2byte 값을 무한루프로 변경해 주는 것을 확인 할 수 있다. 이후 서비스를 시작할 때 해당 서비스를 Attach를 한 후 원복 후 디버깅을 진행 할 수 있다.. 그림 1 – 서비스 디버깅 CVE-2017-11882 분석중취약점 발생 원인 부분을 살펴보면 Microsoft Office의 수식 편집기(EQNEDT32)을 이용하여 쉘 코드를 실행하는 한다는 사실을 알 수 있었다. 즉, Cve-2017-11882.rtf을 실행 시 수식 편집기가 실행 되면서 취약점이 발생하는 걸 확인하였다. (그림 2)와 같이 EQNEDT32.EXE의 Entry ..
[Reversing] Inline Code Patch [Reversing] Inline Code Patch ② 원하는 코드를 직접 수정하기 어려운 경우 코드 케이브라고 하는 패치 코드를 삽입한 후 실행해 프로그램을 패치시키는 기법을 인라인 코드(Inline Code Patch)라고 합니다.또 하나의 개념은 코드 게이브(Code Cave) 입니다. 흐름을 변경하여 삽입된 코드 영역을 거쳐서 수행되도록 하는 기법을 말합니다. 위 파일을 통해 실습을 할 것입니다.[프로그램 실행시 팝업창] - 살펴보니, 텍스트 박스에 unpack me와 같은 문자가 보입니다.- x64 dbg를 통해 살펴보겠습니다. 1. x64 dbg & 흐름분석- EntryPoint로 이동을 하겠습니다.401000 PUSHAD- PUSHAD를..
[Reversing] Printf()함수 스택프레임(Stack Frame) [Reversing] 스택프레임(Stack Frame)이전 게시물의 예제 중 printf("%d\n", x); 부분에 대해 간략하게 설명을 하겠습니다. printf() 함수 호출4010BB PUSH PROJECT1.41C798- 해당 41C798 주소에는 "%d\n" 문자가 있는걸 알수있습니다.[printf() 함수 호출 전 PUSH 부분] - printf() 함수의 스택 프레임을 생성합니다. 다음을 보시게 되면 순서데로 작성해보겠습니다. PUSH EBP- 스택에 현재의 EBP를 저장합니다. MOV EBP, ESP- printf()의 ESP 값을 EBP에 옮겨주었습니다. PUSH ESI- 스택에 ESI를 저장합니다.- ESI는 데..
[Reversing] PE 파일 만들기④ 마지막으로 어셈코드를 제작할 것입니다.[Reversing] PE 파일 만들기①[Reversing] PE 파일 만들기②[Reversing] PE 파일 만들기③ 1. x64 dbg- 지금까지 만들어진 파일을 올려보겠습니다.- 해당 VA 주소는 코드섹션(.text Section)입니다.- 현재는 0으로 채워져 있으니 코드섹션에 어셈코드를 추가할 것입니다. [0x401000 x64 dbg] [.text Section PE] 2. .text Section- 이전 게시물에 있는 파일을 열어보시면 위와 같이 .text Section 부분이 0으로 채워져있습니다.- 이전에 말했듯이 해당(30h)부분에 어셈코드를 제작할 것입니다.- 200h 부터 추가할 것입니다. [어셈코드 추가..
[Reversing] PE 파일 만들기③ Dos Header ~ .text 섹션을 생성하고 내용을 채워 제작했습니다.[Reversing] PE 파일 만들기①[Reversing] PE 파일 만들기② 1. IMPORT Directory Table[Step1]- 먼저 IMAGE_DATA_DIRECTORY에서 IMPORT Table의 RVA값을 작성할 것입니다.- 저는 IMPORT Table의 RVA를 0x40으로 제작할 것입니다.- 이전 게시물에 MS-DOS Stub Program 0으로 채운 부분에 IDT를 작성한다고 했습니다.(참고) [IDT 지정 HxD] [Step2]- IMPORT Directory Table의 필드를 다시 보겠습니다.- Import Name Table RVA, Time Date Sta..
[Reversing] PE 파일 만들기② 현재까지 Dos Header ~ PE Header 부분까지 제작해 왔습니다.[Reversing] PE 파일 만들기①물론 추가적으로 수정해야 되는 부분도 있습니다.(IMAGE_DATA_DIRECTORY 크기만 잡아두고 왔죠)다음으로는 PE 파일의 마지막 구조체인 Section Header 제작할 것입니다. 1. IMAGE_SECTION_HEADER .text- IMAGE_SECTION_HEADER Size는 40 bytes 입니다.- .text Section의 속성 값에 대한 정보를 가지고 있습니다. - .text, .idata, .data과 같은 Sections이 Section Table(IMAGE_SECTION_HEADER의 배열) 입니다.- PE 파일은 cod..
[Reversing] PE 파일 만들기 ① 제작 과정은 간략한 설명으로 건너뛰고 넘어가는 부분이 많습니다.이전 게시물을 참조 및 PE Format 참조 직접 제작해 보는 것을 추전을 받아 작성합니다.직접 제작하다 보면 자신이 잘 몰랐거나 잘 못 이해하던 부분을 정확히 파악하고 제대로 공부할 수 있다고 생각합니다.CLI 기반, printf문 사용, 'Hello World !' 출력을 목적으로 제작할 것입니다. 1. IMAGE_DOS_HEADER- MZ는 IMAGE_DOS_HEADER의 Signature입니다.(4D5A = ASCII 값 "MZ")- 해당 구조체의 크기는 40h으로(64byte) 고정이며, 여러개의 필드로 구성되어있습니다.- IMAGE_DOS_HEADER의 구조체 중 e_lfanew가 PE ..
- Total
- Today