volatility?
: 메모리 포렌식 도구, 오픈소스, CLI 인터페이스(계속 키보드로 명령어 입력했던 방식)
cf.마우스로 클릭? => GUI 인터페이스
버전 3까지 공개되어 있으나, 아직까지는 2를 많이 사용(안정성 이슈, 구할 수 있는 자료가 버전 2에서 좀더 많아서 사용하기 편리)
volatility에서 증거를 획득할수 있는 이유
프로세스가 마음대로 사용하는 공간이 메모리. 규칙적으로 사용하기도 하고 불규칙적인 구조로 사용하기도 함. 규칙적인 구조체가 메모리내에 존재할경우 volatility가 그 부분을 잘라서 가져옴. 하지만 그래도 volatility가 모든내용을 다 가져 올 수는 없음. volatility로 획득할수 있는 정보는 전문가마다 천차만별. 잘하는 사람은 더 많은 정보를 얻어내기도 한다.
volatility 명령어 정리
운영체제 식별
imageinfo: 메모리 덤프의 운영체제를 식별
프로세스 검색
pslist: 시간 순서대로 보여줌
psscan: 숨겨진 프로세스 출력 가능
pstree: PID, PPID 기준으로 구조화하여 보여줌
psxview: pslist, psscan을 포함한도구들의 결과를 한 눈에 볼 수 있음
네트워크 분석
netscan
-windows 7이상
-TCP, UDP/ IPv4, IPv6 조회 가능
-Listening(소켓을열고있는 상태) , Established(소켓이 열려서 통신중인상태) , Closed(소켓이 닫힌상태)
connections
-windows 7 미만
-현재 연결된 TCP 통신에 대한 정보(netscan 기준으로 했을 때 Established만 나오는 상태)
Sockets
-windows 7미만
-TCP, UDP를 포함한 모든 프로토콜
-현재 Listening 상태에있는 소켓을 출력(connection보다많은 정보)
CMD 분석
콘솔에 내가 입력했던 명령어 출력
-cmdscan, consoles: 콘솔에 입력한 값들을 볼 수 있음. consoles의 경우 입력한 값뿐만 아니라 출력한 값까지도 확인 가능. 두가지의 기능은 비슷하지만 검색방식에서 차이가 있기때문에 둘 다 사용하는 것을 권장함.
-cmdline: 프로세스가 실행될 때의 인자값을 확일할 수 있음.
파일 분석및 덤프
filescan: 메모리 내에 존재하는모든 파일들의 리스트 출력
dumpfiles: 파일을 덤프. 옵션으로 메모리 주소, 프로세스 줄 수 있음
프로세스 세부 분석
memdump: 특정 프로세스의 메모리 영역을 덤프 -> strings 사용(의미있는 문자열 뽑기)
procdump: 프로세스의 실행 파일을 추출
악성 프로그램 식별
virustotal 주로 사용
Windows Defender도 정확한 편임(기본적으로 깔려있는 백신프로그램)
Volatility Cridex 정리
운영체제 식별
WinXPSP2x86
프로세스 검색
reader_sl.exe(1640)가 수상한 프로세스로 보임
네트워크 분석
공격자 IP: 41.168.5.140:8080
PID: 1484(explorer.exe)
CMD 분석
결과없음
파일 분석 및 덤프
filescan 결과로부터 reader_sl.exe 추출
dumpfiles 이용하여 추출 후 바이러스 검사했는데 확정짓기 애매
프로세스 세부 분석
procdump 이용하여 reader_sl.exe실행파일 추출 후 바이러스 검사했더니 악성파일 확정적임
memdump 이용하여 reader_sl.exe메모리 영역을 덤프하여 strings명령어 이용하였더니 수상한 url발견
분석결과(침입경로, 어떤악성행위, 추가공격 정황)
침입경로: 확인 불가
악성행위
악성 프로세스 "reader_sl.exe"(PID: 1640) 식별
외부통신 IP "41.168.5.140:8080" 발견
프로세스 덤프 후 virustotal 검색결과 악성 프로세스 확인
프로세스 메모리덤프 내부에서 수상해보이는 단서 확보
추가공격
확인불가
추가 분석 가능한 부분들
explorer.exe 프로세스 분석
ip추적 --whois 조회
레지스트리 추출 --자동실행 관련분석
explorer.exe 메모리 덤프 내부에 웹페이지 소스코드(HTML) 분석
GrrCon 2015 정리
운영체제 식별
Win7SP1X86
프로세스 검색
Teamviewer 관련 프로세스 (tv_w32.exe)
explorer 하위 프로세스(mstsc.exe, OUTLOOK.exe) --원격접속 의심..
인터넷 익스플로러(iexplorer.exe, cmd.exe)
네트워크 분석
공격자IP: 180.76.254.120:22
PID: 2996(iexplorer.exe)
CMD 분석
cmdline -> tv_w32.exe 수상해서 조사해보니 정상
cmdscan, consoles -> 악성실행파일 발견(wce.exe)
파일 분석
wce.exe: 관리자 계정을 포함하여 패스워드를 가져오는 실행파일
w.tmp: wce.exe의 실행 결과로 출력된 파일
AnyconnectInstaller.exe: Outlook 메일로부터 출력된실행파일
프로세스 세부 분석
Outlook.exe의 메모리 덤프로부터 피싱 메일발견(Hello Mr. Wellick ...)
+AnyConnectInstaller.exe의 URL 확보
iexplorer.exe 메모리 덤프로부터 공격의 흔적 발견
Teamviewer 관련 프로세스는 정상 프로세스로 판단
분석결과
침입경로
Outlook 피싱 메일을 통해 AnyConnectInstaller.exe 다운로드를 유도
악성행위
AnyConnectInstaller.exe 실행파일 발견
iexplorer.exe 내부에서도 공격의 흔적 발견
wce.exe를 통해 관리자패스워드를 가져오고 w.tmp파일로 저장함
추가공격
mstsc를 이용한 추가공격 예상
추가분석 가능한 부분들
iexplorer.exe추가분석 - procdump로 실행파일 살펴보기
Outlook메모리 덤프로부터 공격자 이메일, 피해자이메일 찾아보기
공격자가 사용한 도구들과 구체적 행위를 파악하기 (consoles.log 살펴보기)
공격자의 추가 공격 행위 파악(mstsc, gideon)
OlympicDestroyer
시나리오에서 얻을 수 있는 단서
첨부파일 V10 "Olympic_Session_V10"
메일을 통해 감염
---------
먼저 volatility를 이용하여 분석할 자료들을 파일로 만든다.
pslist와 pstree를 보면서 의심되는 경로들에 주석으로 표시를 해놓았다.
네트워크에서는 큰 정보를 얻지는 못했음. 로컬 IP주소와 원격 IP주소를 표시해 놓음.
로컬 IP주소와 원격 IP주소가 비슷하게생겼는데 이 두개는 한 네트워크 망에 걸려있는 IP라고 생각할 수 있다.
의심된다고 표시했던 부분을 위주로 봄.
C:\Windows\System32\OlympicDestroyer3.exe
OlympicDestroyer 주소가 나와있음. 이부분 나중에 검색해 보면 좋을 것 같다.
consoles에서 conhost가 powershell을 실행시켰음을 알 수 있음. 따라서 conhost가 트리거가 된 것은 아닌지 의심해 볼 수 있다.
아까 의심된다고 체크해놓은 부분은 filescan에서 검색해보면 하나가 나온다. 이 경로를 추출해 본다.
하니까 윈도우 보안에 걸렸다. 또 수상해보였던 것 추출해보기로 했다.
또 보안에 걸렸다. 둘다 완전 악성파일..
나머지 체크 해 두었던 부분도 확인해보았다.
악성프로세스로 확인이라고 주석을 달아둔 부분을 추출하였을때 보안에 걸렸다.
어떤 행위를 하였는지는 4개의 악성프로세스로 확인이 가능하다.(strings 사용해서)
olympicdestroyer -> 공격스크립트 존재, LDAP, 계정, 패스워드 있음
_xut.exe -> 공격 스크립트 존재, 복구 관련 기능을 삭제, 부틱 광련 기능을 못하게하고 이벤트로그를 삭제시킴(나가는 방법 알지 못하게 하도록 한 것으로 추측)
그렇다면 어디에서들어와서 어떻게 나가는지? 추가공격이 있는지를 알아보도록 한다.
어디에서?
의심되었던 엑셀파일 쪽을 덤프해보기로 한다.
filescan에서도 찾아서 본결과
"Olympic_Session_V10_수정본.xls"에서 OSPPSVC.exe가 실행되면서 프로세스 관련하여 Olympicdestroyer가 나온 것으로 추측된다.
다만 volatility를 이용하여 덤프해보려고 했으나 수정본 이라는 한글때문에 하지 못해서 확실한 증거라고 보기는 어렵다.
추가공격이 있었을지에 대해서 LDAP, 계정, 패스워드 등을 가지고 분석해 보면 같은 네트워크에 있는 컴퓨터를 공격했을 것으로 의심해 볼 수 있다.
추가적으로 더 분석이 가능한 부분들
-memdump ->strings
payload(BASE64 형태..) : 공격에 사용되는 공격 명령어가 나옴. 이부분 분석해봐도 좋을 듯
-네트워크 ->LDAP
마치며
4주차까지 공부를 하면서 메모리 포렌식 문제를 총 3개를 풀어보았다. 아직도 파일 보는거나 어느부분을 의심해 봐야하는지 감이 잘 잡히지 않지만 도구들을 여러번 사용해 보면서 전체적인 메모리포렌식의 순서나 방법을 알게 되었다. 오늘 공부한 Olympicdestroyer문제는 시나리오가 재미있었기도 하고, 실제를 기반으로 재구성한 문제라는 점이 더 재미있게 느껴졌다. 이번 강의 들으면서 추가적으로 더 분석이 가능한 부분들을 찝어 주셨는데 이 부분은 나중에 더 해보면 좋을 것 같다.
'학회_공부해요 > 디지털포렌식' 카테고리의 다른 글
[디지털포렌식_기초]6주차 윈도우 포렌식 (0) | 2023.05.15 |
---|---|
[디지털포렌식_기초]5주차 윈도우 포렌식 (0) | 2023.05.08 |
[디지털포렌식_기초]3주차 물리메모리 포렌식 (0) | 2023.04.21 |
[디지털포렌식_기초]2주차 메모리 포렌식 (0) | 2023.04.04 |
디지털포렌식 퀴즈 (0) | 2023.03.28 |