作者:李振良
網(wǎng)址:http://lizhenliang.blog.51cto.com/7876557/1361344
1、NMap工具
主要功能:探測主機是否在線、掃描主機開放端口和嗅探網(wǎng)絡(luò)服務(wù),用于網(wǎng)絡(luò)探測和安全掃描。
NMap支持很多掃描技術(shù),例如:UDP、TCPconnect()、TCPSYN(半開掃描)、ftp代理(bounce攻擊)、反向標(biāo)志、ICMP、FIN、ACK掃描、SYN掃描和null掃描。
命令格式:Nmap [ 掃描類型 ] [ 通用選項 ] { 掃描目標(biāo)說明 }
掃描類型:
-sTTCP connect()掃描,這是最基本的TCP掃描方式,用來建立一個TCP連接,如果成功則認為目標(biāo)端口正在監(jiān)聽,否則認為目標(biāo)端口沒有監(jiān)聽程序。這種掃描很容易被檢測到,在目標(biāo)主機的日志中會記錄大批的連接請求以及錯誤信息。
-sSTCP同步掃描(TCP SYN),只向目標(biāo)發(fā)出SYN數(shù)據(jù)包,如果收到SYN/ACK響應(yīng)包就認為目標(biāo)端口正在監(jiān)聽,并立即斷開連接;否則認為目標(biāo)端口沒有監(jiān)聽程序。所以這項技術(shù)通常稱為半開掃描(half-open)。這項技術(shù)最大的好處是,很少有系統(tǒng)能夠把這記入系統(tǒng)日志。不過,你需要root權(quán)限來定制SYN數(shù)據(jù)包。
-sF,-sX,-sN秘密FIN數(shù)據(jù)包掃描、圣誕樹(Xmas Tree)、空(Null)掃描模式。這些掃描方式的理論依據(jù)是:關(guān)閉的端口需要對你的探測包回應(yīng)RST包,而打開的端口必需忽略有問題的包,通過這種掃描,可間接用于檢測防火墻的健壯性。
-sPping掃描,用ping方式檢查網(wǎng)絡(luò)上哪些主機正在運行。當(dāng)主機阻塞ICMP echo請求包是ping掃描是無效的。nmap在任何情況下都會進行ping掃描,只有目標(biāo)主機處于運行狀態(tài),才會進行后續(xù)的掃描。
-sUUDP掃描,如果你想知道在某臺主機上提供哪些UDP服務(wù),可以使用此選項。
-sAACK掃描,這項高級的掃描方法通??梢杂脕泶┻^防火墻。
-sW滑動窗口掃描,非常類似于ACK的掃描。
-sRRPC掃描,和其它不同的端口掃描方法結(jié)合使用。
-bFTP反彈攻擊(bounce attack),連接到防火墻后面的一臺FTP服務(wù)器做代理,接著進行端口掃描。
通用選項:
-n不做反向DNS解析,以加快掃描速度
-P0在掃描之前,不ping主機;有些網(wǎng)絡(luò)防火墻可能禁止ICMP請求包,使用這種掃描類型可以跳過ping測試
-PT掃描之前,使用TCP ping確定哪些主機正在運行。
-PS對于root用戶,這個選項讓nmap使用SYN包而不是ACK包來對目標(biāo)主機進行掃描。
-PI設(shè)置這個選項,讓nmap使用真正的ping(ICMP echo請求)來掃描目標(biāo)主機是否正在運行。
-PB這是默認的ping掃描選項。它使用ACK(-PT)和ICMP(-PI)兩種掃描類型并行掃描。如果防火墻能夠過濾其中一種包,使用這種方法,你就能夠穿過防火墻。
-O這個選項激活對TCP/IP指紋特征(fingerprinting)的掃描,獲得遠程主機的標(biāo)志,也就是操作系統(tǒng)類型。
-I打開nmap的反向標(biāo)志掃描功能。
-f使用碎片IP數(shù)據(jù)包發(fā)送SYN、FIN、XMAS、NULL。包增加包過濾、入侵檢測系統(tǒng)的難度,使其無法知道你的企圖。
-v強烈推薦使用這個選項,它會給出掃描過程中的詳細信息。
-S在一些情況下,nmap可能無法確定你的源地址(nmap會告訴你)。在這種情況使用這個選項給出你的IP地址。
-g port設(shè)置掃描的源端口。一些天真的防火墻和包過濾器的規(guī)則集允許源端口為DNS(53)或者FTP-DATA(20)的包通過和實現(xiàn)連接。顯然,如果攻擊者把源端口修改為20或者53,就可以摧毀防火墻的防護。
-oN把掃描結(jié)果重定向到一個可讀的文件logfilename中。
-oS掃描結(jié)果輸出到標(biāo)準輸出。
-A打開操作系統(tǒng)探測和版本探測。
掃描目標(biāo):
目標(biāo)地址可以為IP地址,CIRD地址等。如192.168.1.2,222.247.54.5/24
-iL filename從filename文件中讀取掃描的目標(biāo)。
-iR讓nmap自己隨機挑選主機進行掃描。
-p端口,這個選項讓你選擇要進行掃描的端口號的范圍??墒褂枚禾柗指舳鄠€端口,減號連接一個端口范圍,在列表前指定T:表示TCP端口,U:表示UDP端口
-exclude排除指定主機。
-excludefile排除指定文件中的主機。
端口的三種狀態(tài):
Open:意味著目標(biāo)主機能夠在這個端口使用accept()系統(tǒng)調(diào)用接受連接。
filtered:表示防火墻、包過濾和其它的網(wǎng)絡(luò)安全軟件掩蓋了這個端口,禁止nmap探測其是否打開。
unfiltered:表示這個端口關(guān)閉,并且沒有防火墻/包過濾軟件來隔離nmap的探測企圖。
舉例說明:
1、探測指定網(wǎng)段是否有FTP服務(wù)的主機,不做DNS反向解析
nmap -sS n p 21192.168.0.0/24
2、探測指定服務(wù)器是否啟有特定端口的服務(wù)
nmap n p T:21-25,80,110,3389sS 192.168.0.1
3、使用TCP連接掃描探測指定服務(wù)器,即使無法ping通也仍然繼續(xù)探測
4、nmap -sT PO 192.168.0.1
5、探測指定服務(wù)器的操作系統(tǒng)類型
nmap O n 192.168.0.1
6、探測局域網(wǎng)段中各主機開啟了哪些服務(wù)
nmap sS 192.168.0.0/24
7、探測192.168.0.0和172.16.0.0/16網(wǎng)段中有哪些主機在運行
nmap sP n 192.168.0.0/24 172.16.0.0/16
8、快速掃描主機開放端口
nmap -F 192.168.0.1
2、TCPDump工具
主要功能:捕獲和分析數(shù)據(jù)包。
TcpDump可以將網(wǎng)絡(luò)中傳送的數(shù)據(jù)包的“頭”完全截獲下來提供分析。它支持針對網(wǎng)絡(luò)層、協(xié)議、主機、網(wǎng)絡(luò)或端口的過濾,并提供 and、or、not等邏輯語句來幫助你去掉無用的信息。
命令格式:tcpdump [ 選項 ] [ -c 數(shù)量 ] [ -i 網(wǎng)絡(luò)接口 ] [ -w 文件名 ] [ 表達式 ]
常用選項:
-l:使標(biāo)準輸出變?yōu)榫彌_行形式;
-c:抓包次數(shù);
-nn:直接以 IP 及 Port Number 顯示,而非主機名與服務(wù)名稱;
-s :<數(shù)據(jù)包大小> 設(shè)置每個數(shù)據(jù)包的大?。?div style="height:15px;">
-i:指定監(jiān)聽的網(wǎng)絡(luò)接口;
-r:從指定的文件中讀取包;
-w:輸出信息保存到指定文件;
-a:將網(wǎng)絡(luò)地址和廣播地址轉(zhuǎn)變成名字;
-d:將匹配信息包的代碼以人們能夠理解的匯編格式給出;
-e:在輸出行打印出數(shù)據(jù)鏈路層的頭部信息;
-f:將外部的Internet地址以數(shù)字的形式打印出來;
-t:在輸出的每一行不打印時間戳;
-v :輸出稍微詳細的報文信息;加一個v更詳細。
四種表達式:過濾報文條件
1、關(guān)于類型的關(guān)鍵字,主要包括host,net,port, 例如 host210.27.48.2,指明 210.27.48.2是一臺主機,net 202.0.0.0 指明202.0.0.0是一個網(wǎng)絡(luò)地址,port 23 指明端口號是23。如果沒有指定類型,缺省的類型是host。
2、確定傳輸方向的關(guān)鍵字,主要包括src, dst ,dst or src, dst and src ,這些關(guān)鍵字指明了傳輸?shù)姆较?。例?src210.27.48.2 ,指明ip包中源地址是210.27.48.2, dst net 202.0.0.0 指明目的網(wǎng)絡(luò)地址是202.0.0.0 。如果沒有指明方向關(guān)鍵字,則缺省是src or dst關(guān)鍵字。
3、協(xié)議的關(guān)鍵字,主要包括ip,arp,tcp,udp等類型。
4、三種邏輯運算,與運算是’and’,'&&’; 或運算是’or’ ,’||’; 非運算是 ‘not ‘ ‘! ‘。
其他重要的關(guān)鍵字如下: broadcast,less(小于),greater(大于)
舉例說明:
1、截獲eth0網(wǎng)卡10次收發(fā)所有數(shù)據(jù)包并將抓包結(jié)果保存到test文件,再讀取test抓包結(jié)果文件
tcpdump i eth0 c 10 w test
tcpdump r test
2、截獲來訪問80端口的所有數(shù)據(jù)包(指定端口范圍portrange 1-1024)
tcpdump port 80
3、截獲所有來自主機114.254.151.51的進出所有數(shù)據(jù)包
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協(xié)議并且源地址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數(shù)據(jù)包,對于DDOS攻擊時,可以使用
tcpdump -i eth0 greater 1000