목록Security (73)
tmxklab
0. 목차Contents0. 목차1. 소개1.1 UAC(User Account Control)1.2 UAC Bypass2. UAC 우회 악성코드 유형 분석2.1 분석환경3. 분석3.1 정적 분석1) TOKEN_ELEVATION_TYPE 확인 및 분기2) 레지스트리 키 생성 및 ComputerDefaults.exe 실행3.2 동적 분석1) TOKEN_ELEVATION_TYPE 확인 및 분기2) 레지스트리 키 생성 및 ComputerDefaults.exe 실행4. 정리4.1 몰랐던 내용4.2 레지스트리 관련 API 함수 정리1) RegOpenKeyExA()2) RegCreateKeyA()3) RegSetValueExA()4) RegDeleteKeyA()5) RegCloseKey()5. 참고자료5.1 UAC ..
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(..
악코분을 하다보면 가끔 CreatRemoteThread()를 호출하여 타겟 프로세스에 스레드로 동작시키게 한다. 그래서 스레드가 동작하는 과정을 x64dbg를 통해 디버깅하는 방법에 대해서 간략하게 소개하려고 한다. 먼저, CreatRemoteThead()와 같이 타겟 프로세스에서 Thread를 동작하게 해주는 프로그램을 동작시킨다. 그리고 x64dbg를 하나 켜주고 [Alt + a]를 눌러서 Attach할 항목을 선택한다. 여기서 나는 타겟 프로세스가 CFF Explorer(pid : 37800)이므로 이거를 선택한다. 참고로 저기 항목에서 안나오는 경우가 있다. 그럴 땐 밑에 [창 찾기]버튼을 눌러서 프로세스 이름을 적어준다. 그리고 F9를 눌러 실행시켜준다. 그러면 다음과 같이왼쪽에 타겟 프로세스인..
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