一、NMap工具html
主要功能:探測主機是否在線、掃描主機開放端口和嗅探網絡服務,用於網絡探測和安全掃描。安全
NMap支持不少掃描技術,例如:UDP、TCPconnect()、TCPSYN(半開掃描)、ftp代理(bounce攻擊)、反向標誌、ICMP、FIN、ACK掃描、SYN掃描和null掃描。服務器
命令格式:Nmap [ 掃描類型 ] [ 通用選項 ] { 掃描目標說明 }網絡
掃描類型:less
-sTtcp |
TCP connect()掃描,這是最基本的TCP掃描方式,用來創建一個TCP鏈接,若是成功則認爲目標端口正在監聽,不然認爲目標端口沒有監聽程序。這種掃描很容易被檢測到,在目標主機的日誌中會記錄大批的鏈接請求以及錯誤信息。工具 |
-sS測試 |
TCP同步掃描(TCP SYN),只向目標發出SYN數據包,若是收到SYN/ACK響應包就認爲目標端口正在監聽,並當即斷開鏈接;不然認爲目標端口沒有監聽程序。因此這項技術一般稱爲半開掃描(half-open)。這項技術最大的好處是,不多有系統可以把這記入系統日誌。不過,你須要root權限來定製SYN數據包。spa |
-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 <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 |
排除指定主機。 |
-exclude file |
排除指定文件中的主機。 |
端口的三種狀態:
Open:意味着目標主機可以在這個端口使用accept()系統調用接受鏈接。
filtered:表示防火牆、包過濾和其它的網絡安全軟件掩蓋了這個端口,禁止nmap探測其是否打開。
unfiltered:表示這個端口關閉,而且沒有防火牆/包過濾軟件來隔離nmap的探測企圖。
舉例說明:
一、探測指定網段是否有FTP服務的主機,不作DNS反向解析
nmap -sS –n –p 21192.168.0.0/24
二、探測指定服務器是否啓有特定端口的服務
nmap –n –p T:21-25,80,110,3389–sS 192.168.0.1
三、使用TCP鏈接掃描探測指定服務器,即便沒法ping通也仍然繼續探測
四、
nmap -sT –PO 192.168.0.1
五、探測指定服務器的操做系統類型
nmap –O –n 192.168.0.1
六、探測局域網段中各主機開啓了哪些服務
nmap –sS 192.168.0.0/24
七、探測192.168.0.0和172.16.0.0/16網段中有哪些主機在運行
nmap –sP –n 192.168.0.0/24 172.16.0.0/16
八、快速掃描主機開放端口
nmap -F 192.168.0.1
二、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更詳細。
四種表達式:過濾報文條件
一、關於類型的關鍵字,主要包括host,net,port, 例如 host210.27.48.2,指明 210.27.48.2是一臺主機,net 202.0.0.0 指明202.0.0.0是一個網絡地址,port 23 指明端口號是23。若是沒有指定類型,缺省的類型是host。
二、肯定傳輸方向的關鍵字,主要包括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關鍵字。
三、協議的關鍵字,主要包括ip,arp,tcp,udp等類型。
四、三種邏輯運算,與運算是'and','&&'; 或運算是'or' ,'||'; 非運算是 'not ' '! '。
其餘重要的關鍵字以下: broadcast,less(小於),greater(大於)
舉例說明:
一、截獲eth0網卡10次收發全部數據包並將抓包結果保存到test文件,再讀取test抓包結果文件
tcpdump –i eth0 –c 10 –w test tcpdump –r test
二、截獲來訪問80端口的全部數據包(指定端口範圍portrange 1-1024)
tcpdump port 80
三、截獲全部來自主機114.254.151.51的進出全部數據包
tcpdump host 114.254.151.51
四、截獲ip包中源地址是114.254.151.51的(目的是dst)
tcpdump src 114.254.151.51
五、截獲主機114.254.151.51和主機114.254.151.52的通訊
tcpdum host 114.254.151.51 and 114.254.151.52
六、截獲tcp協議而且源地址114.254.151.51來訪問80的端口
tcpdump tcp and src 114.254.151.51 and port 80
七、截獲主機114.254.151.51除了和114.254.151.52以外的全部ip包
tcpdump ip host 114.254.151.51 and ! 114.254.151.52
八、截獲長度大於1000數據包,對於DDOS攻擊時,可使用
tcpdump -i eth0 greater 1000