Nmap是目前非常受關注的網絡安全審計技術工具,是絕大多數從事網絡安全人員的必備工具。本書由一線網絡安全教師親筆撰寫,凝聚了作者多年教學與實踐開發經驗,內容涉及網絡安全審計的作用、價值、方法論,Nmap在網絡安全管理方面的方法與應用,以及Nmap強大的腳本編寫功能等。本書內容并不局限于某個具體功能的使用,而是系統深入地結合Nmap與網絡審計原理進行講解,幫助網絡安全人員深入了解使用Nmap進行網絡安全審計的相關技術。本書講解的內容通俗易懂、深入淺出,特別是書中所用示例的設計,它們不僅可以讓讀者理解某個知識點的用法,更能讓讀者明白具體知識點所使用的場景,從而更深入地理解具體內容。 本書內容安排合理,架構清晰,注意理論與實踐相結合,適合那些希望學習Nmap進行網絡安全審計的網絡安全滲透測試人員、運維工程師、網絡管理人員、網絡安全設備設計人員、網絡安全軟件開發人員、安全課程培訓人員、高校網絡安全專業方向的學生等閱讀。
Nmap是目前非常受關注的網絡安全審計技術工具,是絕大多數從事網絡安全人員的必備工具。本書由一線網絡安全教師親筆撰寫,凝聚了作者多年教學與實踐開發經驗,內容涉及網絡安全審計的作用、價值、方法論,Nmap在網絡安全管理方面的方法與應用,以及Nmap強大的腳本編寫功能等。本書內容并不局限于某個具體功能的使用,而是系統深入地結合Nmap與網絡審計原理進行講解,幫助網絡安全人員深入了解使用Nmap進行網絡安全審計的相關技術。本書講解的內容通俗易懂、深入淺出,特別是書中所用示例的設計,它們不僅可以讓讀者理解某個知識點的用法,更能讓讀者明白具體知識點所使用的場景,從而更深入地理解具體內容。本書內容安排合理,架構清晰,注意理論與實踐相結合,適合那些希望學習Nmap進行網絡安全審計的網絡安全滲透測試人員、運維工程師、網絡管理人員、網絡安全設備設計人員、網絡安全軟件開發人員、安全課程培訓人員、高校網絡安全專業方向的學生等閱讀。
第1章 走近Nmap 11.1 Nmap簡介 21.2 Nmap的下載與安裝 31.2.1 在Windows系統下安裝與下載Nmap 31.2.2 在Linux系統下安裝Nmap 61.3 Nmap的基本操作 61.4 掃描范圍的確定 71.4.1 對連續范圍內的主機進行掃描 71.4.2 對整個子網進行掃描 81.4.3 對多個不連續的主機進行掃描 81.4.4 在掃描的時候排除指定的目標 91.4.5 對一個文本文件中的地址列表進行掃描 91.4.6 隨機確定掃描目標 10小結 10第2章 活躍主機發現技術 112.1 活躍主機發現技術簡介 122.2 網絡協議與主機發現技術 122.3 基于ARP協議的活躍主機發現技術 142.3.1 ARP協議解析 142.3.2 在Nmap中使用ARP協議進行主機發現 162.4 基于ICMP協議的活躍主機發現技術 182.4.1 ICMP協議解析 182.4.2 使用ICMP協議進行主機發現 192.5 基于TCP協議的活躍主機發現技術 222.5.1 TCP協議解析 222.5.2 使用TCP協議進行主機發現 232.6 基于UDP協議的活躍主機發現技術 292.6.1 UDP協議解析 292.6.2 使用UDP協議進行主機發現 302.7 基于SCTP協議的活躍主機發現技術 312.7.1 SCTP協議解析 312.7.2 使用SCTP協議進行主機發現 312.8 使用IP協議進行主機地址發現 322.9 Nmap活躍主機發現中與DNS協議相關的選項 332.9.1 DNS協議解析 332.9.2 Nmap中的DNS選項 342.10 主機發現技術的分析 36小結 38第3章 端口掃描技術 393.1 端口的概念 393.2 端口的分類 403.3 Nmap中對端口狀態的定義 413.4 Nmap中的各種端口掃描技術 413.4.1 SYN掃描 423.4.2 Connect掃描 433.4.3 UDP掃描 433.4.4 TCP FIN掃描 443.4.5 NULL掃描 443.4.6 Xmas Tree掃描 453.4.7 idle掃描 453.5 指定掃描的端口 46小結 48第4章 遠程操作系統與服務檢測技術 494.1 遠程操作系統檢測簡介 504.2 操作系統指紋簡介 514.3 操作系統指紋掃描作為管理工具 524.4 為什么要進行服務發現 574.5 如何使用Nmap進行服務發現 60小結 62第5章 Nmap的圖形化操作工具—Zenmap 635.1 Zenmap簡介 635.2 啟動Zenmap 645.3 Zenmap掃描操作 685.4 使用Zenmap的命令向導來創建命令 695.5 對Zenmap的配置進行管理 755.6 對Zenmap掃描的結果進行管理和比較 765.7 Zenmap中的拓撲功能 82小結 83第6章 Nmap的高級技術與防御措施 846.1 Nmap的偽裝技術 846.2 TCP Connect掃描的檢測 936.3 操作系統掃描的防范 966.4 Nmap的格式化輸出 96小結 100第7章 NSE的基礎部分 1017.1 NSE腳本的運行 1027.1.1 NSE中腳本的分類 1027.1.2 NSE腳本的選擇 1037.2 如何向NSE腳本傳遞參數 1057.2.1 NSE中傳遞參數的方式 1057.2.2 從文件中載入腳本的參數 1067.2.3 NSE腳本調試 1077.4 NSE常見腳本的應用 1097.4.1 信息收集類腳本 1097.4.2 高級主機發現類腳本 1117.4.3 密碼審計類腳本 1127.4.4 漏洞掃描類腳本 114小結 116第8章 NSE的編寫基礎 1178.1 NSE腳本的基本格式 1178.2 NSE腳本的規則 1188.3 NSE開發環境的設置 1198.4 編寫簡單的NSE腳本 1238.5 實例應用:垃圾郵件木馬的檢測 127小結 128第9章 Lua語言 1299.1 Lua的編程環境 1309.1.1 在Windows系統上安裝Lua編程環境 1309.1.2 在Linux系統上安裝Lua編程環境 1309.2 及時個Lua程序 1319.3 Lua流程控制 1329.4 Lua中的循環結構 1339.5 Lua數據類型 1359.6 Lua字符串 1369.7 Lua文件I/O操作 1429.8 Lua協同程序 1449.8.1 什么是協同程序 1449.8.2 線程和協同程序的區別 1449.8.3 coroutine基本語法 1449.9 Lua語言中的注釋和虛變量 1459.9.1 Lua語言中的注釋說明 1459.9.2 Lua語言中的虛變量 145小結 146第10章 NSE中的API 14710.1 Nmap API 14710.1.1 host table 14810.1.2 port table 15410.2 NSE中的異常處理 15710.3 NSE中的注冊表 159小結 159第11章 NSE中的庫文件 16011.1 NSE庫文件的編寫 16111.2 擴展一個現有NSE庫文件的功能 16311.3 使用C/C 編寫的NSE模塊 16811.4 常見的NSE庫文件 17011.4.1 shortport 17011.4.2 http 17311.4.3 stdNSE 17611.4.4 OpenSSL 17611.4.5 target 17711.4.6 creds 17711.4.7 vluns 177小結 178第12章 對服務發現功能進行增強 17912.1 NSE中的服務發現模式 17912.1.1 服務發現的過程 18012.1.2 調整版本掃描的級別 18012.1.3 更新版本偵測探針數據庫 18112.1.4 從版本檢測中排除指定端口 18112.1.5 post-processors簡介 18212.2 自定義版本檢測腳本 18212.2.1 將腳本的分類定義為version檢測 18212.2.2 定義版本檢測腳本的portrule 18212.2.3 更新端口服務版本信息 18312.3 服務發現腳本的實例 18412.3.1 modbus-discover 18412.3.2 ventrilo-info 18512.3.3 rpc-grind 187小結 188第13章 NSE中的數據文件 18913.1 Nmap中數據文件所在的位置 19013.2 Nmap中選擇數據文件的順序 19013.3 暴力窮舉時所使用的用戶名和密碼列表數據文件 19013.3.1 用戶名數據文件 19013.3.2 密碼數據文件 19113.4 Web應用審計數據文件 19113.4.1 http-fingerprints.lua 19113.4.2 http-sql-errors.lst 19213.4.3 http-web-files-extensions.lst 19213.4.4 http-devframework-fingerprints.lua 19313.4.5 http-folders.txt 19313.4.6 vhosts-default.lst 19413.4.7 wp-plugins.lst 19413.5 DBMS-auditing數據文件 19513.5.1 mysql-cis.audit 19513.5.2 oracle-default-accounts.lst 19613.5.3 oracle-sids 196小結 197第14章 密碼審計腳本的開發 19814.1 使用NSE庫進行工作 19914.1.1 NSE中brute模式的設定 19914.1.2 NSE中Driver類的實現 20014.1.3 NSE中庫文件和用戶選項的傳遞 20214.1.4 NSE中通過Account對象返回有效的賬戶 20314.1.5 NSE中使用Error類來處理異常 20414.2 使用unpwdb NSE庫讀取用戶名和密碼信息 20414.3 對掃描中得到的用戶憑證進行管理 20514.4 針對FTP的密碼審計腳本 20514.5 針對MikroTik RouterOS API的密碼審計腳本 208小結 212第15章 漏洞審計與滲透腳本的編寫 21315.1 Nmap中的漏洞掃描功能 21315.2 NSE中的exploit腳本 21515.3 RealVNC的滲透腳本 21715.4 Windows系統漏洞的檢測 21815.5 對heartbleed漏洞進行滲透 22015.6 vulns庫中的漏洞功能 224小結 227第16章 NSE的并發執行 22816.1 Nmap中的并發執行 22816.2 Nmap中的時序模式 22916.3 Lua中的并發執行 23016.4 NSE中的并發執行 23516.4.1 NSE中的線程 23616.4.2 NSE中的條件變量 23616.4.3 NSE中的互斥變量 238小結 239