Программное обеспечение для генерации ложных ARP-запросов? - PullRequest
1 голос
/ 24 сентября 2010

Редактировать: ответ об ошибке сервера. Спасибо!

Продукт, который я тестирую, начинает волноваться, когда получает запрос ARP с IP-адресом отправителя 0.0.0.0. Это не проверка ARP, поскольку запрос адресован моему модулю, и система клиента отправляет запрос непосредственно перед тем, как начинает использовать свой собственный действительный IP-адрес, который отличается от IP-адреса моего модуля. Проблема заключается в том, чтобы воссоздать это здесь, в лаборатории, а не отправляться на сайт клиента.

Есть ли программное обеспечение, которое я могу использовать для генерации ARP-запроса с поддельного адреса? Это похоже на спуфинг ARP, но не совсем так, поскольку я пытаюсь подделать запрос, а не ответ. Есть ли у каких-либо спуфинговых инструментов такая функциональность? Или есть способ заставить Windows или Linux отправить зонд ARP?

1 Ответ

1 голос
/ 23 июня 2011

Вы можете использовать Python2 для этой работы.Это действительно довольно простая задача.Вам понадобятся привилегии суперпользователя для открытия сокетов RAW и немного знаний с Python.

import socket
import struct

#Packet structure explanation:
#destmac = 0xff,0xff,0xff,0xff,0xff,0xff
#sourcemac = 0x00,0x11,0x22,0x33,0x44,0x55
#etherflags = 0x0806,0x0001,0x0800
#arpflags = 0x6,0x4,0x0001
#sourcemac = 0x00,0x11,0x22,0x33,0x44,0x55
#sourceip = 0xc0,0xa8,0x2b,0x7a
#targmac = 0x00,0x00,0x00,0x00,0x00,0x00
#targip = 0xc0,0xa8,0x2b,0x0c

packet = struct.pack('!12B3H2BH10B10B', 0xff,0xff,0xff,0xff,0xff,0xff, 0x00,0x11,0x22,0x33,0x44,0x55, 0x0806,0x0001,0x0800, 0x6,0x4,0x0001 ,0x00,0x11,0x22,0x33,0x44,0x55, 0xc0,0xa8,0x2b,0x7a, 0x00,0x00,0x00,0x00,0x00,0x00, 0xc0,0xa8,0x2b,0x0c)

sock = socket.socket(socket.PF_PACKET, socket.SOCK_RAW)
sock.bind(('eth0', 6)) # 6 its protocol number
sock.send(packet)
sock.close()
...