Что такое сырые сокеты?

1
Сокеты 96

C# и .NET --- Сетевое программирование --- Сокеты

Сокет — это один конец двустороннего канала связи между двумя программами, работающими в сети. Соединяя вместе два сокета, можно передавать данные между разными процессами (локальными или удаленными). Реализация сокетов обеспечивает инкапсуляцию протоколов сетевого и транспортного уровней.

Первоначально сокеты были разработаны для UNIX в Калифорнийском университете в Беркли. В UNIX обеспечивающий связь метод ввода-вывода следует алгоритму open/read/write/close. Прежде чем ресурс использовать, его нужно открыть, задав соответствующие разрешения и другие параметры. Как только ресурс открыт, из него можно считывать или в него записывать данные. После использования ресурса пользователь должен вызывать метод Close(), чтобы подать сигнал операционной системе о завершении его работы с этим ресурсом.

Когда в операционную систему UNIX были добавлены средства межпроцессного взаимодействия (Inter-Process...

0 0
2

Linux (в отличии, к примеру, от FreeBSD) позволяет использовать сырые сокеты не только для отправки, но и для получения данных. В этом месте существуют интересные грабли, на которые я наступил. Теперь спешу показать их тем, кто еще на знает, чтобы каждый, используя свой любимый язык программирования, будь то C++ или Python, мог опробовать их в деле.

Суть граблей изображена на рисунке, чтобы те, кто уже в курсе, не тратили свое время.

Я буду писать примеры на С, но вы можете перенести их и на другие языки, предоставляющие возможность низкоуровневой работы со стеком TCP\IP в Linux.

Некоторые понятия


Напомню, что для инициализации сырого сокета мы передаем параметр, обозначающий тип протокола. Например UDP:

socket(AF_INET, SOCK_RAW, IPPROTO_UDP)

Этот протокол я буду называть уровнем на котором работает сырой сокет. В примере мы создали сырой сокет на уровне UDP.

Уровень сырого сокета не ограничивает вас в формировании пакета на...

0 0
3

Книги: [Классика] [Базы данных] [Internet/WWW] [Сети] [Программирование] [UNIX] [Windows] [Безопасность] [Графика] [Software Engineering] [ERP-системы] [Hardware]

Самоучитель игры на WINSOCK

(статья была опубликована в журнале "Программист")

Сокеты (sockets) представляют собой высокоуровневый унифицированный интерфейс взаимодействия с телекоммуникационными протоколами. В технической литературе встречаются различные переводы этого слова - их называют и гнездами, и соединителями, и патронами, и патрубками, и т .д. По причине отсутствия устоявшегося русскоязычного термина, в настоящей статье сокеты будет именоваться сокетами и никак иначе.

Программирование сокетов несложно само по себе, но довольно поверхностно описано в доступной литературе, а Windows Sockets SDK содержит многоженство ошибок как в технической документации, так и в прилагаемых к ней демонстрационных примерах. К тому же имеются значительные отличия реализаций сокетов в UNIX и в Windows, что...

0 0
4
N1cK, 5 лет назад

0

Сокет - это совокупность IP адреса и порта (IP:Port). Это понятно, а что такое сырой сокет? И бывают ли ещё какие-то сокеты?

Примечание:
latander, я неправильно наверное ярлыки выставил, изучаю сети (сейчас UDP), так вот на четвертом уровне в качестве адресации используют порты, это определенный номер приложения на узле.

Ответы:

RAW Socket - это просто когда вы напрямую работаете с сокетом без прослойки API фреймворков итп. Проще говоря вы сами открываете дверь или просите швейцара.
Если хочется технических деталей читайте литературу. В общем случае применительно ко всем ОС - сырые сокеты это работа с сетевым интерфейсом на уровне драйверов а не АPI самой ОС. Собственно кто вам сказал, что сокет - совокупность ip адреса и порта? Откуда такая ересь? действительно, сокет - это совокупность IP-адреса и порта - читал это, наверное, в той же книге и статье, что и Вы. Сможете глянуть пару начинаний на akuly.net,...
0 0
5

Затем, как вы знаете, надо инициализировать windows sockets api.
Делается это WSAStartup'ом, коему впаривается версия именно 2.2 - в
противном случае вас ожидает вселенский сакс.

WSADATA WSAData;
if ( WSAStartup(MAKEWORD(2,2), &WSAData) != 0 )
{
printf("ERROR:WSAStartup() error %i\n", WSAGetLastError());
exit(0);
}

Теперь можно сделать raw-сокет. Вот он.

SOCKET raw_socket = socket(AF_INET, SOCK_RAW, IPPROTO_IP);
if (raw_socket == INVALID_SOCKET)
{
printf("ERROR:socket(SOCK_RAW) error %i\n", WSAGetLastError());
exit(0);
}

Далее все зависит от цели - снифак мы пишем, спуфер, или даже все
вместе.
СПУФЕР
------

Для тех кто не знает, спуфер (spoofer) - это такая хрень, которая
позволяет вместо своего IP-шника подставить чужой. А в общем случае
послать весь IP-пакет целиком. И это правильно.

...

0 0
6

Итак, как я и говорил в последнем сообщении, работа над книгой про библиотеку Synapse подошла к первой контрольной точке и мы готовы представить на всеобщее обозрение первую главу. Надо сказать, что, начиная работу я не подозревал, что мы так увлечемся работой и будем все время что-то дополнять, добавлять, исправлять :) Но, в итоге решили, что все-таки стоит опубликовать первую главу сейчас, чтобы вы смогли оценить наш скромный труд и, если потребуется, то внести и свою лепту в работу над книгой.

