본문 바로가기

Security/Forensic

포렌식 메모리 분석(w/Redline)

메모리구조

- 식별

KPCR(Kernel Processor Control Region), KDBG(Kernel Debugger Datablock), 

KDBG(_KDDEBUGGER_DATA64의 약자)

KPCR  - 사용하고 있는 CPU의 정보를 담고 있는 구조체


- 구조 분석

EPROCESS, PEB(Process Environment Block), VAD(Virtual Address Descriptor), DLLs, Kernel modules, drivers

- 내용 확인

후킹탐지, 시그니처 확인


프로세스분석

- Image Name, Full Path, Parent Process, Command Line, Start Time, Security IDs(실행계정)

<Image Name>

예) svchost(O), scvhost(X)


<Full Path>

예) Explorer.exe는 Windows 디렉토리에서 실행되어야함

     svchost.exe는 system32 디렉토리에서 실행되어야함


<Parent Process>

예) svchost.exe의 부모는 services.exe 이여야 함

     cmd.exe가 부모인 시스템 파일은 의심해볼만 함

     부모프로세스가 죽은 경우 의심해볼만 함


<Command Line>


<Start Time>

예) svchost.exe 들 간의 시작시간은 비슷해야 함

부팅시 실행되는 smss.exe winlogon.exe는 시작시간이 비슷해야 함


<SID>

Administrator :  500번, Guest : 501번, 일반사용자 : 1000번이상

예) 시스템 프로세스가 일반사용자 권한으로 실행되는경우


<Handle>

악성코드가 주로 사용하는 Mutant 핸들 조사 가능

예) xEnMMWEH : sobig 악성코드


<LFO - Least Frequency of Occurrence>

- 참조가 적은 Handle은 의심해볼만 하다

예) Mutant 참조 횟수가 1인 Handle을 많이 가진 Process

(Redline에서는 Option을 통해 사용자 시그니처 생성 가능)


네트워크 분석

- 외부로 열려 있는 포트

예) 시스템 프로세스가 외부랑 통신하는 경우

=> 통신시작 시간도 중요함 (연계 프로세스나 파일을 찾을수 있음)

- 내부에서 Listen하고 있는 포트

- 관련 네트워크와 연계된 프로세스의 정상여부 검토

- String 상의 http:// https:// ftp:// 관련 문자열


코드 인젝션 분석 (추가 공부 필요)

DLL Injection  의심 함수

- VirtualAloocEx(), CreateRemoteThread(), Set WindowsHookEx()

DLL Injection 의심 핸들

Page_execute_ReadWrite 의 메모리 영역


Stuxnet - Process Hollowing (추가 공부 필요)


윈도우 부팅과정 (추가공부필요)

ntoskrnl.exe

- SSDT 후킹에 주로 이용됨


smss.exe => winlogon.exe => lsass.exe => services.exe => csrss.exe => svchost.exe, spoolsv.exe

lsass.exe(Local Security Authority Subsystem Service)

- 1개 프로세스만 존재해야 함

- 부모 프로세스는 winlogon.exe 임

svchost.exe

- 부모 프로세스는 services.exe


루트킷 탐지

SSDT (System Service Descriptor Table)

1) Target

- System Kernel(ntoskrnl.exe)

- GUI Driver (Win32k.sys)

2) 주요 함수

NtEnumerateKey : 레지스트리 키 은닉 

NtEnumerateValueKey : 레지스트리 값 은닉 

NtQueryDirectoryFile : 파일 은닉


IDT(Interrupt Descriptor Table)

- System Kernel(ntoskrnl.exe)

- hal.dll


IAT(Import Address Table)

- user-mode

- Volatility apihooks

Inline API

- Volatility apihooks


IRP (I/O Request Packets)

- Driver Hooking

=> Hooking이 가장 적게 걸려있는 드라이버를 의심

=> VirusTotal, 행위분석, 동적분석, 정적 분석 등을 통해 악성파일 검증


악성코드 분석(추가공부필요)

드라이버 파일을 추출했을때분석 방법 (Ollydbg?)


'Security > Forensic' 카테고리의 다른 글

안드로이드 이미징  (0) 2016.06.01
log2timeline 사용 예제  (0) 2015.11.19
포렌식 메모리 분석(w/Volatility)  (0) 2014.12.21
E01 파일 mount  (0) 2014.12.03