Я хочу отправить поврежденный пакет службы сеанса netbios на свою машину. Моя цель - проверить, перезагружается ли моя машина или нет после получения поврежденного пакета netbios (это уже случалось раньше, и я хочу воспроизвести то же самое).
Я использую чешуйчатый который представляет собой инструмент Python, который сначала устанавливает соединение с машиной через порт 139, а затем я отправляю NBTSession () пакет к машине.
В трассировках wirehark я вижу, что сеанс установлен, но когда я пытаюсь отправить пакет со слоем NBTSession (), трассировки wirehark показывают его Сообщение продолжения 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 (), так как подумал, что, возможно, предоставление неправильных значений означает повреждение пакета.
Спасибо за помощь.
Поврежденные пакеты не совсем отформатированы на уровне 5+ :) Это может быть даже поврежденный заголовок IP, поэтому вы не можете создать поврежденный пакет с помощью высокоуровневых библиотек.
Хороший подход, который можно предложить, - это подключиться к вашему серверу с помощью netcat и отправить мусор из / dev / urandom:
cat /dev/urandom | nc 10.62.147.30 139