From c6f1cd7f818627db016233c7a81b0cc32b737460 Mon Sep 17 00:00:00 2001 From: gpotter2 <10530980+gpotter2@users.noreply.github.com> Date: Mon, 18 Aug 2025 14:12:12 +0200 Subject: [PATCH 1/2] Add some missing parameters to TCP_Client --- scapy/layers/inet.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/scapy/layers/inet.py b/scapy/layers/inet.py index a361664a681..32da57058d7 100644 --- a/scapy/layers/inet.py +++ b/scapy/layers/inet.py @@ -2165,16 +2165,19 @@ class TCP_client(Automaton): :param ip: the ip to connect to :param port: :param src: (optional) use another source IP + :param seq: (optional) initial TCP sequence number (default: random) """ - def parse_args(self, ip, port, srcip=None, **kargs): + def parse_args(self, ip, port, srcip=None, seq=None, ack=0, **kargs): from scapy.sessions import TCPSession self.dst = str(Net(ip)) self.dport = port self.sport = random.randrange(0, 2**16) self.l4 = IP(dst=ip, src=srcip) / TCP( sport=self.sport, dport=self.dport, - flags=0, seq=random.randrange(0, 2**32) + flags=0, + seq=seq if seq is not None else random.randrange(0, 2**32), + ack=ack, ) self.src = self.l4.src self.sack = self.l4[TCP].ack From a40acc555d52365bf1ed2379b0c790aa0e9ae416 Mon Sep 17 00:00:00 2001 From: gpotter2 <10530980+gpotter2@users.noreply.github.com> Date: Mon, 18 Aug 2025 14:21:16 +0200 Subject: [PATCH 2/2] Also add source port --- scapy/layers/inet.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scapy/layers/inet.py b/scapy/layers/inet.py index 32da57058d7..6e01c9b253f 100644 --- a/scapy/layers/inet.py +++ b/scapy/layers/inet.py @@ -2165,14 +2165,15 @@ class TCP_client(Automaton): :param ip: the ip to connect to :param port: :param src: (optional) use another source IP + :param sport: (optional) the TCP source port (default: random) :param seq: (optional) initial TCP sequence number (default: random) """ - def parse_args(self, ip, port, srcip=None, seq=None, ack=0, **kargs): + def parse_args(self, ip, port, srcip=None, sport=None, seq=None, ack=0, **kargs): from scapy.sessions import TCPSession self.dst = str(Net(ip)) self.dport = port - self.sport = random.randrange(0, 2**16) + self.sport = sport if sport is not None else random.randrange(0, 2**16) self.l4 = IP(dst=ip, src=srcip) / TCP( sport=self.sport, dport=self.dport, flags=0,