从进程列表中识别恶意/可疑进程

信息安全 视窗 过程
2021-09-13 14:42:14

我有一个包含 1000 个进程的列表,我想确定其中哪些是合法的,哪些不是。我只有进程的名称,我想对它们进行分类。有没有办法以编程方式获取这些进程的信息

如果我至少可以确定其中哪些是常见流程,那可以帮助我列出更短的清单。然后我可以搜索其他未知进程并获取它们的信息。

基本上,我需要检查 Mac/Linux 上的 windows 进程列表,而我只有进程的名称我想找到进程的完整信息,以便找出合法的进程。列表中当前有 1000 个进程,将来可能会增加。我现在可以手动进行,但我想运行脚本来自动进行检查。

4个回答

常见/合法进程的列表将取决于安装的操作系统。此外,该列表将取决于您在计算机上安装的软件。

Windows下,你可以试试
tasklist
Linux下,你可以试试
ps

您可以列出受信任的应用程序(您可以手动完成或在线查找)。然后,在以编程方式获取正在运行的进程列表后,您可以将该列表与您信任的进程列表进行比较,并仅显示剩余的进程。

如果您认为其中一些进程是无害且合法的,您可以将这些进程添加到您的受信任应用程序列表中,这样下次运行程序时它们就不会再次出现。

如果您可以访问机器,SysInternals 的ProcessExplorer可以提供帮助。

您甚至可以将经过哈希处理的进程数据提交给 VirusTotal,让您了解它是否是合法文件/进程。

它还对数据进行颜色编码,我觉得这很有帮助。

您可以快速确定哪些文件已签名。

在此处输入图像描述

有关如何充分利用 ProcessExplorer 的快速教程,请查看: http: //www.howtogeek.com/school/sysinternals-pro/lesson2/ (图片来自 howtogeek.com)

有许多启发式方法可以让您找到所有进程是否是恶意的。我将用一些例子来解释这一点:

  1. 恶意软件倾向于使用常见的 exe 名称来隐藏检测工具。在这种情况下,您可以检查正在执行的进程的文件位置。例如:名称为 svchost.exe 的进程只能从 \Windows\System32\ 目录启动。

  2. 恶意软件使用进程挖空等高级技术,它们可以使用这些技术运行 svchost.exe 或任何合法的二进制文件(这就像第一种情况的绕过)。在这种情况下,我们可以使用已知的 Windows 内部结构来发挥我们的优势。例如:只有 services.exe 可以启动合法的 svchost.exe。因此,如果任何 svchost.exe 进程的父进程不是 services.exe,则它是 100% 恶意的。

  3. 像 services.exe 和 lsass.exe 等其他启发式方法应该只运行一个实例。

除了上述技术之外,这个参考对于在 Windows 中查找可疑进程来说真的很棒。

https://digital-forensics.sans.org/media/SANS_Poster_2018_Hunt_Evil_FINAL.pdf

要以编程方式获取进程信息(如您所问),这取决于您要使用的语言,还取决于您的处理器版本(32 位或 64 位)。

您可以使用 Python 的subprocess模块:

import subprocess
cmd = 'WMIC PROCESS get Caption,Commandline,Processid'
proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
for line in proc.stdout:
    print line

两个处理器版本的WMI模块:

import wmi
c = wmi.WMI ()

for process in c.Win32_Process ():
  print process.ProcessId, process.Name

您还可以使用我之前提到的 subprocess 模块从 Python 中调用您在 CMD 中键入的任何命令。

至于仅仅隔离可疑进程,您首先需要列出您的判断依据的标准。

例如,Windows 7 和 8 操作系统具有进程层次结构,我们通常可以在其中找到三个或四个顶级进程。这使得很容易看出哪些进程是其他进程的父进程。Wininit例如,它是大量进程的祖先,包括著名的svchost.exe进程的多个实例。由于这个过程对于 Windows 操作系统来说太重要了,因此恶意软件会使用它,并且它们会出现在svchost诸如svch0st.exe0而不是o)、svhost.exe(没有c)等列表中。

因此,一旦您掌握了这个标准,您就可以在Python 列表中对它们进行排序并单独显示它们,以帮助您区分可疑进程。