簡介
本文檔介紹使用TCP重播來重放資料包捕獲工具儲存的PCAP檔案的網路流量。
拓撲
必要條件
- 具有Kali Linux和兩個NIC的虛擬機器
- FTD(最好由FMC管理)
- Linux運行命令的知識。
背景資訊
TCP重播是用於重播來自資料包捕獲工具(如wireshark或TCPdump)儲存的pcap檔案的網路流量的工具。在需要複製流量以測試網路裝置上的結果的情況下,它可能會很有用。
TCP重播的基本操作是從輸入檔案重新傳送所有資料包,其速度為記錄速度或指定資料速率,最高為硬體所能提供的速度。
執行此過程還有其它方法,但本文的目的是實現TCP重放,而無需中間路由器。
實現
FTD組態:
1.使用資料包捕獲上同一網段上的IP配置內部/外部介面:
- 來源:172.16.211.177
- 目的地:192.168.73.97
FMC > Devices > Device Management > Interfaces > Edit each interface
提示:最佳實踐是將每個介面分配到不同的VLAN中,以使流量保持隔離。
Running-config(示例)
interface Ethernet1/1
nameif Outside
ip address 192.168.73.34 255.255.255.0
!
interface Ethernet1/2
nameif Inside
security-level 0
ip address 172.16.211.34 255.255.255.0
2.配置從主機到其網關的靜態路由和偽造ARP條目,因為這些網關不存在。
FMC > Devices > Device Management > Routes > Select your FTD > Routing > Static Route > Add Route
Running-config(示例)
route Inside 172.16.211.177 172.16.211.100 1
route Outside 192.168.73.97 192.168.73.100 1
使用LinaConfigTool後門配置虛假ARP條目:
- 登入FTD CLI
- 轉到專家模式
- 提升您的許可權(sudo su)
LinaConfigTool組態範例
/usr/local/sf/bin/LinaConfigTool "arp Inside 172.16.211.100 dead.deed.deed"
/usr/local/sf/bin/LinaConfigTool "arp Outside 192.168.73.100 dead.deed.deed"
/usr/local/sf/bin/LinaConfigTool "write mem"
3.禁用equals序列號隨機化。
- 建立延伸存取清單:
Go to FMC > Objects > Access List > Extended > Add Extended Access List
- 使用引數「allow any」建立ACL
- 禁用序列號隨機化:
Go to FMC > Policies > Access Control > Select your ACP > Advanced > Threat Defense Service Policy
- 新增規則並選擇
Global
- 選擇您先前建立的
Extended ACL
- 取消選中
Randomize TCP Sequence Number
Running-config
policy-map global_policy
class class-default
set connection random-sequence-number disable
Linux配置:
- 為每個介面配置IP(這取決於哪個介面屬於內部子網和外部子網)
- ifconfig ethX <ip_address> netmask <mask>
- 示例: ifconfig eth1 172.16.211.35 netmask 255.255.255.0
- (可選)將每個介面配置為不同的VLAN
- 將PCAP檔案傳輸到Kali Linux伺服器(您可以使用tcpdump獲取pcap檔案,在FTD上獲取捕獲等)
- 使用tcpprep建立TCP重放快取文件
- tcpprep -i input_file -o input_cache -c server_ip/32
- 示例: tcpprep -i stream.pcap -o stream.cache -c 192.168.73.97/32
- 使用tcprewrite重寫MAC地址
- tcprewrite -i input_file -o output_file -c input_cache -C —enet-dmac=<ftd_server_interface_mac>,<ftd_client_interface_mac>
- 示例: tcprewrite -i stream.pcap -o stream.pcap.replay -c stream.cache -C —enet-dmac=00:50:56:b3:81:35,00:50:56:b3:63:f4
- 將NIC連線到ASA/FTD
- 使用tcpreplay重播該流
- tcpreplay -c input_cache -i <nic_server_interface> -I <nic_client_interface> output_file
- 示例: tcpreplay -c stream.cache -i eth2 -I eth1 stream.pcap.replay
驗證
在FTD上建立封包擷取,以測試是否封包到達您的介面:
- 在Inside介面上建立資料包捕獲
- cap i interface Inside trace match ip any any
- 在外部介面上建立資料包捕獲
- cap o interface Outside trace match ip any
執行播放,並驗證封包是否到達您的介面:
範例案例
firepower# show cap
capture i type raw-data trace interface Inside interface Outside [Capturing - 13106 bytes]
match ip any any
capture o type raw-data trace interface Outside [Capturing - 11348 bytes]
match ip any any
firepower# show cap i
47 packets captured
1: 00:03:53.657299 172.16.211.177.23725 > 192.168.73.97.443: S 1610809777:1610809777(0) win 8192
2: 00:03:53.657406 172.16.211.177.23726 > 192.168.73.97.443: S 3584167858:3584167858(0) win 8192
3: 00:03:53.803623 192.168.73.97.443 > 172.16.211.177.23726: S 2938484797:2938484797(0) ack 3584167859 win 64240
4: 00:03:53.803806 172.16.211.177.23726 > 192.168.73.97.443: . ack 2938484798 win 258
5: 00:03:53.804172 172.16.211.177.23726 > 192.168.73.97.443: P 3584167859:3584168376(517) ack 2938484798 win 258
firepower# show cap o
29 packets captured
1: 00:03:53.803638 192.168.73.97.443 > 172.16.211.177.23726: S 2938484797:2938484797(0) ack 3584167859 win 64240
2: 00:03:53.808078 192.168.73.97.443 > 172.16.211.177.23725: S 1639088682:1639088682(0) ack 1610809778 win 64240
3: 00:03:53.951717 192.168.73.97.443 > 172.16.211.177.23726: . ack 3584168376 win 501
4: 00:03:53.955776 192.168.73.97.443 > 172.16.211.177.23726: . 2938484798:2938486178(1380) ack 3584168376 win 501
5: 00:03:53.955806 192.168.73.97.443 > 172.16.211.177.23726: P 2938486178:2938487558(1380) ack 3584168376 win 501