運維工程師必會工具:Nmap 和 TCPdump

jopen 9年前發布 | 14K 次閱讀 Nmap
 

1、NMap工具

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

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

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

掃描類型:

-sT TCP connect() 掃描,這是最基本的TCP掃描方式,用來建立一個TCP連接,如果成功則認為目標端口正在監聽,否則認為目標端口沒有監聽程序。這種掃描很容易被檢測到,在目標主機的日志中會記錄大批的連接請求以及錯誤信息。
-sS TCP 同步掃描(TCP SYN),只向目標發出SYN數據包,如果收到SYN/ACK響應包就認為目標端口正在監聽,并立即斷開連接;否則認為目標端口沒有監聽程序。所以這項技術通常稱為半開掃描(half-open)。這項技術最大的好處是,很少有系統能夠把這記入系統日志。不過,你需要root權限來定制SYN數據包。
-sF,-sX,-sN 秘密FIN數據包掃描、圣誕樹(Xmas Tree)、空(Null)掃描模式。這些掃描方式的理論依據是:關閉的端口需要對你的探測包回應RST包,而打開的端口必需忽略有問題的包,通過這種掃描,可間接用于檢測防火墻的健壯性。
-sP ping 掃描,用ping方式檢查網絡上哪些主機正在運行。當主機阻塞ICMP  echo請求包是ping掃描是無效的。nmap在任何情況下都會進行ping掃描,只有目標主機處于運行狀態,才會進行后續的掃描。
-sU UDP 掃描,如果你想知道在某臺主機上提供哪些UDP服務,可以使用此選項。
-sA ACK 掃描,這項高級的掃描方法通常可以用來穿過防火墻。
-sW 滑動窗口掃描,非常類似于ACK的掃描。
-sR RPC 掃描,和其它不同的端口掃描方法結合使用。
-b FTP 反彈攻擊(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 在一些情況下,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 排除指定主機。
-exclude file 排除指定文件中的主機。

端口的三種狀態:

  • 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,3389sS 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 -i eth0 greater 1000

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!