? ? 在Linux中輸入命令man tcpdump給出的定義如下所示:
創(chuàng)新互聯(lián)建站專注于余干企業(yè)網(wǎng)站建設,響應式網(wǎng)站,商城建設。余干網(wǎng)站建設公司,為余干等地區(qū)提供建站服務。全流程按需設計,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務
是不是感覺很懵?我們用通俗、形象、學術的表達方式來全方位描述tcpdump:
常用選項如下所示:
1、第一個抓包示例
-i : 指定用來抓包的網(wǎng)絡接口,這個參數(shù)在服務器有多個網(wǎng)卡的時候非常有效
-nn : 不轉(zhuǎn)換協(xié)議和端口號,當tcpdump遇到協(xié)議號或端口號,不需要將這些數(shù)字轉(zhuǎn)換為對應的協(xié)議名稱或端口名稱,如22端口SSH端口,我們希望顯示22,而非SSH
-X : 將協(xié)議頭和包內(nèi)容原原本本的顯示出來,tcpdump會同時以16進制和ASCII的形式進行顯示,在協(xié)議分析時非常好用。
'port 22' : 告訴tcpdump要有選擇的顯示所抓到的包,在該示例中,只顯示源端口或目的端口是22的數(shù)據(jù)包,其他的數(shù)據(jù)包則不顯示。
-c : 用來指定抓包的個數(shù),示例設置的個數(shù)為1,則代表僅抓取一個包之后就退出不再抓包了。
2、-e 增加數(shù)據(jù)鏈路層的頭部信息
? ? 通過兩個命令的輸出對比,可以看到增加-e選項后,輸出的結(jié)果中增加MAC地址信息。而且在輸出內(nèi)容中會有 oui Unknown ,OUI即Organizationally unique identifier(組織唯一標識符),在任何一塊網(wǎng)卡中燒錄的6字節(jié)MAC地址中,前3個字節(jié)體現(xiàn)了OUI,其表明了網(wǎng)卡的制造組織,通常情況下,該標識符是唯一的。在本例中,由于沒有識別出網(wǎng)卡的制造商,因此顯示為Unknown。
3、-l 將輸出變?yōu)樾芯彌_模式
? ? -l的作用是將tcpdump的輸出行為變?yōu)?行緩沖 方式,這樣可以保證tcpdump遇到換行符,就立即將緩沖的內(nèi)容輸出到標準輸出(stdout),方便利用管道或重定向方式進行后續(xù)處理,而不會造成延遲。
? ? 在Linux的標準I/O中提供了 全緩沖 、 行緩沖 、 無緩沖 三種緩沖方式。標準錯誤是不帶緩沖的,而終端設備常為行緩沖,其他默認則為全緩沖。
? ? 在該例中,將tcpdump輸出的內(nèi)容通過管道提取第5列,可以用來查看詳細的連接信息。而如果不加 -l 選項時,則只有當緩沖區(qū)全部占滿時,tcpdump才會將緩沖區(qū)中的內(nèi)容輸出,這樣就有可能導致輸出不連續(xù)的,如果強行結(jié)束,則會影響下一行的完整性。
4、-t 輸出不加時間戳
? ? 在增加選項 -t 選項后,時間23:48:03.193526就消失了。tcpdump默認情況下是按微秒來計時,因此最一個時間精確到了第6位。
5、 -v 顯示詳細信息
? ? 在增加 -v 選項后,會在輸出的內(nèi)容中增加 tos 、 ttl 、 id 、 offset 、 協(xié)議編號 、 總長度 等,如需要理解這些信息,就需要了解TCP/IP協(xié)議中的頭的具體定義了。
6、-F 指定過濾表達式所在的文件
? ? 在第一個示例中,命令行增加了 'port 22' ,而這一項就叫 過濾條件 ,如果設置了過濾條件,則tcpdump只抓取滿足過濾條件的數(shù)據(jù)包。如需要設置較為復雜的過濾條件或復用過濾條件時,這時可以將過濾條件保存為文件,然后通過-F加載該過濾文件。
7、 -w 將原始數(shù)據(jù)包信息保存到文件中
? ? 當我們查看保存的文件時,出現(xiàn)的是亂碼。則代表無法直接查看,很有可能是二進制文件。那么怎么查看保存的文件了?請看下一個示例。
7、 -r 從文件中讀取原始數(shù)據(jù)包
? ? 通過-w和-r選項即可實現(xiàn)抓包的錄制回放功能。
linux抓包命令是“tcpdump”
,可以抓取流動在網(wǎng)卡上的數(shù)據(jù)包,可以將網(wǎng)絡中傳送的數(shù)據(jù)包的“頭”完全截獲下來提供分析;它支持針對網(wǎng)絡層、協(xié)議、主機、網(wǎng)絡或端口的過濾,并提供and、or、not等邏輯語句來幫助你去掉無用的信息。
? 眾所周知,在Windows下開發(fā)運行環(huán)境下,在調(diào)試網(wǎng)絡環(huán)境時,可以可以很方便的借助wireshark等軟件進行抓包分析;并且在linux或者Ubuntu等桌面版里也可以進行安裝抓包工具進行抓包分析,但總有一些情況,無法直接運用工具(比如一些沒有界面的linux環(huán)境系統(tǒng)中),則此時我們就需要使用到最簡單的tcpdump命令進行網(wǎng)絡抓包。
? 一般的,linux下抓包時,抓取特定的網(wǎng)絡數(shù)據(jù)包到當前文件夾下的文件中,再把文件拷貝出來利用Windows下的wireshark軟件進行分析。
tcpdump命令詳解:(簡單舉例)
? 1、抓取到的文件為filename.cap,然后將此文件拷貝到Windows下,使用wireshar打開后,即可對此文件進行分析。
? 2、eth0 是主機的網(wǎng)絡適配器名稱,具體的參數(shù)值可以在linux命令行窗口中通過 ifconfig 指令查詢。
tcpdump,就可以用這個抓包了,具體使用 tcpdump -vvv -nn -port 80 -w /tmp/file,你也可以用man tcpdump 查看此命令的具體使用
NMAP掃描
一款強大的網(wǎng)絡探測利器工具
支持多種探測技術
--ping掃描
--多端口掃描
-- TCP/IP指紋校驗
為什么需要掃描?
以獲取一些公開/非公開信息為目的
--檢測潛在風險
--查找可攻擊目標
--收集設備/主機/系統(tǒng)/軟件信息
--發(fā)現(xiàn)可利用的安全漏洞
基本用法
nmap [掃描類型] [選項] 掃描目標...
常用的掃描類型
常用選項
-sS TCP SYN掃描(半開) 該方式發(fā)送SYN到目標端口,如果收到SYN/ACK回復,那么判斷端口是開放的;如果收到RST包,說明該端口是關閉的。簡單理解就是3次握手只完成一半就可以判斷端口是否打開,提高掃描速度
-sT TCP 連接掃描(全開)
-sU UDP掃描
-sP ICMP掃描
-sV 探測打開的端口對應的服務版本信息
-A 目標系統(tǒng)全面分析 (可能會比較慢)
-p 掃描指定端口
1 ) 檢查目標主機是否能ping通
2)檢查目標主機所開啟的TCP服務
3 ) 檢查192.168.4.0/24網(wǎng)段內(nèi)哪些主機開啟了FTP、SSH服務
4)檢查目標主機所開啟的UDP服務
5 ) 探測打開的端口對應的服務版本信息
6)全面分析目標主機192.168.4.100的操作系統(tǒng)信息
tcpdump
命令行抓取數(shù)據(jù)包工具
基本用法
tcpdump [選項] [過濾條件]
常見監(jiān)控選項
-i,指定監(jiān)控的網(wǎng)絡接口(默認監(jiān)聽第一個網(wǎng)卡)
-A,轉(zhuǎn)換為 ACSII 碼,以方便閱讀
-w,將數(shù)據(jù)包信息保存到指定文件
-r,從指定文件讀取數(shù)據(jù)包信息
常用的過濾條件:
類型:host、net、port、portrange
方向:src、dst
協(xié)議:tcp、udp、ip、wlan、arp、……
多個條件組合:and、or、not
案例1
案例2:使用tcpdump分析FTP訪問中的明文交換信息
1 ) 安裝部署vsftpd服務
2 ) 并啟動tcpdump等待抓包
執(zhí)行tcpdump命令行,添加適當?shù)倪^濾條件,只抓取訪問主機192.168.4.100的21端口的數(shù)據(jù)通信 ,并轉(zhuǎn)換為ASCII碼格式的易讀文本。
3 ) case100作為客戶端訪問case254服務端
4 ) 查看tcpdump抓包
5 ) 再次使用tcpdump抓包,使用-w選項可以將抓取的數(shù)據(jù)包另存為文件,方便后期慢慢分析。
6 ) tcpdump命令的-r選項,可以去讀之前抓取的歷史數(shù)據(jù)文件