책을 보며 Universal 쉘코드를 만드는 과정에서 kernel32.dll의 주소값을 구해보는 실습을 공부 중 정리 각 버전에 맞는 WinDbg 다운로드http://msdn.microsoft.com/en-us/windows/hardware/hh852365.aspx WinDbg 명령어 명령어 설명 사용 예시 db byte단위로 메모리를 표시 >db[메모리주소]>db 0x7ff00000 dd double word 단위로 메모리를 표시 >db[메모리주소]>db 0x7ff00000 dt type을 표시(구조체 등)type에 해당하는 메모리값 확인 >dt [구조체]>dt _PEB >dt [구조체] [메모리주소]>dt _PEB 0x7ff00000 * 실습대상(calc.exe)1. 심볼 서버 연동 설정(Ctrl +..
#include int main(int argc, char* argv[]) { /* char cmd[4] = {'c','m','d','\x0'}; __asm { _emit 0xCC } WinExec(cmd, SW_SHOW); ExitProcess(1); */ /* __asm{ // cmd // 아래 널 바이트 부분을 대체하는 코드 xor ebx, ebx mov [ebp-4], ebx movbyte ptr [ebp-4], 63h movbyte ptr [ebp-3], 6Dh mov byte ptr [ebp-2], 64h //mov byte ptr [ebp-1], 0 // 널바이트 제거 // call WinExec('cmd', SH_SHOW ) push 5 lea eax, [ebp-4] push eax mov..
LoadLibrary MSDNhttps://msdn.microsoft.com/ko-kr/library/windows/desktop/ms684175(v=vs.85).aspx GetProcAddress MSDNhttps://msdn.microsoft.com/en-us/library/windows/desktop/ms683212(v=vs.85).aspx LoadLibrary 함수를 사용하여 DLL의 시작 주소를 가져와 GetProcAddress 함수를 사용하여 ServiceMain에 진입하는 방법이다.
허접한 분석 보고서입니다. 욕하면서 봐주세요ㅎㅎ
memcpy 취약한 함수를 사용하여 기본적인 Buffer Over Flow 취약점을 알아보겠습니다. 아래 소스는 BOF에 취약한 소스입니다. 메모리에 들어오는 길이 값을 검사하지 않아 생기는 취약점인데, 엄청 기본적인 방법이라 정리를 하고 가려고 합니다. sBuf에 32를 할당하고, 0으로 초기화 시키고 있습니다. shellcode는 0x41414141 4바이트씩 맞춰서 결국 Return Addresss에 0x41414141이 뜨고, 그 곳으로 가게 하는 것이 목표입니다! 위의 소스를 디스어셈블하여 확인하면, 아래와 같습니다. EBP를 확인해보면 0012FF78 이라는 것을 확인할 수 있습니다. MOV EBP, ESP를 통해서 EBP에 스택포인터가 전해졌고, [EBP-20] 을 할당 후에 0으로 모두 쓴..
1. 새 프로젝트로 콘솔 프로그램 생성2. 프로젝트 오른쪽 마우스 클릭 - 빌드 종속성 - 사용자 지정 빌드 클릭 - masm 체크 - 확인 3. 소스파일로 .asm .s 확장자로 파일을 생성4. 생성 된 소스파일의 속성 페이지 - 빌드에서 제외 (아니요), 항목 형식 - Microsoft Macro Assembler 5. 프로젝트 속성 페이지 - 구성 속성 - 링커 - 입력 메뉴로 들어가 추가 종속성을 클릭 - 편집 버튼 클릭 후 libcmt.lib 적고 확인 버튼 클릭 6. 어셈블리 코딩 시작
RVA (Relative Virtual Address)- VA(Virtual Address)는 memory에 mapping된 절대 주소를 뜻함.- RVA는 이름 그대로 어느 기준(ImageBase)으로부터의 상대 주소를 뜻함. VA와 RVA의 관계는 아래와 같다.RVA + ImageBase = VA PE header 내의 많은 정보들이 RVA 형태로 되어 있다.RVA를 사용하는 이유는 relocation 때문인데, Dll 같은 경우 memory에 mapping 하려는 주소에이미 다른 library가 있는 경우 Relocation을 통해 빈 공간에 mapping하게 된다. RAW- RAW는 disk상의 file에서 주소를 뜻함. File상에서의 offset이라고도 불림. RVA to RAV- PE file..
- Total
- Today
- Yesterday
- 비트코인
- Servey
- 출처 : Do it 안드로이드 프로그래밍
- 악성코드
- Yara
- MS-Office
- .wll
- vuln
- AMSI
- 위협정보공유
- VirusBulletin
- Cisco Talos
- 스피어피싱
- Static Analysis Engine
- infostealer
- Kimsuky
- 해킹메일
- 멋쟁이사자처럼 4기
- Bisonal
- Decoding
- malware
- Flybits
- us-cert
- keylogger
- CVE-2018-0798
- idapython
- koodous
- cuckoo-sandbox
- CVE-2018-9375
- 한글악성코드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |