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

J G*_*ler 6 permissions ext4 malware

有一个持续的活动在电子邮件中发送病毒/特洛伊木马,假冒来自汇丰银行、劳埃德 TSB、亚马逊等。

木马/病毒通过应用程序/zip 附件发送。

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

为了使用clamscan, avgscan, 和扫描它avast,我保存了 zip 文件并将其内容解压到“病毒”目录中:

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: -
Run Code Online (Sandbox Code Playgroud)

正如所料,我可以重命名文件或删除它。该文件的权限为 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: -`
Run Code Online (Sandbox Code Playgroud)

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

$ 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`
Run Code Online (Sandbox Code Playgroud)

即使以 root 身份尝试也失败了。

那么怎么可能使文件不可读,即使它有“RW权限”,且它如何才能与扫描它是可读的avgscanclamscanavast等?


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

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

clamscan 病毒.zip 病毒.zip:好的

同样avgscanavast无法检测到任何恶意软件。

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

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


* 重要的附加信息 *

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

60 -rw-------   1 miller users 61440 2013-10-01 22:01 Order details.exe
Run Code Online (Sandbox Code Playgroud)

但这对用户 miller 或 root 来说都是不可读的。

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

0 -rw-r--r--  1 root root 61440 2013-10-01 22:01 Order details.exe
Run Code Online (Sandbox Code Playgroud)

文件命令显示以下内容:

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

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

root解压后的文件:

$ lsattr Order\ details.exe 
-------------e-- Order details.exe
Run Code Online (Sandbox Code Playgroud)

手册页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).
Run Code Online (Sandbox Code Playgroud)

因此对EXT2 / 3/4的文件系统有一个catch22情况-缺乏文件的可读性的CAN NOT被改变,并且该解决方案是解压zip存档作为根,以避免与“e”的创建解压文件属性,因为 Linux 解压版本没有忽略属性开关。

如果用户在 XFS 文件系统上解压了 zip 文件,则它是可读的,因为 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)
Run Code Online (Sandbox Code Playgroud)

所以这个故事的寓意是不要相信 avgscanavast或者clamscan总是在 zip 文件中发现恶意软件——总是对解压缩的可执行文件进行扫描!

slm*_*slm 1

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

lsattr virus.exe 
lsattr: Operation not permitted While reading flags on virus.exe
Run Code Online (Sandbox Code Playgroud)

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

例子

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

$ pwd
/home/sam
Run Code Online (Sandbox Code Playgroud)

如果我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
Run Code Online (Sandbox Code Playgroud)

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