Вторым автором книги стал Михаил Балабаев, предложив свою помощь в работе над книгой. И я благодарен Михаилу за те замечания и исправления, которые он вносил (и продолжает вносить :)) в текст книги. Надеюсь, что и к финишу мы придём вместе.

Следует отметить, что представленный ниже текст главы был написан практически с нуля и затрагивает самые основы Synapse — работу с сокетами, о которой я очень кратко упоминал в блоге.

Вполне возможно, что после публикации в блоге,...

0 0
7
сырые сокеты на Висле, XP, W2K… крис касперски ака мыщъх, no-email сырые сокеты (raw sockets) широко используются как в хакерских, так и в легальных коммерческих программах: exploit'ах, спуферах, сниферах, сканерах, брандмауэрах, NAT'ах, etc. никсы поддерживают сырые сокеты изначально, 9x – лишь формально. с выходом W2K некрософт подарила нам полноценную поддержку сырых сокетов, но, начиная с XP SP2, сурово урезала их функциональность, в результате чего многие системные программы перестали работать и, чтобы вернуть функциональность взад программистам пришлось опуститься на уровень ядра или заюзать библиотеку WinCap. а простым пользователям что делать? как "оживить" старые программы, не имея исходных текстов на руках? без паники! мыщъх сейчас все расскажет, только покурит слегонца. введение Сокеты представляют собой индустриальный стандарт унифицированного интерфейса, ориентированный на межпроцессорное взаимодействие, и поддерживаемый практически всеми операционными системами. Причем,...
0 0
8

Сырость не радость

Крис Касперски

Хакер, номер #109, стр. 050

Реализация сырых сокетов в WinNT

Сырые сокеты (raw sockets) широко используются как в хакерских, так и в легальных коммерческих программах: эксплойтах, спуферах, сниферах, сканерах, брандмауэрах, NAT'ах, etc. Никсы поддерживают сырые сокеты изначально, 9x – лишь формально. С выходом W2K Microsoft подарила нам полноценную поддержку сырых сокетов, но начиная с XP SP2 сурово урезала их функциональность, в результате чего многие системные программы перестали работать. Чтобы вернуть былую функциональность, программистам пришлось опуститься на уровень ядра или заюзать библиотеку WinCap. А что делать простым пользователям? Как оживить старые программы, не имея исходных текстов на руках? Без паники! Сейчас я все расскажу.

Сокеты представляют собой индустриальный стандарт унифицированного интерфейса, ориентированный на межпроцессорное взаимодействие и поддерживаемый практически всеми...

0 0
9

Название: сырые сокеты (RAW SOCKET)
Отправлено: sangre от Сентября 29, 2011, 10:41:11 am

здравствуйте!
как в qnx создать сокет, который будет принимать все пакеты, пришедшие на сетевую катрочку?
соответственно нужно отправлять в этот сокет пакеты которые я формирую.
насколько я знаю в qnx 6.5.0 создаются только tcp\ip сокеты


Название: Re: сырые сокеты (RAW SOCKET)
Отправлено: sangre от Сентября 30, 2011, 12:17:04 pm

=( все знают и молчат, ну подскажите новичку!


Название: Re: сырые сокеты (RAW SOCKET)
Отправлено: AG от Сентября 30, 2011, 06:22:53 pm

Посмотри в сторону pcap.


Название: Re: сырые сокеты (RAW SOCKET)
Отправлено: sangre от Октября 01, 2011, 10:41:56 am

а без pcap это возможно? я мельком просматривал исходники, где то видел константу PROMISCOUS, может как то так возможно?
а как работать с pcap в qnx? может ссылки есть какие?


Название: Re: сырые сокеты...
0 0
10
Q: Raw sockets - Why do my machine send an RST packet in reply to a SYN/ACK packet?

A: This is one of the most frequently asked question by someone who is experimenting with raw sockets and TCP/IP. It is known that the 'IP_HDRINCL' socket option allows you to include the IP header along with the data. Since TCP encapsulates the IP header, we can also build a TCP packet and send it over a network. But the problem is, a TCP connection can never be established this way. The scenario is as follows:

A TCP connection is always made by a three-way handshake. So, initially you send a 'SYN' packet to the remote machine. If it is actively listening on the port, you get a 'SYN/ACK' packet. So far so good. But before you can respond, your machine sends an 'ACK/RST' packet and connection attempt is ended. For the connection to be complete, instead of the 'RST' packet, your machine should be sending an 'ACK' to the remote machine.

The difference lies where the connection is exactly...

0 0
11

В каждом конкретном случае необходимо проверять, поддерживает ли ОС сырые сокеты. Приблизительно поддержка отражена в таблице:

ОС поддержка сырых сокетов 95, 98, 98SE не поддерживает сырых сокетов (ограниченно поддерживает сырые сокеты для ICMP-протокола); NT 4.0 сырые сокеты ограничены 10 входящими соединениями за 10 минут (может быть исправлено в реестре); W2K полностью поддерживает сырые сокеты; XP без SP полностью поддерживает сырые сокеты после остановки брандмауэра ("net stop sharedaccess"); XP SP1 без заплатки MS05-019 поддерживает сырые сокеты так же, как и XP без SP; XP SP1 с заплаткой MS05-019 блокирует исходящие сырые TCP-сокеты, если брандмауэр запущен XP SP2 без MS05-019 полностью поддерживает входящие сырые сокеты и частично исходящие; XP SP2 с MS05-019 полностью поддерживает входящие сырые сокеты и некоторые исходящие; Vista не поддерживает сырые сокеты (ограниченно поддерживает сырые сокеты для ICMP-протокола); Win 7 ограниченно поддерживает сырые...
0 0

Не нашли ответа?

Реклама