메모리 포렌식 - 환경 구성

악성코드 및 포렌식|2021. 1. 25. 09:17

 

 

cpu 와 hdd(하드디스크)는 서로 절대 통신을 하지 않는다.

 

 

 

 

 

 

이상태의 악성코드에 감염된 메모리 캡쳐를 뜨는 것을 이제 시작할 것이다.

 

 

 

 

절대 전원을 끄지말아야 메모리가 날아가지않는다. 휘발성 이기때문이다.

 

 

 

장점 : 암호화/난독화 된 코드라도 실행시에는 해제된 채로 메모리에 상주

- 단점 : 전원 차단시 모든 데이터가 사라짐

 

 

 

 

메모리에 올라가는 순간 난독화가 해제되기때문에 (실행된 상태는)

 

 

 

 

 

 

 

================kali 에서 할시

 

apt-get install volatility

 

apt-get install python-pip*

 

 

 

pip install distorm3 pycrypto openpyxl Pillow

 

 

 

 

 

 

 

==============window에서 할시

 

 

 

www.volatilityfoundation.org/26

 

 

 

 

Volatility 2.6 Release

Volatility 2.6 - an advanced memory forensics framework

www.volatilityfoundation.org

 

 

이곳에들어가서 2.6 release 를 다운받는다.

다운받고 다운받은 폴더에 가있은뒤에

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

이곳으로가 vol.exe를 실행을한다.

(그전에 미리 다운받았던것)

cmd 에서 cd 로 들어간 뒤에 vol.exe를 하면 실행이된다.

 

 

 

 

 

 

 

 

 

 

 

volatility -f sample.vmem imageinfo

 

winXP 라는 것을 알게되었다.

 

 

 

7부터는 프로파이저를 써야한다.

 

 

실행중인 프로세스 : pslist

vol.exe -f 1.vmem pslist

 

- 실행-종료 프로세스 : psscan

vol.exe -f 1.vmem psscan

 

- 프로세스 목록 비교 : psxview

vol.exe -f 1.vmem psxview

 

 

 

- 부모-자식관계 : pstree

 

 

 

 

 

 

vol.exe -f 1.vmem pstree

 

 

항상 부모 자식간의 관계가 존재했다.

만약 cmd.exe가 악성부모한테나왔다면 악성 커맨드 창일 확률이 있다고생각하면됩니다.

 

 

 

 

* psxview에서 pslist와 psscan이 모두 true면 숨겨진 프로세스는 없음

- 프로세스 추출 : procexedump, procdump, memdump

- 사용자가 실행한 파일 정보 : userassist ( 내 실행의지가아니라 시스템이 자동으로 실행한걸수도있다.

 

 

▲ 프로세스 관계도 구성

 

 

 

 

 

 

 

 

(윈도우에서는 이렇게 진행을한다.)

 

 

 

 

이위치로 가서 

cmd를 키고

cd C:\Users\2a_da\Downloads\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone

이것을 한뒤에 

 

- vol.py –f 1.vmem psscan --output=dot --output-file=psscan.dot

(1.vmem 파일을 psscan결과값을dot로 파일형식을 지정해주고 그값을  psscan.dot로 출력을한다.)

 

 

 

 

 

 

 

 

 

 

 

한파일을 프로세스를 스캔한것이 이렇게 dot 파일이 만들어졌고 

 

 

 

 

 

그뒤에

 

 

 

 

 

cd  C:\Program Files\Graphviz

(graphviz 있는곳으로 cmd 로 이동을한뒤에)

 

- neato –T png –o psscan.png psscan.dot

(neato를 이용해서 png로 지정해주고 psscan.png를 psscan.dot를 이용해서만든다)

 

graphviz 로  이렇게 그림표를 만들어보았다

 

 

 

 

네트워크 분석

- 활성화된 연결 : connections - 활성-종료된 연결 : connscan

 

▲ DLL 분석

- 특정 프로세스에서 로드한 DLL : dlllist - 숨겨진 DLL 분석 : ldrmodules

- DLL 추출 : dlldump

 

▲ 문자열 검색 : string

 

▲ cmd 명령어 분석

- cmd에서 실행한 명령어 : cmdscan - 이력 : cmdline

 

▲ 레지스트리 분석

- 특정 키와 관련 하위키를 검색 : printkey

 

▲ 스크린샷 : volatility -f sample.vmem screenshot --dump-dir=./

 

 

 

 

 

exe는 독립적이고

 

 dll은 누가 불러줘야 실행된다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

댓글()