관리 메뉴

HeeJ's

[07] session 우회하기(PROCESS) :: Anti Memory Forensics/Volatility 본문

<Project>/<Anti Memory Forensic>_2020

[07] session 우회하기(PROCESS) :: Anti Memory Forensics/Volatility

meow00 2020. 8. 4. 21:23

session 필드는 LinkedList를 변조해서 은닉할 수 있는데,

pslist를 은닉하기 위해 ActiveProcessLinks를 변조했기 때문에 session 필드를 은닉할 때는 SessionProcessLinks가 필요하다.

SessionProcessLinks는 ActiveProcessLinks와 비슷한 역할을 한다.

 

IMGSF50Start_x 의 SessionProcessLinks 값의 Flink 값을 MalwareProcess의 Flink 값으로 변조해서

IMGSF50Start_x의 Flinks 값이 MalwareProcess를 지나지않고, 바로 GoogleUpdate.e를 가리키게 해서

MalwareProcess를 은닉시켜 줄 것이다.

(IMGSF50Start_x -> MalwareProcess -> GoogleUpdate.e)

 

그렇게 하기 위해서 IMGSF50Start_x의 SessionProcessLinks를 봐주었다.

IMGSF50Start_x의 물리주소 : 0xfffffa80090bbb30

SessionProcessLinks가 EPROCESS로부터 0x130만큼 떨어져있음을 확인할 수 있다.

 

SessionProcessLinks의 Flink 값을 확인해주었다.

이 Flink 값을 hex값으로 변환시켜주었다.

IMGSF50Start_x의 SessionProcessLinks의 Flink값 : 0xfffffa80090bb7e0

 

dt로 MalwareProcess의 SessionProcessLinks 값도 확인해주었다.

SessionProcessLinks의 Flink값을 hex로 변환해주면

0xfffffa80090f8d10이다.

 

 

HxD로 IMGSF50Start_x의 물리주소로 이동해주었다.

 

그리고 IMGSF50Start_x의 EPROCESS 시그니처에서 0x1e0만큼 이동해주었다. (SessionProcessLinks)

IMGSF50Start_x의 SessionProcessLinks의 Flink값이 리틀엔디언방식으로 들어있는 것을 확인할 수 있었다.

 

이 값을 MalwareProcess의 SessionProcessLinks의 Flink값으로 변환시켜주었다.

 

psxview로 확인해주면

MalwareProcess의 session필드가 우회되었음을 확인할 수 있다.