시나리오 #1
- 침해사고가 발생한 시스템에서 확보한 메모리 덤프에서 프로세스 정보 추출하기 (시나리오1)
메모리 덤프파일에서 프로세스를 뽑아낼거다.
volatility (python) -> 포렌식 도구
volatility25.exe -f memory.raw imageinfo
-> 이미지 정보 추출
STEP
step1. preocess PID, PPID 정보를 가진 목록을 추출.volatility25.exe -f memory.raw --profile=Win7SP1x86 pslist > pslist.txt
step2. process의 부모자식관계 가시화한 리니지 분석.volatility25.exe -f memory.raw --profile=Win7SP1x86 pstree > pstree.txt
step3. preocess의 커맨드라인 파라미터 정보 추출.volatility25.exe -f memory.raw --profile=Win7SP1x86 dlllist > dlllist.txt
step4 프로세스의 활동정보 추출.volatility25.exe -f memory.raw --profile=Win7SP1x86 netscan > netscan.txt
step5 process의 프로세스인젝션 공격 흔적 추출.volatility25.exe -f memory.raw --profile=Win7SP1x86 malfind > malfind.txt
step6 실행 파일의 이미지를 덤프.volatility25.exe -f memory.raw --profile=Win7SP1x86 procdump -D .\dumpdir
- 이름 경로 확인
type dlllist.txt | findstr /I /V "program files" | findstr /I /V "windows"
program files 와 windows가 들어간 것은 제외한다.
[option]
I 대소문자 구분 안함
V 이 뒤에 나오는 문장은 제외한다.
결론 : 이상징후 없음
- 커맨드라인 분석
- 리니지 분석
여기 첫 번째 svchost의 504다. 이것은 services라는 것을 알수 있다.
부모를 확인해보면 정상적으로 services로 확인된다.
다른 프로세스도 확인.
결론은 이상징후 보이지 않음.
PE-COFF / PE (exe,dll,sys,scl,cpl ..등 확장자는 다르지만 같은 포맷) ->
header -> imagebase : 실행파일의 메모리 번지 (0x00400000) ,
ㄴ-> address of Entrypoint : 메모리가 가장 먼저 인식 되는 곳
section#1(code) -> xx.text
section#2(data) -> xx.data
section#3(import) -> file I/O -> xx.idata (ex.
서명정보 -> verify
..
- 버전정보 체크
리틀엔디안이라 반대로 표현이 된다.
sigcheck->
서명정보, 버전 정보 모두 확인가능.
이 실행 파일의 섹션 헤더는 4개다.
감염 실행파일을 CFF Explorer에 돌려보자.
.rsrc가 없는걸로 보아 리소스가 없다.
얘네들은 서명정보가 없다.
이제 실행파일의 이미지를 덤프하자.
- 서명정보가 올바르지 않은가?
E열부터느 I열까지는 모두 리소스 섹션이다.
verified쪽은 unsigned라고모두 악성파일은 아니다. 메모리 덤프에서는 이건 확인하긴 어렵다.
즉, 메모리 덤프를 통해서는 서명정보 확인이 어려우며, 라이브 시스템에서 확인해야 함.
n/a -> 권한문제, 자료 깨짐 현상
# 이상징후가 보이는 프로세스는 다음과 같음
1280(spoolsv.exe) -> built-in process ,프린터 스풀러
2668(svcnet.exe) -> ? (의심스러운 실행파일)
2948(SearchIndexer.exe) -> built-in process 파일/폴더 인덱싱 및 검색을 책임지고 있는 프로세스
3292(DumpIt.exe) -> 메모리 덤프
512(lsass.exe) -> built-in 계정, 인증정보
520(lsm.exe) -> built-in
- 불필요한 네트워크 통신을 수행하는 프로세스가 존재하는가?
Explorer.exe는 보통 네트워크 통신을 안한다.
이게 통신을 한다면 비정상적인 상황이다.
네트워크 통신을 하고있으면 안되는 실행파일들을 검색해봤을 때 다 괜찮다. 즉 이상징후를 보이지 않는다.
총평
svcnet.exe 프로세스가 이상징후를 보이고 있다.
이제 dlllist 에서 svcnet.exe 위치를 추적한다.
시나리오 #2
- 실습 - 침해사고가 발생한 시스템에서 프로세스 이상징후 분석하기 (시나리오#2) {
#메모리 덤프를 분석하여 악성 프로세스를 찾아 보세요.
우선 포렌식 이미지 덤프와 volatility25.exe를 lab2폴더에 옮기고 이미지 정보를 확인한다.
이후 이미지 정보를 확인한다
순서대로 분석 결과를 문서화한다.
dunpdir을 만들어 실행파일 이미지를 덤프한다.
- 이름,경로 확인하기
얘가 좀 의심스러워 보임
- 커맨드라인 분석
- 리니지 분석
- 서명정보 분석
- 네트워크 통신 환인
- 의심 파일 경로
- Q. 의심스러운 프로세스의 부모 프로세스는 무엇입니까?
explorer.exe - Q. 의심스러운 프로세스의 이름/경로는 무엇입니까?
이름 : 0.998154833330
경로 : User\admin\AppData\Local\Temp\0.998154833330.exe
시나리오 #3
- 실습 - 침해사고가 발생한 시스템에서 프로세스 이상징후 분석하기 (시나리오#3) {
#메모리 덤프를 분석하여 악성 프로세스를 찾아 보세요. -
다시 lab3 폴더를 만들어 시나리오 3을 시작, 메모리 이미지 정보 확인.
결과물 추출하기.- 이름 경로 확인
- svchost 커맨드라인 확인
- 리니지 분석
- Q. 의심스러운 프로세스의 이름/경로는 무엇입니까? calc.exe
- Q. 의심스러운 프로세스의 부모 프로세스는 무엇입니까? 부모프로세스가 없어서 의심되는 실행파일이다.
시나리오 #4
실습 - 침해사고가 발생한 시스템에서 프로세스 이상징후 분석하기 (시나리오#4 - 2019 Defcon Unofficial CTF) {
# 메모리 덤프를 분석하여 악성 프로세스를 찾아 보세요.
Q. 악성(의심징후를가진) 프로세스의 이름/경로는 무엇입니까? 그리고 판단한 이유는 무엇일까요?
A. C:\Users\Bob\AppData\Local\Temp\rad93398.tmp\UWkpjFjDzM.exe
(일반적이지 않은 경로에서 실행됨, 버전정보에 문제가 있음,
네트워크 통신을 하고 있는데 Local/Remote 모두 임시포트 사용, LOL Binary인 wscript.exe 에 의해 실행됨)
Q. 악성 프로세스의 PID는 무엇입니까?
A. 3496
Q. 악성 프로세스와 관련된 프로세스 부모자식 관계를 분석해 보세요.
만약 네트워크 활동이 발견 되었다면 해당 내용도 분석해 주세요. ("netscan.txt" 조사)
E.G) P_A (PID XX, C:\Windows\P_A.EXE)
P_B (PID YY, C:\User\~\P_B.EXE)
...
A. explorer.exe (1432)
hfs.exe (3952)
wscript.exe (5116, C:\Windows\System32\wscript.exe //B //NOLOGO %TEMP%\vhjReUDEuumrX.vbs)
UWkpjFjDzM (3496) <---- TCP 세션 -------> 10.0.0.106:4444
cmd.exe (4660)
Q. C2서버(악성코드와 통신하는 서버)의 도메인(IP)는 무엇입니까? ("netscan.txt" 조사)
A. 10.0.0.106:4444
WinHex 디지털 포렌식 도구
MBR, VBR에서 직접 긁어온 것이어서 운영체제의 제약을 받는 탐색기와는 다르다.
SAM file ->
Sequential Access Method file
어떤 연관된 내용들끼리 모아서 저장해 놓은 방식이 아니라,
데이터가 생성되는 순서대로 이어붙여 저장하는 방식
운영체제는 탐색기에 이러한 정보들을 숨겨놓고 제공한다. 보통 을 추출 또는 복사해서 포렌식을 진행한다.
NTFS 기본 구조
txt 텍스트 추가
변경시간이 바뀌었다. 첫번째 attribute 보단 두번째껄 확인하는게 좀 더 정확하다!
바로가기 만들어보기
attrubute가 40이라면 objectID로 어디선가 이 파일을 포인팅(바로가기) 했다고 볼 수 있다.
$data와 $filename사이에 끼어있다.
'침해사고분석' 카테고리의 다른 글
악성 프로세스 행위 분석 (2) | 2023.11.26 |
---|---|
MFT 파일시스템 분석 (0) | 2023.11.26 |
침해사고분석 - 0x3 피해시스템 분석 최종정리 (4) | 2023.11.24 |
침해사고분석 - 0x2 침투경로 추적 (2) | 2023.11.24 |
침해사고분석 - 0x1 공격로그 찾기 (2) | 2023.11.24 |
IT/보안