planetbeing,男,出生于中國(guó)上海,加拿大的著名黑客。

中文名

王翌多

外文名

planetbeing

別名

planetbeing

國(guó)籍

加拿大

出生地

中國(guó)上海

人物介紹

ios6的完美越獄消息傳得沸沸揚(yáng)揚(yáng),發(fā)布這條消息的正是幾位越獄大神中唯一一位亞洲面孔—planetbeing

曾經(jīng)參與開(kāi)發(fā)ios初代(ios1)越獄的planetbeing真名是Yiduo David Wang,來(lái)自俄勒岡的波特蘭,是Evad3rs四人團(tuán)隊(duì)的一員。

人物事件

在iOS6 GM發(fā)布之后,就有不少越獄團(tuán)隊(duì)第一時(shí)間嘗試進(jìn)行越獄。此后iOS6正式版放出,綠毒團(tuán)隊(duì)的領(lǐng)頭人p0sixninja表示,iOS6的防護(hù)級(jí)別高的令人不可思議,其操作系統(tǒng)的嚴(yán)密性超過(guò)了以往任何一款OS。因此越獄的難度是前所未有的。但最后他還是放口:黑客不會(huì)被任何框架所束縛。

小插曲:2012年12月,隨著全球都在“歡度”世界末日的到來(lái)。越獄黑客Dream JB表示他會(huì)在12月22日放出iOS 6的完美越獄工具。但是到了22日那天,大家才發(fā)現(xiàn)他只是和我們開(kāi)了一個(gè)末日玩笑。伴隨著玩笑被戳破,眾phone友們對(duì)ios越獄絕望沮喪之時(shí),planetbeing 在推特表示自已掌握ios6完美越獄的核心,并承諾越獄會(huì)發(fā)布 但不是在2012年。

為了達(dá)成iOS6完美越獄這個(gè)任務(wù),(@pimskeks @planetbeing @pod2g @MuscleNerd)

隨即evasi0n;com官網(wǎng)上線(xiàn)。每一天,整個(gè)團(tuán)隊(duì)都會(huì)向外界公布越獄的最新進(jìn)度:68%、85%、91%……整個(gè)iOS6完美越獄工具的開(kāi)發(fā)過(guò)程僅用了10天時(shí)間。國(guó)外許多媒體都用了這樣一句話(huà)來(lái)形容他們的工作:incredible work(難以置信的工作)。

事后在ios5完美越獄中作出重大貢獻(xiàn)的pod2g表示在此次ios6完美越獄中自己貢獻(xiàn)綿薄之力,主要是planetbeing,承認(rèn)了planetbeing的重大貢獻(xiàn)與能力

他接受了福布斯的采訪(fǎng),為我們講述了整個(gè)iOS6的破解歷程。他指出這次破解iOS6至少了利用了5個(gè)不同的漏洞。據(jù)悉,這次他們使用的手法,比Stuxnet更黑?。⊿tuxnet蠕蟲(chóng)是摧毀伊朗核濃縮離心機(jī)設(shè)施的那個(gè)著名病毒)

破解過(guò)程

planetbeing

最初,Evad3rs使用libimobiledevice來(lái)代替iTunes,連接到電腦上。它與iTunes一樣使用了相同的設(shè)備連接協(xié)議。libimobiledevice又稱(chēng)libiphone,是一個(gè)開(kāi)源包,可以讓Linux支持連接iPhone/iPodTouch等iOS設(shè)備。由于蘋(píng)果官方并不支持Linux系統(tǒng),但是Linux上的高手絕對(duì)不能忍受因?yàn)橐B接iOS設(shè)備就換用操作系統(tǒng)這個(gè)事兒。因此就有人逆向出iOS設(shè)備與Windows/Mac Host接口的通訊協(xié)議,最終成就了橫跨三大桌面平臺(tái)的非官方版本USB接口library。經(jīng)常用Linux系統(tǒng)的人一定對(duì)libimobiledevice不陌生,但是許多Windows和Mac用戶(hù)也許就不知道了。事實(shí)上,它同iTools一樣,都是可以替代iTunes,進(jìn)行iOS設(shè)備管理的工具。因?yàn)樵创a是開(kāi)放的,可以自行編譯,所以對(duì)很多開(kāi)發(fā)者而言可以說(shuō)更為實(shí)用。

感謝Symbolic Link這個(gè)好東西

