NSA超级后门Bvp47隐身技能:文件隐身

admin 2023年1月30日18:45:52评论51 views字数 1725阅读5分45秒阅读模式

本文是基于北京奇安盘古实验室的《Bvp47技术报告》和Linux内核写的。

哪位朋友有这个Bvp47的样本,麻烦给我分享一下,谢谢!

Linux下如何隐藏一个文件呢?方法有多种:

  • 最简单的,文件命名用.开头,比如.hello,用ls命令就无法查出,但用ls -a却可以看到。
  • 劫持libc.so系统调用的API,针对单个进程隐藏,可以给该进程设置LD_PRELOAD环境变量或者调整LD_LIBRARY_PATH环境变量里路径的顺序。对所有进程隐藏,则把劫持的so文件的路径加入到/etc/ld.so.preload
  • 最复杂,也是最困难,就是在内核里文件相关的函数挂钩劫持。

Bvp47就是在Linux内核挂钩劫持。看看它对内核里哪些文件相关的函数挂钩。

  • d_alloc - 获取文件/目录
  • vfs_readdir - 读取目录
  • vfs_getattr - 获取路径属性
  • vfs_getattr64 - 获取路径属性
  • sys_open - 句柄打开
  • sys_unlink - 删除文件
  • sys_rmdir - 删除目录
  • __inode_dir_notify - 文件或目录在创建,修改或删除时事件通知
  • sys_close - 句柄关闭
  • sys_read - 读取句柄
  • sys_write - 写句柄
  • sys_dup/sys_dup2 - 复制句柄

为什么它会对这些函数挂钩呢?

从Bvp47技术报告(PDF)得知这个超级后门有一个执行程序/usr/bin/modload。那么它需要隐藏这个文件。

当遍历一个目录时,会发生什么?有兴趣的可以用strace ls看一下,会看到调用getdents系统调用,而这个系统调用是获取目录下所有子项。而它最终会调用到vfs_readdird_alloc。所以,Bvp47就必须挂钩这两个函数,把/usr/bin/modload从结果里隐去。通过这种机制,Bvp47可以躲过主机入侵检测系统在目录遍历方面的检测。

如果主机入侵检测系统直接使用stataccess之类系统调用检测/usr/bin/modload的存在,如命令stat /usr/bin/modload。那它应该怎样隐藏。由于这些系统调用最终是调用vfs_getattrvfs_getattr64来获取该文件元数据,所以,Bvp47通过挂钩这些函数把它从结果隐去,从而躲过主机检测系统的检测。

通过打开文件来检测文件存在和stat的作用是类似,所以它也对sys_open进行了挂钩。

当一个东西从视觉上看不到时,往往直接用“投石问路”的方式。

  • 作为一个正常系统,不大可能是存在/usr/bin/modload这个文件,使用sys_openO_CREATO_EXCL的标志直接创建它,如果这个文件是存在的(虽然看不到),那么系统会返回“文件存在”的提示,禁止创建新文件。
  • 使用sys_unlink删除它。因为这样做,无论文件存在与否都没什么影响。成功就说明有这个后门,删除了也没影响。

所以,Bvp47必须要对sys_open,sys_unlink挂钩,对于sys_rmdir挂钩可能是它会需要隐藏一些目录。从而保护自身文件完整

应该有sys_creat函数,或许盘古实验室忘记放出来了。因为这个函数也是可以用于“投石问路”方式

一个后门对于查看和“投石问路”的API都挂钩来隐藏自身,还有没有办法检测到它的存在?

还是有的。比如使用inotifyfanotify的机制,可以实时监控目录里的子目录和文件创建删除更改或元数据变化。如果一个目录,比如/usr/bin,使用这两种机制之一,检测到创建了一个新文件modload,用stat, accessgetdents都看不到这个文件,这是不是一种非常可疑的行为?

由于这两种机制向用户态通知事件,都会调用__inode_dir_notify,所以,**Bvp47必须要对这个函数挂钩,从而在事件中过滤掉自身信息,达到隐藏目的**

sys_close,sys_read,sys_write,sys_dup/sys_dup2,这几个函数,小弟知道它们是做什么的,但由于缺乏样本,所以不清楚样本对它们挂钩怎样隐藏文件?


原文始发于微信公众号(debugeeker):NSA超级后门Bvp47隐身技能:文件隐身

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月30日18:45:52
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   NSA超级后门Bvp47隐身技能:文件隐身https://cn-sec.com/archives/1389986.html

发表评论

匿名网友 填写信息