显示标签为“crack”的博文。显示所有博文
显示标签为“crack”的博文。显示所有博文

2016年7月13日星期三

Android Hack进行时: 取得了"system"用户,还需继续努力升格为root用户

钻了个debuggable的漏洞,取得了system用户,转而为如何升为root而操心。

Android 5.1.1, Linux 3.10.49
发现了一个原装的系统应用,居然可以被调试,反正出现在Android Studio的可调式进程清单里,看来是DEBUG版本就那样稀里糊涂的烧到主板里了。 先查查看用户身份:
pm dump com.example.app
里面能够看到用户身份是"system"。 本来一个run-as就可以转换成这个身份了的,
run-as com.example.app
但是报错说没有这个package,原因不明。好几个可以调试的app里,有的能够run-as,有的不行。
那就转向jdb的路子:
$ adb forward tcp:18600 jdwp:那个系统app的pid
$ jdb  -attach localhost:18600
> threads
group system:
  (java.lang.Thread)0x2a86 Signal Catcher        ...
  (java.lang.Thread)0x2a87 FinalizerWatchdogDaemon ...
  ... 
group main:
  (java.lang.Thread)0x2a8d main                   ...
  (java.lang.Thread)0x2a8e Binder_1               ...
  ...
> thread 0x2a8d
main[1] stepi
>  /*执行到这里后,打开手机动一下那个app触发调试器*/
stepi completed: "thread=main", android.os.MessageQueue.next()、row=145 bci=22
   /*然后再输入print new...命令运行一个脚本以便启动一个shell server侦听7777端口*/
