목록분류 전체보기 (285)
tmxklab
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
1. ARM(Advanced RISC Machine) 임베디드 기기에 주로 사용되는 RISC 프로세서 모바일 기기 또는 IoT 디바이스에도 사용됨 저전력을 사용하도록 설계됨 1) Register r0 ~ r15까지 총 16개의 범용 레지스터를 가지고 있으며 다음 3가지의 레지스터는 특수 용도로 사용된다. r13(SP, Stack Pointer) : 스택의 주소를 저장하는 레지스터, ESP와 비슷한 역할, 현재 Stack을 어디까지 쌓아 두었는지 가리킴 r14(LR, Link Register) : 함수 호출시 되돌아갈 함수의 주소가 저장되는 레지스터, 함수 호출 전 LR에 리턴 주소 저장하고 branch(jump) r15(PC, Program Conuter) : 현재 어디를 수행하고 있는지 가리키는 레지스..
pwnable.kr문제 중에 leg라는 문제를 풀다가 나중에 ARM 바이너리를 실행하거나 디버깅할 때 참고하면 좋을 것 같아 짧게 정리하게 되었다. (ubuntu 18.04 ≥) test용 소스코드는 pwnable.kr의 leg.c를 참고하였고 환경은 ubuntu 18.04에서 진행되었다. 1. Install gcc sudo apt-get install gcc-7-multilib-arm-linux-gnueabi -y sudo apt-get install gcc-7-multilib-arm-linux-gnueabihf -y 2. Install qemu-user-static & gdb-multiarch sudo apt-get install qemu-user-static sudo apt-get install g..
1. 문제 확인 파일 확인 horcruxes@pwnable:~ ls -l total 20 -rwxr-xr-x 1 root root 12424 Aug 8 2018 horcruxes -rw-r--r-- 1 root root 131 Aug 8 2018 readme horcruxes@pwnable:~$ cat readme connect to port 9032 (nc 0 9032). the 'horcruxes' binary will be executed under horcruxes_pwn privilege. rop it to read the flag. horcruxes파일 하나 주어지며 nc로 붙어서 9032 포트로 접속 가능하다고 한다. 추가로 rop를 이용해서 flag값을 읽으라고 한다. 일단 ftp로 hor..
1. 문제 확인 파일 확인 blukat@pwnable:~$ ls -l total 20 -r-xr-sr-x 1 root blukat_pwn 9144 Aug 8 2018 blukat -rw-r--r-- 1 root root 645 Aug 8 2018 blukat.c -rw-r----- 1 root blukat_pwn 33 Jan 6 2017 password [ blukat.c ] #include #include #include #include char flag[100]; char password[100]; char* key = "3\rG[S/%\x1c\x1d#0?\rIS\x0f\x1c\x1d\x18;,4\x1b\x00\x1bp;5\x0b\x1b\x08\x45+"; void calc_flag(char* s){..