[07] session 우회하기(PROCESS) :: Anti Memory Forensics/Volatility
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필드가 우회되었음을 확인할 수 있다.