С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
5 / 4 / 2
Регистрация: 21.10.2021
Сообщений: 132
1

Пакеты протокола Stun

06.09.2023, 14:21. Показов 867. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
как я могу перехватить пакеты протокола Stun с помощью Python?
Python
1
2
3
4
5
6
7
8
9
10
11
12
from scapy.all import *
 
def packet_handler(packet):
    if packet.haslayer(UDP) and (packet[UDP].dport == 3478 or packet[UDP].sport == 3478):
        raw_data = bytes(packet[UDP].payload)
        if len(raw_data) >= 20:
            msg_type, msg_length, magic_cookie = struct.unpack('!HHI', raw_data[:8])
            if magic_cookie == 0x2112A442: # This is a STUN packet
                print('Detected STUN packet: Type: {} Length: {} Magic Cookie: {}'.format(msg_type, msg_length, magic_cookie))
                packet.show()
 
sniff(filter='udp', prn=packet_handler)
Пробовал так, но stun пакеты все равно точно не ловятся, что я делаю не так?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.09.2023, 14:21
Ответы с готовыми решениями:

STUN сервер
Привет. Был тут на собеседовании, тестовое не осилил. Однако, хотелось бы разобраться, тк ранее с...

Использование STUN
Всем привет! Недавно решил реализовать сетевое взаимодействие между компьютерами с серыми IP....

Использование STUN
Привет! У меня возникла проблема при создании простого p2p чата. Поскольку мой компьютер подключен...

QUdpSocket + STUN
Доброго времени суток. Пару вечеров грязного времени посидел с WireShark и манами по протоколу...

1
3565 / 2712 / 347
Регистрация: 11.03.2009
Сообщений: 6,247
06.09.2023, 19:21 2
Протокол stun к питону не имеет никакого отношения, тему уместнее перенести в раздел по сетям.
На вскидку после гугления ынтырнетов:
Цитата Сообщение от Huobase Посмотреть сообщение
Python
1
if packet.haslayer(UDP) and (packet[UDP].dport == 3478 or packet[UDP].sport == 3478):
1) у stun есть два вида запросов binding request/response использует udp и shared secret request/response использует tcp, поэтому фильтрация по протоколу отпадает.
2) stun-сервер должен поддерживать работу с двумя ip и двумя портами во всех комбинациях, порт 3478 общепринятый порт по умолчанию для сервера, поэтому фильтрация по порту тоже никакой гарантии не дает, у гуловских серверов, опять же если верить ынтырнетам, дефолтный порт 19302 к примеру.
Цитата Сообщение от Huobase Посмотреть сообщение
как я могу перехватить пакеты протокола Stun
Подозреваю, только анализируя содержимое пакетов.
Цитата Сообщение от Huobase Посмотреть сообщение
Python
1
2
msg_type, msg_length, magic_cookie = struct.unpack('!HHI', raw_data[:8])
 if magic_cookie == 0x2112A442: # This is a STUN packet
интересно, что за магические числа?)
Если кратко, stun-сообщение состоит из хидера и самого тела.
Хидер длиной 20 байт:
2 байта - тип сообщения,
2 байта - длина тела сообщения без хидера,
16 байт - ID транзанкции
Типы сообщений:
0x0001 : Binding Request
0x0101 : Binding Response
0x0111 : Binding Error Response
0x0002 : Shared Secret Request
0x0102 : Shared Secret Response
0x0112 : Shared Secret Error Response
Нетрудно догадаться, что типы request могут быть только в исходящих пакетах, а response - во входящих.

Дальше набор блоков с атрибутами, так же:
2 байта - тип атрибут,
2 байта - длина содержимого атрибута
N байт - содержимое атрибута.
Полное описание https://datatracker.ietf.org/d... section-11
1
06.09.2023, 19:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.09.2023, 19:21
Помогаю со студенческими работами здесь

Сетевое программирование, STUN
Здравствуйте, не нашел подходящего раздела для моего вопроса, поэтому решил написать в разделе...

Соединение с сервером STUN
Здравствуйте, форумчане.

Нет ответа от STUN сервера
Здравствуйте. В интернете много теории касательно того, как пробросить IP за NAT, но саму...

P2P чат с использованием STUN
Здравствуйте, хочу написать чат между двумя пользователями в интернете с помощью серверов STUN....

Соединение клиентов через STUN сервер
Доброго времени суток, интересует вопрос связанный с передачей данных в интернете с одного...

UDP клиент за NAT (с использованием STUN сервера)
Следующий код запускается за Nat-ом: using LumiSoft.Net.STUN.Client; using System; using...

Как должен выглядеть запрос к STUN серверу?
Добрый день! Есть задачка: библиотека Winsock2, необходимо связаться с STUN сервером и получить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru