volatility란?
- 메모리 포렌식 도구, 오픈소스, CLI인터페이스
volatility 명령어 정리
운영체제 식별
- imageinfo : 메모리 덤프의 운영체제를 식별
프로세스 검색
- plist : 시간 순서대로 보여줌
- psscan : 숨겨진 프로세스 출력 가능
- pstree: PID, PPID 기준으로 구조화하여 보여줌
- psxview : pslist, psscan을 포함한 도구의 결과를 한 눈에 볼 수 있음
네트워크 분석
- netscan
: Window 7이상
: TCP/UDP로 통신하는 모든 프로토콜 조회, IPv4와 IPv6지원
: listening(소켓을 열고있음), established(통신중), closed(소켓 닫음)의 상태가 있음 - conections
: Window 7미만
: 현재 연결된(established) TCP통신에 대한 정보만 출력 - sockets
: Windows 7미만
: TCP,UDP를 포함한 모든 프로토콜
: 현재 Listening 상태에 있는 소켓을 출력
CMD분석
- cmdscan, consoles: 콘솔에 입력한 값들을 볼 수 있음( consoles는 출력한 값도 볼수있음 )
- cmdline: 프로세스가 진행될 때의 인자값을 확인
파일 분석 및 덤프
- filescan: 메모리 내에 존재하는 모든 파일들의 리스트 출력
- dumpfiles: 파일을 덤프, 옵션으로 메모리주소, 프로세스 줄 수 있음
( -p option : 해당하는 모든 파일을 출력 )
프로세스 세부분석
- memdump: 특정 프로세스의 메모리 영역을 덤프 ( strings를 통해 덤프한 dmp파일을 log파일로 정리 )
- procdump: 프로세스의 실행파일을 추출
악성 프로그램 식별
- VirusTotal 주로 사용
- windows defender도 정확한 편 ( 기본 프로그램 )
Volatility Cridex 풀이
- imageinfo 플러그인을 통해 운영체제 확인 ( -f : filename 설정 )
- pslist 플러그인을 통해 process list를 시간순서대로 출력
- psscan 플러그인을 통해서 숨긴 프로세스 확인
- pstree 플러그인을 통해 PID, PPID를 구조화된 형태로 확인가능
svchost.exe는 기본 서비스를 관할하기 위한 프로세스의 이름이지만 다수의 악성코드들이 이름을 동일하게 설정하여 위장하는 경우가 있다.
reader_sl.exe는 Adobe Systems에서 제공하는 PDF뷰어로써 최근 PDF를 통한 악성코드 공격이 많기에 의심대상!
pslist를 통해 의심대상 이후의 프로세스들도 확인해주어야 한다.
-psxview 플러그인을 통해 pslist, psscan등의 결과를 한눈에 확인
pslist-false, pstree-true면 숨김처리된 프로세스로써 의심대상으로 취급할 수 있다.
- cmdline 플러그인을 통해 console을 통한 명령과 인자값 확인
- filescan 플러그앤을 통해 offset list에서 존재하는 파일들을 확인
의심스러운 대상의 offset을 확인 (추후에 추출가능)
- dumpfile 플러그인을 통해서 의심대상exe를 추출
( -Q : offset 설정 / -D : 저장할 폴더지정 / -n : name이 포함되도록 저장 )
- 추출한 의심 exe파일을 VirusTotal에 넣어 파악
- connection 플러그인을 통해서 연결된 TCP 확인을 통해 네트워크 확인
pid 1484 : explorer.exe => 의심대상 !
explorer.exe의 child process인 reader_sl.exe가 또 의심대상!
- memdump를 통해 프로세스의 메모리 부분을 추출
-D로 설정한 폴더에 '[PID].dmp'로 생성
- sysinternal의 strings를 통해 쓰레기 데이터를 정리한 log파일로 정리 ( 관리자모드로 실행해야 strings 명령어 적용됨...;; )
이전 connections 과정에서 해당 exe파일과 통신하는 ip주소를 겟했으니 그 부분을 확인해보자
zb/v_01_a/in/이 반복적으로 등장하여 검색해보면 다음과 같이 20개의 일치결과가 등장하며 다양한 은행 사이트가 나오는 것을 보아 은행관련 피싱인 것을 추측할 수 있다.
- prodump 플러그인을 통해 실행 가능한 프로세스를 덤프해보자 ( -p : PID 지정 )
추출된 exe파일을 VirusTotal에 넣어보자
확실하게 악성프로세스임을 확인할 수 있다.
Olympic Destroyer 풀이
<시나리오>
<분석>
- 운영체제 : Win7SP0x86 (Windows 7 이상)
- pstree
예측 : WmiPrvSE.exe 가 cmd 실행 후 OlympicDestroyer를 실행하여 아래 3개의 실행파일이 악성행위를 실행
악성코드가 본인 파일을 작업 스케쥴러에 등록하고 지속적으로 실행하기 위해 본인의 파일을 작업 스케쥴러에 등록
=> 작업스케쥴러도 의심대상!
- netscan
침해 대상 pc의 IP가 192.168.111.130임을 추측 (원격IP)
+ 뒤에 보면 같은 내트워크망을 공유하는 192.168.111.128의 IP가 발견됨 =>
- psxview
숨겨진 4개의 프로세스를 확인 => 의심 대상!
- pslist
-cmdline
- filescan
의심 파일의 offset을 확인 => 추출해보자
- dumpfiles
생성된 해당 파일들은 VirusTotal에 넣어보자
4개의 악성 프로세스 확인
+ 분석
1. 공격 경로 : 어떻게 들어와서
2. 공격 행위 : 어떤 행위를 하고
3. 추가 공격 : 어떻게 추가 공격하고 나가는 지
(1) 공격 경로 분석
단서 - Olympic_Session_V10 (.xls 파일) => osppvc.exe (확실한 증거x)
(2) 공격 행위 분석
앞에서 확인한 4개의 위험 프로세스를 분석하면 행위를 분석가능
=> 추출한 4개의 프로세스를 strings를 사용하여 분석 (procdump 내용을 분석)
( memdump의 경우 strings하면 너무 파일이 커서 키워드 없이는 분석이 어려움
procdump의 경우 memdump 보다는 키워드 없는 분석에 용이 )
olympicdestroyer의 프로세스에서 공격 스크립트가 존재하는 것을 확인할 수 있다.
xut.exe에서 안티포렌식 행위 진행
(3) 추가 공격 및 나가기
LDAP, 계정, 패스워드 -> 같은 네트워크에 있는 컴퓨터 공격 예상
+ 추가 분석 가능 부분
memdump -> strings
- 공격에 사용되는 payload (base64)
네트워크 -> LDAP
'Digital Forensics' 카테고리의 다른 글
303-recovery and restoration | DFC 2022 (0) | 2023.11.19 |
---|---|
prob24 | xcz (0) | 2023.10.12 |
Window Search | Dreamhack (0) | 2023.09.25 |
game 14 | suninatas (0) | 2023.09.19 |
디지털 포렌식이란? (0) | 2023.05.09 |