通过网络欺骗UDP校验和的字节

时间:2017-08-14 14:39:28

标签: python scapy

我正在尝试使用scapy安全工具来欺骗UDP校验和中的ASCII字符。我可以这样做,但只有当我用Hex符号硬编码字节时。但我无法将ASCII字符串字转换为二进制表示法。这可以发送“He”的字节(“Hello world”的前两个字符): sr1(IP(dst=server)/UDP(dport=53, chksum=0x4865)/DNS(rd=1,qd=DNSQR(qname=query)),verbose=0)

但每当我尝试使用test2而不是0x4865的变量时,DNS数据包不会通过网络传输。这应该为这个ASCII创建二进制文件:

test2 = bin(int(binascii.hexlify('He'),16))

sr1(IP(dst=server)/UDP(dport=53, chksum=test2)/DNS(rd=1,qd=DNSQR(qname=query)),verbose=0)

当我打印test2变量时,显示正确的二进制表示法。

如何转换He之类的字符串,以便在scapy接受的校验和表示法中显示0x4865 ??

1 个答案:

答案 0 :(得分:0)

我能够通过删除bin()来实现这一点。这有效:

test2 = int(binascii.hexlify('He'),16)