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