工具推薦:最好用的pCap工具
在計算機網路管理中,pcap(packet capture)由捕獲網路流量的應用程序編程介面(API)組成。類Unix的系統主要是在libpcap庫中實現pcap,而Windows系統則是使用名為WinPcap的libpcap埠。
監控軟體可能會使用libpcap或WinPcap捕獲通過網路傳播的數據包,並在較新版本中鏈路層的網路上傳輸數據包,以及獲取可能與libpcap或WinPcap一起使用的網路介面列表。pcap API是用C編寫的,所以其他語言,如Java,.NET語言以及腳本語言通常需要使用封裝器,libpcap或WinPcap本身並不提供封裝。而C++程序則可以直接鏈接到C API或使用面向對象的封裝器。
libpcap和WinPcap提供了許多開源和商業網路工具的數據包捕獲和過濾引擎,包括協議分析器(數據包嗅探器)、網路監視器、網路入侵檢測系統、流量生成器和網路測試器。libpcap和WinPcap還支持將捕獲的數據包保存到文件中,並讀取包含保存的數據包的文件; 使用libpcap或WinPcap可以編寫應用程序,就能夠很好的捕獲網路流量並對其進行分析,或使用相同的分析代碼讀取保存的捕獲並進行分析。以libpcap和WinPcap使用的格式保存的捕獲文件可以由能夠讀取該格式的應用程序(如tcpdump,Wireshark,CA NetMaster或Microsoft Network Monitor 3.x)進行讀取。
libpcap和WinPcap創建和讀取的文件格式的MIME類型為application / vnd.tcpdump.pcap。典型的文件擴展名是.pcap,除此之外.cap和.dmp也是常用的。
流量監控
Nload
nload是個很好用的一個工具,功能也很強。只是相對單一,只能查看總的流量,不能像iptraf那樣,可針對IP,協議等。可以實時地監控網卡的流量,分Incoming和Outgoing兩部分,也就是流入與流出的流量。
Iftop
Iftop可以測量通過單個套接字連接流動的數據,它的工作方式與Nload不同。Iftop使用pcap庫來捕獲進出網路適配器的數據包,然後總結大小和計數,以查找正在使用的總帶寬。雖然iftop可以報告單個連接使用的帶寬,但它不能報告特定套接字連接中涉及的進程名稱。但是,基於pcap庫,iftop可以過濾流量並根據篩選器指定的所選主機連接報告帶寬使用情況。
Jnettop
Jnettop是一個流量顯示器,它可以捕獲通過其正在運行的主機的流量,並顯示按帶寬排序的流量。
Iptraf
Iptraf是一款互動多彩的IP Lan顯示器,它可以顯示單個連接和數據在主機之間流動的數量。
Nethogs
NetHogs是一個小型的net top工具,不像大多數工具那樣拖慢每個協議或者是每個子網的速度而是按照進程進行帶寬分組.NetHogs不需要依賴載入某個特殊的內核模塊. 如果發生了網路阻塞你可以啟動NetHogs立即看到哪個PID造成的這種狀況.這樣就很容易找出哪個程序跑飛了然後突然佔用你的帶寬。
Bmon
Bmon(Bandwidth Monitor)是一種類似於nload的工具,可以顯示系統上所有網路介面的流量負載。其輸出還包括一個圖形和一個具有數據包級細節的部分。
Slurm
Slurm也是一個網路負載監視器,它可以顯示設備統計信息以及ascii圖。其支持3種不同風格的圖形,每種都可以使用c、s和l鍵激活。不過,slurm不顯示有關網路負載的任何進一步的細節。
Tcptrack
Tcptrack類似於iftop,並使用pcap庫來捕獲數據包並計算各種統計信息,比如每個連接中使用的帶寬。它還支持可用於監視特定連接的標準pcap過濾器。
Vnstat
Vnstat與大多數其他工具有所不同。它實際上是在運行後台服務/守護進程,並始終記錄數據傳輸的大小,依據此,它可以用於生成網路使用歷史的報告。
Bwm-ng
Bwm-ng(下一代帶寬監視器)是另一個非常簡單的實時網路負載監視器,主要用於報告數據傳輸到系統中所有可用網路介面的速度的匯總。
CBM
一個小型的帶寬監視器,可以通過網路介面顯示流量。除此之外並沒有其他選擇,只是流量統計顯示和實時更新。
Speedometer
一個小而簡單的工具,可以通過一個給定的界面繪製出流量和流出量的好看圖。
Pktstat
Pktstat可以實時顯示所有活動連接,以及通過它們傳輸數據的速度。它還會顯示連接的類型,即tcp或udp,以及有關http請求的詳細信息。
Netwatch
Netwatch是netdiag工具集合的一部分,它也顯示了本地主機和其他遠程主機之間的連接以及數據在每個連接上傳輸的速度。
Trafshow
和netwatch和pktstat一樣,trafshow可以報告當前的活動連接以及它們的協議和每個連接上的數據傳輸速度。除此之外,它可以使用pcap類型的過濾器過濾掉連接。
netload
netload命令只顯示當前流量負載的小節,以及從程序啟動以來傳輸的總位元組數。除此之外它沒有更多的功能,它是netdiag的一部分。
ifstat
ifstat能夠以批量樣式模式報告網路帶寬。其輸出的格式是使用其他程序或實用程序易於日誌和解析的格式。
Dstat
Dstat是一個多功能工具(用python編寫的),可以監視不同的系統統計信息,並以批量樣式模式報告,或將數據記錄到csv或類似文件。此示例顯示如何使用dstat來報告網路帶寬
Collectl
Collectl以類似於dstat的風格報告系統統計信息,像dstat一樣,它收集了有關各種不同系統資源(如cpu,內存,網路等)的統計信息。以下簡單介紹如何使用它來報告網路使用/帶寬。
流量捕獲
Libpcap / Tcpdump
TcpDump可以將網路中傳送的數據包完全截獲下來提供分析。它支持針對網路層、協議、主機、網路或埠的過濾,並提供and、or、not等邏輯語句來幫助你去掉無用的信息。
Ngrep
Ngrep致力於提供GNU grep的大部分常見功能,並將其應用於網路層。ngrep是一個pcap感知工具,它允許你指定擴展的常規或十六進位表達式以匹配數據包的數據有效負載。目前其主要通過乙太網,PPP,SLIP,FDDI,令牌環和空介面識別TCP,UDP和ICMP,並以與更常見的數據包嗅探工具(如tcpdump和snoop)相同的方式了解bpf過濾器邏輯。
TTT
Tele Traffic Tapper(TTT)是tcpdump的另一個後代,但它能夠進行實時的圖形和遠程流量監控。ttt並不會替代tcpdump,而是可以幫助你更好的了解使用tcpdump的內容。它會監控網路,並在時間窗口內自動選擇流量的主要貢獻者。其圖表默認情況下每秒更新一次。
n2disk
n2disk是網路流量記錄器應用程序,其是具有索引功能的千兆網路流量記錄器。使用n2disk,你可以從實時網路介面以千兆位速率(如果硬體足夠支撐的話可以達到高於10000兆/秒)捕獲全尺寸網路數據包,並將其寫入文件而不會丟失任何數據包。n2disk的設計會使用於將文件寫入磁碟的時間很長,你必須指定在執行過程中可能寫入的不同文件的最大數量,並且如果n2disk達到最大文件數,則它將開始從最後的開始,你可以對固定的時間窗口內的流量進行完整的查看。
PF_RINGPF_RING
PF_RING是一種新型的網路套接字,可顯著提高數據包捕獲速度,具有以下屬性:可用於Linux內核2.6.32及更高版本。其不需要修補內核,只需載入內核模塊。
jNetPcap
jNetPcap適用於Linux和Windows的Java數據包捕獲庫。jNetPcap可以直接使用libpcap WinPcap,也可以利用Java Native Interface(JNI)來使用libpcap / WinPcap提供的功能。
流量分析
Wireshark
精心設計的工具套件支持數據包分析器和協議解碼器。它還包括一些實用的工具和腳本從而可以使其支持大多數常見的用法。
WANDA
精心收集的基於libtrace構建的工具,可以用來處理網路流量。
Tcptrace
俄亥俄大學Shawn Ostermann寫的一個工具,用於分析TCP轉儲文件。它可以輸入由幾個流行的數據包捕獲程序生成的文件,包括tcpdump,snoop,etherpeek,HP Net Metrix以及WinDump。tcptrace可以產生幾種不同類型的輸出,其中包含每個鏈接上的信息,例如已發送和接收的經過時間,位元組和段,重傳,往返時間,窗口廣告,吞吐量等。除此之外,它還可以生成一些圖表進行進一步分析。
Tstat
是一個無源嗅探器,其能夠通過大量流量特徵為網路和傳輸層面的流量模式提供多種說明。
Tcpsplit
Tcpsplit會將單個libpcap數據包追蹤分解為若干子追蹤,其可沿TCP連接邊界打破追蹤,以使TCP連接不會跨兩個子追蹤分割。這對於使大型追蹤文件很容易就可以進行深入分析和子集追蹤,以及僅在部分追蹤上進行分析非常有用。
Tcpflow
Tcpflow可以捕獲作為TCP連接(流)的一部分傳輸的數據的程序,並以方便協議分析或調試的方式存儲數據。像tcpdump這樣的程序可以顯示在線上看到的數據包的摘要,但通常不存儲實際傳輸的數據。相比之下,tcpflow能夠重建實際的數據流,並將每個流存儲在一個單獨的文件中供以後分析。
Tcpreplay
Tcpreplay可以使用libnet在介面上重播pcap文件。
Tcpstat
Tcpstat可以報告某些網路介面統計信息,非常像vmstat對系統統計信息。其可以通過監視特定介面或通過從文件讀取以前保存的tcpdump數據來獲取其信息。
Tcplook
Tracelook是一個Tcl / TK程序,用於以圖形方式查看使用-w參數創建的追蹤文件的內容到tcpdump。其應該能夠查看所有協議,但目前只能夠查看TCP連接。雖然程序緩慢,但卻會使使用系統資源的效果非常出色。
Tcpdpriv
Tcpdpriv是能夠從網路介面(或使用-w參數創建的追蹤文件到tcpdump)收集的數據包中消除機密信息(用戶數據和地址)的程序。Tcpdpriv可以刪除TCP和UDP的有效載荷,以及其他協議的整個IP有效載荷。其實現了幾種地址加擾方法; 順序編號方法及其變體,以及具有保留地址前綴的散列方法。
Tcpslice
Tcpslice是用於提取使用tcpdump的-w標誌生成的數據包追蹤文件的部分的工具。它可以組合多個追蹤文件,和/或基於時間提取一個或多個追蹤的部分。
TCP-Reduce
TCP-Reduce是Bourne shell腳本的集合,用於將tcpdump追蹤減少到追蹤中存在的每個TCP連接的一行摘要,腳本僅查看TCP SYN / FIN / RST數據包。追蹤中沒有SYN數據包的連接(如追蹤開始時的連接)不會在摘要中顯示。報告的垃圾郵件(其中一些內容丟失)會通知給stderr為bogon,並被丟棄。有時候腳本會被重新傳輸然後改變了序列號,並且報告了錯誤連接的大小 :總是檢查大型連接(例如100 MB或更多)的可信度。
dpkt
Python數據包創建/解析庫。
Pcap2har
使用庫dpkt將.pcap網路捕獲文件轉換為HTTP存檔文件的程序。
LibnetLibnet
這是收集常式以幫助構建和處理網路數據包。它為低級網路數據包整形,處理和注入提供了攜帶型框架。Libnet在IP層和鏈路層提供攜帶型數據包創建介面,以及一系列補充和補充功能。
LibnidsLibnids
由拉斐爾·沃傑徹蘇克設計,是網路入侵檢測系統的E-組件的實現。它可以模擬Linux 2.0.x的IP堆棧、並提供IP碎片整理、TCP流裝配和TCP埠掃描檢測。libnids最有價值的功能是可靠性,研究人員對其進行了一些測試,證明了libnids可以儘可能地預測受保護的Linux主機的行為。
ECapEcap
具有Web前端的分布式網路嗅探器。
HttpSniffer
一個多線程工具,用於從PCAP文件中嗅探TCP流統計信息和嵌入式HTTP頭。攜帶HTTP的每個TCP流都以JSON格式導出到文本文件。
AIEngine
AIEngine是下一代互動/可編程數據包檢測引擎,具有學習功能,無需任何人為干預。其具有NIDS功能,DNS域分類,網路收集器等等。AIEngine還幫助網路/安全專業人員識別流量並開發簽名,以便在NIDS,防火牆,流量分類器等上使用它們。
Network Expect
Network Expect是一個允許輕鬆構建可與網路流量交互的工具的框架。根據腳本,可以將流量注入到網路中,並且可以基於接收到的網路流量進行決策並採取行動。解釋語言提供分支和高級控制結構以指導與網路的交互。Network Expect使用libpcap進行數據包捕獲和libwireshark(來自Wireshark項目)進行數據包解析任務。
Socket Sentry
Socket Sentry是一個KDE等離子體的實時網路流量監控器,與iftop和netstat等工具一樣。
Sniff
能夠使tcpdump程序的輸出更容易閱讀和解析的程序。
EtherApe
EtherApe是乙太網模擬的Unix的圖形網路監視器。具有鏈路層,IP和TCP模式,以圖形方式顯示網路活動,其中主機和鏈接的大小隨流量而變化,並且是利用彩色編碼協議來顯示。它支持乙太網,FDDI,令牌環,ISDN,PPP和SLIP設備。它可以過濾要顯示的流量,並且可以從文件讀取流量,也可以從網路中獲取流量。
Snort
由Sourcefire開發的,現在由思科擁有的開源網路入侵防禦和檢測系統(IDS / IPS)。其結合了簽名,協議和基於異常檢測的優勢,Snort是全球最廣泛部署的IDS / IPS技術。擁有數百萬的下載量和約50萬註冊用戶,目前已成為IPS的實際標準。
ScapyScapy
強大的互動式數據包處理程序。它能夠偽造或解碼大量協議的數據包,將其發送到線上,捕獲它們,匹配請求和回復等等。它可以輕鬆地處理大多數經典任務,如掃描,示蹤,探測,單元測試,攻擊或網路發現(可以替代hping,nmap的85%,arpspoof,arp-sk,arping,tcpdump,tethereal,p0f等)。在其他大多數工具無法處理的許多其他特定任務中也可以執行得很好,例如發送無效幀,注入自己的802.11幀,組合技術(VLAN跳頻+ ARP緩存中毒,WEP加密通道上的VOIP解碼... )等
Bro
Bro是基於Unix的開放源代碼網路入侵檢測系統(NIDS),被動地監控網路流量並尋找可疑活動。Bro通過首先解析網路流量來提取其應用程序級語義,然後執行面向事件的分析器來檢測入侵,該分析器將活動與被認為很麻煩的模式進行比較。其分析包括檢測特定的攻擊(包括由簽名定義的攻擊,以及由事件定義的攻擊)和異常活動(例如,連接到某些服務的某些主機或連接嘗試失敗的模式)。
Ntop
Ntop是一個網路流量探測器,它能夠顯示網路使用情況,類似於那些受歡迎的頂級Unix命令。ntop是基於libpcap的,它以攜帶型方式編寫,以便其可以在每個Unix平台和Win32上都能夠運行。
CoralReef
CoralReef是由CAIDA開發的用於分析被動互聯網流量監視器收集的數據的軟體套件。它提供了一個編程庫libcoral,類似於libpcap,具有ATM和其他網路類型的擴展,可從C和Perl獲得。該軟體目前支持使用OC3mon和OC12mon卡實時收集流量數據的專用PC盒,以及從pcap tracefiles讀取。版本3.4即將發布,支持通過bpf啟用的設備進行偵聽。CoralReef包括驅動程序,分析,Web報表生成,示例和捕獲軟體。該包由CAIDA開發人員在互聯網測量社區的支持和協作下維護。
Xplot
xplot是在20世紀80年代末寫的,支持對TCP數據包追蹤的分析。
Multitail
MultiTail 與 tail 程序比較相似,但其功能更為強大。MultiTail 支持通過在控制台創建多個窗格的形式來同時監視多個文件。不僅如此,MultiTail 還能截獲其他程序的輸出,並對日誌文件進行合并以便更有效地被查看。另外,在使用 MultiTail 查看文件時,你也可以運用它的著色和過濾功能。
Netsniff-ng
Netsniff-ng是一個免費的Linux網路實用程序的工具包。
NetDude
Netdude(NETwork DUmp數據顯示和編輯器)。從他們的網頁你可以看到這樣一句話,「它是一個基於GUI的工具,允許你對tcpdump tracefiles中的數據包進行詳細更改。」
Libcrafter
Libcrafter是一個用於C++的高級庫,旨在使網路數據包的創建和解碼變得更簡單。它能夠製作或解碼大多數常見網路協議的數據包,將其發送到線上,捕獲並匹配請求和回復。
WinPcap
來自Guy Harris的WinPcap和WinDump狀態的消息摘錄。
Sniffer
嗅探器產品系列涵蓋了不同的應用領域(分布式,攜帶型和無線環境)。嗅探器解決方案監控,排除故障,分析,報告和主動管理網路性能。它們確保了整個企業基礎架構(包括所有LAN,WAN和高速拓撲)的峰值性能,從10/100乙太網到最新的高速非同步ATM,千兆和Packet-over SONET(PoS)骨幹網。
Sanitize
Sanitize是五個Bourne shell腳本的集合,可用於減少tcpdump追蹤,通過重新編號主機和剝離數據包內容以解決安全性和隱私問題。其每個腳本都會將tcpdump追蹤文件作為輸入,並以固定列格式生成縮小的ASCII文件。
Ipsumdump
ipsumdump程序將TCP / IP轉儲文件歸結為易於由人類和程序讀取的自描述ASCII格式。Ipsumdump可以從網路介面,tcpdump文件和現有的ipsumdump文件讀取數據包。它將在必要時透明地解壓縮tcpdump或ipsumdump文件。它可以隨機抽取流量,根據其內容過濾流量,匿名IP地址,並按時間戳對來自多個轉儲的數據包進行排序。此外,它可以可選地創建一個包含實際數據包數據的tcpdump文件,並且使用CLICK作為插入模塊也很方便。
Ntopng
Ntopng是原始ntop的下一代版本,一個顯示網路使用情況的網路流量探測器,類似於受歡迎的頂級Unix命令。ntop基於libpcap,它以攜帶型方式編寫,以便在每個Unix平台,MacOSX和Win32上虛擬運行。
文件提取
Xplico
Xplico的目標是從互聯網流量中提取捕獲所包含的應用數據。例如,從pcap文件Xplico提取每個郵件(POP,IMAP和SMTP協議),所有HTTP內容,每個VoIP呼叫(SIP)、FTP、TFTP等。Xplico不是網路協議分析器。Xplico是一個開源網路法醫分析工具(NFAT)。Xplico根據GNU通用公共許可證發布,並在Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported(CC BY-NC-SA 3.0)許可證下發布了一些腳本。
Justniffer
Justniffer是一個網路協議分析器,可以捕獲網路流量並以自定義的方式生成日誌,還可以模擬Apache Web伺服器日誌文件,追蹤響應時間,並從HTTP流量中提取所有「截取」文件。
NetworkMiner
NetworkMiner是Windows的網路取證分析工具(NFAT)(也可用於Linux / Mac OS X / FreeBSD)。NetworkMiner可以用作被動網路嗅探器/數據包捕獲工具,以便檢測操作系統,會話,主機名,打開埠等,而不會在網路上造成任何流量。NetworkMiner還可以解析PCAP文件以進行離線分析,並從PCAP文件重新生成/重組傳輸的文件和證書。
Tcpxtract
Tcpxtract是一種基於文件簽名從網路流量中提取文件的工具。基於文件類型的頁眉和頁腳(有時稱為「雕刻」)提取文件是一種古老的數據恢復技術。Foremost這樣的工具使用這種技術可以從任意數據流中恢復文件,其是專門用於通過網路傳輸的攔截文件的應用。填補類似需求的其他工具有流網和EtherPEG。driftnet和EtherPEG是用於在網路上監控和提取圖形文件的工具,網路管理員通常使用它來警告用戶的互聯網活動。driftnet和EtherPEG的主要局限性在於它們只支持三種文件類型,不需要添加更多方法。他們使用的搜索技術也是不可擴展的,不會跨數據包邊界搜索。
Foremost
Foremost是一個控制台程序,可以根據頭文件,頁腳和內部數據結構來恢復文件。這個過程通常被稱為數據雕刻。最重要的是可以處理圖像文件,例如由dd,Safeback,Encase等生成的文件,或直接在驅動器上。頁眉和頁腳可由配置文件指定,也可以使用命令行開關指定內置文件類型。這些內置類型查看給定文件格式的數據結構,從而實現更可靠和更快速的恢復。
Dsniff
Dsniff是網路審計和滲透測試工具的集合。dsniff、filesnarf、mailsnarf、msgsnarf、urlsnarf以及webspy可以被動地監視網路以獲取有趣的數據(密碼,電子郵件,文件等);arpspoof、dnsspoof和macof則能夠攔截通常對攻擊者不可用的網路流量(例如,由於第2層切換所產生的)。sshmitm和webmitm則能夠通過利用ad-hoc PKI中的弱綁定來實現對重定向的SSH和HTTPS會話的「monkey-in-the-middle」攻擊。
Chaosreade
Chaosreader是可以追蹤TCP / UDP 等會話並從snoop或tcpdump日誌中獲取應用程序數據的免費工具。這是一種「任意蛇」程序,因為它將從網路流量日誌中捕獲的數據獲取telnet會話,FTP文件,HTTP傳輸(HTML,GIF,JPEG,...),SMTP電子郵件等。其可以創建一個鏈接到所有會話詳細信息的html索引文件,包括用於telnet,rlogin,IRC,X11和VNC會話的實時重播程序,並生成圖像報告和HTTP GET / POST內容報告。Chaosreader也可以在獨立模式下運行—調用tcpdump或snoop(如果可用的話)來創建日誌文件,然後處理它們。
Tcpick
Tcpick是一種基於文本模式嗅探器的libpcap,可以追蹤、重組和重新排序tcp流。Tcpick能夠將捕獲的流保存在不同的文件中,或者將它們顯示在終端中,因此可以通過ftp或http來傳輸文件。當連接在不同的顯示模式下關閉時,可以顯示終端上的所有流,如hexdump,hexdump,ascii,只能列印字元串,而它則可以使用raw模式以及顏色模式,這有助於閱讀並更好地理解程序的輸出。實際上它可以處理幾個介面,包括乙太網卡和ppp,追蹤網路用戶正在做什麼是很有用的,並且可以與grep,sed,awk等文本模式工具一起使用。
TAG:嘶吼RoarTalk |
※手機和iPad上的畫畫工具推薦
※推薦兩個好玩又好用的office技能
※傳輸工具類應用推薦:Send Anywhere
※推薦:eBay賣家需要掌握的4種重新定價工具
※推薦一個小而美的 Python 格式化工具
※一個有趣的工具應用推薦
※好物推薦 Kindle
※好物推薦 | 你最喜愛的「大 logo」單品合輯。
※好物推薦 May
※Intel和AMD攜手製造!Kaby Lake-G處理器設備推薦
※推薦Android幾個比較實用的Github開源項目
※Github 項目推薦 用PyTorch 實現 OpenNMT
※推薦兩個好用的APP
※蘋果發布會!推薦9個超好用的iPhone攝影APP!
※推薦十款非常優秀的 HTML5 在線設計工具
※療愈系BBC紀錄片推薦:The Big Life Fix
※玩手機還能健身:索尼Xperia XZ2 Premium推薦
※Google推出度假比價工具,分析歷史數據推薦機票酒店
※Intel 14nm處理器產能不足:HPE推薦客戶換用AMD
※Google 推出 Android 版官方播客應用,支持 AI 智能推薦