Até certo ponto, o scapy pode fazer isso. Por exemplo, você pode modificar o src dst port ou ips, forçar a recomputação do checksum, etc. Eu realmente fiz isso parcialmente com a intenção de modificar pacotes http. No meu caso, a modificação significava inserir dados adicionais (cabeçalhos) que também invalidam os números de seqüência do tcp. No entanto, as alterações mencionadas anteriormente podem ser feitas.
Algum código python que eu usei com o scapy
use o scapy para cheirar e alterar pacotes
Observe que, ao capturar sniffing, o scapy gera uma cópia do pacote original que você modifica e envia enquanto você precisa usar algo como tabelas ip para bloquear o pacote original.
Se o código é algo que você não está interessado, a interface de linha de comando do scapy faz o mesmo