如何调查我的 Linux 主目录中名为“sudo”的未知 1.5GB 文件?

信息安全 恶意软件 linux
2021-09-02 08:26:24

我在我的主目录中找到了一个名为“sudo”的文件。它的大小为 1.5GB,我不知道它是从哪里来的。

-rw-r--r--  1 foo foo 1598296064 Aug  9 11:22 sudo

有人对如何继续调查此文件有任何提示吗?我担心我的电脑可能会受到影响,但我仍然想知道我在处理什么。

这是我到目前为止所做的:

  • 运行file sudo显示 `sudo: data'。
  • 运行strings sudo显示大量随机数据。
  • 运行which sudo点到 sudo 文件中/usr/bin/sudo

如果它是一个可执行的二进制文件,我计划运行它,但在我这样做之前可能会转移到虚拟机。我的gdb知识有限,所以至少我可以检查它。

4个回答

您可能是通过一个拙劣的 shell 命令意外完成的。我自己也做过类似的事情。因此,它可能充满了无害的数据。以下是我认为它不是恶意的几个原因:

  1. 1.5 GB 将是一个非常大的病毒。由于病毒通常通过网络传播,因此越小越好。
  2. 它是不可执行的。
  3. 恶意软件通常比这隐藏得更好。
  4. file 认为它只是一个数据文件。

当然,这些都不能证明它不是恶意的(又名病毒不必很小,仅仅因为它不可执行并不意味着它可能不是恶意负载的一部分,有时它们不会麻烦隐藏),但我怀疑这是无害的。这可能太旧了,但我会看看你的 bash 历史是否会出现在相关的日期/时间。

我意识到我没有给你任何关于如何分析文件的提示,但是你已经找到了主要的助手(filestrings),但他们没有帮助!一个充满来自错误命令的随机数据的文件可以解释您所看到的内容,并且可能sudo比恶意软件 IMO 更有可能生成在您的主目录中命名的文件。

有人对如何继续调查此文件有任何提示吗?

由于file无法将“数据”识别为可执行文件,因此除非您能找到正确的入口点,否则很难尝试动态分析(通过运行它)。

您可以尝试的另一个标准 Linux 工具是:

stat

这将为您提供比仅通过目录列表看到的更多的元数据信息。

您可以尝试的另一个工具是:

binwalk

它可以提供对固件映像等二进制文件的分析。例如,如果二进制文件包含一个文件系统binwalk可能会识别它。

在 Linux 上免费提供的另一个工具是“The Sleuth Kit”。如果二进制文件恰好是原始磁盘映像或文件系统数据,那么您可以尝试使用“The Sleuth Kit”来处理它。

您也可以尝试将二进制文件放入 IDA(Hexrays 的“交互式反汇编程序”——提供免费软件版本),看看 IDA 是否能理解它。但如果file不承认,我不太希望 IDA 承认。

history | grep sudo将从终端开始,查看最新的 sudo 命令,看看是否有任何格式错误。

  • 这是你的主目录。
  • 你没有说它有特殊的所有权,所以我假设你拥有它。
  • 这几乎可以肯定是一个拙劣的 shell 命令,所以你可能是从终端完成的。
  • 它可能是由脚本创建的,但很少将“sudo”命令放入脚本中。
  • 它公开而明显地展示自己,因此如果您最近没有创建它,您可能会注意到它。

我认为其他答案已经涵盖了几乎所有内容(并且已经解决了这个谜团)。如果您仍然不确定是否要删除它,可以尝试的另一件事是进行尖叫测试。您不一定会获得有关文件来源的解决方案,但您可以确信删除它是安全的。

将文件重命名为其他名称,看看是否发生任何事情。需要注意的一些事情是

  1. 文件被重新创建。这意味着最近做了一些事情,通过 bash 历史记录或日志可能更容易找到。
  2. 有什么东西崩溃了。根据程序崩溃的频率,这可能是一个红鲱鱼,但它也可能是关于文件来源的提示。

进行尖叫测试的其他方法是删除所有访问权限,这样任何人都无法读取或写入文件,或者破坏文件。

编辑

正如丹尼尔指出的那样,如果进程仍然打开文件,重命名文件将不起作用。如果文件已打开,您可以使用 来查看所有打开的文件lsof,或者您可以使用 找到打开文件的那些进程的进程 ID fuserps然后将提供有关流程的更多信息。

> fuser sudo
/home/bob/sudo:  3132  7070
> ps 3132 7070
  PID TTY      STAT   TIME COMMAND
 3132 ?        R    203:50 pdflatex
 7070 ?        Sl     0:45 evince