Information Security ˗ˋˏ ♡ ˎˊ˗

Security/DigitalForensic

[MemoryForensic] Rekall 사용하기

토오쓰 2020. 10. 20. 03:37

 

0. Rekall ? 

사고 대응자 및 포렌식 분석가에게 엔드 투 엔드 솔루션을 제공

최첨단 수집 도구에서 가장 진보된 오픈 소스 메모리 분석 프레임 워크

 

정의

GRR(Google Rapid Response) 원격 포렌식과 관련한 프로젝트에서 메모리 분석을 담당하고 있는 도구이다. volatility를 기반으로 메모리 포렌식을 위한 오픈소스 도구로 대표적으로 CLI 기반 도구이다. 메모리 분석에 대한 Rekall의 접근 방식은 독특하다. Rekall은 운영 체제 공급 업체가 제공하는 정확한 디버깅 정보를 활용하여 중요한 커널 데이터 구조를 정확하게 찾는다.

 

특징

- 자동으로 프로파일 정보를 검색

- GRR은 구글에서 사고 대응을 위해 라이브 포렌식에 포커스를 맞춰 제작된 프레임 워크이다. 클라이언트와 서버로 구성되어 있으며 서버에서 시스템의 아티팩트를 원격으로 수집, 분석이 가능하다.

- Rekall은 분석 도구이면서 수집이 가능한 Pmem을 내장

--> Pmem: AFF4(Advanced Forensic File Format) 형식을 기본으로 메모리를 수집한다.

 

Rekall을 통한 Live Forensic 2가지 모드

- API Access

장점: OS별 프로파일이 필요없으며 실행 속도가 빠르다. 주로 프로세스, 파일시스템, WMI 분석

단점: 지원 플러그인 부족.  멀웨어나 히든 프로세스 분석 등 심층 분석 불가. OS API가 제공되는 범위 내 분석

- Memory Analysis

장점: 지원 플러그인 충분.  멀웨어나 히든 프로세스 분석 등 심층 분석 가능

단점: OS별 프로파일 필요 실행 속도가 느리다. 결정적으로 프로파일 문제가 다수 발생하여 거의 실행이 안됨

- 위의 경우 이미지 포렌식이 아닌 라이브 포렌식의 경우이다.

 

volatility와 Rekall 차이점

-      volatility에서는 명령어를 입력할 때 profile 정보가 필요하다는 것

-      rekall은 volatility에서와 같이 명령어를 실행해서 사용할 수도 있지만, 인터랙티브 모드로도 사용가능

-      volatility에는 존재하지 않고, rekall에 존재하는 vadmap이라는 명령어는 vad의 각 페이지의 주소 변환 상태

 

 

1. Rekall Install

github.com/google/rekall

 

google/rekall

Rekall Memory Forensic Framework. Contribute to google/rekall development by creating an account on GitHub.

github.com

 

 

EXE 파일 설치 후 실행

 

최종적으로 설치를 완료하지 못하였다.

 

2. Rekall plugin use(완료X -> 추후 조사)

analyze_struct: 메모리 위치 분석

callbacks

- Windows 커널에는 특정 이벤트에 대한 콜백을 등록하는 기능이 있습니다. 이는 지속성을 확보하기 위해 멀웨어에 의해 종종 오용

- rekall은 특정 바이너리 (예 : 커널)에 대한 프로필만 추적

- 커널 프로필이 로드되었으므로 커널 심몰의 주소를 정확하게 확인

cmdscan

- 커맨드 상의 플러그인

- 사용하는 스캔 기술로 인해 활성 및 닫힌 콘솔 모두에서 명령을 찾을 수 있다

console

- 명령 콘솔 열기

- 공격자가 cmd.exe에 입력하거나 백도어를 통해 실행 한 명령을 찾는다.

- 장점: 공격자가 입력 한 명령을 인쇄 할뿐만 아니라 전체 화면 버퍼 (입력 및 출력)를 수집한다는 것

dlldump

- 프로세스의 메모리 공간에서 DLL을 추출하고 분석을 위해 디스크에 덤프하려면 dlldump 명령을 사용

- 메모리에서 PE 파일을 덤프하려면 PE 헤더가 메모리에 상주해야합니다. 종종 이것은 사실이 아니며 헤더는 가상 메모리에서 플러시됩니다. 이 경우에도 [vaddump] (VADDump.html) 플러그인을 사용하여 PE 이미지의 일부를 덤프

getservicesids

- 레지스트리에서 서비스 이름을 가져오고 계산 된 SID

handle

- 각 프로세스에 대한 핸들 목록

- 열린 파일, 레지스트리 키 등과 같은 사용자 공간 프로그램에 의해 열린 모든 리소스를 찾는 데 특히 유용

ldrmodules

- PEB의 연결 목록 중 하나 (또는 ​​전체)에서 DLL 연결을 해제하는 것

- 플러그인은 각 메모리 매핑 PE 파일에 대해 PEB 목록에 PE가 있으면 ldrmodules 명령이 True 또는 False를 인쇄

 

 

 

 

__참고

www.rekall-forensic.com/

 

Rekall Forensics

 

www.rekall-forensic.com

플러그인: https://rekall.readthedocs.io/en/latest/plugins.html#

정의: http://www.rekall-forensic.com/

volatility와 Rekall 차이점: https://capoo.tistory.com/9

rekall이용한 라이브포렌식: https://secuworld.tistory.com/42