如期而至!
nmap這個滲透工具一般用在滲透的准備階段,用於收集用戶的信息,為后面的滲透做情報支持
本教程分為14個小模塊,分別為:
1.nmap的安裝和掃描的基本概念
2.如何找到網絡上的設備
3.端口掃描概要
4.端口掃面技術和算法
5.優化nmap的性能
6.服務和應用程序版本的識別
7.遠程操作系統的識別
8.nmap的腳本引擎
9.識別並繞過防火牆和IDS
10.防御nmap掃描
11.nmap的圖形化程序zenmap
12.格式化nmap的輸出內容
13.理解和設置nmap的數據文件
14.總結
一.nmap的安裝和掃描的基本概念
首先對於nmap的安裝,可以自行百度,當然kali linux是內置了nmap的,只要在命令行下輸入nmap即可使用,參數-version可以查看當前nmap的版本,如下圖
然后對於掃描簡單的來說其實就是四個動作
1.統一溝通語言 (TCP/IP協議)
2.發出刺激 (ICMP報文頭)
3.受到刺激的反饋 (ICMP的反饋)
4通過比對刺激和反饋完成掃描
二.如何找到網絡上的設備
nmap的基本輸入:
將你要掃描的設備地址告訴nmap可以通過下面的方法實現
統一格式:nmap [掃描類型] [設置] {設備地址}
其中設備地址(主機名,IP地址,網段等)可以通過以下方法
1.-iL <文件名> 通過文件輸入地址
2.-iR <IP地址數目>
3.--exclude <exclude_file> :排出文件中的地址
4.直接輸入IP或網段(最常用)
上面是nmap兩個簡單掃描例子,僅反饋了一些簡單的信息,但是對於其他的數據收集,nmap里面有詳細的參數可以實現,下面將開始講解一些常用參數的使用:
掃描參數:
1.-sL 不做掃描,僅完成DNS解析和網址的轉換
2.-sP 默認發ICMP echo請求和TCP的ACK請求(80端口)
3.-PN 不用ping
4.-Ps <端口號列表> 發TCP協議SYN標記的空包(80端口)
5.-PA <端口號列表> 發TCP協議ACK標記的空包(80端口)
6.-PU <端口號列表> (31338端口)
7.-PE -PP -PM
8.-PO <協議列表>
9.-PR (ARP ping)
設置參數:
--traceroute
-n(不要做DNS解析)
-R(DNS解析所有的地址,默認不解析不在線的IP)
-system-dns(使用系統DNS)
--dns-servers <server1>[,<server2>[,…]](使用其他DNS)
三.端口掃描概要
1.端口掃描:
-p <端口號列表>
2.端口狀態:
1.Open,端口開啟,有程序監聽此端口
2.Closed,端口關閉,數據能到達主機,但是沒有程序監聽此端口。
3.Filtered,數據未能到達主機。
4.Unfiltered,數據能到達主機,但是Nmap無法判斷端口開啟還是關閉。
5.Open|filtered,端口沒有返回值,主要出現在UDP,IP,FIN,NULL和Xmas掃描
6.Closed|filtered,只出現在IP ID idle 掃描。
四.端口掃面技術和算法
1.TCP標志位掃描
-sS TCP SYN掃描(匿名掃描,默認不加類型,需要root權限,掃描速度快)
-sT TCP全連接掃描(不需要root權限,TCP掃描的默認模式,端口狀態和SYN相同,耗時長)
2.UDP掃描
-sU (使用-sUV能增加掃描的准確性)
沒有UDP端口開放
3.協議掃描
-sO 獲取服務器支持哪些協議
常用的掃描一般就上面幾種,其他的暫時不講解,需要了解的可以自己去百度或者等我的nmap進階教程整理出來。
五.優化nmap的性能
-F (快速掃描100個常用端口)
其他的打算在nmap進階教程再講解
六.服務和應用程序版本的識別
有時候nmap探測出來的服務和版本信息並不是非常准確,不過我們可以通過加參數的方式使其精確
1.-sV:探測開放端口的服務和版本信息
2.--version-intensity<0-9>:設置探測深度
3.--version-light:相當於0-2
4.--version-all:相當於0-9
5.--version-trace:顯示版本掃描詳情(用於調試)
七.遠程操作系統的識別
1.-O:啟動操作系統識別。
2.--osscan-limit:限定只識別有端口開放的主機,提高-O和-A參數時的掃描速度。
3.--osscan-guest<OS>:給NMAP建議的操作系統。類似於sqlmap的參數。
4.--max-os-tries <次數>:設置重試次數(默認為5),提高准確性或者提高速度。
八.nmap的腳本引擎
九.識別並繞過防火牆和IDS
十.防御nmap掃描
十一.nmap的圖形化程序zenmap
十二.格式化nmap的輸出內容
十三.理解和設置nmap的數據文件
十四.總結
基礎簡單的nmap教程,基本使用參數就這些,不要看只有幾個,組合起來其實還是比較多的,本教程暫時到這里,還有沒有講解的模塊打算在下一篇的nmap進階使用教程在講解
在此之前,希望大家能熟練掌握本教程的內容,最好的是去看看計算機網絡原理,TCP/IP協議,腳本引擎.NET,腳本語言Lua,為進階教程做好一定的知識儲備,以免太晦澀看不懂。