|
攻擊者通常尋找遠(yuǎn)程安全漏洞,目的是為了對(duì)你網(wǎng)絡(luò)上的資源搞破壞。BackTrack Linux是一款用于測(cè)試安全的發(fā)行版,可幫助你檢查自己的網(wǎng)絡(luò)和服務(wù)器,查找遠(yuǎn)程安全薄弱環(huán)節(jié)和潛在的安全漏洞。 BackTrack基于Ubuntu,捆綁了滲透測(cè)試和安全審計(jì)所必不可少的各種工具。你其實(shí)沒(méi)必要運(yùn)行BackTrack就可以使用它提供的工具,但是啟動(dòng)BackTrack自生系統(tǒng)光盤(pán)(live CD)讓你可以馬上開(kāi)始入手。 在你開(kāi)始入手之前有必要提醒一下:掃描網(wǎng)絡(luò)可能會(huì)耗用系統(tǒng)和網(wǎng)絡(luò)資源。所以,確保在貴公司內(nèi)部全面協(xié)調(diào)你的掃描工作,并告知管理班子。 利用Nmap探測(cè)網(wǎng)絡(luò)環(huán)境 你最先想試用的工具之一是Nmap,這是一款功能強(qiáng)大的智能化命令行網(wǎng)絡(luò)掃描工具。實(shí)際上,Nmap顯示了開(kāi)啟的端口以及偵聽(tīng)這些端口的服務(wù)方面的一些信息。 Nmap隨帶許多有用的選項(xiàng),這些選項(xiàng)在默認(rèn)情況下已啟用。比如說(shuō),你在探測(cè)網(wǎng)絡(luò)時(shí),端口隨機(jī)化(掃描端口順序隨機(jī)化)可防止簡(jiǎn)單的入侵檢測(cè)和預(yù)防系統(tǒng)檢測(cè)和阻止你。另外一些有用的選項(xiàng)包括: ·--script--在一套腳本的幫助下執(zhí)行掃描。Nmap自身捆綁了根據(jù)用途分類(lèi)的幾套腳本,比如用于檢測(cè)拒絕服務(wù)攻擊(DOS)、蠻力攻擊及其他薄弱環(huán)節(jié)。你可以在Nmap腳本引擎的主頁(yè)(http:///nsedoc/)上找到完整列表。如果你心里沒(méi)底,不知道該用什么腳本,那就選擇默認(rèn)值:與其他一些選項(xiàng)相比,默認(rèn)值更穩(wěn)當(dāng),干擾更小。 ·-p--指定你對(duì)哪些端口有興趣。就UDP和TCP這兩種協(xié)議而言,大多數(shù)合法服務(wù)在1:10000這個(gè)端口范圍里面運(yùn)行。掃描更大范圍的端口需要耗用更多的時(shí)間和資源。 ·-sV--顯示了開(kāi)啟端口的服務(wù)和版本信息。這很有用,可以表明某項(xiàng)服務(wù)是否在偵聽(tīng)非默認(rèn)端口,比如偵聽(tīng)TCP端口8080的Apache;而版本信息可能表明過(guò)時(shí)的軟件和潛在的安全漏洞。如果你借助Nmap檢測(cè)到這類(lèi)過(guò)時(shí)的應(yīng)用程序,就要確保盡快給它們打上補(bǔ)丁。 ·target--把目標(biāo)主機(jī)或網(wǎng)絡(luò)定義為Nmap命令的最后實(shí)參。 把上述選項(xiàng)組合起來(lái),你就能得到這樣的一個(gè)命令: nmap --script=default -p U:1-10000,T:1-10000 -sV 192.168.1.0/24 在這個(gè)例子中,目標(biāo)是一個(gè)內(nèi)部專(zhuān)用網(wǎng)絡(luò)(192.168.1.0/24)。如果你在尋找真正遠(yuǎn)程的安全漏洞,應(yīng)該從本地網(wǎng)絡(luò)外面執(zhí)行掃描。不過(guò),內(nèi)部掃描也很有用,可以顯示沒(méi)必要暴露的服務(wù),這始終是個(gè)安全風(fēng)險(xiǎn)。 這個(gè)實(shí)例的輸出類(lèi)似:
來(lái)自Nmap輸出的上述片段顯示了在192.168.1.102上運(yùn)行的SSH、HTTP和MySQL等服務(wù)的信息。它清楚地顯示了每個(gè)軟件的名稱(chēng)和版本:OpenSSH 6.0p1、Apache httpd 2.2.22和MySQL 5.5.28-1。 限制網(wǎng)絡(luò)暴露程度 針對(duì)每一項(xiàng)暴露的服務(wù),你應(yīng)該確定該服務(wù)是不是果真有必要暴露。若沒(méi)有必要暴露,一個(gè)辦法就是,確保該服務(wù)只偵聽(tīng)本地回送接口(127.0.0.1)。當(dāng)MySQL服務(wù)只服務(wù)本地請(qǐng)求時(shí),這對(duì)該服務(wù)來(lái)說(shuō)是個(gè)好辦法。為此,就MySQL服務(wù)而言,編輯my.cnf文件。當(dāng) MySQL偵聽(tīng)所有接口時(shí), bind-address命令看起來(lái)像這樣:bind-address = 0.0.0.0。想讓它只偵聽(tīng)本地接口,將它更改成bind-address = 127.0.0.1。 此外,MySQL讓你可以明確限制允許用戶(hù)連接的遠(yuǎn)程主機(jī),連接遠(yuǎn)程主機(jī)是MySQL的連接驗(yàn)證過(guò)程的一部分。這樣一種額外的安全限制有助于防范蠻力攻擊,但是通常對(duì)防范遠(yuǎn)程軟件安全漏洞無(wú)濟(jì)于事。 你還可以使用防火墻來(lái)限制對(duì)服務(wù)的訪(fǎng)問(wèn)。如果配置得當(dāng),防火墻可以只允許某些主機(jī)連接至某項(xiàng)特定服務(wù)。MySQL的一個(gè)示例iptables命令看起來(lái)像這樣:iptables -I INPUT -s 192.168.1.1 -p TCP --dport 3306 -j ACCEPT; iptables -I INPUT -p TCP --dport 3306 -j DROP。這個(gè)示例命令只允許從IP地址192.168.1.1進(jìn)行MySQL連接。 作為最后一招,你可以決定為某項(xiàng)服務(wù)更改默認(rèn)端口。這通常適用于必須仍然保持相對(duì)隱藏,但從外面仍可以完全訪(fǎng)問(wèn)的敏感服務(wù)。當(dāng)系統(tǒng)管理員想從任何地方獲得訪(fǎng)問(wèn)權(quán)時(shí),SSH常常是這種情況。你可以把SSH端口更改成通常掃描的范圍(1-10000)之上的一個(gè)端口。比如說(shuō),如果你設(shè)置SSH守護(hù)進(jìn)程,以便偵聽(tīng)端口19999,它不大可能被檢測(cè)出來(lái),但是你仍能夠從任何地方訪(fǎng)問(wèn)該服務(wù),只要你知道這個(gè)端口。想更改SSH端口,編輯文件/etc/ssh /sshd_config 中的命令Port,然后重啟服務(wù)。當(dāng)以后用你的SSH客戶(hù)端進(jìn)行連接時(shí),別忘了指定該端口(Linux外殼中的ssh -p)。 這些是限制遠(yuǎn)程連接、防范外部攻擊的幾個(gè)最簡(jiǎn)單的方法。如果你有興趣想了解更高級(jí)的手段,可以考慮采用端口碰撞(port knocking)這個(gè)值得關(guān)注的理念和辦法。 限制暴露的信息 通過(guò)我們的實(shí)例處理SSH和MySQL服務(wù)后,只有Web服務(wù)仍暴露著。按理說(shuō),外界通過(guò)標(biāo)準(zhǔn)的HTTP TCP端口80,完全可以訪(fǎng)問(wèn)該服務(wù);我們無(wú)法把該服務(wù)隱藏在一個(gè)不同的端口后面,也無(wú)法限制對(duì)該服務(wù)的訪(fǎng)問(wèn)。我們唯一的選擇就是,關(guān)于它的信息盡量少透露。 按照上一個(gè)實(shí)例,Apache版本是Apache httpd 2.2.22((Debian))。這為攻擊者提供了大量的信息:Web服務(wù)器名稱(chēng)、版本、甚至還有操作系統(tǒng)。你可以限制這些信息,只需更改Apache 配置,并且將服務(wù)器權(quán)標(biāo)設(shè)置為ServerTokens ProductOnly。之后,當(dāng)你再次運(yùn)行掃描時(shí),你會(huì)看到版本信息只有Apache httpd。 就算我們使用那個(gè)基本的Nmap實(shí)例,也能獲得除版本之外的更多信息。就Apache而言,Nmap還顯示了OPTIONS報(bào)頭被允許;http方法方面沒(méi)有什么限制 :|_http-methods: No Allow or Public header in OPTIONS response (status code 200)。從安全的角度來(lái)看,將允許的HTTP方法限制在你網(wǎng)站真正需要的幾種方法很重要,因而為攻擊者提供了較少的辦法。 比如說(shuō),TRACE HTTP方法回應(yīng)用戶(hù)輸入。很顯然,這項(xiàng)特性適用于調(diào)試,但是在生產(chǎn)環(huán)境的Web服務(wù)器中不需要。TRACE方法被某些攻擊所采用,因?yàn)榭梢栽试S訪(fǎng)問(wèn)敏感信息,所以它應(yīng)該幾乎總是被禁用。實(shí)際上,大多數(shù)普通的Web服務(wù)器應(yīng)該只支持兩種HTTP方法:GET和POST。為了禁止其余方法,請(qǐng)使用 Apache命令limitexcept,就像這樣:
隱藏服務(wù)器權(quán)標(biāo),并禁止不需要的聯(lián)系方法,這開(kāi)了個(gè)好頭,但還遠(yuǎn)遠(yuǎn)不夠。還需要應(yīng)用防火墻,這種防火墻提供了更全面深入的保護(hù)。幾乎所有可以公共訪(fǎng)問(wèn)的服務(wù)都有這樣一種防火墻解決方案。以Apache為例,請(qǐng)查閱文章《如何借助ModSecurity保護(hù)你的Web服務(wù)器》(http://www./wazi/bid/188075/)。 仔細(xì)檢查Nmap的輸出,對(duì)任何公共暴露的服務(wù)進(jìn)行類(lèi)似的處理。你應(yīng)該能夠挫敗通常的一般性的非針對(duì)性攻擊,這類(lèi)攻擊隨機(jī)地掃描互聯(lián)網(wǎng),查找過(guò)時(shí)或配置不當(dāng)?shù)能浖? 借助Nessus,更深入地分析滲透測(cè)試 Nmap功能強(qiáng)大,讓你可以對(duì)自己的環(huán)境進(jìn)行一番嚴(yán)格的滲透測(cè)試,但是用起來(lái)不如一些更高級(jí)的安全漏洞掃描工具來(lái)得容易,功能也不如它們?nèi)?。比如說(shuō),Nessus是一款商用安全漏洞掃描工具,允許家庭用戶(hù)有限地免費(fèi)使用。想在BackTrack中開(kāi)始使用它,你得先注冊(cè)領(lǐng)取一個(gè)許可證密鑰,按照官方的Nessus on BackTrack指南(http://www./blog/enabling-nessus-on-backtrack-5- the-official-guide)里面描述的幾個(gè)預(yù)備步驟即可。 一旦你在BackTrack中讓Nessus設(shè)置并運(yùn)行起來(lái),可以通過(guò)能夠在https://localhost:8834訪(fǎng)問(wèn)的直觀的Web界面來(lái)控制它。Web界面讓你很容易配置滲透測(cè)試;一旦配置完畢,可以生成界面專(zhuān)業(yè)的報(bào)告。 Nessus可以檢測(cè)所有暴露層面上的50000余個(gè)安全漏洞,這些暴露層面從配置不當(dāng)?shù)姆?wù),到過(guò)時(shí)軟件,不一而足。一旦它檢測(cè)出了安全漏洞,就會(huì)報(bào)告所有的相關(guān)信息;最為重要的是,還會(huì)建議采用什么樣的解決辦法。這為你節(jié)省了時(shí)間,確保你遵守解決問(wèn)題的最佳實(shí)踐,并確保你符合最高的安全標(biāo)準(zhǔn)。 Nessus是企業(yè)用戶(hù)最青睞的滲透測(cè)試解決方案。不過(guò),Nmap依然是網(wǎng)絡(luò)掃描領(lǐng)域的瑞士軍刀,因?yàn)樗鼮樘綔y(cè)網(wǎng)絡(luò)環(huán)境提供了一條最快捷、最簡(jiǎn)單的路徑,又不必束縛于許可證、花費(fèi)大量資金。 無(wú)論你選擇哪個(gè)應(yīng)用程序,最重要的事情就是明白遠(yuǎn)程安全這個(gè)概念。不要暴露沒(méi)必要的服務(wù),也不要暴露沒(méi)有明確要求的任何信息。這應(yīng)該可以確保你不會(huì)吸引可能利用零日漏洞的四處橫行的安全威脅。 |
|
|
來(lái)自: wwwijhyt圖書(shū)館 > 《網(wǎng)絡(luò)》