運維工程師必會工具(Nmap和TCPdump)

運維工程師必會工具(Nmap和TCPdump)

1、NMap工具

主要功能:探測主機是否在線、掃描主機開放端口和嗅探網絡服務,用於網絡探測和安全掃描。

NMap支持很多掃描技術,例如:UDP、TCPconnect()、TCPSYN(半開掃描)、ftp代理(bounce***)、反向標誌、ICMP、FIN、ACK掃描、SYN掃描和null掃描。

命令格式:Nmap [ 掃描類型 ] [ 通用選項 ] { 掃描目標說明 }

掃描類型:

-sTTCP connect()掃描,這是最基本的TCP掃描方式,用來建立一個TCP連接,如果成功則認爲目標端口正在監聽,否則認爲目標端口沒有監聽程序。這種掃描很容易被檢測到,在目標主機的日誌中會記錄大批的連接請求以及錯誤信息。
-sSTCP同 步掃描(TCP SYN),只向目標發出SYN數據包,如果收到SYN/ACK響應包就認爲目標端口正在監聽,並立即斷開連接;否則認爲目標端口沒有監聽程序。所以這項技 術通常稱爲半開掃描(half-open)。這項技術最大的好處是,很少有系統能夠把這記入系統日誌。不過,你需要root權限來定製SYN數據包。
-sF,-sX,-sN祕密FIN數據包掃描、聖誕樹(Xmas Tree)、空(Null)掃描模式。這些掃描方式的理論依據是:關閉的端口需要對你的探測包迴應RST包,而打開的端口必需忽略有問題的包,通過這種掃描,可間接用於檢測防火牆的健壯性。
-sPping掃描,用ping方式檢查網絡上哪些主機正在運行。當主機阻塞ICMP echo請求包是ping掃描是無效的。nmap在任何情況下都會進行ping掃描,只有目標主機處於運行狀態,纔會進行後續的掃描。
-sUUDP掃描,如果你想知道在某臺主機上提供哪些UDP服務,可以使用此選項。
-sAACK掃描,這項高級的掃描方法通常可以用來穿過防火牆。
-sW滑動窗口掃描,非常類似於ACK的掃描。
-sRRPC掃描,和其它不同的端口掃描方法結合使用。
-bFTP反彈***(bounce attack),連接到防火牆後面的一臺FTP服務器做代理,接着進行端口掃描。

通用選項:

-n不做反向DNS解析,以加快掃描速度


-P0在掃描之前,不ping主機;有些網絡防火牆可能禁止ICMP請求包,使用這種掃描類型可以跳過ping測試
-PT掃描之前,使用TCP ping確定哪些主機正在運行。
-PS對於root用戶,這個選項讓nmap使用SYN包而不是ACK包來對目標主機進行掃描。
-PI設置這個選項,讓nmap使用真正的ping(ICMP echo請求)來掃描目標主機是否正在運行。
-PB這是默認的ping掃描選項。它使用ACK(-PT)和ICMP(-PI)兩種掃描類型並行掃描。如果防火牆能夠過濾其中一種包,使用這種方法,你就能夠穿過防火牆。
-O這個選項激活對TCP/IP指紋特徵(fingerprinting)的掃描,獲得遠程主機的標誌,也就是操作系統類型。
-I打開nmap的反向標誌掃描功能。
-f使用碎片IP數據包發送SYN、FIN、XMAS、NULL。包增加包過濾、***檢測系統的難度,使其無法知道你的企圖。
-v強烈推薦使用這個選項,它會給出掃描過程中的詳細信息。
-S <IP>在一些情況下,nmap可能無法確定你的源地址(nmap會告訴你)。在這種情況使用這個選項給出你的IP地址。
-g port設置掃描的源端口。一些天真的防火牆和包過濾器的規則集允許源端口爲DNS(53)或者FTP-DATA(20)的包通過和實現連接。顯然,如果***者把源端口修改爲20或者53,就可以摧毀防火牆的防護。
-oN把掃描結果重定向到一個可讀的文件logfilename中。
-oS掃描結果輸出到標準輸出。
-A打開操作系統探測和版本探測。

掃描目標:

目標地址可以爲IP地址,CIRD地址等。如192.168.1.2,222.247.54.5/24
-iL filename從filename文件中讀取掃描的目標。
-iR讓nmap自己隨機挑選主機進行掃描。
-p端口,這個選項讓你選擇要進行掃描的端口號的範圍。可使用逗號分隔多個端口,減號連接一個端口範圍,在列表前指定T:表示TCP端口,U:表示UDP端口
-exclude排除指定主機。
-excludefile排除指定文件中的主機。

