Linux下的Rootkit驻留技术分析
MODULE_LICENSE也必要配置,由于Linux是GPL授权,我们必要声明兼容的授权协议,不然Linux会提醒tainted kernel(固然不影响正常行使,但会较量轻易引起留意)。编译LKM的要领可以参考Linux内核文档,可能直接参考现有的LKM项目标Makefile,这里的Makefile内容如下: ![]() LKM代码如下,行使user space helper到达了执行外部措施的目标: 行使insmod呼吁动态加载LKM到内核,当即见效: 下面是dmesg的相干输出: LKM执行恶意代码有较量大的范围性,由于必需针对沟通内核版本编译才气正常行使,从而引入了Linux headers的依靠,实现大范畴撒播的难度较大。防御此类进攻(也是最伤害和潜伏的一种)的最有用要领就是封锁Linux的动态模块加载成果,对付大大都Linux处事器,关掉这个成果凡是不会造成特殊影响。 2.2 initrd的操作 Reptile会把本身写入/etc/rc.modules以便在体系启动时插入本身的module。但通过initrd实现越发潜伏靠得住。initrd即init ram disk,用于提供一个根基的情形以便启动完备的Linux。 鉴于initrd很少受到存眷和掩护,它又必然会在启动时被加载入内存,我们可以在这个内存文件体系中插入本身的LKM并修改init剧本使我们的LKM在启动时被加载,从而实现恶意代码执行。 这里以Kali(Linux 4.18,基于Debian Sid)为例,说明也许的操作点: 下图是init剧本functions界说中,加载自界说kernel module的函数,我们可以把本身的LKM放到modules目次下(譬喻 ./usr/lib/modules/4.17.0-kali3-amd64/kernel),然后在 ./conf/modules里写上本身的LKM,我们的LKM就会跟着initrd加载到内核。 可能我们也可以直接在load_modules函数内增进modprobe操纵来加载恶意LKM。 总结 Linux下的恶意软件固然种类不多,但就其驻留技能实现而言,照旧有不少的要领。本文除了主流的实现之外,也提出了一些凡是很少有人留意的实现要领,但愿对Linux攻防反抗的伴侣有所辅佐。 【编辑保举】
点赞 0 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |