Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];

Вниз

SOCK_RAW   Найти похожие ветки 

 
Unax ©   (2004-02-14 17:52) [0]

Уважаемые мастера, как получить доступ к сокету SOCK_RAW под учетной записью не администратора.

Код такой

s = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);

iRead = sendto(s, buf, size, 0, adr, adrlen);

После вызова sendto ошибка 10013, "Сделана попытка доступа к сокету методом, запрещенным правами доступа"

Если я работаю с правами администратора, то функция ошибки не дает.

Всем спасибо.


 
Verg ©   (2004-02-14 19:56) [1]


> s = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);


Странно, тебе уже здесь должны были отказать....
В смысле s = INVALID_SOCKET


 
Unax ©   (2004-02-14 22:07) [2]

Сокет даётся валидный, ошибка именно при отсылке.


 
Verg ©   (2004-02-14 22:43) [3]

Ну что ж...

Raw socket support requires administrative privileges. Users running Winsock applications that make use of raw sockets must have administrative privileges on the computer, otherwise raw socket calls will fail with an error code of WSAEACCES. (C) MSDN

Значит тебе куда-нибудь на hackzone....


 
Unax ©   (2004-02-15 09:39) [4]

Тогда интересно как работает стандартный ping.exe, может есть какой другой способ отправить ICMP сообщение.

PS. Indy ICMP тоже выдает ошибку при пинге accsess denied.


 
Verg ©   (2004-02-15 10:00) [5]

http://www.delphimaster.ru/articles/icmp.html


 
Verg ©   (2004-02-15 10:01) [6]

http://www.delphimaster.ru/articles/icmp.html


 
Verg ©   (2004-02-15 10:03) [7]

В смысле с этого (ping/icmp) и надо было начинать....


 
Unax ©   (2004-02-15 10:24) [8]

А я знал что ли. Я уже сделал с помощью SOCK_RAW, но работает только в 9х и под администратором в NT.
Теперь буду знать, спасибо.


 
Verg ©   (2004-02-15 10:43) [9]

Так кто же знал, в свою очередь, что тебя интересует реализация именно ping, а не абстрактный SOCK_RAW в общем случае.


 
Unax ©   (2004-02-15 11:07) [10]

>> Verg
Возникает такой вопрос, как работают снифера не под админом. Ведь они же каким-то образом ловят IP-пакеты, а SOCK_RAW этого не позволяет. Ты недавно в форуме приводил код снифера, не получается проверить: SIO_RCVALL undeclared. Чему равна эта константа?
А вообще может-быть отправка запрещена, а принимать пакеты можно.


 
Verg ©   (2004-02-15 11:17) [11]

Да? Разве в WINSOCK2 от Алекса нет этой константы?
Ну вот, на всякий случай тогда
SIO_RCVALL                           = IOC_IN or IOC_VENDOR or 1;
SIO_RCVALL_MCAST                     = IOC_IN or IOC_VENDOR or 2;
SIO_RCVALL_IGMPMCAST                 = IOC_IN or IOC_VENDOR or 3;
SIO_KEEPALIVE_VALS                   = IOC_IN or IOC_VENDOR or 4;
SIO_ABSORB_RTRALERT                  = IOC_IN or IOC_VENDOR or 5;
SIO_UCAST_IF                         = IOC_IN or IOC_VENDOR or 6;
SIO_LIMIT_BROADCASTS                 = IOC_IN or IOC_VENDOR or 7;
SIO_INDEX_BIND                       = IOC_IN or IOC_VENDOR or 8;
SIO_INDEX_MCASTIF                    = IOC_IN or IOC_VENDOR or 9;
SIO_INDEX_ADD_MCAST                  = IOC_IN or IOC_VENDOR or 10;
SIO_INDEX_DEL_MCAST                  = IOC_IN or IOC_VENDOR or 11;


 
Unax ©   (2004-02-15 11:20) [12]

Спасибо. Если бы было в Winsock2 не спрашивал бы.


 
Verg ©   (2004-02-15 11:31) [13]


> А вообще может-быть отправка запрещена, а принимать пакеты
> можно.


Нет, любая операция с этим сокетом приведет к WSAEACCES, если нет прав Админа.


 
Verg ©   (2004-02-15 11:45) [14]


> Verg ©   (15.02.04 11:17) [11]
> Да? Разве в WINSOCK2 от Алекса нет этой константы?


Упс. Точно нет. Значит я эти константы уже сам довставлял да и забыл про это.

Да и вообще-то эти константы должны бить определены (если уж подходить совсем педантично) в модуле mstcpip, а не в winsock2.


 
Unax ©   (2004-02-15 11:53) [15]

Оказывается те сниферы что у меня есть, работают в качестве службы с учетной записью SYSTEM. Наверное это единственный способ получить доступ к RAW сокетам не зная пароль админа.


 
Unax ©   (2004-02-15 11:55) [16]

Хотя я не знаю как сделаны эти сниферы, может быть без помощи SOCK_RAW.


 
Verg ©   (2004-02-15 11:55) [17]

Сниферы еще любят пользоваться библиотекой WinPcap.


 
Verg ©   (2004-02-15 12:14) [18]

Кому интересно, вот модуль:

unit mstcpip;

interface
uses Winsock2;
type
   _tcp_keepalive  = packed record
      onoff : u_long;
      keepalivetime : u_long;
      keepaliveinterval : u_long;
   end;

const
// New WSAIoctl Options
SIO_RCVALL                           = IOC_IN or IOC_VENDOR or 1;
SIO_RCVALL_MCAST                     = IOC_IN or IOC_VENDOR or 2;
SIO_RCVALL_IGMPMCAST                 = IOC_IN or IOC_VENDOR or 3;
SIO_KEEPALIVE_VALS                   = IOC_IN or IOC_VENDOR or 4;
SIO_ABSORB_RTRALERT                  = IOC_IN or IOC_VENDOR or 5;
SIO_UCAST_IF                         = IOC_IN or IOC_VENDOR or 6;
SIO_LIMIT_BROADCASTS                 = IOC_IN or IOC_VENDOR or 7;
SIO_INDEX_BIND                       = IOC_IN or IOC_VENDOR or 8;
SIO_INDEX_MCASTIF                    = IOC_IN or IOC_VENDOR or 9;
SIO_INDEX_ADD_MCAST                  = IOC_IN or IOC_VENDOR or 10;
SIO_INDEX_DEL_MCAST                  = IOC_IN or IOC_VENDOR or 11;

// Values for use with SIO_RCVALL* options
  RCVALL_OFF             = 0;
  RCVALL_ON              = 1;
  RCVALL_SOCKETLEVELONLY = 2;

implementation

end.


 
Unax ©   (2004-02-15 12:14) [19]

Была бы она еще в Дельфевом варианте. Мне как-то Дельфи ближе чем С.


 
Verg ©   (2004-02-15 12:22) [20]


> Unax ©   (15.02.04 12:14) [19]
> Была бы она еще в Дельфевом варианте. Мне как-то Дельфи
> ближе чем С.


Что ты имеешь ввиду? Исходники? Че-то я не встречал отважных, пишуших кернел моде драйверов на делфи :)

А всяких портаций интерфейса в сети полно.
Вот, например,
http://www.misalpina.com/ghost3k/delphi.php


 
Unax ©   (2004-02-15 12:25) [21]

Я качал отсюда:
http://winpcap.polito.it/

Там и документация есть.


 
Verg ©   (2004-02-15 12:27) [22]


> Unax ©   (15.02.04 12:25) [21]


Дык :) Это ж их штатный портал.


 
Unax ©   (2004-02-15 12:36) [23]

:) А я не знал.


 
Unax ©   (2004-02-15 12:38) [24]

>> Verg
А нет каких-нить простых примерчиков с использованием WinPCap


 
Verg ©   (2004-02-15 12:57) [25]


> Unax ©   (15.02.04 12:38) [24]


Нет. Я его попробовал просто так. Прямо их демки и все. Ну да - работает, прикольно.
Нет задач под это дело.


 
Unax ©   (2004-02-15 21:46) [26]

Вопрос насчет статьи http://www.delphimaster.ru/articles/icmp.html

Где взять документацию по icmp.dll и вообще есть ли документация на другие библиотеки которые предоставляет микрософтина. Или все это дело в MSDN описано?



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.034 c
14-1080105186
syte_ser78
2004-03-24 08:13
2004.04.18
Посоветуйте книгу по Делфи


4-1076149862
DNSokol
2004-02-07 13:31
2004.04.18
Thread + CreateOleObject какой-то странный глюк.


1-1080820738
Анна
2004-04-01 15:58
2004.04.18
Как программно вставить текст в RichEdit на место курсора?


1-1080459979
Neep
2004-03-28 11:46
2004.04.18
Помогите разобраться с CallBack


3-1080022593
russko
2004-03-23 09:16
2004.04.18
Копирование БД





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский