Назад | Перейти на главную страницу

как отправить поврежденный пакет netbios

Я хочу отправить поврежденный пакет службы сеанса 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