본문 바로가기

reversing/rootkit

(24)
rootkit- syscall [2] Linux System call Hooking git : https://github.com/jhong3842/linux_rootkit앞서 자신을 숨기는 방법에 관해서 알아보았다.리눅스 자체에서 기능을 제공하는 함수가 많기에 함수를 잘 알고 많이 아는것이 중요하고 편한것 같다. 이제 syscall table을 수정하여서 원하는 함수로 hooking 하도록 해본다. 먼저 들어가기에 앞서..syscall table에는 각 함수에 해당하는 번호가 할당되어 있다.함수의 번호를 확인하고 싶으면 kernel 소스를 확인해보면 되는데 richong@ubuntu:~/LKM$ man syscall 과 같이 syscall 번호를 찾기 위해서 찾아보면.. NAME syscall - indirect system call SYN..
rootkit- syscall [1] Linux System call Hooking Linux 환경에서의 Driver를 이용하여서, system call을 후킹 방법에 관해서 공부하려 한다. 내용은 간단하고 쉽지만, 윈도우 환경에서의 api 함수와 차이가 있어서 함수도 정리하면서 진행한다. 먼저 간단한 LKM을 빌드하고 설치해 본다. #include // included for all kernel modules #include // included for KERN_INFO #include // included for __init and __exit macros MODULE_LICENSE("GPL"); // GPL == GNU Public License v2 또는 이상 // GPL과 호환되는 라이선스로 등록한 모듈에서만 해당 심볼들을 사용가능..
DLL Injection Detect[3] 이것저것 구조체 필요한 부분만 알맞게 정의해서 vad 파싱해서 이름 가져왔다. refer_vad.h #pragma once extern "C"{ #include "ntddk.h" } // 타입 정의////////////// typedef unsigned long DWORD; typedef DWORD *PDWORD; typedef unsigned char BYTE; typedef BYTE *PBYTE; typedef unsigned short WORD; typedef unsigned long ULONG; //////////////////////////// typedef struct _SUBSECTION // 0x20 { struct _CONTROL_AREA* ControlArea; // +0x0(0x4) ..
DLL Injection Detect[2] 보호되어 있는 글입니다.
[WHY] 역공학 분야를 공부하는 이유 보호되어 있는 글입니다.
DPC 보호되어 있는 글입니다.
EPROCESS 구조체 [ 프로세스 숨기기_2 ] EPROCESS 구조체에 관해서 전 포스팅에서 알아 보았다. EPROCESS 구조체 [ 프로세스 숨기기_1 ] [http://richong.tistory.com/100] Windows에서 Process가 어떻게 관리 되는지 알수 있으니, 쉽게 숨길수 있다. 간단하게 정말 간단하게 드라이버를 만들어 보았다. 개념을 이해하고 적용해보는데는 좋은것 같다. 실제로 프로세스를 숨기기 위해서는 숨기고 싶은 PID 값을 전달 받아서 숨기는 방법을 사용할 것같다. 위의 그림과 같이 포인터만 변경 해주었다. 환경은 Windows 7 32bit 이다. Dbgview.exe 프로세스를 Target Process로 하였다. 드라이버를 로드하기 전 작업관리자이다. 그리고 드라이버를 로드하고 나서 작업 관리자의 모습이다. Dbg..
WinDBG 명령어 [SXE,sxe] -SYS 분석 기본적으로 커널 디버깅 환경이 구축된 상태로 진행한다. 커널 디버깅 환경 구축 [http://richong.tistory.com/97] 분석 환경:OS : Windows7Tool : PE View, IDA, Windbg, OsrLoader WinDBG 명령어 중에 SXE라는 명령어가 있다. 드라이버 분석할 때 주로 사용되는 명령어인것 같다. 명령어를 익숙하게 하기 위해서 어떠한 명칭으로 사용되는지를 아는게 중요하다고 생각한다. Set Exceptions를 SXE라고 표현한다. 예외를 발생시켜라 라는 의미이다. 명령어의 활용에 대해서 알아 보고자 한다. kd> sxe ld [moduleName] --> moduleName이 로드 될 때 예외를 발생시켜라는 의미이다. --> 예외를 로드 될 때 이러한 이름의..