Scapy 和 TCP 堆栈:避免我系统的 TCP 堆栈发送 RST
Scapy and TCP stack: avoid the TCP stack of my system to send an RST
我有以下scapy scipt
a=IP(dst="192.168.10.71")/TCP(sport=13998, dport=14010, flags="S", window=1400)
sr1(a)
a=IP(dst="192.168.10.71")/TCP(sport=13998, dport=14010, flags="A", window=1400)
sr1(a)
第一个数据包发送到目标tcp服务器
然后我从TCP服务器收到了一个SYN+ACK:
然后查看我系统的TCP堆栈发送了一个RST TCP数据包,然后我的脚本发送了第二个TCP数据包(ACK),如上面的脚本所示
如何避免我的系统的TCP栈在收到服务器的SYN+ACK后发送RST TCP数据包?并按照脚本中的指示发送我的第二个 TCP 数据包?
顺便说一句,我的 TCP 服务器是:
<?php
$socket = stream_socket_server("tcp://0.0.0.0:14010", $errno, $errstr);
if (!$socket) {
echo "$errstr ($errno)<br />\n";
} else {
echo "SERVER TCP (port 14010) started!";
while ($conn = stream_socket_accept($socket)) {
fwrite($conn, 'The local time is ' . date('n/j/Y g:i a') . "\n");
fclose($conn);
}
fclose($socket);
}
?>
问题的答案如下topic:
应该添加这个 ip table 命令
iptables -A OUTPUT -p tcp --tcp-flags RST RST -s 192.168.2.68 -j DROP
我有以下scapy scipt
a=IP(dst="192.168.10.71")/TCP(sport=13998, dport=14010, flags="S", window=1400)
sr1(a)
a=IP(dst="192.168.10.71")/TCP(sport=13998, dport=14010, flags="A", window=1400)
sr1(a)
第一个数据包发送到目标tcp服务器
然后我从TCP服务器收到了一个SYN+ACK:
然后查看我系统的TCP堆栈发送了一个RST TCP数据包,然后我的脚本发送了第二个TCP数据包(ACK),如上面的脚本所示
如何避免我的系统的TCP栈在收到服务器的SYN+ACK后发送RST TCP数据包?并按照脚本中的指示发送我的第二个 TCP 数据包?
顺便说一句,我的 TCP 服务器是:
<?php
$socket = stream_socket_server("tcp://0.0.0.0:14010", $errno, $errstr);
if (!$socket) {
echo "$errstr ($errno)<br />\n";
} else {
echo "SERVER TCP (port 14010) started!";
while ($conn = stream_socket_accept($socket)) {
fwrite($conn, 'The local time is ' . date('n/j/Y g:i a') . "\n");
fclose($conn);
}
fclose($socket);
}
?>
问题的答案如下topic:
应该添加这个 ip table 命令
iptables -A OUTPUT -p tcp --tcp-flags RST RST -s 192.168.2.68 -j DROP