Symbolic Link相當(dāng)于Win下的"快捷方式"。Unix文件系統(tǒng)提供了一種將不同文件鏈接至同一個(gè)文件的機(jī)制,我們稱(chēng)這種機(jī)制為鏈接。它可以使得單個(gè)程序?qū)ν晃募褂貌煌拿?。這樣的好處是文件系統(tǒng)只存在一個(gè)文件的副本,系統(tǒng)簡(jiǎn)單地通過(guò)在目錄中建立一個(gè)新的登記項(xiàng)來(lái)實(shí)現(xiàn)這種連接。軟連接有自己的inode,并在磁盤(pán)上有一小片空間存放路徑名。因此,軟鏈接能夠跨文件系統(tǒng),也可以和目錄鏈接。另外,軟鏈接可以對(duì)一個(gè)不存在的文件名進(jìn)行鏈接,但直到這個(gè)名字對(duì)應(yīng)的文件被創(chuàng)建后,才能打開(kāi)其鏈接。

如何繞過(guò)Code-signing

planetbeing

在iOS中,還有另一個(gè)安全保障——Code-signing。它能夠阻止流氓應(yīng)用訪(fǎng)問(wèn)Launch。在iOS設(shè)備上運(yùn)行的代碼都需要通過(guò)蘋(píng)果的審核,并附帶上有效的簽名。一般開(kāi)發(fā)者開(kāi)發(fā)的程序,在正式發(fā)布到App Store之前是需要使用蘋(píng)果頒發(fā)的證書(shū)進(jìn)行簽名的之后,再由蘋(píng)果進(jìn)行審核。審核成功之后,蘋(píng)果也會(huì)對(duì)程序進(jìn)行一次簽名。當(dāng)iPhone或者iPod Touch從AppStore下載安裝程序的時(shí)候會(huì)調(diào)用系統(tǒng)進(jìn)程INSTALLD(mobileinstalltion)對(duì)應(yīng)用程序進(jìn)行證書(shū)校驗(yàn)。所以一般需要安裝破解軟件時(shí),都需要把此文件替換成破解版本。

如果你的MobileInstalltion沒(méi)有破解的話(huà),那么在安裝或者運(yùn)行程序的時(shí)候需要對(duì)你的數(shù)字證書(shū)進(jìn)行檢測(cè),如果發(fā)現(xiàn)沒(méi)有簽名或者簽名不對(duì),就會(huì)自動(dòng)kill掉程序。那么在這種情形下,我們可以偽造簽名(當(dāng)然無(wú)法通過(guò)AppStore的審核),騙過(guò)MobileInstalltion ,使得可以正常使用。

Evasi0n構(gòu)建了一枚沒(méi)有代碼的應(yīng)用,當(dāng)用戶(hù)點(diǎn)擊這個(gè)應(yīng)用的時(shí)候,它就會(huì)利用Unix的“Shebang”命令,調(diào)用一個(gè)已經(jīng)簽名的應(yīng)用代碼,通過(guò)Code-signing的審查。此后,它就可以再調(diào)用上文提到的Launch執(zhí)行root級(jí)的命令了。Evad3rs要通過(guò)這種方式,來(lái)對(duì)RFS(root文件系統(tǒng))的只讀權(quán)限使用“remount”命令變?yōu)榭蓪?xiě)。這就是為什么,我們?cè)谠姜z時(shí),要運(yùn)行一次下面這個(gè)LOGO的應(yīng)用。

什么是Shebang

在計(jì)算機(jī)科學(xué)中,Shebang(也稱(chēng)為Hashbang)是一個(gè)由井號(hào)和嘆號(hào)構(gòu)成的字符串行(#!),其出現(xiàn)在文本文件的第一行的前兩個(gè)字符。在文件中存在Shebang的情況下,類(lèi)Unix操作系統(tǒng)的程序載入器會(huì)分析Shebang后的內(nèi)容,將這些內(nèi)容作為解釋器指令,并調(diào)用該指令,并將載有Shebang的文件路徑作為該解釋器的參數(shù)。Shebang這一語(yǔ)法特性由#!開(kāi)頭,即井號(hào)和嘆號(hào)。在開(kāi)頭字符之后,可以有一個(gè)或數(shù)個(gè)空白字符,后接解釋器的絕對(duì)路徑,用于調(diào)用解釋器。在直接調(diào)用腳本時(shí),調(diào)用者會(huì)利用Shebang提供的信息調(diào)用相應(yīng)的解釋器,從而使得腳本文件的調(diào)用方式與普通的可執(zhí)行文件類(lèi)似。

修改launchd.conf文件

RFS已經(jīng)可寫(xiě)了,Evasi0n接下來(lái)就是先修改launchd.conf文件,當(dāng)修改了launch配置文件之后,前面的工作就可以保存下來(lái)了。這樣每次iOS設(shè)備重啟的時(shí)候,就不必再連上USB進(jìn)行越獄操作了。之前,很多iOS系統(tǒng)不完美越獄就是因?yàn)闆](méi)有拿到修改launchd.conf的權(quán)限。造成每次重新開(kāi)機(jī)都要再越獄一次,很麻煩。

