Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Обнаружение сервера

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Первый вопрос] >> Обнаружение сервера
Имя
Сообщение << Старые топики   Новые топики >>
Обнаружение сервера - 2010-10-04 16:03:48.520000   
ivan_90

Сообщений: 10
Оценки: 0
Присоединился: 2010-10-04 15:45:42.770000
Здравствуйте! Возникла такая серьезная проблема:
Имеется сеть на 2500 компьютеров… В этой сети появился сервер, который раздает IP адреса и портит нашу сеть конфликтом IP адресов. Т.е. этого сервера быть не должно!
Подскажите кто знает, как можно выявить IP этого сервера с помощью программы delphi (нужно на ней написать программу)
Я предполагаю что нужно послать широковещательный запрос на получение IP(и когда сервер ответит-значит там он и сидит) Как должен выглядеть этот широковещательный запрос?
Подскажите пожалуйста кто знает?:)!
Post #: 1
RE: Обнаружение сервера - 2010-10-04 16:23:08.826666   
Ltonid

Сообщений: 4970
Оценки: 740
Присоединился: 2008-12-29 13:21:56.166666
Тебе надо с извращением как по учебной программе или по человечески.
Я делфи не знаю, но знаю как по человечески
Каманда ipconfig /all выдает в строке DHCP-серверы адрес сервера выдавшего ip компу.
Post #: 2
RE: Обнаружение сервера - 2010-10-04 16:42:21.540000   
ivan_90

Сообщений: 10
Оценки: 0
Присоединился: 2010-10-04 15:45:42.770000
Это все понятно… Дело в том, что эта команда не применима на моем компьютере, т.к у меня нет конфликта IP адресов, но этот DHCP в сетке есть, и нужно его найти…
Post #: 3
RE: Обнаружение сервера - 2010-10-04 17:08:46   
Ltonid

Сообщений: 4970
Оценки: 740
Присоединился: 2008-12-29 13:21:56.166666
Давай тогда рассуждать.
DHCP выдает IP по маске. Раз так много компов то и маска большая, например 192.168.х.х получается.
DHCP это программа которая может быть где угодно, но по правилам её IP самый первый в маске и выдавать она начнет по возрастанию.
Таким образом мы имеем: два DHCP сервера адреса которых по две стороны от твоего собственного, если бы это было не так то ты бы получал два IP и был бы конфликт. Таким образом надо проверять адреса выше твоего. А что же отправлять? Да простой пакет syn-ask на порт 53 это порт DHCP сервера. Если открыт и ответ, то это наш сервер.

З.Ы. сразу говорю я мог что нить напутать)
Post #: 4
RE: Обнаружение сервера - 2010-10-05 08:13:29.010000   
ivan_90

Сообщений: 10
Оценки: 0
Присоединился: 2010-10-04 15:45:42.770000
Логично! Но мой IP тоже раздается DHCP, там система немного другая. А порт сервера 67!
А можно подробнее про syn-ask?:) Потому что я пытался послать DHCPDISCOVER
Post #: 5
RE: Обнаружение сервера - 2010-10-05 08:36:36.723333   
ivan_90

Сообщений: 10
Оценки: 0
Присоединился: 2010-10-04 15:45:42.770000
Вот!
Post #: 6
RE: Обнаружение сервера - 2010-10-05 09:13:35.030000   
Ltonid

Сообщений: 4970
Оценки: 740
Присоединился: 2008-12-29 13:21:56.166666
Так не путаем. 67 это UDP порт DHCP, а 53 это TCP порт DHCP по умолчанию. Что использовать решать тебе и как оно пашет с точки зрения программирования на делфи.
Теперь про syn-ask. Такой запрос возможен как правило только по TCP. Это обычный запрос на коннект. Т.е. пытаемся создать соединение (это в API сокетов обычный connect) и проверям ответ. Если есть ответ с 53 порта и в ответе по логике будет что-то про DHCP.
Я не компал в эту сторону, но материала должно быть в инете достаточно по определению системных служб.

Возможно твой запрос и быстрей будет, только я не знаю какой ждать ответ от такого сервера по UDP.
Вот тема с ссылками на исходники http://forum.sources.ru/index.php?showtopic=163399&hl= может что подберешь.
Post #: 7
RE: Обнаружение сервера - 2010-10-05 11:47:26.853333   
ivan_90

