Как выявить скрытые процессы с помощью volatility, используя psxview?

Вопрос или проблема

Я изучал волатильность, и в этой комнате на tryhackme использовали psxview для нахождения скрытых процессов. Задание заключалось в следующем:

Довольно часто вредоносное ПО пытается скрыть себя и связанный с ним процесс. Сказав это, мы можем увидеть преднамеренно скрытые процессы с помощью команды psxview. Какой процесс имеет только одно значение ‘False’?

А вывод был следующим:

$volatility -f cridex.vmem --profile WinXPSP3x86 psxview

Volatility Foundation Volatility Framework 2.6
Offset(P)  Name                    PID pslist psscan thrdproc pspcid csrss session deskthrd ExitTime
---------- -------------------- ------ ------ ------ -------- ------ ----- ------- -------- --------
0x02498700 winlogon.exe            608 True   True   True     True   True  True    True     
0x02511360 svchost.exe             824 True   True   True     True   True  True    True     
0x022e8da0 alg.exe                 788 True   True   True     True   True  True    True     
0x020b17b8 spoolsv.exe            1512 True   True   True     True   True  True    True     
0x0202ab28 services.exe            652 True   True   True     True   True  True    True     
0x02495650 svchost.exe            1220 True   True   True     True   True  True    True     
0x0207bda0 reader_sl.exe          1640 True   True   True     True   True  True    True     
0x025001d0 svchost.exe            1004 True   True   True     True   True  True    True     
0x02029ab8 svchost.exe             908 True   True   True     True   True  True    True     
0x023fcda0 wuauclt.exe            1136 True   True   True     True   True  True    True     
0x0225bda0 wuauclt.exe            1588 True   True   True     True   True  True    True     
0x0202a3b8 lsass.exe               664 True   True   True     True   True  True    True     
0x023dea70 explorer.exe           1484 True   True   True     True   True  True    True     
0x023dfda0 svchost.exe            1056 True   True   True     True   True  True    True     
0x024f1020 smss.exe                368 True   True   True     True   False False   False    
0x025c89c8 System                    4 True   True   True     True   False False   False    
0x024a0598 csrss.exe               584 True   True   True     True   False True    True

Ответом на это задание был csrss.exe, так как вы можете видеть, что это единственный процесс с одним значением “False”.

Как именно процесс считается скрытым? Это когда в его свойствах есть только одно значение “False”?

В то же время, в этом источнике говорится, что

Что ж, кроме нашего случая 😉 никакие процессы не кажутся скрытыми, если это так, вы увидите “False” в первых двух столбцах (pslist и psscan).

Так что же правильно? Когда процесс считается скрытым при анализе вывода psxview?

Во-первых, полезно использовать флаг -R с этим модулем psxview, чтобы выявить известные безвредные паттерны, такие как легитимные процессы csrss и smss, которые отображают false в вашем выводе.

Чтобы ответить на исходный вопрос, колонка psscan покажет вам любую структуру EPROCESS, найденную Volatility при обходе памяти. Структура EPROCESS является как бы каркасом вокруг исполняемого файла в памяти и, следовательно, свидетельствует о том, что процесс работает или работал.

Затем вы сравните это с колонкой pslist, которая содержит записи, сообщающие операционной системе как обычные, через двусвязный список EPROCESS.

Если запись найдена в PSSCAN, но не в PSLIST, возможны следующие объяснения:

  1. процесс завершил свою работу, но остатки существуют в памяти

  2. процесс работает и был преднамеренно скрыт

Ответ или решение

Как идентифицировать скрытые процессы с помощью Volatility, используя psxview?

При анализе памяти с использованием инструмента Volatility, рассмотрим модуль psxview, который помогает выявить скрытые процессы на основе различных источников данных о процессах в памяти.

Ваша задача была определена как нахождение процесса, который имеет только одно значение "False" в выводе команды psxview. Пример выводимой информации выглядит следующим образом:

Offset(P)  Name                    PID  pslist  psscan  thrdproc  pspcid  csrss  session  deskthrd  ExitTime
---------- -------------------- ------ ------ ------ -------- ------ ----- ------- -------- ---------
0x024a0598 csrss.exe               584  True   True   True     True   False True    True     

Как видно, процесс csrss.exe стал единственным с одним "False" в столбце csrss. Но стоит разобраться, что это значит и как именно мы определяем, что процесс скрыт.

Как понять, является ли процесс скрытым?

Чтобы определить, является ли процесс скрытым, важно обратить внимание на следующие столбцы:

  1. pslist: отобразает процессы, которые активно сообщаются операционной системой через двойную связанную цепочку EPROCESS.
  2. psscan: показывает все найденные структуры EPROCESS в памяти, независимо от их состояния. Это может включать завершенные или скрытые процессы.

Если вы видите, что процесс отображается в psscan, но не в pslist, это может указывать на то, что процесс либо завершился, но остался в памяти, либо он все еще работает и был намеренно скрыт.

Почему csrss.exe имеет единственное "False"?

В нашем случае, csrss.exe имеет значение "False" только в столбце csrss, что может указывать на то, что этот процесс скрывает свой статус через стандартные методы скрытия. Такое поведение может быть связано с действиями вредоносных программ, которые пытаются защитить себя от обнаружения.

На основании вывода команды psxview, процесс считается спрятанным, если наблюдаются несоответствия между столбцами pslist и psscan. Вот основные причины, по которым процесс может быть скрытым:

  1. Процесс завершен, но его остатки всё еще остаются в памяти.
  2. Процесс работает, но ему намеренно придаётся скрытый статус.

Рекомендации по анализу

Для более точного анализа процессов рекомендуется использовать флаг -R при вызове модуля psxview, чтобы выявлять известные безвредные паттерны. Это позволит избежать ложных срабатываний и улучшит качество анализа.

Таким образом, выводы, полученные через psxview, действительны особенно в контексте отношений между столбцами pslist и psscan. На явление скрытых процессов указывает наличие записей в psscan, отсутствующих в pslist.

Оцените материал
Добавить комментарий

Капча загружается...