Introduction
Este documento descreve a Repetição de TCP para reproduzir o tráfego de rede de arquivos PCAP salvos com ferramentas de captura de pacotes.
Topologia
Requisitos
- VM com Kali Linux e duas NICs
- DTF (de preferência gerido pelo CVP)
- Conhecimento do Linux para executar comandos.
Informações de Apoio
Reprodução de TCPé uma ferramenta usada para reproduzir o tráfego de rede de arquivos pcap salvos com ferramentas de captura de pacotes como o wireshark ou TCPdump. Ele pode ser útil para situações em que você precisa replicar o tráfego para testar o resultado em dispositivos de rede.
A operação básica do TCP Replay é reenviar todos os pacotes do(s) arquivo(s) de entrada na velocidade em que foram gravados, ou uma taxa de dados especificada, até a velocidade em que o hardware é capaz.
Há outros métodos para executar esse procedimento, no entanto, a finalidade deste artigo é obter a Repetição de TCP sem a necessidade de um roteador do meio.
Implementação
Configuração do FTD:
1. Configure as interfaces Internas/Externas com um IP no mesmo segmento que você tem nas capturas de pacotes:
- Fonte: 172.16.211.177
- Destino: 192.168.73.97
FMC > Devices > Device Management > Interfaces > Edit each interface
Dica: é uma prática recomendada atribuir cada interface a uma VLAN diferente para manter o tráfego isolado.
Running-config (exemplo)
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. Configure rotas estáticas dos hosts para seus gateways e falsifique entradas ARP para eles, já que esses são gateways inexistentes.
FMC > Devices > Device Management > Routes > Select your FTD > Routing > Static Route > Add Route
Running-config (exemplo)
route Inside 172.16.211.177 172.16.211.100 1
route Outside 192.168.73.97 192.168.73.100 1
Use o backdoor LinaConfigTool para configurar entradas ARP falsas:
- Faça login na CLI do FTD
- Ir para o modo especialista
- Eleve seus privilégios (sudo su)
Exemplo de configuração da 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. Desative a aleatorização do número de sequência igual.
- Criar uma lista de acesso estendida:
Go to FMC > Objects > Access List > Extended > Add Extended Access List
- Crie a ACL com os parâmetros "allow any any"
- Desabilitar aleatorização de número de sequência:
Go to FMC > Policies > Access Control > Select your ACP > Advanced > Threat Defense Service Policy
- Adicionar regra e selecionar
Global
- Selecione o que você criou anteriormente
Extended ACL
- Desmarcar
Randomize TCP Sequence Number
Running-config
policy-map global_policy
class class-default
set connection random-sequence-number disable
Configuração do Linux:
- Configure o IP para cada interface (com base no que pertence à sub-rede interna e à sub-rede externa)
- ifconfig ethX <ip_address> netmask <mask>
- exemplo: ifconfig eth1 172.16.211.35 netmask 255.255.255.0
- (Opcional) Configure cada interface em uma VLAN diferente
- Transferir o arquivo PCAP para o servidor Linux Kali (Você pode obter o arquivo pcap com tcpdump, capturas no FTD, etc)
- Crie um arquivo de cache de Repetição TCP com tcpprep
- tcpprep -i input_file -o input_cache -c server_ip/32
- exemplo: tcpprep -i stream.pcap -o stream.cache -c 192.168.73.97/32
- Reescreva os endereços MAC com tcprewrite
- tcprewrite -i input_file -o output_file -c input_cache -C —enet-dmac=<ftd_server_interface_mac>,<ftd_client_interface_mac>
- exemplo: 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
- Conectar NICs ao ASA/FTD
- Reproduza o fluxo com tcpreplay
- tcpreplay -c input_cache -i <nic_server_interface> -I <nic_client_interface> output_file
- exemplo: tcpreplay -c stream.cache -i eth2 -I eth1 stream.pcap.replay
Validação
Crie capturas de pacotes no FTD para testar se os pacotes que chegam à interface:
- Criar captura de pacotes na interface interna
- cap i interface Inside trace match ip any any
- Criar captura de pacote na interface externa
- cap o interface Outside trace match ip any any
Execute o tcpreplay e valide se os pacotes chegarem à sua interface:
Cenário de exemplo
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