從adb prrmission denied到理解android手機提權背後

來源:互聯網
上載者:User

標籤:man   root   梳理   www   切換   lin   替換   studio   develop   

情境描述:

1. 串連Android手機,adb shell find xxxx,顯示adb permission denied;

2. Google顯示需要運行在root許可權下,adb root,無錯誤輸出,再次adb shell find xxxx,仍顯示permission denied;

3. 發現手機未擷取root許可權,嘗試root精靈和kingroot一鍵root均失敗。

原因:

1. adb是Android SDK內建調試工具(相關介紹:Android developer);

2. adb預設以shell許可權執行(非root),即使已擷取手機及root許可權,也需要顯示切換 adb root;

    若未擷取root許可權,顯示切換當然也是沒有用的;

3. adb 擷取root許可權的大前提:手機已root,目前依賴root工具,而root工具一般會有試用機型系統列表,列表外的手機無法實現root。

 

解析:

1. 為什麼要root?

Android採用Linux核心;所以同Linux一致,無root許可權將無法操作部分檔案(如系統檔案等)。

2. “把手機root一下”,這句話應該聽說很多,究竟root一下代表什麼呢?

使用者對手機的許可權一般是普通使用者,手機廠商禁止使用者擷取root許可權,root一下,即為將使用者的shell許可權提升為root許可權。

3. 重中之重,root的通用原理是什嗎?

(提前註明:搜尋的資料多為2013年或之前,具體提及破解細節只適用於當時Android版本,但猜想通用原理是一致的,整理之。)

關鍵的 "su" 參考:Android 系統 root 破解原理分析 + Android 的提權 (Root) 原理是什麼?

  • 在Linux中,執行su命令輸入密碼即可擷取root許可權;在Android中,有些手機封裝系統會直接去除su命令,另外的也不是通過密碼來驗證,而是看使用者原先許可權。即如果你是root,那你可以通過su切換到別的使用者,比如說shell,wifi,audio什麼的。但如果你是root之外的其他使用者,就不能切換回root了,會提示你permission denied。
  • 在Linux中,存在一種特殊許可權 s , 設定SUID(意思是,執行這個檔案的使用者暫時擁有檔案擁有者的許可權)。而su的擁有者即為root,所以普通使用者運行su,即可擷取到root許可權。

  • Android同理,由於手機廠商可能封裝了其他性質的su,所以首先需要確認兩點:1. Android手機中存在su命令;2. su命令擁有者為root,執行許可權為s。

所以root的重點在於要想辦法替換並執行su。

cp /data/tmp/su /system/bin/                   #copy su 到/system/分區
chown root:root su #su的所有者置成rootchmod 4775 /system/bin/su #把su置成-rwsr-xr-

     以上操作都需要root許可權,至此陷入迴圈,常規途徑無法破解。

非常規途徑(adbd漏洞為例)參考:Android 系統 root 破解原理分析(續)

Android init進程以root許可權啟動,從而啟動init.rc及其配置的系統服務(包括adbd),adbd在執行以下兩句命令後變為shell許可權

/* then switch user and group to "shell" */setgid(AID_SHELL);setuid(AID_SHELL);

破解的方法,在於讓這兩句命令執行失敗,切換為shell失敗則保留為原始的root許可權。

(但實際在Android4.2以後su命令的執行過程有修改,5.X之後也有變動,具體資料未梳理明了,暫保留以上)

從adb prrmission denied到理解android手機提權背後

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.