zl程序教程

您现在的位置是:首页 >  后端

当前栏目

80行写就PHP底层RootKit 可以拦截内核操作并实现恶意攻击

PHP攻击内核 实现 操作 可以 底层 拦截
2023-09-27 14:24:58 时间

荷兰开发人员Luke Paris创建了可隐藏在PHP服务器模块中的PHP隐匿程序 RootKit,并解释了经典隐匿程序更为危险的原因。攻击者可利用该程序接管web服务器。

PHP RootKit隐匿程序拦截内核操作 实现恶意攻击

经典隐匿程序活跃于最低级的操作系统中,拦截内核操作,实现恶意攻击。Luck Paris成功创建了可与PHP解释器而非更复杂的操作系统内核进行互动的隐匿程序。

编写 PHP 模块隐匿程序首要和显然的原因是可访问性。学习使用 Zend 引擎(整个 PHP 语言的框架)远比学习编写内核模块简单的多,因为前者的代码库本身更小,有更多的说明文档,且更简单。

即使没有很多文档和教程,我也在一天内学会了编写 PHP 模块的基础知识。 “ 如果我(一名 C 语言的新手程序员)能做到这一点,攻击者更是不在话下。

通过利用Paris的PHP隐匿程序,攻击者可持久感染被攻击的服务器而不被检测到。Paris表示,利用PHP模块隐藏隐匿程序是非常有效的,原因如下:

可访问性 —编写PHP模块隐匿程序比学习如何编写内核模块要简单的多。开发人员可使用更少的代码实现。Paris解释说自己在短短一天内就学会了编写PHP模块的基础知识。

稳定性 —隐匿程序在内核中运行,这意味着随意编写的恶意软件可破坏整个系统。使用PHP隐匿程序后,此问题可迎刃而解。随意编写的PHP隐匿程序不能破坏整个系统。 Paris 表示 ,

“ 最糟情况下 , 隐匿程序可造成分段错误并打断当前请求 ( 注 : 大部分 web 服务器在错误日志中报告了该问题 , 应引起怀疑 ) 。 ”

可检测性 —由于缺少PHP模块检测,难以实现对PHP隐匿程序的检测。 Paris 说 :

“ 并且 , 内核隐匿程序可深入到系统中的每个进程调用而不只是一个进程 , 这可大幅降低系统速度 , 引起更多怀疑。 ”

可移植性 —PHP隐匿程序是跨平台的隐匿程序,因为PHP(在多数情况下)是不依赖于平台的。

PoC已经被公开

Luke Paris在GitHub上发布了关于PHP隐匿程序的概念证明(PoC),这是一个开源项目。Paris开发的PoC代码在PHP服务器上融入到hash和shal参数中,隐匿程序是由80行代码组成,因此黑客能够很轻易地将之隐藏在合法模块中。

PHP%20PoC.png

为防止攻击者利用这些代码,Paris省略了部分代码,使非专业PHP开发人员很难进行编译。

发布的文章中还为管理员提供了一条建议:

安装PHP后,保留模块哈希值清单。管理员可利用corn job计算扩展目录中所有文件的哈希值,并与当前哈希值进行对比。Paris还发布了Python脚本,可检查用户PHP模块的SHAI哈希值。



原文发布时间:2017年6月19日

本文由:securityaffairs 发布,版权归属于原作者

原文链接:http://toutiao.secjia.com/php-rootkit

本文来自云栖社区合作伙伴安全加,了解相关信息可以关注安全加网站