破解AMFID防護(hù)機(jī)制

對(duì)于黑客來(lái)說(shuō),沒(méi)有奪取到kernel(內(nèi)核)權(quán)限,都不算作真正把系統(tǒng)征服。在iOS的系統(tǒng)內(nèi)核中,還有一層叫做AMFID(AppleMobile File Integrity Daemon)的防護(hù)機(jī)制,它是用來(lái)監(jiān)測(cè)移動(dòng)文件完整性的守護(hù)進(jìn)程。AMFID會(huì)校驗(yàn)代碼簽名,防止流氓程序運(yùn)行。Evasi0n利用launchd.conf文件,為AMFID加載一個(gè)library,讓每次AMFID在做校驗(yàn)的時(shí)候,都會(huì)返回一個(gè)“approved”的肯定回答。David Wang在福布斯記者的采訪(fǎng)中,并沒(méi)有給出具體的破解方法,只是留下一句話(huà):蘋(píng)果自己應(yīng)該明白這一點(diǎn)。

異常向量,萃取內(nèi)核地址

除了內(nèi)核級(jí)的應(yīng)用簽名之外,蘋(píng)果為了防止黑客在內(nèi)核級(jí)的內(nèi)存中隨意修改,iOS還有最后一道那就是ASLR(Address Space Layout Randomization)隨機(jī)地址空間布局。當(dāng)系統(tǒng)加載時(shí),ASLR都會(huì)將他們隨機(jī)分配到內(nèi)存的不同位置,防止某些內(nèi)容總是存儲(chǔ)在內(nèi)存的特定部分,讓黑客有規(guī)律可尋。

聰明的Evad3rs團(tuán)隊(duì),使用了ARM exception vector(異常處理向量)。exception vector其實(shí)經(jīng)常會(huì)用到,處理器異常、出錯(cuò)時(shí)(其實(shí)不完全是出錯(cuò)),它就會(huì)抓來(lái)這個(gè)vector找相應(yīng)的處理函數(shù)。例如,遇到看不懂的指令,它就會(huì)抓0x4地址指令。也就是“l(fā)dr pc, _undefined_instruction”,接著就會(huì)跳到undefined instruction的函數(shù)去處理。當(dāng)程序出現(xiàn)異常時(shí),ARM異常向量就會(huì)給出崩潰的內(nèi)存地址,黑客拿到足夠多的信息,就可以找到內(nèi)核在內(nèi)存的分布范圍,這樣整個(gè)內(nèi)核的內(nèi)容也就被抓到了。

奪取內(nèi)核控制權(quán)

搞定ASLR之后,Evad3rs利用iOS連接USB的一個(gè)漏洞,把內(nèi)核內(nèi)存的某個(gè)地址傳給一個(gè)應(yīng)用,而應(yīng)用返回來(lái)的內(nèi)容就可以用來(lái)改寫(xiě)這部分內(nèi)存地址。由此Evad3rs就可以修改內(nèi)核任何部分的內(nèi)容了。據(jù)Wang所說(shuō),當(dāng)你拿到了內(nèi)核的權(quán)限時(shí),整個(gè)系統(tǒng)就沒(méi)有任何“安全機(jī)制”能阻止我們了,我們贏了!

2013-2-7 最新更新:

Pod2g在Twitter上稱(chēng),evasi0n網(wǎng)站獨(dú)立IP訪(fǎng)問(wèn)量超過(guò)500萬(wàn),PV突破了4000萬(wàn),而在整個(gè)用戶(hù)群中,中國(guó)用戶(hù)的數(shù)量最大。有近300萬(wàn)的中國(guó)用戶(hù)訪(fǎng)問(wèn)了evasi0n網(wǎng)站,占總訪(fǎng)問(wèn)量的20.12%。美國(guó)用戶(hù)比例為16.88%,將近250萬(wàn)用戶(hù)。其次是法國(guó)、德國(guó)、意大利、英國(guó)、俄羅斯等地區(qū)的用戶(hù)。