Linux端口掃描工具nmap and nwatch
Port scan簡介
port Scan的方法介紹 port Scan就是一種通過檢測對方服務器的開放端口,偵測對方服務器服務的方法。一般可分為主動式和被動式兩種。 主動式就是通過向對方服務器的特定端口發送數據包,根據應答來判斷。以nmap 為代表
被動式,不主動發出數據包,而是在網絡上長時偵聽,分析網上的transaction,來分析,嚴格的來被動式不應該被稱作是端口掃描。以nwatch為代表
優缺點比較 主動式的優點
主動式只要在對方沒有把通信阻斷的情況下,可以在較短的時間內獲得結果
主動式的缺點
1 現在帶有阻斷功能的防火墻越來越多,有些防火墻當檢測到端口掃描時,會將端口關閉一定的時間,還有的機器使用了很多filter功能,只對特定的IP地址提供服務,這種情況下,主動式的正確性大打折扣。
2 主動式只是在一瞬間對端口進行掃描,只有當服務器那個時候使用的服務才有可能被偵測到。
3 端口掃描是一種廣義上的攻擊行為,對于末經許可的機器,一般不能施行。
被動式的優點
被動式只是偵聽網絡,不會成為網絡攻擊,它長期運行,可以偵測到一個長時間間內,服務器的變化。
被動式的缺點
由于它不會主動發出請求包,即使端口開著,如果沒有發生實際的通信,被動式也無法偵測到服務
3。nmap的安裝
debian apt-get install nmap
fedora core yum install nmap
others 下載源代碼,編譯
4。nmap的使用方法
下面是Nmap支持的四種最基本的掃描方式:
* TCP connect()端口掃描(-sT參數)。
* TCP同步(SYN)端口掃描(-sS參數)。
* UDP端口掃描(-sU參數)。
* Ping掃描(-sP參數)
如果要勾畫一個網絡的整體情況,Ping掃描和TCP SYN掃描最為實用。
* Ping掃描通過發送ICMP(Internet Control Message Protocol,Internet控制消息協議)回應請求數據包和TCP應答(Acknowledge,簡寫ACK)數據包,確定主機的狀態,非常適合于檢測指定網段內正在運行的主機數量。
* TCP SYN掃描一下子不太好理解,但如果將它與TCP connect()掃描比較,就很容易看出這種掃描方式的特點。在TCP connect()掃描中,掃描器利用操作系統本身的系統調用打開一個完整的TCP連接也就是說,掃描器打開了兩個主機之間的完整握手過程(SYN, SYN-ACK,和ACK)。一次完整執行的握手過程表明遠程主機端口是打開的。
* TCP SYN掃描創建的是半打開的連接,它與TCP connect()掃描的不同之處在于,TCP SYN掃描發送的是復位(RST)標記而不是結束ACK標記(即,SYN,SYN-ACK,或RST):如果遠程主機正在監聽且端口是打開的,遠程主機用 SYN-ACK應答,Nmap發送一個RST;如果遠程主機的端口是關閉的,它的應答將是RST,此時Nmap轉入下一個端口。
-sS 使用SYN+ACK的方法,使用TCP SYN,
-sT 使用TCP的方法, 3次握手全做
-sU 使用UDP的方法
-sP ICMP ECHO Request 送信,有反應的端口進行調查
-sF FIN SCAN
-sX
-sN 全部FLAG OFF的無效的TCP包送信,根據錯誤代碼判斷端口情況
-P0 無視ICMP ECHO request的結果,SCAN
-p scan port range 指定SCAN的目端口的范圍
1-100, 或者使用25,100的方式
-O 偵測OS的種類
-oN 文件名 通常格式文件輸出
-oX 文件名 通過DTD,使用XML格式輸出結果
-oG 文件名,grep容易的格式輸出
-sV 服務的程序名和版本SCAN
實例:
nmap -v target.com
這樣對target.com上所有的保留TCP端口做了一次掃描,-v表示用詳細模式。
nmap -sS -O target.com/24
這將開始一次SYN的半開掃描,針對的目標是target.example.com所在的C類子網,它還試圖確定在其上運行的是什么系統。這需要root權限,因為用到了半開掃描以及系統偵測。
結果實例:
debianlinux:/etc/init.d# nmap 192.168.1.1
Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2005-08-30 00:01 JST
Interesting ports on 192.168.1.1
(The 1658 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
1720/tcp filtered H.323/Q.931
3128/tcp open squid-http
5。nwatch的安裝 nwatch 需要的包
Perl 5.005_03以上
Net::Pcap
Ndiff 0.05 bata2 以上
libpcap
debian: apt-get install nwatch
6.nwatch的使用方法
-d 網絡設備名,默認為eth0
-h host/network[:port][t,u]
t,u 可以指定TCP或UDP 默認為TCP
-o 輸出文件名
-fi 時間(秒) 把數據寫盤時間,默認為300秒
-si 數據Break時間(秒),默認為86400(一天)
LINK
nmap
http://www.insecure.org/nmap/
數據寫盤時間,默認為300秒-si 數據Break時間(秒),默認為86400(一天)LINKnmap http://www.insecure.org/nmap/
linux下nmap工具的使用,linux下掃描端口
NMap,也就是Network Mapper,是Linux下的網絡掃描和嗅探工
具包,其基本功能有三個,一是探測一組主機是否在線;其次是 掃描主機端口,嗅探所提供的網絡服務;還可以推斷主機所用的操作系統
。Nmap可用于掃描僅有兩個節點的LAN,直至500個節點以上的網絡。 Nmap
還允許用戶定制掃描技巧。通常,一個簡單的使用ICMP協議的ping操 作可以滿足一般需求;也可以深入探測UDP或者TCP端口,直至主機
所使用的操作系統;還可以將所有探測結果記錄到各種格式的日志中, 供進一步分析操作。
進行ping掃描,打印出對掃描做出響應的主機,不做進一步測試(如端口掃描或者操作系統探測):
nmap -sP 192.168.1.0/24
僅列出指定網絡上的每臺主機,不發送任何報文到目標主機:
nmap -sL 192.168.1.0/24
探測目標主機開放的端口,可以指定一個以逗號分隔的端口列表(如-PS22,23,25,80):
nmap -PS 192.168.1.234
使用UDP ping探測主機:
nmap -PU 192.168.1.0/24
使用頻率最高的掃描選項:SYN掃描,又稱為半開放掃描,它不打開一個完全的TCP連接,執行得很快:
nmap -sS 192.168.1.0/24
當SYN掃描不能用時,TCP Connect()掃描就是默認的TCP掃描:
nmap -sT 192.168.1.0/24
UDP掃描用-sU選項,UDP掃描發送空的(沒有數據)UDP報頭到每個目標端口:
nmap -sU 192.168.1.0/24
確定目標機支持哪些IP協議 (TCP,ICMP,IGMP等):
nmap -sO 192.168.1.19
探測目標主機的操作系統:
nmap -O 192.168.1.19
nmap -A 192.168.1.19
另外,nmap官方文檔中的例子:
nmap -v scanme.nmap.org
這個選項掃描主機scanme.nmap.org中 所有的保留TCP端口。選項-v啟用細節模式。
nmap -sS -O scanme.nmap.org/24
進行秘密SYN掃描,對象為主機Saznme所在的“C類”網段 的255臺主機。同時嘗試確定每臺工作主機的操作系統類型。因為進行SYN掃描 和操作系統檢測,這個掃描需要有根權限。
nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127
進行主機列舉和TCP掃描,對象為B類188.116網段中255個8位子網。這 個測試用于確定系統是否運行了sshd、DNS、imapd或4564端口。如果這些端口 打開,將使用版本檢測來確定哪種應用在運行。
nmap -v -iR 100000 -P0 -p 80
隨機選擇100000臺主機掃描是否運行Web服務器(80端口)。由起始階段 發送探測報文來確定主機是否工作非常浪費時間,而且只需探測主機的一個端口,因 此使用-P0禁止對主機列表。
nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20
掃描4096個IP地址,查找Web服務器(不ping),將結果以Grep和XML格式保存。
host -l company.com | cut -d -f 4 | nmap -v -iL -
進行DNS區域傳輸,以發現company.com中的主機,然后將IP地址提供給 Nmap。上述命令用于GNU/Linux -- 其它系統進行區域傳輸時有不同的命令。
其他選項:
-p <port ranges> (只掃描指定的端口)
單個端口和用連字符表示的端口范 圍(如 1-1023)都可以。當既掃描TCP端口又掃描UDP端口時,可以通過在端口號前加上T: 或者U: 指定協議。 協議限定符一直有效直到指定另一個。 例如,參數 -p U:53,111,137,T:21-25,80,139,8080 將掃描 UDP 端口53,111,和137,同時掃描列出的TCP端口。
-F (快速 (有限的端口) 掃描)