отправка сформированного вручную IP пакета

 
0
 
Python
ava
pegorov | 01.12.2010, 21:46
Привет всем.
Вопрос заключается в следующем: имеется некий отснифанный пакет в хексовом представлении. Каким образом средствами питона его можно отправить? Вариант с анализом пакета и последующей его сборкой с помощью различных генераторов пакетов вроде impacket по некоторым причинам не подходит.

Я попробовал разобраться, как это сделать через sockets, но столкнулся со следующей проблемой: пусть имеется пакет вида
Цитата


0x0000 01 00 5E 00 43 67 00 02 B3 C8 7F 44 81 00 00 DE

0x0010 08 00 46 00 00 20 00 01 00 00 01 02 36 4C C0 A8

0x0020 00 7B EA 00 43 67 94 04 00 00 16 00 BC 97 EA 00

0x0030 43 67


Набрасываем нечто вроде

dst = '234.0.67.103'

s = socket.socket(socket.AF_INET, socket.SOCK_RAW,2)

res=''

temp='01 00 5E 00 43 67 00 02 B3 C8 7F 44 81 00 00 DE 08 00 46 00 00 20 00 01 00 00 01 02 36 4C C0 A8 00 7B EA 00 43 67 94 04 00 00 16 00 BC 97 EA 00 43 67'
for i in temp.split(' '):
res+=chr(int(i, 16))
s.sendto(res, (dst, 0))

Запускаем и снифаем. На выходе получается
Цитата


0x0000 01 00 5E 00 43 67 00 02-B3 C8 7F 44 08 00 45 00

0x0010 00 46 07 06 00 00 01 02-C4 25 C0 A8 00 7B EA 00

0x0020 43 67 01 00 5E 00 43 67-00 02 B3 C8 7F 44 81 00

0x0030 00 DE 08 00 46 00 00 20-00 01 00 00 01 02 36 4C

0x0040 C0 A8 00 7B EA 00 43 67-94 04 00 00 16 00 BC 97

0x0050 EA 00 43 67


Как видно, питон вчистую херит всю структуру пакета, начиная от замены EtherType, заканчивая прописыванием каких-то своих хедеров. Есть какой-нибудь способ заставить его отправлять именно то, что просят, не дописывая ничего своего?
Kommentare (1)
ava
fray | 23.12.2010, 16:35 #
попробуй impacket
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
  fray   pegorov
advanced
Absenden