관리 메뉴

HeeJ's

[15] hivelist 우회하기(REGISTRY) :: Anti Memory Forensics/Volatility 본문

<Project>/<Anti Memory Forensic>_2020

[15] hivelist 우회하기(REGISTRY) :: Anti Memory Forensics/Volatility

meow00 2020. 8. 12. 13:57

hivelist도 pooltag를 변조하여 은닉 가능하지만, rekall에서는 그 방법이 통하지 않기 때문에

linked list를 따라가 변조하는 방법으로 은닉하려 한다.

 

두 번째 영역인 \SystemRoot\System32\Config\DEFAULT를 은닉하기 위해

첫 번째 영역인 \SystemRoot\System\Config\SOFTWARE의 Flink 값을

DEFAULT의 Flink값으로 변조해주려고 한다.

 

hivelist의 구조체인 CMHIVE로 이동해주었고,

여기서 HiveList값을 이용해 Flink를 찾아줄 것이다.

 

HiveList의 Flink값을 hex로 변환해주었다.

 

그리고 ...\SOFTWARE의 물리주소(15284010)으로 HxD를 따라 이동해주었다.

CMHIVE 구조체의 시그니처들도 확인할 수 있었다.

 

CMHIVE 구조체의 HiveList가 0x5d8만큼 떨어져있어 5d8만큼 이동해주었다.

 

HiveList의 Flink값을 확인할 수 있었다.

 

 

DEFAULT의 Flink값을 저 위치에 넣어주어야 하기 때문에

Volatility로 다시 DEFAULT의 Flink값을 아까와 같은 방법으로 찾아주었다.

 

 

 

 

이 Flink의 hex값을 아까 HxD로 따라간

SOFTWARE의 Flink 자리에 넣어주었다.

 

이 값을 저장해준 뒤 다시 hivelist를 확인해주면

두 번째 영역의 \SystemRoot\System32\Config\DEFAULT가 사라진 것을 확인할 수 있다.

 

REGISTRY영역의 hivelist는 pool tag 변조와 linked list값 변조

두 가지 방법으로 은닉이 가능하다.