목록Security/07 Malware Technique (18)
tmxklab
0. 목차Contents0. 목차1. Reflective DLL Injection1.1 배경1.2 DLL Injection과 Reflective DLL Injection1) DLL Injection2) Reflective DLL Injection1.3 차이점2. Reflective DLL Injection 유형 분석2.2 소스코드 및 실행 파일3. 분석3.1 정적 분석1) DLL 데이터 호출 프로세스에 저장2) 윈도우 토큰권한(보호된 프로세스 권한 재설정)3) LoadRemoteLibraryR() 호출4) CreateRemoteThread()5) ReflectiveLoader() - 사실 이 부분이 제일 핵심임3.2 동적 분석1) DLL 데이터 호출 프로세스에 저장2) LoadRemoteLibraryR(..
0. 목차Contents0. 목차1. Thread Injection이란2. Thread Injection 유형 분석2.1 분석 환경2.2 예제 소스 코드 및 컴파일3. 분석3.1 정적 분석start()1) ProcessHandle = (HANDLE)OpenProcess(0x42A, 0, pid);2) snap = CreateToolhelp32Snapshot(4, 0);3) Thread32First(snap, &v2);4) Thread32next()5) OpenThread()6) SuspendThread()7) GetThreadContext()8) BaseAddress = (PVOID)VirtualAllocEx(ProcessHandle, 0, 0x1000, 0x3000, 0x40);9) NtWriteVir..
0. 목차Contents0. 목차1. PE Injection이란2. PE Injection 유형 분석2.1 분석 환경2.2 예제 소스 코드3. 분석3.1 정적 분석start() doit()1) lpAddress = GetModuleHandleA(0);2) dwProcessId = findPidByName((int)"explorer.exe");3) hProcess = OpenProcess(0x42Au, 0, dwProcessId);4) lpBaseAddress = VirtualAllocEx(hProcess, lpAddress, dwSize, 0x3000u, 0x40u);5) ProcessHandler = GetCurrentProcess();6) lpBuffer = VirtualAllocEx(ProcessH..
0. 목차0. 목차1. Process Hollowing이란2. Process Hollowing 유형 분석2.1 분석 환경2.2 예제 소스 코드 및 컴파일3. 분석3.1 정적 분석1) CreateProcessA()2) CreateFileA(ExeName, 0x80000000, 1, 0, 3, 0, 0);3) VirtualAlloc()4) ReadFile()5) NtGetContextThread()6) NtReadVirtualMemory()7) NtUnmapViewOfSection()8) VirtualAllocEx() → 메모리 할당9) NtWriteVirtualMemory10) NtSetContextThread()11) ResumeThread()+) CONTEXT구조체3.2 동적 분석1) CreatePro..
0. 목차0. 목차1. DLL Injection이란2. DLL Injection 유형 분석2.1 분석환경2.2 예제 소스 코드 및 컴파일3. 분석3.1 정적 분석1) sub_4010F0((int)"explorer.exe") 2) CreateToolhelp32Snapshot()3) sub_401000("c:/windows/temp/msg.dll")4) OpenProcess();5) VirtualAllocEx(); → 메모리 할당6) WriteProcessMemory();7) v2 = GetModuleHandleA("Kernel32");8) lpStartAddress = GetProcAddress(v2, "LoadLibraryA");9) CreateRemoteThread();3.2 동적 분석1) WinExe..
0. 목차0. 목차1. Resource 유형1-1. 분석환경1-2. 예제 소스 코드 2. 분석2.1 정적 분석1) GetModuleHandleA()2) FindResourceA()3) LoadResource()4) LockResource()5) SizeofResource()6) CreateFileA()7) WriteFile()8) CloseHandle()2.2 동적 분석1) GetTempPathA() & sub_401000()2) hModule = GetModuleHandleA(0)3) hResInfo = FindResourceA(hModule, (LPCSTR)0x65, "ETC");4) hResData = LoadResource(hModule, hResInfo); 5) v3 = LockResource(..
0. 목차0. 목차1. URL 다운로드 & 실행 유형 분석1.1 분석 환경1.2 예제 소스 코드 2. 분석2.1 정적 분석1) VirtualProtect() 2) GetTempPathA()3) sub_401000(&Buffer, "adb.exe");4) URLDownloadToFileA()5) Sleep(0x3e8); & JUMPOUT(__CS__, &Address);2.2 동적분석3. 정리3.1 Process 1. URL 다운로드 & 실행 유형 분석1.1 분석 환경OS : Windows 7(x86)Debugging Tool : IDA Pro, Windbg, x32dbg 1.2 예제 소스 코드 [ main.cpp ]#include #include #pragma comment(lib, "UrlMon.lib..
1. Dropper 바이러스를 떨어뜨린다는 뜻을 갖는 악성 실행파일 드롭퍼는 대상 시스템에 추가 악성코드를 감염시키기 위해 제작된 프로그램 일반적으로 드롭퍼 내부에 압축된 형태로 존재하여 탐지가 어려움 1.1 Downloader vs Dropper Dropper는 실행 파일에 숨겨두어 대상 시스템에 추가 악성코드를 생성하여 실행하지만 Downloader는 파일에 숨겨둔 것이 아닌 인터넷을 통해 추가 악성코드를 내려받고 실행한다. 1.2 Dropper 유형 1) URL 다운로드 & 실행 유형 2) Resource 유형 3) Injection 유형 DLL Injection Process Hollowing PE Injection Thread Injection / Thread Hijacking