如何在 Linux ext-4 上使用“文件无读取权限”使恶意软件文件可读?

如何在 Linux ext-4 上使用“文件无读取权限”使恶意软件文件可读?

目前存在一种通过冒充来自汇丰银行、劳埃德银行、亚马逊等的电子邮件发送病毒/木马的活动。

木马/病毒以应用程序/zip 附件形式发送。

我保存了一个这样的 zip 文件,并将其解压到我拥有的 ext4 文件系统上的 700 权限目录中

为了使用clamscanavgscan、 和进行扫描avast,我保存了 zip 文件并将其内容解压到目录“virus”中:

File: /home/users/miller/virus
Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: 809h/2057d      Inode: 14155801    Links: 2
Access: (0700/drwx------)  Uid: ( 1001/  miller)   Gid: ( 1000/   users)
Access: 2013-10-03 12:57:47.484923866 +0200
Modify: 2013-10-03 12:57:46.684879168 +0200
Change: 2013-10-03 12:57:46.684879168 +0200
Birth: -

正如预期的那样,我可以重命名该文件或将其删除。该文件的权限为 600,归我所有:

$ stat virus.exe
File: virus.exe
Size: 61440           Blocks: 120        IO Block: 4096   regular file
Device: 809h/2057d      Inode: 14155809    Links: 1
Access: (0600/-rw-------)  Uid: ( 1001/  miller)   Gid: ( 1000/   users)
Access: 2013-10-03 12:46:37.194541504 +0200
Modify: 2013-10-01 22:01:44.000000000 +0200
Change: 2013-10-03 13:19:09.263393591 +0200
Birth: -`

但任何读取该文件或复制该文件的尝试都会失败。

$ file virus.exe
virus.exe: writable, regular file, no read permission`

cp virus.exe copy.exe
cp: cannot open virus.exe for reading: Operation not permitted`

lsattr virus.exe 
lsattr: Operation not permitted While reading flags on virus.exe`

即使以 root 身份尝试此操作也会失败。

那么如何才能使文件不可读,即使它具有“rw 权限”,以及如何使其可读以便使用avgscanclamscan等扫描它avast


* 更正** (之前的评论是针对错误的zip文件)

附录:运行clamscan保存的附件 zip 文件本身不会导致检测到病毒/木马/恶意软件,可能是因为内部可执行文件处于“不可读”状态。

clamscanvirus.zipvirus.zip:好的

同样avgscan,也avast无法检测到任何恶意软件。

这凸显了能够读取提取的 exe 文件的重要性,并表明clamscan无法检测恶意软件。

zip 文件的原始名称为ORDER-N:N-1414559-3015133.zip,可执行文件的原始名称为Order details.exe


* 重要的附加信息 *

回顾一下,如果用户 miller 解压 zip 文件,则会创建一个 exe 文件:

60 -rw-------   1 miller users 61440 2013-10-01 22:01 Order details.exe

但这对于用户 miller 或 root 来说都是无法读取的。

但是,如果 zip 文件由 root 解压,则 exe 文件可由 root 读取:

0 -rw-r--r--  1 root root 61440 2013-10-01 22:01 Order details.exe

文件命令显示如下:

[15:57] koala:{virus/}# file Order\ details.exe 
Order details.exe: PE32 executable (GUI) Intel 80386, for MS Windows

那么是什么设置阻止普通用户和 root 读取用户解压的文件呢?

root解压后的文件:

$ lsattr Order\ details.exe 
-------------e-- Order details.exe

手册页chattr解释:

The 'e' attribute indicates that the file is using extents for  mapping
the blocks on disk.  It may not be removed using chattr(1).

因此,在 ext2/3/4 文件系统上存在一个 catch22 情况——文件缺乏可读性不能需要更改,解决方案是以 root 身份解压 zip 存档,以避免创建带有“e”属性的解压文件,因为 Linux 解压版本没有忽略属性开关。

如果用户将zip文件解压到XFS文件系统上,那么它是可读的,因为XFS不支持属性设置机制。

以及何时avgscan在 exe 文件上运行:

$ avgscan Order\ details.exe 
AVG command line Anti-Virus scanner
Copyright (c) 2013 AVG Technologies CZ

Virus database version: 3222/6719
Virus database release date: Thu, 03 Oct 2013 06:11:00 +0200

Order details.exe  Found Luhe.Fiha.A

Files scanned     :  1(1)
Infections found  :  1(1)

所以这个故事的寓意是不要相信 avgscanavast、 或clamscan始终在 zip 文件中查找恶意软件 - 始终对解压的可执行文件进行扫描!

答案1

据我所知,确凿无疑的命令是:

lsattr virus.exe 
lsattr: Operation not permitted While reading flags on virus.exe

这基本上是说底层文件系统不是EXT2/3/4。鉴于正常权限有时可能不是一个因素,并且文件属性也可能不受支持。

例子

我有一个 NFS 安装共享,如下所示。

$ pwd
/home/sam

如果我lsattr反对它:

$ lsattr /home/sam/ 2>&1 | head -3
lsattr: Inappropriate ioctl for device While reading flags on /home/sam/dead.letter
lsattr: Inappropriate ioctl for device While reading flags on /home/sam/bashrc
lsattr: Inappropriate ioctl for device While reading flags on /home/sam/phillip_phillips_home.mp3

我的猜测是文件系统拒绝您访问它。

相关内容