隐藏文件_Linux内核Hook (隐藏文件和进程)

作者:the_one@白帽汇安全研究院

旁白:在家闲着无聊写了一个隐藏文件 隐藏进程的驱动模块就是大家俗称的rootkit技术

Rootkit介绍  

Rootkit 是一种特殊类型的 malware(恶意软件)。

Rootkit 之所以特殊是因为您不知道它们在做什么事情。Rootkit 基本上是无法检测到的,而且几乎不能删除它们。

虽然检测工具在不断增多,但是恶意软件的开发者也在不断寻找新的途径来掩盖他们的踪迹。

Rootkit 的目的在于隐藏自己以及其他软件不被发现。它可以通过阻止用户识别和删除攻击者的软件来达到这个目的。Rootkit 几乎可以隐藏任何软件,包括文件服务器、键盘记录器、Botnet 和 Remailer。许多 Rootkit 甚至可以隐藏大型的文件集合并允许攻击者在您的计算机上保存许多文件,而您无法看到这些文件。 Rootkit 本身不会像病毒或蠕虫那样影响计算机的运行。

攻击者可以找出目标系统上的现有漏洞。漏洞可能包括:开放的网络端口、未打补丁的系统或者具有脆弱的管理员密码的系统。在获得存在漏洞的系统的访问权限之后,攻击者便可手动安装一个Rootkit。这种类型的偷偷摸摸的攻击通常不会触发自动执行的网络安全控制功能,例如入侵检测系统。

找出 Rootkit 十分困难。有一些软件包可以检测 Rootkit。这些软件包可划分为以下两类:基于签名的检查程序和基于行为的检查程序。基于签名(特征码)的检查程序,例如大多数病毒扫描程序,会检查二进制文件是否为已知的 Rootkit。基于行为的检查程序试图通过查找一些代表 Rootkit 主要行为的隐藏元素来找出 Rootkit。

一个流行的基于行为的 Rootkit 检查程序是 Rootkit Revealer,在发现系统中存在 Rootkit 之后,能够采取的补救措施也较为有限。由于 Rootkit 可以将自身隐藏起来,所以您可能无法知道它们已经在系统中存在了多长的时间。而且您也不知道 Rootkit 已经对哪些信息造成了损害。对于找出的 Rootkit,最好的应对方法便是擦除并重新安装系统。虽然这种手段很严厉,但是这是得到证明的唯一可以彻底删除 Rootkit 的方法。

(这段是我百度的!!哈哈哈哈)

所以我们先简要分析一下内核模块的加载过程。 相关代码位于内核源码树的 kernel/module.c 我们从 init_module 开始看。我们先简要分析一下内核模块的加载过程。 相关代码位于内核源码树的kernel/module.c 。 我们从 init_module 开始看。

SYSCALL_DEFINE3(init_module, void __user *, umod,         unsigned long, len, const char __user *, uargs){     int err;     struct load_info info = { };      // 检查当前设置是否允许加载内核模块。     err = may_init_module();      if (err)         return err;      pr_debug("init_module: umod=%p, len=%lu, uargs=%p",            umod, len, uargs);      // 复制模块到内核。     err = copy_module_from_user(umod, len, &info);     if (err)         return err;      // 交给 ``load_module`` 进一步处理。     return load
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值