KeyRaider:迄今最大規模的蘋果賬號洩露事件

wyzsk發表於2020-08-19
作者: 小餅仔 · 2015/09/08 14:08

from:KeyRaider: iOS Malware Steals Over 225,000 Apple Accounts to Create Free App Utopia

摘要


最近,WeipTech(威鋒技術組)分析了一些使用者報告的可疑iOS應用,發現了儲存在某伺服器上超過22,5000個有效的Apple賬戶和密碼。

透過與WeipTech的合作,我們(Paloalto)識別了92個尚未發現過的惡意軟體樣本。為了找出惡意軟體作者的意圖,我們對樣本進行了分析,並將這個惡意軟體家族命名為“KeyRaider”。從結果來看,我們相信這是有史以來因惡意軟體所造成的最大Apple賬號洩露事件。

在中國,KeyRaider 將目標鎖定在已越獄的iOS裝置上,並透過第三方Cydia源傳播。並且這個惡意軟體很可能已經影響到了18個國家的使用者,包括中國、法國、俄羅斯、日本、英國、美國、加拿大、德國、澳大利亞、以色列、義大利、西班牙、新加坡和韓國等。

KeyRaider 透過MobileSubstrate框架來hook系統程式,攔截iTunes通訊來竊取Apple賬戶使用者名稱、密碼和裝置GUID。 它還會竊取iPhoneiPad裝置上的Apple 推送通知服務證照和私鑰、App Store購買憑證,並禁用本地和遠端解鎖功能。

KeyRaider已經成功竊取了超過22,5000個有效的Apple賬戶、輸千個證照、私鑰和購買憑證。惡意軟體將竊取到的資料上傳到了存在漏洞的C2(command and control)伺服器上,因此暴露了使用者資訊。

此次攻擊的目的是為了讓使用者透過使用兩款iOS越獄應用(越獄後透過Cydia源安裝的應用)來免費下載官方App Store的任意應用,且不需要付款就可以在應用內進行購買服務。越獄應用是能夠讓使用者執行在正常裝置上無法進行的操作的軟體包。

這兩款越獄應用會劫持app購買請求,下載存放在C2 伺服器中被竊取的賬戶和購買憑證,然後模擬iTunes協議登陸到Apple伺服器,購買app或其他使用者請求的專案。這兩款越獄應用已經被下載超過20,000次,這意味著大約20,000名使用者正在濫用其他225,000個被竊取的證照。

一些受害者已經報告了他們的Apple賬戶存在非正常app購買記錄和其他一些勒索行為。

Palo Alto NetworksWeipTech 已經提供了能夠檢測KeyRaider 惡意軟體和識別被竊取的證照的服務。在接下來的內容中,我們會提供惡意軟體和攻擊的細節。

發現KeyRaider


此次攻擊最早由i_82發現,他是一名來自揚州大學的學生、WeipTech成員。WeipTech是一個非職業技術團體,由WeiPhone(中國最大的Apple粉絲網站)的使用者組成。之前WeipTech與我們合作,披露了iOSOS X上的惡意軟體AppBuyerWireLurker

從2015-07-01開始,WeipTech 開始調查一些使用者Apple賬戶在未經授權的情況下,購買和安裝了iOS app。再對使用者安裝的越獄應用進行調查後,他們發現了一款越獄應用收集使用者資訊,並上傳到一個未知的網站。他們發現這個網站存在SQL隱碼攻擊,能夠檢視到所有的資料記錄。Figure 1是”top 100”資料庫的截圖

enter image description here

Figure 1. WeipTech 發現在C2伺服器上存在SQL隱碼攻擊(from WeipTech)

在資料庫中,WeipTech 發現了標明為“aid”欄位一共有225,941 條記錄。大約2萬條記錄包含明文使用者名稱密碼GUIDs。剩餘的記錄是加密的。

透過逆向惡意應用,WeipTech 發現了一段程式碼,這段程式碼中使用靜態key為“mischa07”的AES加密演算法對資料進行加密。利用靜態key,我們能夠解密使用者名稱和密碼。經過登陸驗證,他們確信記錄中的資訊都是有效的Apple賬戶。在網站管理員發現、關閉服務之前,WeipTech調查人員下載了大約一半的資料庫記錄。

