-rw-r--r-- 1 foo foo 1598296064 Aug 9 11:22 sudo
有人对如何进行调查有任何提示吗?这个文件?我担心我的计算机可能会受到威胁,但我仍然想知道我要处理的内容。
这是我到目前为止所做的事情:
运行
file sudo
显示为'sudo:data'。运行
strings sudo
显示了大量的随机数据。 运行
which sudo
指向/usr/bin/sudo
中的sudo文件如果它是可执行二进制文件,我计划运行它,但在执行此操作之前可能会转移到虚拟机。我对
gdb
的知识有限,因此至少可以对其进行检查。#1 楼
您可能是由于使用了拙劣的shell命令而偶然地做到了。我自己做了类似的事情。结果,它可能充满了无害的数据。以下是一些我认为它不是恶意软件的原因:1.5 GB是一个非常大的病毒。由于病毒通常是通过网络传播的,因此病毒越小越好。
它不是可执行文件。
恶意软件通常隐藏得比这好得多。
file
认为这只是数据文件。当然,所有这些都不能证明它不是恶意的(aka病毒不必太小,仅因为它不是可执行文件并不意味着它可能不是恶意文件的一部分)。恶意负载,有时它们不会隐藏起来),但我怀疑这是无害的。这可能太旧了,但是我会看看您的bash历史记录是否有问题的日期/时间。
我意识到我没有给您任何有关如何分析文件的提示,但是您已经找到了主要的辅助对象(
file
和strings
),但他们没有帮助!从errant命令中填充随机数据的文件将解释您所看到的内容,并且与恶意软件IMO相比,在主目录中生成名为sudo
的文件的机会更大。评论
我大都同意,只不过只能在$ PATH目录中找到可执行文件-不应包含主文件夹或。 (当前目录)。但是在这种情况下,ls -l确实表明它没有被标记为可执行文件。
–戈登·戴维森(Gordon Davisson)
19年8月29日在2:50
您可能打算执行某些命令| sudo tee -a something并最终运行somecommand> sudo tee -a something
–ThoriumBR
19年8月29日在2:56
历史| grep“> sudo”
–杰弗里
19年8月29日在14:53
@Jeffrey不要与历史混淆| grep> sudo,这只会使问题更严重。
–雷
19年8月29日在19:47
@Ray哈哈,这让我很难过
– Conor Mancone
19年8月29日在20:33
#2 楼
是否有人对如何继续研究此文件有任何提示?
由于
file
无法将“数据”识别为可执行文件,因此很难尝试动态分析(通过运行它),除非您找到合适的入口点。 您可以尝试使用的另一种标准Linux工具是:
stat
这将为您提供比您看到的更多的元数据信息仅列出目录。
您可以尝试使用的另一种工具是:
binwalk
,它可以提供二进制文件的分析,例如固件映像。例如,如果二进制文件包含文件系统
binwalk
可能会识别它。Linux上免费提供的另一种工具是“ The Sleuth Kit”。如果二进制文件碰巧是原始磁盘映像或文件系统数据,则可以尝试使用“ The Sleuth Kit”对其进行处理。
还可以尝试将二进制文件放入IDA(“交互式请参阅Hexrays的《反汇编程序》(提供免费版本),以查看IDA是否可以理解。但是,如果
file
无法识别它,我不太希望IDA能够做到。评论
我听说过有关Ghidra(nsa.gov/resources/everyone/ghidra)的一个很好的信息,它是一个非常好的(开放源代码)二进制分析器。
– Peter Cordes
19年8月29日在22:16
吉德拉(Ghidra)是另一个不错的选择。它是免费提供的,可以解析许多不同类型的二进制文件。它可能能够处理IDA Free版本无法解决的某些问题。最好的选择是使用商业IDA Pro,但价格昂贵。
–hft
19年8月29日在22:24
#3 楼
我将从终端上的history | grep sudo
开始,查看最新的sudo命令,看是否有格式错误的内容。这是您的主目录。
您还没有说过它具有特殊的所有权,所以我假设您是它的所有者。
几乎可以肯定,这是一个拙劣的shell命令,因此您可能是从终端上创建的。
它可能是由脚本创建的但是将
“ sudo”命令放在脚本中是非常罕见的。
它是公开显示的,显然,所以如果您最近没有创建它,您可能会
注意到它。
评论
历史| grep sudo | wc -l-> 8343:p
– Conor Mancone
19年8月29日在18:16
@ConorMancone我建议“历史| grep sudo | tail”,但我怀疑他是否需要它。
–黑暗物质
19年8月29日在20:19
#4 楼
我认为其他答案几乎已经涵盖了所有内容(并且已经解决了这个谜团)。如果您仍然不确定要删除它,可以尝试做的另一件事是进行尖叫测试。您不必一定要获得文件源的分辨率,但是您可以放心删除它是安全的。将文件重命名为其他名称,看看是否发生任何情况。需要注意的一些事情是
文件被重新创建。这意味着最近发生了一些事情,并且可能更容易通过bash历史记录或日志找出原因。
发生崩溃。取决于程序崩溃的频率,这可能是一条红色的鲱鱼,但也可能暗示该文件的来源。
执行尖叫测试的其他方法是删除所有访问权限,以便没人能读取或写入文件,或损坏文件。
编辑
如丹尼尔指出,如果进程仍然打开文件,则重命名文件将不起作用。如果文件已打开,则可以看到所有带有
lsof
的打开文件,或者可以找到使用fuser
打开了文件的那些进程的进程ID。然后ps
将提供有关该过程的更多信息。> 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
评论
开启文件句柄的应用程序将通过重命名,移动和保持关闭状态来保持文件打开状态。
–丹尼尔·希尔(Daniel Hill)
19年8月29日在12:42
@DanielHill好点。 lsof | grep sudo进行了救援。 lsof会报告文件的当前名称还是打开文件的名称?
–spyr03
19年8月29日在13:48
如果最近创建了某些东西,为什么修改时间将在3周前?
– Barmar
19年8月29日在14:16
@Barmar我认为这是一个意外创建的未使用文件。但是,如果该进程长期存在并且此后未关闭计算机,则没有理由无法将其保持在打开状态。
–spyr03
19年8月29日在14:22
我只是在问三个星期前是否算作“最近”。
– Barmar
19年8月29日在14:23
#5 楼
您可以尝试使用“ hexdump -C -n 512”查看二进制或ascii转储中是否弹出任何内容。可能是二进制数据和文本数据的某种混合。就像您键入错误的脚本的wget一样,hexdump可能允许您查看某些脚本。#6 楼
您也可以尝试head
并查看文件的前几行。前几个字符可能会揭示有关文件类型的信息。有关更多信息,请参见幻数。评论
如果此文件的幻数是众所周知的数字,则该文件将猜测出文件类型。
– Binarym
19年8月29日在14:15
另外,将head的输出放到可能是二进制文件的裸终端中,很可能会弄乱您的终端。请记住,head查找的是一定数量的“行”,它期望由换行符分隔。如果在前一百MB左右没有找到任何换行符,head就不在乎了。它只是将所有输出丢弃在您的终端上,而那里没有任何终端逸出装置可能会导致您的命令提示符混乱之类的可能性是多少呢?低。相反,请尝试xxd
– Guenthmonstr
19年8月29日在14:46
到终端的@ d-b命令是在线传输的。因为这是标准,所以没有多少“更好”可以解决此问题。如果将控制代码直接转储到终端中,则终端将正确地解释它们。
–Score_Under
19年8月30日在8:52
@ d-b最常见的此类问题是更改终端字符集的序列,因此Mac OS终端可能不支持字符集切换。如果您打印'\ 033(0'),它将指示终端将G0字符集更改为线条画字符。如果此序列在文件中,您碰巧遇到了同样的情况(这就是“严格正确”的原因方法是使用较少的或用于显示文件的其他实用程序。
–Score_Under
19年8月31日在19:42
@Score_Under printf'\ 033(0'在我的终端机上被“弄乱”了。
– d-b
19年9月1日于4:40
#7 楼
您可以采用简单明了的旧方法:安装防病毒程序并扫描文件。这不是一个完美的解决方案,但它是一个起点,至少可以让您对此稍有放心。我真的很惊讶,没有人提出这个建议。
我不确定您在使用哪个发行版,但是我确定有很多防病毒解决方案都可以使用。我想不起了,我想尝试一下ClamAV,看起来很容易安装。
评论
评论不作进一步讨论;此对话已移至聊天。请注意,哪个sudo对当前名为sudo的目录中的文件不执行任何操作,并且将从任何文件夹给出该结果。它只是搜索路径中所有不同的位置,并告诉您如果立即运行sudo命令将使用哪个位置。
只需在“更直观”的查看器中打开它,例如Midnight Commander中内置的浏览器或类似的浏览器,然后滚动即可。您很可能会从下面的答案中识别“错误命令”的输出。