2014年7月16日,由360承辦的2014亞洲知名安全技術峰會SyScan360強勢登陸北京。來自Coseinc的OSX領域的專業研究員Pedro Vilaca介紹了如何逆向HacKing Team的OS X商業間諜軟件Crisis。Pedro Vilaca喜歡rootkits,破解軟件保護及挑戰HacKing Team。最近轉向白帽并試圖為OS X打造最好的企業終端安全解決方案。
針對目前的OS X攻擊樣本我們可以了解到攻擊的這樣一些特性與能力:其可以監控麥克風、監控攝像頭、實現屏幕截圖、記錄鍵盤和鼠標的操作、保存Skype/MSN記錄以及監控瀏覽器等等。它可以通過Exploit,以郵件形式將它發出來,然后進入到dropper,最后把它放到后門模塊。
什么叫dropper?一般通過溢出Flash,Word等釋放代碼,有些發送郵件或者通過其他社會工程學方式,讓用戶安裝,但它本身并不大,小于1MB。dropper試圖隱藏真實的程序入口,使用虛假的main()函數,如果是有經驗的人可以通過檢查Mach-0頭部數據輕易發現。
針對dropper,Pedro Vilaca給出了很專業的建議:不需要Mmap的庫,因為它們每個流程的進程都有一個mmap;利用dyld共享緩存特性;重要的庫是被緩存的,可以直接從內存讀取它們,但是還是需要尋找部分dyld函數。
在本屆會議現場,Pedro Vilaca詳細介紹了OS X商業間諜軟件Crisis的核心——后門模塊。后門模塊主要負責與C&C通信、注入到目標程序中、記錄與Rootkit控制等工作。
此外,因發現最近市面上最近檢測到的樣本中將后門與MPRESS打包來繞過逆向工程,他還探討了打包,如何解包,如何構建自動解包器,以及調試技巧。
特別提醒,關于解壓問題,大家需要注意以下幾個方面:
在轉儲之前頭部數據必須解析;
使用文件大小域和偏移域轉儲正確的數據大小到磁盤;沒有其它需要修復的內容;
_DATA段是0x1000字節,在轉儲映像里太大了;
二進制轉儲會導致崩潰,因為_OBJC和_LINKEDIT指向了磁盤上的虛假數據;
并不是所有的樣本都可以轉儲;內存中的大小和文件中的大小可能會不一致;
一個簡單的轉儲可能導致文件偏移指向錯誤的數據。
另外,針對調試技巧,Pedro Vilaca提供了兩種反調試方法,一是對于后門模塊來說,利用Sysctl反調試方法,可以檢測一個線程是否有調試器存在,若存在則退出,這個很容易繞過線程,而且會移除掉對新線程的函數調用。二是,如果你想調試一個被隔離的后門模塊,你需要在配置檢查出patch。
最后,Pedro Vilaca為大家介紹了加密用法,配置和可用的功能,以及大部分功能的實現方法,也就是捆綁注入,并回顧了C&C communications及內核rootkit。