如何发送损坏的 netbios 数据包

如何发送损坏的 netbios 数据包

我想向我的机器发送一个损坏的 netbios 会话服务数据包,我的目标是检查我的机器在收到损坏的 netbios 数据包后是否重新启动(这以前发生过,我想重现同样的情况)。

我在用斯卡皮这是一个 Python 工具,它首先与端口 139 的机器建立连接,然后我发送一个NBT会话()数据包到机器。

在 wireshark 跟踪中,我看到会话已建立,但是当我尝试使用 NBTSession() 层发送数据包时,wireshark 跟踪显示它是NBSS 延续消息

from scapy.all import *

def nbt_func():
        nb=NBTSession(TYPE=0x81,RESERVED=10,LENGTH=2000)
        rnb=Raw(nb)
        s=socket.socket()
        s.connect(("10.62.147.30",139))
        ss=StreamSocket(s,Raw)
        s.sr1(rnb)

if __name__ == "__main__":
        nbt_func()

知道为什么会发生这种情况吗?或者是否有其他方法可以重现该问题?

我在 NBTSession() 字段中给出了一些随机值,因为我认为给出错误的值可能意味着损坏数据包。

谢谢您的帮助。

答案1

损坏的包在第 5 层以上并没有完全格式化:)它甚至可能是损坏的 IP 头,因此您无法使用高级库创建损坏的包。

可以提出的一个好方法是使用 netcat 连接到您的服务器并从 /dev/urandom 发送一些垃圾:

cat /dev/urandom | nc 10.62.147.30 139

相关内容