GrrCon2015 풀이
*편의상 대부분은 경로를 생략하고 디렉토리명이나 파일명만 적었다.
역시 terminal(Windows Powershell)을 이용해야 한다.
cd ./desktop/GrrCon2015 volatility -f Target1 imageinfo |
Suggested Profile : Win7SP1x86_23418, Win7SP0x86, Win7SP1x86
중 아무거나 임의로 뽑아서 실습에 사용해 본다.
volatility -f Target1 --profile=Win7SP1x86 pslist > pslist.log volatility -f Target1 --profile=Win7SP1x86 psscan > psscan.log volatility -f Target1 --profile=Win7SP1x86 pstree > pstree.log volatility -f Target1 --profile=Win7SP1x86 psxview > psxview.log |
네트워크 정보 출력 명령어
volatility -f Target1 --profile=Win7SP1x86 netscan > netscan.log |
connections : 현재 연결된 TCP 통신에 대한 정보
sockets : 응답받기를 기다리고 있는 모든 프로토콜에 대한 socket 정보
->Windows xp까지만 가능
netscan : Windows 7 이후 버전에서 가능
volatility -f Target1 --profile=Win7SP1x86 cmdline > cmdline.log volatility -f Target1 --profile=Win7SP1x86 cmdscan > cmdscan.log volatility -f Target1 --profile=Win7SP1x86 consoles > consoles.log |
cmdline : 프로세스가 실행될 때 인자값
cmdscan : 콘솔에 입력한 값들을 실제로 볼 수 있음
consoles : 콘솔에서 입력 & 출력한 값들을 실제로 볼 수 있음
volatility -f Target1 --profile=Win7SP1x86 filescan > filescan.log |
filecan 명령어 실행 시, 오랜 시간이 소요되므로 먼저 filescan 명령어를 입력하고 notepad++를 켜준다.
notepad++ 실행 후, 프로세스 정보를 먼저 확인해 본다.
프로세스 정보 확인 시, pstree를 먼저 확인해주는 것이 좋다. Pid와 PPid 정보 때문이다.
<의심스러운 프로세스 목록>
TeamViewer.exe, TeamViewer_Des, tv_w32.exe -> TeamViewer 관련 프로세스 -> 살짝 의심스러움.
mstsc.exe -> 원격 데스크톱 -> 완전 의심스러움.
explorer.exe -> 윈도우 탐색기, 그런데 탐색기에서 cmd(명령 프롬프트)를 실행 -> 완전 의심스러움.
OUTLOOK.EXE -> 메일 관련, 악성코드 유포多 -> 의심스러움.
iexplore.exe -> 인터넷 익스플로어, 그런데 마찬가지로 cmd를 실행 -> 완전 의심스러움.
pslist로 해당 프로세스들을 실행된 시간 순서로 확인해 본다.
iexplore.exe - OUTLOOK.EXE - TeamViewer.exe - tv_w32.exe - TeamViewer_Des - mstsc.exe 순서로 실행됐고, OUTLOOK.EXE부터 침입된 것으로 추정됨.
cmdline 확인
Command line : "C:\Users\FRONTD~1\AppData\Local\Temp\TeamViewer\tv_w32.exe" --action hooks --log C:\Users\frontdesk\AppData\Roaming\TeamViewer\TeamViewer10_Logfile.log Command line : "c:\users\frontd~1\appdata\local\temp\teamviewer\TeamViewer_Desktop.exe" --IPCport 6039 |
TeamViewer 관련 수상한 커맨드가 존재한다.
notepad++로 cmdscan을 확인, 관리자로 cmd를 실행해서 명령어를 입력한 것이 보임. w.tmp 수상함.
netscan 확인해보면 192.168.은 공유기 주소라 수상X, 그런데 iexplore와 TeamViewer.exe 모두 해당 주소가 X임. 그러므로 수상함.
<확인할 목록>
- OUTLOOK.EXE
- tv_w32.exe
- C:/Windows/Temp>wce.exe, w.tmp
- iexplore.exe
OUTLOOK.EXE
OUTLOOK.EXE = 메일 -> 메모리 덤프 -> 메일 원본 확인 가능
OUTLOOK.EXE의 PID = 3196mkdir dumps volatility -f Target1 profile=Win7SP1x86 memdump -p 3196 -D dumps strings.exe .\dumps\3196.dmp > strings_3196.log |
strings_3196 파일을 notepad++에서 열어준다. http:// 검색 - 찾기 결과들에서 .exe 검색
http://180.76.254.120/AnyConnectInstaller.exe
AnyConnectInstaller를 filescan에서 검색, Downloads 경로 아래에 있는 오프셋 복사 후 추출
mkdir files volatility -f Target1 profile=Win7SP1x86 dumpfiles -Q 0x000000003e0bc5e0 -D files -n |
추출한 파일을 virustotal에 업로드, 악성 코드임을 확인할 수 있음.
wce.exe, w.tmp
volatility -f Target1 profile=Win7SP1x86 dumpfiles -Q 0x000000003df31038 -D files -n volatility -f Target1 profile=Win7SP1x86 dumpfiles -Q 0x000000003eca37f8 -D files -n |
tv_w32.exe
filescan에서 tv_w32.exe 오프셋 확인
volatility -f Target1 profile=Win7SP1x86 dumpfiles -Q 0x000000003fa4f5d0 -D files -n |
추출 후 virustotal에 넣어보면, 애매하다. -> 아무것도 나오지 않음..
iexplore.exe
메모리 덤프
iexplore PID = 2996
volatility -f Target1 profile=Win7SP1x86 memdump -p 2996 -D dumps strings.exe .\dumps\2996.dmp > strings_2996.log |
netscan에서 iexplore.exe 주소 확인 = 180.76.254.120:22
해당 주소(180.76.254.120)를 strings_2996.log 파일에 검색(notepad++)
경로 추정 : OUTLOOK 메일 -> AnyConnectInstaller.exe -> wce.exe w.tmp(관리자 패스워드) -> mstsc.exe
Volatility 정리
Volatility
- 메모리 포렌식 도구. 오픈소스. CLI 인터페이스(명령어를 치는, GUI X)
- 버전3까지 공개되어 있으나, 아직까지는 2를 많이 사용함.
- Volatility에서 증거를 획득할 수 있는 이유
명령어 총정리
운영체제 식별
imageinfo : 메모리 덤프의 운영체제를 식별
프로세스 검색
pslist : 시간 순서대로 보여줌
psscan : 숨겨진 프로세스 출력 가능
pstree : PID, PPID 기준으로 구조화하여 보여줌
psxview : pslist, psscan을 포함한 도구들의 결과를 한 눈에 볼 수 있음
네트워크 분석
netscan :
- Windows 7 이상
- TCP, UDP / IPv4, IPv6
- Listening(소켓 열린 상태), Established(소켓이 열려서 통신 중인 상태), Closed(소켓이 닫힌 상태)
- Windows 7 미만
- 현재 연결된 TCP 통신에 대한 정보
Sockets :
- Windows 7 미만
- TCP, UDP를 포함한 모든 프로토콜
- 현재 Listening 상태에 있는 소켓을 출력
CMD 분석
cmdscan, consoles : 콘솔에 입력한 값들을 볼 수 있음(consoles는 출력된 값도 볼 수 있음)cmdline : 프로세스가실행될 때의 인자값을 확인할 수 있음
파일 분석 및 덤프
filescan : 메모리 내에 존재하는 모든 파일들의 리스트 출력dumpfiles : 파일을 덤프. 옵션으로 메모리 주소, 프로세스 줄 수 있음
프로세스 세부 분석
memdump : 특정 프로세스의 메모리 영역을 덤프 -> strings 사용procdump : 프로세스의 실행 파일을 추출본 게시글은 아래의 강의를 시청하고 공부 목적으로 작성됨.
'슈포스 > 디지털 포렌식 개론' 카테고리의 다른 글
[강의]인프런 : 기초부터 따라하는 디지털 포렌식 섹션3(3) (1) | 2024.11.19 |
---|---|
[8장]파일 시스템과 파일 복구(1) (2) | 2024.11.19 |
[7장]디지털 증거 분석 기술 (2) | 2024.11.05 |
[6장]디지털 증거 수집 기술 (0) | 2024.11.05 |
[강의]인프런 : 기초부터 따라하는 디지털 포렌식 섹션3(1) (1) | 2024.11.05 |