Nmap是目前非常受關(guān)注的網(wǎng)絡(luò)安全審計(jì)技術(shù)工具,是絕大多數(shù)從事網(wǎng)絡(luò)安全人員的必備工具。本書由一線網(wǎng)絡(luò)安全教師親筆撰寫,凝聚了作者多年教學(xué)與實(shí)踐開(kāi)發(fā)經(jīng)驗(yàn),內(nèi)容涉及網(wǎng)絡(luò)安全審計(jì)的作用、價(jià)值、方法論,Nmap在網(wǎng)絡(luò)安全管理方面的方法與應(yīng)用,以及Nmap強(qiáng)大的腳本編寫功能等。本書內(nèi)容并不局限于某個(gè)具體功能的使用,而是系統(tǒng)深入地結(jié)合Nmap與網(wǎng)絡(luò)審計(jì)原理進(jìn)行講解,幫助網(wǎng)絡(luò)安全人員全面深入了解使用Nmap進(jìn)行網(wǎng)絡(luò)安全審計(jì)的相關(guān)技術(shù)。本書講解的內(nèi)容通俗易懂、深入淺出,特別是書中所用示例的設(shè)計(jì),它們不僅可以讓讀者理解某個(gè)知識(shí)點(diǎn)的用法,更能讓讀者明白具體知識(shí)點(diǎn)所使用的場(chǎng)景,從而更深入地理解具體內(nèi)容。
本書內(nèi)容安排合理,架構(gòu)清晰,注意理論與實(shí)踐相結(jié)合,適合那些希望學(xué)習(xí)Nmap進(jìn)行網(wǎng)絡(luò)安全審計(jì)的網(wǎng)絡(luò)安全滲透測(cè)試人員、運(yùn)維工程師、網(wǎng)絡(luò)管理人員、網(wǎng)絡(luò)安全設(shè)備設(shè)計(jì)人員、網(wǎng)絡(luò)安全軟件開(kāi)發(fā)人員、安全課程培訓(xùn)人員、高校網(wǎng)絡(luò)安全專業(yè)方向的學(xué)生等閱讀。
前言
為什么要寫這本書
很多人在年少時(shí),都曾經(jīng)有一個(gè)黑客夢(mèng)。
還記得我第一次接觸“黑客”這個(gè)詞是在很早的一部名為《戰(zhàn)爭(zhēng)游戲》的電影,雖然那時(shí)我甚至還沒(méi)見(jiàn)過(guò)真正的計(jì)算機(jī),但是里面的情節(jié)卻深深地印在了我的腦海之中。從那以后,我開(kāi)始對(duì)每部電影中出現(xiàn)的黑客情節(jié)都十分感興趣,也經(jīng)常推敲電影中這些情節(jié)在現(xiàn)實(shí)中的可行性。1999年,一部名為《黑客帝國(guó)》的影片風(fēng)靡了整個(gè)世界。對(duì)我來(lái)說(shuō),這部影片的意義更為深刻,在這部影片中,我居然見(jiàn)識(shí)到了一個(gè)真實(shí)中存在的極客工具—Nmap。這個(gè)發(fā)現(xiàn)讓我興奮不已。
要知道,極客技術(shù)在外人看起來(lái)神奇無(wú)比,對(duì)于這方面的學(xué)習(xí)者來(lái)說(shuō)卻是頭疼無(wú)比。數(shù)量眾多的知識(shí)需要學(xué)習(xí),各種各樣的工具需要掌握,在我剛開(kāi)始接觸極客技術(shù)的時(shí)候,幾乎每天都將精力用在對(duì)各種工具的掌握上。不過(guò),很快我也意識(shí)到了自己的失誤——在“魚”與“漁”之間,錯(cuò)誤地選了“魚”。我缺乏的不是一款萬(wàn)能的黑客工具,而是一個(gè)能將自己想法快速實(shí)現(xiàn)的工具,而這個(gè)問(wèn)題隨著Nmap的出現(xiàn)迎刃而解。
Nmap是網(wǎng)絡(luò)安全方面極為常用的工具,它的使用相當(dāng)廣泛。凡是從事網(wǎng)絡(luò)安全技術(shù)的人員幾乎都接觸過(guò)這款工具。Nmap作為世界滲透測(cè)試行業(yè)公認(rèn)最優(yōu)秀的網(wǎng)絡(luò)安全審計(jì)工具,它可以通過(guò)對(duì)設(shè)備的探測(cè)來(lái)審計(jì)其安全性,而且功能極為完備,單是對(duì)端口狀態(tài)的掃描技術(shù)就有數(shù)十種。不過(guò)很可惜的是,由于國(guó)內(nèi)Nmap方面的學(xué)習(xí)資料相對(duì)匱乏,很多人都將Nmap作為一種普通的端口掃描工具來(lái)使用,卻忽略Nmap中強(qiáng)大的編程能力。NSE是Nmap中革命性的創(chuàng)新。通過(guò)Nmap強(qiáng)大的腳本引擎(NSE),每一個(gè)用戶都可以向Nmap中添加自己編寫的代碼,從而將Nmap打造成用戶自由定制功能的強(qiáng)大工具?梢赃@樣說(shuō),NSE的使用才是真正的“授人以漁”。
在本書的編寫過(guò)程中,我一直在學(xué)校從事網(wǎng)絡(luò)安全的教學(xué)工作。這使得每當(dāng)我在進(jìn)行一個(gè)章節(jié)編寫時(shí),可以預(yù)先在課堂上進(jìn)行講授,從而直接感受到學(xué)生對(duì)此的反映,他們其實(shí)是本書的第一批讀者,F(xiàn)在成書之時(shí),也正值他們畢業(yè)之際。在這里希望書中的知識(shí)能夠?yàn)樗麄円院蟮墓ぷ魈峁┮恍⿴椭。同樣也希望這本書能為讀者們帶來(lái)幫助。
本書特色
Nmap的強(qiáng)大功能是毋庸置疑的,它幾乎是當(dāng)前的極客必備工具,你幾乎可以在任何經(jīng)典的網(wǎng)絡(luò)安全圖書中找到它的名字,甚至可以在大量的影視作品(例如《Matrix|黑客帝國(guó)》《極樂(lè)空間》《諜影重重》《虎膽龍威4》等)中看到它的身影。目前,國(guó)內(nèi)對(duì)于Nmap的研究越來(lái)越熱。近年來(lái)正是國(guó)內(nèi)網(wǎng)絡(luò)安全飛速發(fā)展的階段,Nmap這個(gè)曾經(jīng)只有頂尖高手才能使用的“舊時(shí)王謝堂前燕”,到如今終于飛入了普通網(wǎng)絡(luò)安全工作人員的“尋常百姓家”,受到廣大網(wǎng)絡(luò)安全行業(yè)從業(yè)人員的喜愛(ài),假以時(shí)日,它必將成為國(guó)內(nèi)最為流行的網(wǎng)絡(luò)安全審計(jì)工具之一。本人從2009年開(kāi)始正式涉足網(wǎng)絡(luò)滲透領(lǐng)域,對(duì)于Nmap的使用,花費(fèi)了大量的時(shí)間和精力進(jìn)行研究,尤其是閱讀了大量國(guó)外的相關(guān)文獻(xiàn)。在本書中將會(huì)分享自己學(xué)習(xí)Nmap的使用經(jīng)驗(yàn)、方法和總結(jié),希望可以減少其他Nmap學(xué)習(xí)者的學(xué)習(xí)成本。
本書是第一本系統(tǒng)深入將Nmap應(yīng)用實(shí)例與網(wǎng)絡(luò)原理相結(jié)合進(jìn)行講解的工具書,不僅僅講述Nmap的實(shí)際應(yīng)用方法,更從網(wǎng)絡(luò)原理的角度來(lái)分析Nmap實(shí)現(xiàn)網(wǎng)絡(luò)安全審計(jì)的技術(shù),將各種網(wǎng)絡(luò)協(xié)議、各種數(shù)據(jù)包格式等知識(shí)與Nmap的實(shí)踐應(yīng)用相結(jié)合,真正做到理論與實(shí)踐相結(jié)合。本書還將對(duì)Nmap強(qiáng)大的腳本引擎(NSE)進(jìn)行系統(tǒng)而又深入的講解,以達(dá)到通過(guò)Lua編程來(lái)擴(kuò)展Nmap的功能,將Nmap打造成為用戶可以自由定制功能的強(qiáng)大工具,真正地做到“授人以漁”。這里之所以將本書命名為“諸神之眼”,就是暗示Nmap在網(wǎng)絡(luò)中強(qiáng)大的信息收集能力。
讀者對(duì)象
本書的讀者群主要是網(wǎng)絡(luò)安全滲透測(cè)試人員、運(yùn)維工程師、網(wǎng)絡(luò)管理人員、網(wǎng)絡(luò)安全設(shè)備設(shè)計(jì)人員、網(wǎng)絡(luò)安全軟件開(kāi)發(fā)人員、安全課程培訓(xùn)人員、高校網(wǎng)絡(luò)安全專業(yè)方向的學(xué)生等,其他讀者還包括各種非專業(yè)但卻熱衷于網(wǎng)絡(luò)安全研究的人員。
目前隨著極客文化的盛行,以及網(wǎng)絡(luò)安全愛(ài)好者日益增多,本書將對(duì)網(wǎng)絡(luò)安全的宣傳與教育起到重要作用。
如何閱讀本書
本書可分為三大部分。
基礎(chǔ)知識(shí):從Nmap的基礎(chǔ)講起,系統(tǒng)講述了網(wǎng)絡(luò)安全審計(jì)的作用、價(jià)值、方法論,Nmap在網(wǎng)絡(luò)安全管理上的應(yīng)用,以及Nmap在實(shí)現(xiàn)這些應(yīng)用時(shí)相關(guān)的網(wǎng)絡(luò)原理和技術(shù)等。
網(wǎng)絡(luò)安全審計(jì):結(jié)合實(shí)例講解使用Nmap進(jìn)行網(wǎng)絡(luò)安全審計(jì)的方式和方法,以及在實(shí)際滲透中的各種應(yīng)用。
腳本:介紹Nmap的強(qiáng)大腳本編寫功能,使讀者可以最終將Nmap打造成為個(gè)性化的工具。
閱讀本書的建議
沒(méi)有Nmap基礎(chǔ)的讀者,建議從第1章順次閱讀并演練每一個(gè)實(shí)例。
有一定Nmap基礎(chǔ)的讀者,可以根據(jù)實(shí)際情況有重點(diǎn)地選擇閱讀各個(gè)技術(shù)要點(diǎn)。
對(duì)于每一個(gè)知識(shí)點(diǎn)和項(xiàng)目案例,先通讀一遍有個(gè)大概印象,然后將每個(gè)知識(shí)點(diǎn)的示例代碼都在開(kāi)發(fā)環(huán)境中操作一遍,加深對(duì)知識(shí)點(diǎn)的印象。
勘誤和支持
由于作者的水平有限,編寫時(shí)間倉(cāng)促,書中難免會(huì)出現(xiàn)一些錯(cuò)誤或者不準(zhǔn)確的地方,懇請(qǐng)讀者批評(píng)指正。歡迎您通過(guò)清華大學(xué)出版社網(wǎng)站(www.tup.com.cn)與我們聯(lián)系,同時(shí)也歡迎大家與作者交流,作者的郵箱是lihuafeng1999@163.com,期待能夠得到你們的真摯反饋。
致謝
首先要感謝我的單位提供的自由而又寬松的科研工作環(huán)境,正是這種完全自由的氛圍才使得年少時(shí)的夢(mèng)想成為我現(xiàn)實(shí)生活中的工作。
感謝清華大學(xué)出版社的秦健編輯,在本書的編寫過(guò)程中始終支持我的寫作,你的鼓勵(lì)和幫助引導(dǎo)我能順利完成全部書稿。
最后感謝我的母親,是她將我培養(yǎng)成人,并在人生的每一個(gè)關(guān)鍵階段幫助我成長(zhǎng),感謝我深愛(ài)的妻子、我可愛(ài)的兒子,感謝你們?cè)谖揖帉懕緯臅r(shí)候給予的無(wú)條件的理解和支持。
謹(jǐn)以此書獻(xiàn)給我最親愛(ài)的家人以及眾多熱愛(ài)極客技術(shù)的朋友們!
第1章走近Nmap1
1.1Nmap簡(jiǎn)介2
1.2Nmap的下載與安裝3
1.2.1在Windows系統(tǒng)下安裝與下載Nmap3
1.2.2在Linux系統(tǒng)下安裝Nmap6
1.3Nmap的基本操作6
1.4掃描范圍的確定7
1.4.1對(duì)連續(xù)范圍內(nèi)的主機(jī)進(jìn)行掃描7
1.4.2對(duì)整個(gè)子網(wǎng)進(jìn)行掃描8
1.4.3對(duì)多個(gè)不連續(xù)的主機(jī)進(jìn)行掃描8
1.4.4在掃描的時(shí)候排除指定的目標(biāo)9
1.4.5對(duì)一個(gè)文本文件中的地址列表進(jìn)行掃描9
1.4.6隨機(jī)確定掃描目標(biāo)10
小結(jié)10
第2章活躍主機(jī)發(fā)現(xiàn)技術(shù)11
2.1活躍主機(jī)發(fā)現(xiàn)技術(shù)簡(jiǎn)介12
2.2網(wǎng)絡(luò)協(xié)議與主機(jī)發(fā)現(xiàn)技術(shù)12
2.3基于ARP協(xié)議的活躍主機(jī)發(fā)現(xiàn)技術(shù)14
2.3.1ARP協(xié)議解析14
2.3.2在Nmap中使用ARP協(xié)議進(jìn)行主機(jī)發(fā)現(xiàn)16
2.4基于ICMP協(xié)議的活躍主機(jī)發(fā)現(xiàn)技術(shù)18
2.4.1ICMP協(xié)議解析18
2.4.2使用ICMP協(xié)議進(jìn)行主機(jī)發(fā)現(xiàn)19
2.5基于TCP協(xié)議的活躍主機(jī)發(fā)現(xiàn)技術(shù)22
2.5.1TCP協(xié)議解析22
2.5.2使用TCP協(xié)議進(jìn)行主機(jī)發(fā)現(xiàn)23
2.6基于UDP協(xié)議的活躍主機(jī)發(fā)現(xiàn)技術(shù)29
2.6.1UDP協(xié)議解析29
2.6.2使用UDP協(xié)議進(jìn)行主機(jī)發(fā)現(xiàn)30
2.7基于SCTP協(xié)議的活躍主機(jī)發(fā)現(xiàn)技術(shù)31
2.7.1SCTP協(xié)議解析31
2.7.2使用SCTP協(xié)議進(jìn)行主機(jī)發(fā)現(xiàn)31
2.8使用IP協(xié)議進(jìn)行主機(jī)地址發(fā)現(xiàn)32
2.9Nmap活躍主機(jī)發(fā)現(xiàn)中與DNS協(xié)議相關(guān)的選項(xiàng)33
2.9.1DNS協(xié)議解析33
2.9.2Nmap中的DNS選項(xiàng)34
2.10主機(jī)發(fā)現(xiàn)技術(shù)的分析36
小結(jié)38
第3章端口掃描技術(shù)39
3.1端口的概念39
3.2端口的分類40
3.3Nmap中對(duì)端口狀態(tài)的定義41
3.4Nmap中的各種端口掃描技術(shù)41
3.4.1SYN掃描42
3.4.2Connect掃描43
3.4.3UDP掃描43
3.4.4TCPFIN掃描44
3.4.5NULL掃描44
3.4.6XmasTree掃描45
3.4.7idle掃描45
3.5指定掃描的端口46
小結(jié)48
第4章遠(yuǎn)程操作系統(tǒng)與服務(wù)檢測(cè)技術(shù)49
4.1遠(yuǎn)程操作系統(tǒng)檢測(cè)簡(jiǎn)介50
4.2操作系統(tǒng)指紋簡(jiǎn)介51
4.3操作系統(tǒng)指紋掃描作為管理工具52
4.4為什么要進(jìn)行服務(wù)發(fā)現(xiàn)57
4.5如何使用Nmap進(jìn)行服務(wù)發(fā)現(xiàn)60
小結(jié)62
第5章Nmap的圖形化操作工具—Zenmap63
5.1Zenmap簡(jiǎn)介63
5.2啟動(dòng)Zenmap64
5.3Zenmap掃描操作68
5.4使用Zenmap的命令向?qū)?lái)創(chuàng)建命令69
5.5對(duì)Zenmap的配置進(jìn)行管理75
5.6對(duì)Zenmap掃描的結(jié)果進(jìn)行管理和比較76
5.7Zenmap中的拓?fù)涔δ?2
小結(jié)83
第6章Nmap的高級(jí)技術(shù)與防御措施84
6.1Nmap的偽裝技術(shù)84
6.2TCPConnect掃描的檢測(cè)93
6.3操作系統(tǒng)掃描的防范96
6.4Nmap的格式化輸出96
小結(jié)100
第7章NSE的基礎(chǔ)部分101
7.1NSE腳本的運(yùn)行102
7.1.1NSE中腳本的分類102
7.1.2NSE腳本的選擇103
7.2如何向NSE腳本傳遞參數(shù)105
7.2.1NSE中傳遞參數(shù)的方式105
7.2.2從文件中載入腳本的參數(shù)106
7.2.3NSE腳本調(diào)試107
7.4NSE常見(jiàn)腳本的應(yīng)用109
7.4.1信息收集類腳本109
7.4.2高級(jí)主機(jī)發(fā)現(xiàn)類腳本111
7.4.3密碼審計(jì)類腳本112
7.4.4漏洞掃描類腳本114
小結(jié)116