Linux已成為全球*流行的Web服務(wù)器平臺(tái),因此每位系統(tǒng)管理員(當(dāng)然也包括每名黑客)都將Linux安全措施作為優(yōu)先考慮事項(xiàng)。Linux一直充當(dāng)安全領(lǐng)域的技術(shù)和發(fā)展溫床,包括諸多攻防工具,如knockd、netcat、Nmap和Nping等;了解黑客如何使用這些工具已逐步成為保護(hù)系統(tǒng)安全的重要部分。我們不僅要學(xué)會(huì)發(fā)現(xiàn)黑客,還要預(yù)測(cè)和阻止黑客的一舉一動(dòng)。
Chris Binnie是一名資深Linux專家,曾為極注重安全的銀行和政府部門部署服務(wù)器。Chris憑借自己深厚的探測(cè)、預(yù)防和防御技術(shù)功底,在多個(gè)不同安全領(lǐng)域攻堅(jiān)克難,并在每個(gè)步驟提出諸多真知灼見(jiàn)!禠inux服務(wù)器安全攻防 呈現(xiàn)的技術(shù)適用于多個(gè)Linux發(fā)行版本(包括Debian、Red Hat衍生產(chǎn)品以及其他Unix類型系統(tǒng)),并給出將軟件包與操作系統(tǒng)和其他包完美集成的專家級(jí)建議。Linux因基礎(chǔ)的穩(wěn)定性贏得美譽(yù),占據(jù)了Internet公共服務(wù)器70%的市場(chǎng)份額;本書主要介紹確保Linux安全所需的洞察力和技能集。
利用Linux的穩(wěn)定性和安全功能來(lái)保護(hù)系統(tǒng)安全
● 在不中斷服務(wù)的情況下隱藏生產(chǎn)環(huán)境中的服務(wù)器
● 為文件應(yīng)用數(shù)字指紋,從而手動(dòng)或自動(dòng)監(jiān)視文件系統(tǒng)
● 在系統(tǒng)防御過(guò)程中利用黑客常用的工具反制黑客
● 了解黑客發(fā)現(xiàn)系統(tǒng)弱點(diǎn)的方式
● 探討標(biāo)準(zhǔn)Nmap腳本的各種用法
● 抵御惡意軟件并擊退DDoS攻擊
● 了解網(wǎng)站如何被輕易攻陷,密碼如何被輕易破解
通過(guò)將不同主題分解到不同章節(jié)中,便于讀者進(jìn)行參考,同時(shí)可以在未來(lái)的學(xué)習(xí)中返回到這些章節(jié),更詳細(xì)地學(xué)習(xí)有關(guān)內(nèi)容。各章的內(nèi)容如下所示:第1章:隱身斗篷。第2章:對(duì)文件應(yīng)用數(shù)字指紋。第3章:21世紀(jì)的netcat。第4章:拒絕服務(wù)。第5章:Nping。第6章:日志探測(cè)。第7章:Nmap功能強(qiáng)大的NSE第8章:惡意軟件檢測(cè)。第9章:使用Hashcat進(jìn)行密碼破解。第10章:SQL注入攻擊。
前 言
請(qǐng)思考一下,即使是高度公開的網(wǎng)絡(luò)攻擊,實(shí)施起來(lái)可能也是非常簡(jiǎn)單的。對(duì)一個(gè)系統(tǒng)或者網(wǎng)絡(luò)發(fā)動(dòng)攻擊所包括的步驟可能會(huì)非常復(fù)雜,也可能會(huì)出奇簡(jiǎn)單。這取決于一個(gè)系統(tǒng)是否因?yàn)槭褂昧艘恍┍娝苤穆┒窜浖蛊涮幱诓话踩臓顟B(tài)。一名缺乏經(jīng)驗(yàn)的黑客的常用攻擊手段可能只是永無(wú)休止地對(duì)端口進(jìn)行自動(dòng)化掃描,然后打開一個(gè)連接并及時(shí)關(guān)閉,或者不斷搜索Banner信息,從而弄清楚在端口后面監(jiān)聽(tīng)的服務(wù)的版本號(hào)。如果發(fā)現(xiàn)的任何版本號(hào)與漏洞數(shù)據(jù)庫(kù)中所列出的版本號(hào)相匹配,那么黑客就確定了一個(gè)新的攻擊目標(biāo)。從這一點(diǎn)上講,由于該攻擊方法幾乎完全是自動(dòng)完成的,因此你可能會(huì)認(rèn)為這無(wú)非是計(jì)算機(jī)攻擊計(jì)算機(jī)而已。相反,經(jīng)驗(yàn)豐富的黑客會(huì)使用各種不同的方法獲取或破壞對(duì)某一系統(tǒng)或者網(wǎng)絡(luò)的訪問(wèn)。他們不僅經(jīng)驗(yàn)豐富且才智過(guò)人,狡猾難防,而且富有創(chuàng)新性、耐心。他們通常充分利用社會(huì)工程學(xué),構(gòu)建自己的硬件并完成各種攻擊手法。在攻擊過(guò)程中,黑客們根據(jù)防御者的情況調(diào)整手法,此外攻擊還會(huì)不斷演變(有時(shí)甚至是快速演變)。大多數(shù)攻擊所產(chǎn)生的影響取決于是否進(jìn)行了精心準(zhǔn)備;在最開始的偵測(cè)過(guò)程中,有相當(dāng)數(shù)量的攻擊途徑會(huì)被偵測(cè)到。確保在線服務(wù)的安全有點(diǎn)類似于緣木求魚,雖然我很不愿意這么說(shuō),但事實(shí)是,不管對(duì)一個(gè)服務(wù)或者系統(tǒng)如何進(jìn)行安全保護(hù),總會(huì)有一種方法違反或者破壞這種保護(hù)。因此可以大膽地做這樣一種聲明,請(qǐng)記住,即使一個(gè)系統(tǒng)或者網(wǎng)絡(luò)當(dāng)前不易遭受攻擊,但在未來(lái)某一時(shí)刻也極可能會(huì)遭到攻擊。這也就意味著,除非破壞服務(wù)器或者網(wǎng)絡(luò)設(shè)備的電源,否則打開任何電子設(shè)備都意味著打開了一條黑客可以利用的攻擊途徑。事實(shí)是,技術(shù)專業(yè)人員長(zhǎng)期面臨著這種情況。因此,在確定網(wǎng)絡(luò)安全所采用的方法時(shí),需要在黑客可在多大程度上利用在線系統(tǒng)和網(wǎng)絡(luò)的漏洞,以及用來(lái)保護(hù)系統(tǒng)和網(wǎng)絡(luò)安全所花費(fèi)的預(yù)算之間進(jìn)行權(quán)衡。此外,還可以嘗試降低單個(gè)服務(wù)器的風(fēng)險(xiǎn),例如,將電子郵件服務(wù)器與Web服務(wù)器分開。如果一個(gè)計(jì)算機(jī)集群被黑客攻破,那么理想狀態(tài)下其他集群則不應(yīng)該受到影響(前提是這些計(jì)算機(jī)集群在后臺(tái)使用了不同的防火墻并且都擁有一個(gè)替代的操作系統(tǒng))。但也不要過(guò)于恐慌,值得慶幸的是,目前經(jīng)驗(yàn)極其豐富的攻擊者實(shí)際上并不是很多(對(duì)于這些黑客高手,任何防御措施或多或少都會(huì)失敗,有時(shí)甚至只需要數(shù)分鐘時(shí)間就可能攻破)。然而,隨著Internet的逐步發(fā)展,熟練的攻擊者可以利用其他被攻破的系統(tǒng)和服務(wù)的功能進(jìn)行攻擊,從而對(duì)那些不知情的受害者產(chǎn)生令其頭痛的問(wèn)題。此外,攻擊者發(fā)動(dòng)攻擊的動(dòng)機(jī)也在發(fā)生變化,有時(shí)甚至是不可預(yù)測(cè)的。這些動(dòng)機(jī)可能包括從黑客社區(qū)獲取相關(guān)的榮譽(yù),想證明自己比受害者高出一籌,為崇拜自己的新手進(jìn)行一次訓(xùn)練演習(xí),或者只是想獲取經(jīng)濟(jì)利益。另外,根據(jù)最常見(jiàn)的統(tǒng)計(jì),也不要忘記那些單純尋求刺激的人。如果你的服務(wù)容易引起某些類型的不必要的注意,比如Web應(yīng)用程序持續(xù)被某些用來(lái)查找安全漏洞的探頭所探測(cè),那么常識(shí)告訴我們,你主要關(guān)注的是讓開發(fā)人員修補(bǔ)應(yīng)用程序的安全漏洞。相反,如果正在提供一個(gè)E-Mail服務(wù),就需要絕對(duì)確保用來(lái)在集群中所有郵件服務(wù)器之間讀取郵件信息的軟件保持最新,并進(jìn)行經(jīng)常和及時(shí)的修補(bǔ)。只要注意到了最明顯的漏洞,就可以大大減少可能暴露給中等水平攻擊者的攻擊面,同時(shí)也能減少他們獲取一個(gè)立足點(diǎn)進(jìn)而攻擊其他系統(tǒng)的概率。一旦確保了主要的攻擊途徑基本是安全的,就可以集中精力解決那些不怎么明顯的安全漏洞。以下幾個(gè)簡(jiǎn)單問(wèn)題有助于將注意力集中在系統(tǒng)或者網(wǎng)絡(luò)安全上。第一個(gè)問(wèn)題是你正在嘗試保護(hù)什么內(nèi)容?例如,隱藏在數(shù)據(jù)庫(kù)深處的敏感、機(jī)密信息,訪問(wèn)這些數(shù)據(jù)通常需要通過(guò)多個(gè)防火墻以及堡壘主機(jī)(bastion hosts),或者正在保護(hù)一個(gè)需要全天候?yàn)橛脩籼峁┓⻊?wù)的在線服務(wù)。該問(wèn)題非常重要,因?yàn)樗苯佑绊懙郊訌?qiáng)防御的手段以及防御策略的選擇。例如,你可能愿意每月為網(wǎng)絡(luò)流量清洗服務(wù)(network-traffic-cleaning service)支付高昂的費(fèi)用,從而免受拒絕服務(wù)(Denial-of-Service)攻擊,而不會(huì)愿意購(gòu)買多個(gè)價(jià)格昂貴且高端的硬件防火墻來(lái)進(jìn)行保護(hù)。第二個(gè)問(wèn)題是如何遏制一個(gè)安全漏洞?如果網(wǎng)絡(luò)上的一臺(tái)服務(wù)器或者設(shè)備被攻破了,那么是否自動(dòng)意味著其他主機(jī)也將遭遇相同的厄運(yùn)?如果是,則無(wú)疑表明你的安全策略存在需要解決的嚴(yán)重問(wèn)題。第三個(gè)問(wèn)題是如何從安全漏洞中恢復(fù)?你可能關(guān)心的是一旦攻擊者發(fā)現(xiàn)了冗余信息的工作原理會(huì)發(fā)生什么事情,以及在什么階段故障轉(zhuǎn)移服務(wù)(failover service)會(huì)被激活。如果在完全不知道攻擊者是如何攻破安全措施的情況下,只是簡(jiǎn)單地重新構(gòu)建主服務(wù)器或者盲目地恢復(fù)服務(wù),那將是非常困難的。此時(shí)你是否可以使用替代供應(yīng)商的設(shè)備或者軟件快速恢復(fù)服務(wù)呢?如果可以,則可以大大減少相同的攻擊再次攻陷系統(tǒng)的可能性,并且可以在弄清楚攻擊者入侵的方式之后恢復(fù)一部分(甚至全部)服務(wù)。本書的組織結(jié)構(gòu)可按任何順序閱讀本書包含的所有章節(jié),并且這些章節(jié)匯聚了多年來(lái)作者作為一名Internet用戶所感興趣的一些安全主題。這些主題包括過(guò)去、現(xiàn)在以及未來(lái)攻擊的相關(guān)理論,對(duì)不同在線攻擊的防御,以及授權(quán)讀者自己進(jìn)行惡意攻擊的方法(其目的是幫助讀者學(xué)習(xí)如何防御此類攻擊)。通過(guò)將不同主題分解到不同章節(jié)中,便于讀者進(jìn)行參考,同時(shí)可以在未來(lái)的學(xué)習(xí)中返回到這些章節(jié),更詳細(xì)地學(xué)習(xí)有關(guān)內(nèi)容。各章的內(nèi)容如下所示:第1章:隱身斗篷。如果攻擊者無(wú)法看到你的服務(wù)器,并且沒(méi)有意識(shí)到它們的存在,就不會(huì)有任何的攻擊途徑會(huì)被利用。該章主要討論和介紹如何在產(chǎn)品中持續(xù)使用服務(wù)而又不會(huì)引起攻擊者不懷好意的關(guān)注。第2章:對(duì)文件應(yīng)用數(shù)字指紋?墒褂枚喾N方法來(lái)保證服務(wù)器文件系統(tǒng)的完整性,從而確保攻擊者無(wú)法進(jìn)行訪問(wèn)。在該章,主要介紹一種手動(dòng)方法以及一個(gè)用來(lái)檢查黑客程序的自動(dòng)化工具。第3章:21世紀(jì)的netcat。多年后,netcat的最新版本已成為眾多黑客所選用的工具(這得益于它所提供的眾多高級(jí)功能)。在該章,將學(xué)習(xí)如何識(shí)別黑客是否使用此工具攻擊服務(wù)器,以及學(xué)習(xí)如何利用這些業(yè)界領(lǐng)先的功能。第4章:拒絕服務(wù)。只有世界上一些最大型的Internet基礎(chǔ)設(shè)施提供商可以經(jīng)受得起成熟的、高容量的分布式拒絕服務(wù)(Distributed Denial of Service,DDoS)攻擊所帶來(lái)的影響。在該章,將詳細(xì)討論該主題,并且會(huì)就一個(gè)國(guó)家因?yàn)榇祟惞舳齻(gè)星期失去Internet連接這一事件展開評(píng)論。第5章:Nping。對(duì)于黑客攻擊來(lái)說(shuō),知道某一主機(jī)正在運(yùn)行哪些服務(wù)只是成功了一半。功能強(qiáng)大的Nmap安全工具的擴(kuò)展功能允許對(duì)任何主機(jī)進(jìn)行檢查,并生成帶有獨(dú)特有效載荷的自定義數(shù)據(jù)包。第6章:日志探測(cè)。雖然某些針對(duì)服務(wù)器執(zhí)行的探測(cè)可能并沒(méi)有太大的危害,但了解這些探測(cè)的工作原理無(wú)疑會(huì)更有利于進(jìn)一步保護(hù)服務(wù)器的安全。在該章,將介紹攻擊者探測(cè)服務(wù)器漏洞點(diǎn)所涉及的相關(guān)內(nèi)容。第7章:Nmap功能強(qiáng)大的NSE。許多用戶都用過(guò)Nmap來(lái)完成簡(jiǎn)單的端口掃描,但很少有人知道該安全工具還包括了攻擊遠(yuǎn)程計(jì)算機(jī)的功能。在該章,僅討論默認(rèn)情況下Nmap所附帶的眾多腳本中可以完成的部分攻擊行為。第8章:惡意軟件檢測(cè)。多年來(lái)一直困擾Windows系統(tǒng)的完全無(wú)聲的威脅主要來(lái)自于以非法形式安裝的軟件。惡意軟件給系統(tǒng)帶來(lái)的危害是多方面的,從經(jīng)常彈出令人討厭的彈出式窗口,到成熟的在線銀行攻擊。在該章,將學(xué)習(xí)如何在Linux系統(tǒng)上配置一個(gè)復(fù)雜、頻繁更新的反惡意軟件解決方案。第9章:使用Hashcat進(jìn)行密碼破解。技術(shù)專業(yè)人員曾經(jīng)被警告說(shuō)有一款密碼破解工具幾乎可以保證破解哈希密碼。這意味著一旦非法獲取了對(duì)哈希密碼的訪問(wèn),那么黑客看到密碼內(nèi)容就只是時(shí)間問(wèn)題。該章將一步一步地完成該過(guò)程。第10章:SQL注入攻擊。在一次著名的調(diào)查中,SQL注入攻擊被列為最流行的在線攻擊。雖然該攻擊類型的出現(xiàn)可追溯到20世紀(jì)90年代末,但如今還是有大量的此類攻擊通過(guò)簡(jiǎn)單的編程實(shí)踐成功攻破了企業(yè)網(wǎng)站以及關(guān)鍵的在線服務(wù)。該章首先講述了一些有用的歷史信息,然后逐步指導(dǎo)如何識(shí)別和攻擊脆弱的在線服務(wù)。本書讀者對(duì)象本書主要面向中等水平的管理人員、軟件黑客以及其他IT專業(yè)技術(shù)人員。然而,本書的編寫方式可以幫助那些好奇的讀者根據(jù)自己感興趣的安全問(wèn)題快速找到適合的對(duì)應(yīng)章節(jié),同時(shí)不需要深入了解Linux命令行。本書旨在幫助某些讀者更深入地研究特定章節(jié)的相關(guān)主題,從而進(jìn)一步擴(kuò)展有關(guān)該主題的知識(shí),同時(shí)了解一下其他方面的主題,以便日后參考使用。另一方面,雖然每章都使用了命令行(對(duì)于初學(xué)者來(lái)說(shuō)還是需要花費(fèi)一些時(shí)間來(lái)學(xué)習(xí)的),但對(duì)于讀者的經(jīng)驗(yàn)水平卻沒(méi)有太高的要求。小結(jié)希望通過(guò)本書的學(xué)習(xí),你可以了解黑客所使用的工具以及思維方式,從而站在最新安全技術(shù)發(fā)展的制高點(diǎn),這樣就可以避免以下事情的發(fā)生:不再控制自己的系統(tǒng)或網(wǎng)絡(luò),而是由其他人來(lái)控制。
Chris Binnie是一名技術(shù)顧問(wèn),擁有20年的Linux系統(tǒng)工作經(jīng)驗(yàn),也是Linux Magazine 和Admin Magazine 的供稿者。Chris曾于2005年構(gòu)建Autonomous System Network,并通過(guò)自己構(gòu)建的媒體流平臺(tái)向77個(gè)國(guó)家提供高清視頻。在他的職業(yè)生涯中,曾負(fù)責(zé)在云端以及銀行和政府部門部署諸多服務(wù)器。
目 錄
第1章 隱身斗篷 1
1.1 背景知識(shí) 1
1.1.1
探測(cè)端口 2
1.1.2
使端口掃描器產(chǎn)生混亂 2
1.2 安裝knockd 3
1.2.1
軟件包 3
1.2.2
更改默認(rèn)設(shè)置 4
1.2.3
更改文件系統(tǒng)位置 5
1.3 一些配置選項(xiàng) 6
1.3.1
啟動(dòng)服務(wù) 6
1.3.2
更改默認(rèn)的網(wǎng)絡(luò)接口 7
1.3.3
數(shù)據(jù)包類型和時(shí)序 7
1.4 對(duì)安裝進(jìn)行測(cè)試 8
1.5 使服務(wù)器不可見(jiàn) 10
1.5.1
測(cè)試iptables 10
1.5.2
保存iptables規(guī)則 12
1.6 進(jìn)一步考慮 12
1.6.1
智能手機(jī)客戶端 13
1.6.2
故障排除 13
1.6.3
安全性考慮 13
1.6.4
短暫的序列 14
1.7 小結(jié) 15
第2章 對(duì)文件應(yīng)用數(shù)字指紋 17
2.1 文件系統(tǒng)的完整性 17
2.2 整個(gè)文件系統(tǒng) 21
2.3
rootkit 22
2.4 配置 25
2.5 誤報(bào) 27
2.6 良好的設(shè)計(jì) 28
2.7 小結(jié) 29
第3章 21世紀(jì)的netcat 31
3.1 歷史 31
3.2 安裝軟件包 34
3.3 傳輸文件 37
3.4 將命令鏈接在一起 39
3.5 安全通信 40
3.6 可執(zhí)行文件 42
3.7 訪問(wèn)控制列表 44
3.8 其他選項(xiàng) 44
3.9 小結(jié) 45
第4章 拒絕服務(wù) 47
4.1
NTP基礎(chǔ)設(shè)施 48
4.2
NTP反射攻擊 49
4.3 攻擊報(bào)告 52
4.4 防止SNMP反射 53
4.5 DNS解析器 54
4.6 共犯 56
4.7 使國(guó)家陷入癱瘓 57
4.8 映射攻擊 58
4.9 小結(jié) 59
第5章 Nping 61
5.1 功能 61
5.2
TCP 62
5.3 解釋器 64
5.4
UDP 65
5.5
ICMP 66
5.6
ARP 67
5.7 有效載荷選項(xiàng) 67
5.8
Echo模式 68
5.9 其他Nping選項(xiàng) 72
5.10
小結(jié) 74
第6章 日志探測(cè) 75
6.1 對(duì)ICMP的誤解 76
6.2
tcpdump 76
6.3
iptables 78
6.4 多規(guī)則 82
6.5 記錄下取證分析的一切內(nèi)容
83
6.6 強(qiáng)化 84
6.7 小結(jié) 87
第7章 Nmap功能強(qiáng)大的NSE 89
7.1 基礎(chǔ)的端口掃描 89
7.2
Nmap腳本引擎 93
7.3 時(shí)間模板 95
7.4 腳本分類 96
7.5 影響因素 98
7.6 安全漏洞 98
7.7 身份驗(yàn)證檢查 100
7.8 發(fā)現(xiàn) 101
7.9 更新腳本 103
7.10
腳本類型 104
7.11
正則表達(dá)式 105
7.12
圖形化用戶界面 105
7.13
Zenmap 106
7.14
小結(jié) 107
第8章 惡意軟件檢測(cè) 109
8.1 開始 110
8.1.1
定義更新頻率 110
8.1.2
惡意軟件哈希注冊(cè)表 110
8.1.3
普遍的威脅 111
8.1.4
LMD功能 112
8.1.5
監(jiān)控文件系統(tǒng) 113
8.1.6
安裝 114
8.1.7
監(jiān)控模式 116
8.2 配置 117
8.2.1
排除 117
8.2.2
通過(guò)CLI運(yùn)行 118
8.2.3
報(bào)告 118
8.2.4
隔離和清理 120
8.2.5
更新LMD 121
8.2.6
掃描和停止掃描 122
8.2.7
cron作業(yè) 123
8.2.8
報(bào)告惡意軟件 123
8.2.9
Apache集成 124
8.3 小結(jié) 125
第9章 使用Hashcat進(jìn)行密碼破解 127
9.1 歷史 128
9.2 了解密碼 128
9.2.1
密鑰空間 128
9.2.2
哈希 130
9.3 使用Hashcat 132
9.3.1
Hashcat的能力 132
9.3.2
安裝 133
9.3.3
哈希識(shí)別 134
9.3.4
選擇攻擊模式 136
9.3.5
下載密碼字典 137
9.3.6
彩虹表 137
9.4 運(yùn)行Hashcat 138
9.5
oclHashcat 142
9.6
Hashcat-Utils 143
9.7 小結(jié) 143
第10章 SQL注入攻擊 145
10.1
歷史 146
10.2
基本的SQLi 147
10.3
在PHP中減輕SQLi的影響 149
10.4
利用SQL漏洞 151
10.5
發(fā)動(dòng)一次攻擊 152
10.6 合法嘗試SQLi 155
10.7
小結(jié) 156