AWD流量分析(一)

簡介

AWD比賽中我們會進行流量監控,通過linux中的tcpdump進行流量記錄,我們記錄了流量之後可以對他們的攻擊進行流量分析,我們通過wireshark查看流量包對我們哪裏進行了攻擊並且可以對其溯源,然後防禦並且編寫腳本得分。

工具

Wireshark:
是一個網絡封包分析軟件。網絡封包分析軟件的功能是網絡封包,並儘可能顯示出最爲詳細的網絡封包資料。wireshark使用winpcap作爲藉口,直接與網卡進行數據報文交換.

tcpdump:
linux作爲網絡服務器,特別是作爲路由器和網關時,數據的採集和分析是不可少的。tcpdump時linux中強大的網絡數據採集分析工具之一。
用簡單的化來定義tcpdump,就是:dump the traffic on a network,根據使用者的定義對網絡上的數據包進行截獲的包分析工具。

Wireshark分析

TCP三次握手協議

第一次握手:客戶端的應用程序主動打開,並向服務端發出請求報文段。其首部中SYN=1,seq=x。
第二次握手:服務器應用被動打開。若同意客戶端的請求,則發回確認報文。其首部中:SYN=1,ACK=1,ack=x+1,seq=y。
第三次握手:客戶端收到確認報文之後,通知上層應用進程已建立,並向服務器發出確認報文。其首部ACK=1,ack=y+1。
在這裏插入圖片描述

Comparing operators(比較運算符):

英文寫法 C語言寫法 含義
eq == 等於
ne != 不等於
gt > 大於
lt < 小於
ge >= 大於等於
le <= 小於等於

Logical expressions(邏輯運算符):

英文寫法 C語言寫法 含義
and && 邏輯與
or | *2(表格打不了兩個啊難受) 邏輯或
xor ^^ 邏輯異或
not 邏輯非

過濾規則

過濾IP地址

(1) ip.addr == 192.168.1.1 //只顯示源/目的IP爲192.168.1.1的數據包
(2) not ip.src == 1.1.1.1 //不顯示源IP爲1.1.1.1的數據包
(3 ip.src == 1.1.1.1 or ip.dst == 1.1.1.2 //只顯示源IP爲1.1.1.1或目的IP爲1.1.1.2的數據包

過濾端口

(1) tcp.port eq 80 #不管端口是來源還是目的都顯示80端口
(2) tcp.port == 80
(3) tcp.port eq 2722
(4) tcp.port eq 80 or udp.port eq 80
(5) tcp.dstport == 80 #只顯示tcp協議的目標端口80
(6) tcp.srcport == 80 #只顯示tcp協議的來源端口80
(7) udp.port eq 15000
(8) tcp.port >= 1 and tcp.port <= 80 #過濾端口範圍

過濾MAC地址

(1) eth.dst == MAC地址 #過濾目標MAC
(2) eth.src eq MAC地址 #過濾來源MAC
(3)eth.addr eq MAC地址 #過濾來源MAC和目標MAC都等於MAC地址的

http請求方式過濾

(1) http.request.method == “GET”
(2) http.request.method == “POST”
(3) http.host mathes “www.baidu.com|baidu.cn” #matches可以寫多個域名
(4) http.host contains “www.baidu.com” #contain只能寫一個域名
(5) http contains “GET”
例如:
http.request.method ==“GET” && http contains "Host: "
http.request.method == “GET” && http contains "User-Agent: "
http.request.method ==“POST” && http contains "Host: "
http.request.method == “POST” && http contains "User-Agent: "
http contains “HTTP/1.1 200 OK” && http contains "Content-Type: "
http contains “HTTP/1.0 200 OK” && http contains "Content-Type: "

TCPdump分析

tcpdump採用命令行方式,它的命令格式爲:tcpdump [-adeflnNOpqStvx0] [-c 數量]
[-F 文件名] [-i 網絡接口]
[-r 文件名] [-s snaplen]
[-T 類型] [-w 文件名] [表達式]

基本界面

在這裏插入圖片描述

詳細參數:

抓包選項: 作用
-c: 指定要抓取的包數量。
-i interface: 指定tcpdump需要監聽的接口。默認會抓取第一個網絡接口
-n :對地址以數字方式顯式,否則顯式爲主機名,也就是說-n選項不做主機名解析。
-nn: 除了-n的作用外,還把端口顯示爲數值,否則顯示端口服務名。
-P: 指定要抓取的包是流入還是流出的包。可以給定的值爲"in"、“out"和"inout”,默認爲"inout"。
-s len: 設置tcpdump的數據包抓取長度爲len,如果不設置默認將會是65535字節。對於要抓取的數據包較大時,長度設置不夠可能會產生包截斷,若出現包截斷,輸出行中會出現"[proto]"的標誌(proto實際會顯示爲協議名)。但是抓取len越長,包的處理時間越長,並且會減少tcpdump可緩存的數據包的數量,從而會導致數據包的丟失,所以在能抓取我們想要的包的前提下,抓取長度越小越好。
輸出選項: 作用
-e: 輸出的每行中都將包括數據鏈路層頭部信息,例如源MAC和目標MAC。
-q: 快速打印輸出。即打印很少的協議相關信息,從而輸出行都比較簡短。
-X: 輸出包的頭部數據,會以16進制和ASCII兩種方式同時輸出。
-XX: 輸出包的頭部數據,會以16進制和ASCII兩種方式同時輸出,更詳細。
-v: 當分析和打印的時候,產生詳細的輸出。
-vv: 產生比-v更詳細的輸出。
-vvv: 產生比-vv更詳細的輸出。
其他功能性選項: 作用
-D: 列出可用於抓包的接口。將會列出接口的數值編號和接口名,它們都可以用於"-i"後。
-F: 從文件中讀取抓包的表達式。若使用該選項,則命令行中給定的其他表達式都將失效。
-w: 將抓包數據輸出到文件中而不是標準輸出。可以同時配合"-G
time 選項使得輸出文件每time秒就自動切換到另一個文件。可通過"-r"選項載入這些文件以進行分析和打印。
-r: 從給定的數據包文件中讀取數據。使用"-"表示從標準輸入中讀取。

端口過濾

抓取所有經過ens33,目的或源端口22的網絡數據:
tcpdump -i ens33 port 22
指定源端口:tcpdump -i ens33 sec port 22
指定目的端口: tcpdump -i ens33 dst port 22

網絡過濾

tcpdump -i ens33 net 192.168.1.1
tcpdump -i ens33 src net 192.168.1.1 #源端口
tcpdump -i ens33 dst net 192.168.1.1 #目的端口

協議過濾

tcpdump -i ens33 arp
tcpdump -i ens33 ip
tcpdump -i ens33 tcp
tcpdump -i ens33 udp
tcpdump -i ens33 icmp
tcpdump -w 1.pcap #抓所有包保存到1.pcap中然後使用wireshark分析 

本文到此也就結束了,如有疑問,可以私信筆者,筆者很樂意解答,由於水平有限,定有所紕漏,還請讀者斧正,寫作不易,還望支持。

2020-03-04
ro4lsc

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章