Сообщений: 10
Оценки: 0
Присоединился: 2010-10-04 15:45:42.770000
Спасибо за совет и ссылки, это все интересно конечно, но не то…:(
Нужен DHCP запрос для получения DHCP ответа, либо определить активность этого DHCP сервера…
Post #: 8
RE: Обнаружение сервера - 2010-10-05 12:02:37.373333   
Ltonid

Сообщений: 4970
Оценки: 740
Присоединился: 2008-12-29 13:21:56.166666
Ну раз косвенные методы не устраивают, то все что я могу это цитировать, а ваше дело исполнить и если не пашет выложить исходник для проверки ошибок.
Вначале клиент выполняет широковещательный запрос по всей физической сети с целью обнаружить доступные DHCP-серверы. Он отправляет сообщение типа DHCPDISCOVER, при этом в качестве IP-адреса источника указывается 0.0.0.0 (так как компьютер ещё не имеет собственного IP-адреса), а в качестве адреса назначения — широковещательный адрес 255.255.255.255. Клиент заполняет несколько полей сообщения начальными значениями: В поле xid помещается уникальный идентификатор транзакции, который позволяет отличать данный процесс получения IP-адреса от других, протекающих в то же время. В поле chaddr помещается аппаратный адрес (MAC-адрес) клиента. В поле опций указывается последний известный клиенту IP-адрес. В данном примере это 192.168.1.100. Это необязательно и может быть проигнорировано сервером. Сообщение DHCPDISCOVER может быть распространено за пределы локальной физической сети при помощи специально настроенных агентов ретрансляции DHCP, перенаправляющих поступающие от клиентов сообщения DHCP серверам в других подсетях.
Post #: 9
RE: Обнаружение сервера - 2010-10-05 12:32:22.016666   
ivan_90

Сообщений: 10
Оценки: 0
Присоединился: 2010-10-04 15:45:42.770000
… ибо читал я это и возникла у меня страшная идея создания страшной программы…
Ну и на том спасибо!:)
Я делаю так: for n:=0 to ListBox2.Count-1 do begin \\формирование списка IP адресов
TcpClient1.RemoteHost:=ListBox2.Items[n]; \\подключение к каждому IP
TcpClient1.RemotePort:='53'; \\порт 53 при использовании Tcp
TcpClient1.Active:=True; \\ подключаемся
end;
И вы знаете, подключается (не удивительно:) ) И теперь стоит задача послать DHCP запрос для получения ответа… (вот здесь и вся загвоздка, как его написать и послать)
А саму систему работы взаимодействия клиент-сервер я знаю… А как реализовать запрос на delphi-загадка!:)
Post #: 10
RE: Обнаружение сервера - 2010-10-05 12:38:11.860000   
ivan_90

Сообщений: 10
Оценки: 0
Присоединился: 2010-10-04 15:45:42.770000
… ибо читал я это и возникла у меня страшная идея создания страшной программы…
Ну и на том спасибо!:)
Я делаю так: for n:=0 to ListBox2.Count-1 do begin \\формирование списка IP адресов
TcpClient1.RemoteHost:=ListBox2.Items[n]; \\подключение к каждому IP
TcpClient1.RemotePort:='53'; \\порт 53 при использовании Tcp
TcpClient1.Active:=True; \\ подключаемся
end;
И вы знаете, подключается (не удивительно:) ) И теперь стоит задача послать DHCP запрос для получения ответа… (вот здесь и вся загвоздка, как его написать и послать)
А саму систему работы взаимодействия клиент-сервер я знаю… А как реализовать запрос на delphi-загадка!:)
Post #: 11
RE: Обнаружение сервера - 2010-10-06 08:49:29.533333   
ivan_90

Сообщений: 10
Оценки: 0
Присоединился: 2010-10-04 15:45:42.770000
Люди! Кто нибудь сталкивался с подобной задачей? Подскажите!?:)
Post #: 12
RE: Обнаружение сервера - 2010-10-06 10:29:21.633333   
namepunk

Сообщений: 2732
Оценки: 184
Присоединился: 2009-09-15 13:35:36.866666
Блин, ну что тут подсказывать…Тоже мне сверхзадача. Снифер используй…WireShark например. В правилах поставишь фильтр udp.port=68.
Возьмешь на своем хосте виртуалку, сетевуху на ней бриджом. На сетевухе - автоматическое получение ip, а с основного хоста - слушаешь. Dhcp - discover запросы широковещательные так что ответят все. И эти ответы ты увидишь wireshark'ом.

зы а про 53 порт забудь он для DNS (как tcp так и udp), попутал ltonid, и на старуху как говориться…
Post #: 13
RE: Обнаружение сервера - 2010-10-06 17:03:59.316666   
Ltonid

Сообщений: 4970
Оценки: 740
Присоединился: 2008-12-29 13:21:56.166666
Точно, извиняюсь))
http://scit.boom.ru/Andre_S/7_Protocol.htm - хорошая статья.
Короче походу ситуация такая же плачевная как у меня была со службыми и придется тебе самому допирать до того как написать запрос
http://msdn.microsoft.com/en-us/library/cc227304(PROT.13).aspx - там ссылка на RFC - вперед с песней)
Post #: 14
RE: Обнаружение сервера - 2010-10-08 08:04:26.423333   
ivan_90

Сообщений: 10
Оценки: 0
Присоединился: 2010-10-04 15:45:42.770000
Похоже на то:(
Ну да ладно! Спасибо!:)
Post #: 15
Страниц:  [1]
Все форумы >> [Первый вопрос] >> Обнаружение сервера







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.