학회_공부해요/디지털포렌식

[디지털포렌식_기초]4주차 메모리 포렌식

yenas0 2023. 5. 3. 03:30
반응형

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문제는 시나리오가 재미있었기도 하고, 실제를 기반으로 재구성한 문제라는 점이 더 재미있게 느껴졌다. 이번 강의 들으면서 추가적으로 더 분석이 가능한 부분들을 찝어 주셨는데 이 부분은 나중에 더 해보면 좋을 것 같다.

 

https://inf.run/HgWx   

 

[무료] 기초부터 따라하는 디지털포렌식 - 인프런 | 강의

기초부터 따라하는 디지털포렌식 강의입니다. 강의를 따라하다보면 "물 흐르듯, 자연스럽게" 실력이 늘어가는 강의를 추구합니다., - 강의 소개 | 인프런

www.inflearn.com

 

반응형