main[1] > print new java.lang.Runtime().exec("sh /sdcard/qj.sh")
只是有几个/sdcard/...文件得事先传到手机上。 /sdcard/qj.sh:
date > /sdcard/log
cp -f /sdcard/busybox /data/ 2>> /sdcard/log || exit 1
chmod 4777 /data/busybox 2>> /sdcard/log || exit 1
(while true; do /data/busybox nc -l -p 7777 -e sh; done) >> /sdcard/log 2>&1 &
echo server OK >> /sdcard/log
/sdcard/busybox:
[从这里下载](http://busybox.net/downloads/binaries/latest), 一般选armv7就行了。
然后用nc连上7777端口就可以连上后门shell server,输入任何命令都会以system身份之行。
adb forward tcp:7777 tcp:7777
nc localhost 7777
可是搞到手后发现离root还差一点,不能够改写/system下的东西,也不能mount。能够改/data下的东西,也很有用,看看后面能不能找到方法升级成root。
id命令的结果:
uid=1000(system)
gid=1000(system)
groups=1000(system)
1007(log)
1010(wifi)
1015(sdcard_rw)
1021(gps)
1023(media_rw)
1028(sdcard_r)
3001(net_bt_admin)
3002(net_bt)
3003(inet)
3004(net_raw)
3005(net_admin)
3006(net_bw_stats)
3009(qcom_diag)
9997(everybody)
41000(u0_a31000)
context=u:r:system_app:s0

2016年6月20日星期一

试了一个获取Android系统权限的工具Kingroot,运气不错,取得root了。

看起来做得很精致干净,谢谢!试验的机子是一款没有名气的牌子。2016/07/14补:后来发现有个更干净更管用的工具,名字多了个o,叫KingoRoot。

kingroot 这个公司看来搜罗了很多Android的漏洞,挨个试着破解,运气好的时候,就不用启动就成功了。也有人运气背的,不停的崩溃重启动。这东西谁能保证呢。
安装:显然不能从Google 的Play store里来,只能手动到那个网站下载app,我是下载手机版的,然后adb install ......apk。
然后运行KingRoot里的Root Auth功能,需要联网,它似乎会查询代码库,然后自动的进展,过几分钟,他说好了。
这好了的证据,一个是,我发现这个app无法像一般app那样拖拽到垃圾箱卸载了,app信息里的卸载按钮压根不存在。
然后我adb shell进去一看,/system/xbin/su新生成了!执行su一下就会有Kingroot画面弹出来问允不允许,就和SuperSU那个差不多。
然后随便干什么都行了,只是有一点, /system目录依然是mount成只读的,所以大概需要重新mount一下,我还没试,想来和以往的经验没什么不同。不管怎样,至少id成了0了,/data/data下可以乱搞了,各种不顺眼的process都可以kill了。
追加,试了,可以把/system搞成可写的了。方法google一下到处都有,摘要:
#   mount -o rw,remount /system



2016/06/28:
这个工具毕竟是特殊工具,用时要做好遇难的思想准备。KingRoot有Windows版(通过ADB连接手机进行破解),我在虚拟机里用了(感谢VirtualBox可以安装一个为了ADB的USB扩展: http://forum.xda-developers.com/showthread.php?t=570452),
KingRoot最终报错,但实际上/system/xbin/*su* 已经生成了,其实已经被root了,但是一执行就会爆“no ...ui ...”之类错误,这是手动把KingRoot的apk安装上去(不用执行)就可以了,他就会和su配成对来弹出一个对话框确认来自adb的root请求。
进一步发现,这个工具很可能受到腾讯安全公司的资助,因为它内部包含了Tencent的ADB Server和一个QQ关联的东西,通过工具看到这个ADB Server会往腾讯安全公司发数据。可能存在后门。
手机版的就没确认又无后门。

总之,用这个工具,要在虚拟机里用,并且手机要禁止网络,成功之后在把KingRoot的su换成标准的SuperSU之类的(可笑的是,这东西也不是开源的)。
2016/07/14补:后来发现有个更干净更管用的工具,名字多了个o,叫KingoRoot。这个工具没在Windows上安装什么乱七八糟的(安装时不要同意赞助软件就行了),运行时我观察了,没有起额外的进程,出了自带的adb。也顺利的root成功了,而且手机上安装的东西没有别的功能,只是管理root同意名单,叫做SuperUser,可能是基于一个开源的SuperUser改的。

2015年9月10日星期四

恍然小悟,去掉Excel的worksheet(工作表)保护的新方法

广为认知的方法是,运行一段猜测密码的VBA(https://uknowit.uwgb.edu/page.php?id=28850),几十秒就可以找到代替密码,因为密码Hash很短所以密码有多个。但是Excel2013里密码Hash很长所以密码几乎是唯一的,依靠这个VBA肯定找不到密码。

注意,现在说的不是那种一打开就要输入密码的excel文件,那个是文件整体加密的,必须暴力破解出密码的。现在说的是文件能打开,只是里面的有的部分不能修改。

我虽然手头没有Excel 2013,但是推测,这个worksheet保护,其实没有对文件内容加密,仅仅是做了些标记,说不让修改某些制定的cell而已,应该是去掉了标记就可以自由修改了的。在Office 2010上实验了,的确没问题,只要把文件按照下面的方法修改一下就好了:
  1. 把xlsx文件后缀改成zip,解压。  (如果是xls,那就先保存成xlsx格式)
    解压后的目录结构大致是:
    ?
    1
    2
    3
    4
    5
    6
    顶层目录
        _res目录
        docProps目录
        xl目录
       [Content_Types].xml
       ....
  2. 在解压后的xl/worksheets目录里,找到sheet1.xml, sheet2.xml...,打开
  3. 把里面的<sheetProtect.....>这句给删除
    ?
    1
    <sheetProtection objects="1" password="????" scenarios="1" sheet="1"/>
  4. 把顶层目录的东西压缩,但是不包括顶层目录。把压缩有的文件后缀名改成xlsx,这就是可以自由修改的xls文件了。

估计这个方法应该在Excel2013里可以使用的。
这个方法就和去除pdf的复制打印保护的方法差不多,不需要密码,只需要用qpdf工具修改一下就好了。
qpdf --decrypt old_pdf_file new_pdf_file