端口的三種狀態:

Open:意味着目標主機能夠在這個端口使用accept()系統調用接受連接。

filtered:表示防火牆、包過濾和其它的網絡安全軟件掩蓋了這個端口,禁止nmap探測其是否打開。

unfiltered:表示這個端口關閉,並且沒有防火牆/包過濾軟件來隔離nmap的探測企圖。

舉例說明:

1、探測指定網段是否有FTP服務的主機,不做DNS反向解析

nmap -sS –n –p 21192.168.0.0/24

2、探測指定服務器是否啓有特定端口的服務

nmap –n –p T:21-25,80,110,3389–sS 192.168.0.1

3、使用TCP連接掃描探測指定服務器,即使無法ping通也仍然繼續探測

4、nmap -sT –PO 192.168.0.1

5、探測指定服務器的操作系統類型

nmap –O –n 192.168.0.1

6、探測局域網段中各主機開啓了哪些服務

nmap –sS 192.168.0.0/24

7、探測192.168.0.0和172.16.0.0/16網段中有哪些主機在運行

nmap –sP –n 192.168.0.0/24 172.16.0.0/16

8、快速掃描主機開放端口

nmap -F 192.168.0.1

2、TCPDump工具

主要功能:捕獲和分析數據包。

TcpDump可以將網絡中傳送的數據包的“頭”完全截獲下來提供分析。它支持針對網絡層、協議、主機、網絡或端口的過濾,並提供 and、or、not等邏輯語句來幫助你去掉無用的信息。

命令格式:tcpdump [ 選項 ] [ -c 數量 ] [ -i 網絡接口 ] [ -w 文件名 ] [ 表達式 ]

常用選項:

-l:使標準輸出變爲緩衝行形式;

-c:抓包次數;

-nn:直接以 IP 及 Port Number 顯示,而非主機名與服務名稱;

-s :<數據包大小> 設置每個數據包的大小;

-i:指定監聽的網絡接口;

-r:從指定的文件中讀取包;

-w:輸出信息保存到指定文件;

-a:將網絡地址和廣播地址轉變成名字;

-d:將匹配信息包的代碼以人們能夠理解的彙編格式給出;

-e:在輸出行打印出數據鏈路層的頭部信息;

-f:將外部的Internet地址以數字的形式打印出來;

-t:在輸出的每一行不打印時間戳;

-v :輸出稍微詳細的報文信息;加一個v更詳細。


四種表達式:過濾報文條件

1、 關於類型的關鍵字,主要包括host,net,port, 例如 host210.27.48.2,指明 210.27.48.2是一臺主機,net 202.0.0.0 指明202.0.0.0是一個網絡地址,port 23 指明端口號是23。如果沒有指定類型,缺省的類型是host。

2、 確定傳輸方向的關鍵字,主要包括src, dst ,dst or src, dst and src ,這些關鍵字指明瞭傳輸的方向。例如 src210.27.48.2 ,指明ip包中源地址是210.27.48.2, dst net 202.0.0.0 指明目的網絡地址是202.0.0.0 。如果沒有指明方向關鍵字,則缺省是src or dst關鍵字。

3、協議的關鍵字,主要包括ip,arp,tcp,udp等類型。

4、三種邏輯運算,與運算是'and','&&'; 或運算是'or' ,'||'; 非運算是 'not ' '! '。

其他重要的關鍵字如下: broadcast,less(小於),greater(大於)

舉例說明:

1、截獲eth0網卡10次收發所有數據包並將抓包結果保存到test文件,再讀取test抓包結果文件

tcpdump –i eth0 –c 10 –w test

tcpdump –r test

2、截獲來訪問80端口的所有數據包(指定端口範圍portrange 1-1024)

tcpdump port 80

3、截獲所有來自主機114.254.151.51的進出所有數據包

tcpdump host 114.254.151.51

4、截獲ip包中源地址是114.254.151.51的(目的是dst)

tcpdump src 114.254.151.51

5、截獲主機114.254.151.51和主機114.254.151.52的通信

tcpdum host 114.254.151.51 and 114.254.151.52

6、截獲tcp協議並且源地址114.254.151.51來訪問80的端口

tcpdump tcp and src 114.254.151.51 and port 80

7、截獲主機114.254.151.51除了和114.254.151.52之外的所有ip包

tcpdump ip host 114.254.151.51 and ! 114.254.151.52

8、截獲長度大於1000數據包,對於DDOS***時,可以使用

tcpdump greater 1000


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章