80行写就PHP底层RootKit 可以拦截内核操作并实现恶意攻击
荷兰开发人员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行代码组成,因此黑客能够很轻易地将之隐藏在合法模块中。
为防止攻击者利用这些代码,Paris省略了部分代码,使非专业PHP开发人员很难进行编译。
发布的文章中还为管理员提供了一条建议:
安装PHP后,保留模块哈希值清单。管理员可利用corn job计算扩展目录中所有文件的哈希值,并与当前哈希值进行对比。Paris还发布了Python脚本,可检查用户PHP模块的SHAI哈希值。
原文发布时间:2017年6月19日
本文由:securityaffairs 发布,版权归属于原作者
原文链接:http://toutiao.secjia.com/php-rootkit
本文来自云栖社区合作伙伴安全加,了解相关信息可以关注安全加网站
相关文章
- 7.PHP Cookie与Session
- PHP 安全三板斧:过滤、验证和转义之转义篇 & Blade模板引擎避免XSS攻击原理探究
- PHP开发规范
- PHP 性能分析(二): 深入研究 XHGui
- php hash_hmac sha1加密sign签名的python对照实现
- PHP 二维数组根据某个字段排序
- Ubuntu 安装 ImageMagic(6.9.1-6)及 PHP 的 imagick (3.0.1)扩展
- 《PHP、MySQL和Apache入门经典(第5版)》导读
- php header函数常见用途
- 【Bilibili直播源】浏览器抓取真实直播源地址(纯前端JS & PHP解析源码)
- php 获取汉字笔画
- php执行linux命令的6个函数
- PHP代码网站防范SQL注入漏洞攻击的建议
- How to install php evn on ubuntu
- php装饰者模式
- php工厂模式