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