8月25日,WeipTech在微博釋出漏洞預警,將漏洞提交到WooYun(烏雲漏洞報告平臺),並後續轉交第三方合作機構CNCERT/CC(國家網際網路應急響應中心)處理。

當 Palo Alto Networks研究人員在分析WeipTech 報告的惡意軟體時,我們發現它沒有包含惡意程式碼來竊取密碼並上傳資料到C2 伺服器。然而,透過WeipTech 提供的其他資訊,我們發現存在其他的惡意越獄應用,存在竊取使用者資訊並上傳到相同的伺服器上。

我們將這個新的iOS惡意軟體家族命名為 “KeyRaider” ,因為它會竊取密碼、私鑰和證照。

KeyRaider 來源


據我們瞭解,KeyRaider僅透過 Weiphone’Cydia 倉庫在越獄iOS裝置上來進行傳播。不像其他的Cydia源,如BigBossModMyiWeiPhone為註冊使用者提供私有倉庫,使用者可以直接上傳他們的越獄應用app,並與其他人進行共享

在2015年,一個名為“mischa07”的使用者,上傳了至少15款KeyRaider 應用到它的私人倉庫(http://apt.so/index.php?r=cydiaTa/index&user_id=8676626),如Figure 2. 此外,他的名字也被作為加解密key,硬編碼在惡意軟體中,如Figure 3。我們高度懷疑此人為KeyRaider’s 的開發者。

enter image description here

Figure 2. mischa07’s 個人Cydia 倉庫

enter image description here

Figure 3. “mischa07″ 作為加密key被硬編碼在惡意軟中

根據Weiphone的網頁顯示,一些由mischa07 上傳的越獄應用已經被下載過上萬次,如Figure 4。這些app和工具提供如遊戲作弊、系統調優和app廣告過濾等功能。

mischa07的倉庫中,有兩款特別的應用

iappstore (Figure 5): 能夠讓使用者從Apple官方應用商店免費下載需要付費的應用

iappinbuy:能夠讓使用者在一些官方應用商店下載的app中免費購買付費道具或服務

Mischa07也在 Weiphone 社群中對這兩款越獄應用進行推廣,如Figure 6,但一些使用者並不相信這些所謂神奇的功能。然而,根據Weiphone’s 網站上顯示,iappinbuy 仍人有20,199次下載,如Figure 4,而iappstore 有62次下載(僅對最新版進行統計)

enter image description here

Figure 4. 一個惡意樣本被下載超過30,000 次

enter image description here

Figure 5.  iappstore 惡意軟體能夠直接從App Store安裝需要付費的 apps

enter image description here

Figure 6. 作者推廣它的iappstore 應用

另一名以“氵刀八木” 或 “bamu”.的身份的Weiphone 使用者也在傳播 KeyRaider  惡意軟體。因為Bamu的個人倉庫(http://apt.so/aptso)提供許許多有用的應用,這使得它在社群中非常受歡迎。在這次攻擊被揭露之後,bamu已經刪除了倉庫中他所上傳的所有惡意軟體,並關閉了它。在Weiphone的幫助下,我們對Bamu上傳的所有應用進行了檢查,其中77款應用中都包含了KeyRaider 惡意軟體。與mischa07 開發不同版本的惡意軟體不同,bamu是透過對已存在app(如iFile, iCleanProavfun)進行重新打包,並在其中加入惡意程式碼。

KeyRaider 將竊取到的使用者密碼上傳到C2 伺服器時, HTTP URL中會包含一個名為 “flag”或”from”的引數,用來追蹤受感染的來源。在mischa07的程式碼中,這個引數的值通常為app應用的名字,如’letv’。而在bamu的應用中,則是“bamu”。從洩露的資料的統計得出,超過67%的被竊取資訊來至與bamu.

因為bamu 僅僅是一個分銷者(distributor),後面的行為分析主要集中在來至mischa07的應用樣本

竊取使用者資料


KeyRaider收集三種使用者資料,透過HTTP請求上傳到C2伺服器,這裡發現了兩個不同的C2伺服器

•<top100.gotoip4.com>
•<www.wushidou.cn>

在分析的過程中,這些域名都被解析到了113.10.174.167這個IP地址。在C2伺服器上的 “top100” 資料庫裡有三張表 “aid”, “cert” 和 “other”。 在server端,KeyRaider 利用4個PHP指令碼來存取資料庫,aid.php, cert.php, other.phpdata.php 透過分析程式碼和WeipTech下載的洩露資料,我們發現aid表儲存225,941條記錄,包含Apple ID的使用者名稱、密碼、裝置GUIDCert表儲存了5,841條受感染裝置的證照和私鑰,而這些資訊用於Apple推送訊息通知服務,如Figure 7。最後other表儲存了超過3,000條裝置的GUID和來至app store serverapp購買憑證

enter image description here

Figure 7. 洩露cert表中的一條記錄

我們對洩露的Apple ID郵箱地址進行了整理,有超過一半的使用者使用QQ郵箱,下是排名前十的賬戶郵箱地址域名(其中6個主要由中國使用者在使用)

[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]

然而,我們也發現一些屬於其他國家或地區的郵箱地址域名,這包括

•tw: Taiwan
•fr: France
•ru: Russia
•jp: Japan
•uk: United Kingdom
•ca: Canada
•de: Germany
•au: Australia
•us: United States
•cz: Czech Republic
•il: Israel
•it: Italy
•nl: Netherlands
•es: Spain
•vn: Vietnam
•pl: Poland
•sg: Singapore
•kr: South Korea

惡意行為


KeyRaider惡意程式碼存在於 Mach-O 動態庫中,作為MobileSubstrate 框架的外掛。透過MobileSubstrate API,惡意軟體能夠hook系統程式或其他iOS apps的任意API

之前許多iOS惡意軟體家族也同樣濫用MobileSubstrate。比如由Reddit使用者發現,SektionEins  分析的the Unflod (aka SSLCreds or Unflod Baby Panda) ,會攔截SSL加密通訊,竊取Apple賬戶密碼。去年發現的AppBuler也利用了同樣的技術來竊取密碼、在app store中購買appKeyRaider 進一步利用了次技術。KeyRaider 主要實現了一下惡意行為

●竊取Apple賬戶(使用者名稱、密碼)和裝置GUID
●竊取被用於Apple推送通知服務的證照和私鑰
●阻住受感染的裝置透過密碼和iCloud 服務來解鎖裝置

注:MobileSubstrate是一個框架,允許第三方的開發者在系統的方法裡打一些執行時補丁以擴充套件一些方法,類似於OS X上的Application Enhancer。所以iOS系統越獄環境下安裝絕大部分外掛,必須首先安裝MobileSubstrate

竊取Apple賬戶資料


大部分KeyRaider 樣本hook itunesstored程式的 SSLReadSSLWrite函式(Figure 8). itunesstored 是系統守護程式,負責與app store進行通訊(使用 iTunes 協議)。

enter image description here

Figure 8. KeyRaider hooks SSLRead and SSLWrite in itunesstored

App Store 客戶端像使用者請求輸入Apple賬戶登入時,登入資訊會透過SSL加密會話傳送到App Store server。在SSLwrite的替換函式中,KeyRaider 會尋找此類會話,透過特定的pattern在傳送的資料中搜尋Apple 賬戶的使用者名稱、密碼和裝置 GUID(Figure 9). 接下來,在SSLRead替換函式中,這些憑證會透過AES加密演算法,使用靜態的key “mischa07”來加密,然後傳送到KeyRaider  C2 伺服器(Figure 10).

enter image description here

Figure 9. Searching for Apple account information in SSL data

enter image description here

Figure 10. Uploading stolen credentials to the C2 server

除了hook SSLReadSSLWriteKeyRaider 需要呼叫MGCopyAnswer(“UniqueDeviceID”) 來讀取裝置的GUID

竊取證照和私鑰


在一些樣本中,KeyRaider 也會hook apsd守護程式 – 負責iOS系統的Apple推送通知服務。它hook 定義在Security 框架的SecItemCopyMatching 函式。這個API用於搜尋匹配給定查詢的 keychain items

當搜尋查詢有值為“APSClientIdentity”的label ,KeyRaider 會執行原來SecItemCopyMatching函式,然後呼叫SecIdentityCopyCertificateSecIdentityCopyPrivateKey,從原本函式執行返回結果中來複製證照和私鑰 (Figure 11). 之後,這些資訊和GUID一起被髮送到C2伺服器上(Figure 12). 在iOS keychain中,被標記APSClientIdentity 的key用於推送通知。透過這些資訊,攻擊者可以在系統上偽造推送通知。

enter image description here

Figure 11. Copy push service’s certificate and private key

enter image description here

Figure 12. Upload certificate and key

鎖定裝置


KeyRaider  hook SecItemCopyMatching,除了攔截通知證照,它也會將當前查詢的label和特定的字串 “com.Apple.lockdown.identity.activation”進行比較。如果匹配,KeyRaider 會將查詢結果的值設定為0. (Figure 13)

再發布文章之前,網上還沒有關於com.apple.lockdown.identity.activation 查詢的公開文件。我們相信這個查詢是用於解鎖裝置的。透過將返回值設定為0,KeyRaider 會阻止使用者解鎖他們的裝置,即使透過手機輸入了正確的解鎖碼或透過iCloud服務遠端解鎖裝置。

在我們目前發現的所有樣本資訊中,這段程式碼是獨立的,沒有被其它程式碼呼叫。它僅僅是被實現,然後被匯出為一個函式。然而,我們已經有證據表明,利用這個函式來進行實際攻擊已經發生了。

免費的APPS


一些KeyRaider 樣本實現了從C2伺服器下載購買憑證和Apple賬戶的功能。但這個功能僅僅在 iappstoreiappinbuy 兩個應用中被真正使用過。 根據使用者的描述,iappstore 能夠免費從app store中下載任意應用。讓我們來看一下他們是如何實現的.

這個app hook SSLWrite 兩次,第一次用於竊取密碼。第二次hook 會嘗試判斷當前的HTTP請求是否是“POST /WebObjects/MZBuy.woa/wa/buyProduct”。以此來判斷當前會話是否是使用iTunes協議進行購買。(Figure 14).

enter image description here

Figure 14. Hooking app purchase session

如果請求是購買行為,SSLWrite會被呼叫,hooking程式碼會嘗試在傳送的資料(用於獲取當前app的付款資訊)中匹配一些關鍵詞,如“salableAdamId”, “appExtVrsId”, “vid”, “price”, “guid”, “installedSoftwareRating” and “pricingParameters” 。如果這個app是需要付費的,fire()函式會被呼叫。

Fire 函式會呼叫readAid()函式,readAid函式會讀取位於/var/mobile/Documents/iappstore_aid.log的本地檔案。這個檔案包含了使用者賬戶的使用者名稱、密碼、裝置GUID,相關的iTunes會話tokencookie電話號碼運營商作業系統資訊iTunes CDN 伺服器號。然後解析資料,建立一個賬戶物件。

如果檔案不存在,它會呼叫 readAidUrl()readAidUrl會從KeyRaider C2伺服器下載新的賬戶資訊,然後建立一個賬戶物件。(Figure 15). Figure 16 展示了一個從伺服器下載的賬戶。

enter image description here

Figure 15. Downloads apple account from C2 server

enter image description here

Figure 16. Stolen apple account was downloaded from C2 server

建立賬戶物件之後,fire()會生成plist格式的字串,裡面包含賬戶資訊,接著呼叫 login()sendBuy().

Login()函式會建立一個連線到以下URL的HTTP連線,URL中會帶上plist字串和一個類似Appstore客戶端使用者代理的值

•p*-buy.itunes.Apple.com/WebObjects/MZFinance.woa/wa/authenticate

這會造成使用遠端Apple賬戶來登陸當前的iTunes會話(Figure 17)

enter image description here

Figure 17. Emulating login protocol

發起Login請求之後,login()會解析返回的結果,獲取cookietoken和其他資訊,然後將這些資訊和賬戶密碼儲存到本地iappstore_aid.log檔案中,供後續購買時使用。如果因為密碼錯誤導致登陸失敗,它會再一次呼叫readAidUrl() ,從C2 server中獲取一個不同的Apple賬戶。

sendBuy()函式的工作與login()函式類似,但請求了另一個URL,用於app購買驗證

•p*-buy.itunes.apple.com/WebObjects/MZBuy.woa/wa/buyProduct

透過這個過程,iappstore 應用可以使用竊取到的賬戶成功購買任意app 除了這些操作之外,在兩個獨立的函式verifySF()verifySF2() 中,KeyRaider 也會嘗試獲取Apple賬戶密碼找回問題和答案。這個函式在我們的分析樣本中還未完成。

iappinpay的功能和iappstore類似。唯一的不同是購買介面改變了。(Figure 18)。在C2伺服器資料庫中也儲存了一些之前在app內購買( In-App-Purchase)的憑證,作者似乎計劃實現重用這些憑證的功能,如將這些憑證傳送到Apple server,以證明他們之前已經購買過此服務。

電話勒索


除了竊取Apple賬戶來購買app,KeyRaider 擁有內建的鎖定功能來進行勒索。

之前的一些iPhone勒索軟體工具基於透過iCloud服務來遠端控制iOS裝置。這類攻擊可以透過重置賬號密碼來解決。而對於KeyRaider ,它在本地禁用了所有解鎖操作,及時是輸入的正確的解鎖碼或密碼。此外,它也能使用竊取的證照和私鑰來傳送通知訊息來索要贖金,而推送通知訊息不需要經過Apple推送伺服器。因此,之前使用的解決方法不再有效。

下面是一名受害者報告的被勒索截圖

enter image description here

Figure 19. Ransom message on locked iPhone

其他潛在的風險


下面是一些攻擊者利用你洩露的使用者名稱、密碼等資訊能夠做的事情

應用推廣:在受害者手機中安裝指定的app,來提升App Store rankings

Cash Back:使用的賬戶來購買付費應用

垃圾郵件:使用iMessage來傳送垃圾資訊

勒索:利用賬戶密碼,竊取隱私資訊來進行勒索 等等

保護和預防


需要注意,KeyRaider 僅影響越獄的iOS裝置,未越獄裝置不受影響。 WeipTech上線了查詢服務 <http://www.weiptech.org/ >,你可以輸入自己的Apple賬戶郵箱,瞭解它是否被洩露。Palo Alto Networks 在8月26日將竊取的賬戶資訊反饋給了Apple。還需要注意的是,因為攻擊者發現並修復了其接收資料伺服器的漏洞,WeipTech 只能還原約一半的被竊取資料。因此,從不受信任的Cydia 源安裝過這類越獄應用的使用者可能都會受影響。

使用者可以透過下列方法來判斷自己的iOS裝置是否受影響

1.透過Cydia安裝openssh
2.透過SSH連線到device
3.到 /Library/MobileSubstrate/DynamicLibraries/ 目錄,對目錄下的所有檔案grep以下字串

•wushidou
•gotoip4
•bamu
•getHanzi

如果任何dylib 檔案包含任意一個字串,刪除這些檔案和同名的plist檔案,然後重新啟動

除此之外,我們也建議使用者在移除惡意軟體之後,修改Apple賬戶的密碼,並開啟雙因素認證功能。https://support.apple.com/en-us/HT204152 最後,如果你想避免遭遇 KeyRaider 以及類似惡意軟體,請儘量避免越獄。Cydia 源不會對上傳應用進行嚴格的安全檢查,透過它安裝應用存在風險。

樣本資訊


9ae5549fdd90142985c3ae7a7e983d4fcb2b797f CertPlugin.dylib
bb56acf8b48900f62eb4e4380dcf7f5acfbdf80d MPPlugin.dylib
5c7c83ab04858890d74d96cd1f353e24dec3ba66 iappinbuy.dylib
717373f57ff4398316cce593af11bd45c55c9b91 iappstore.dylib
8886d72b087017b0cdca2f18b0005b6cb302e83d 9catbbs.GamePlugin_6.1-9.deb
4a154eabd5a5bd6ad0203eea6ed68b31e25811d7 9catbbs.MPPlugin_1.3.deb
e0576cd9831f1c6495408471fcacb1b54597ac24 9catbbs.iappinbuy_1.0.deb
af5d7ffe0d1561f77e979c189f22e11a33c7a407 9catbbs.iappstore_4.0.deb
a05b9af5f4c40129575cce321cd4b0435f89fba8 9catbbs.ibackground_3.2.deb
1cba9fe852b05c4843922c123c06117191958e1d repo.sunbelife.batterylife_1.4.1.deb

致謝

特別感謝來自WeipTechi_82向我們共享資料、報告以及其它有用的資訊。 感謝來自WeipTechCDSQ向我們提供樣本,感謝來自WooYunXsserFengGou的資訊共享。 感謝Palo Alto NetworksSereyvathana TyZhaoyan XuRongbo Shao幾位對惡意軟體進行的分析,感謝Palo Alto NetworksRyan Olson對本報告的審校。

本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章