如何识别和分析在运行前检查安全工具的恶意软件?

信息安全 恶意软件 僵尸网络
2021-08-17 05:45:51

我一直在阅读有关ZeroAccess的信息并查看一些机器人的代码源*,我发现这段代码在运行机器人之前检查 filemon 是否在受感染的计算机中运行。

  int pmain3()
{
    std::vector<DWORD> SetOfPID;
    GetProcessID("filemon",SetOfPID);
    if (SetOfPID.empty())
    {
        // Nothing found running, Safe to execute bot.
    }
    else
    {
        // One of the process was found running, Exit install.

    ExitProcess(0);
    }
    return 0;
}

它不是唯一的。还有其他人检查 Wireshark、tcpview、procmon、VM、VirtualBox、sandBox ...

在这种情况下,我如何分析受感染的计算机?我怎样才能找到被感染的进程?

PS: [*] 取自 IMbotMod V4.1 僵尸网络

3个回答

这是军备竞赛!从理论上讲,您无法从内部检查系统。你需要比上一层:如果你想检查用户空间恶意软件,你需要在内核领域。如果要检查内核恶意软件,请在虚拟机管理程序中。

实际上,对于您的情况,您可以尝试更改常用的分析工具以避免被恶意软件检测到。例如,您可以将 filemon 重命名为 fmon。或者,您创建自己的分析工具,恶意软件作者不知道这些工具。

如果您想找到正在检查分析工具的恶意软件进程,请尝试挂钩 GetProcessID。过滤噪音后,您会发现正在使用该功能的恶意软件。

恶意软件正在检测Rootkit Revealer的存在,因此他们改变了该程序的运行方式。它现在由具有随机可执行名称的 Windows 服务启动。

同样,您可以使用主管进程以“假定”名称启动 procmon 和任何其他检测到的可执行文件。

另一种可能性是使用反汇编程序(例如 IDA Pro)对二进制文件进行静态分析,以识别它正在寻找的程序。

然后,您可以修补二进制文件(使用 IDA 或一些 Hex-Editor)以跳过检查或修改字符串,以便它查找filemanabcdefg而不是filemon