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