|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.11.2013, 21:13 | #1 |
Пользователь
Регистрация: 17.11.2013
Сообщений: 12
|
IdTCPClient
Здравствуйте. Помогите написать программу, определяющую тип протокола висящий на порту (ftp, http, https, ssh, rdp, smb, pop3, smtp). Желательно с использованием IdTCPClient.
Я понимаю, что надо отправить определенный запрос на который порт он ответит типом протокола. Подымаю сервер на ServerSocket компоненте. Начинаю сканировать порты XSpider7, получаю следующие запросы: GET / HTTP/1.1 Host: root:20 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 7.0) PTX Connection: Close id ping daaaaaaaaaaaaaaa eaaaaaaaaaaaaaaa gaaaaaaaaaaaaaaa A0 GETCONFIG SELF 0 <EOM> и прочие запросы типа: zмBUЁыX)2ПУ=љL или #1+#0+#0+#0+#1+#0+#0+#0+#8 Но при отправки их на любой порт через компонент IdTCPClient1 или ClientSocket1, либо ничего не происходит либо происходит разрыв соединения. |
17.11.2013, 21:48 | #2 | |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
Цитата:
|
|
17.11.2013, 21:54 | #3 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Не, серьезно, это не гарантия. Хотя в теории можно искать в приходяще строке знакомые слова (ftp, smtp и т.д.). Цитата:
I'm learning to live...
|
||
17.11.2013, 22:27 | #4 |
Пользователь
Регистрация: 17.11.2013
Сообщений: 12
|
мне надо написать аналог XSpider. То есть вводишь хост и порт, программа выплевывает, что за сервис там висит.
С чего начать, как слушать. Я умею только данные отправлять. была идея накидать компонентов: IdFTP, IdHTTP, IdPOP3, IdSMTP, IdTelnet и т.д, поочередно конектица с каждого и какой компонент примет порт за родной, такой протокол и висит. Но как быть с виндовскими протоколами (smb, rdp, netbios-ns) и такими программами как VNC, SSH, radmin, Последний раз редактировалось Stilet; 17.11.2013 в 23:33. |
17.11.2013, 22:39 | #5 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
берете какойнить wireshark и смотрите что и как отправляет паук и делаете вывод
|
17.11.2013, 22:53 | #6 | |
Пользователь
Регистрация: 17.11.2013
Сообщений: 12
|
Ну я и говорю:
Цитата:
|
|
17.11.2013, 23:02 | #7 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
значит что-то не то делаете
|
17.11.2013, 23:41 | #8 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Это не такая простая задача. Нужно знать как разные системы реагируют и что отвечают. А если там защифрованно то...
Начни с начала - FTP сервер или SMTP. Они обычно при коннекте представляются, отвечая строкой. попробуй просто приконнектится к какому-нибудь серверу по портам 21, 25, 110 и проверить пришло ли в событии коннекта что-нибудь, если пришло просто выведи в Мемо. Это хотя-бы для начала - стартануть с пентеста известных сервисов.
I'm learning to live...
|
18.11.2013, 02:26 | #9 |
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
Тебе не дампы паука смотреть надо, а читать про то, как устроены нужные протоколы. Потому что без понимания этого ты ничего не сделаешь.
Задача сводится к попытке добиться от порта ответа, соответствующего определенному протоколу. Для smtp, к примеру, достаточно будет послать команду HELO <domain_name> (или EHLO), и посмотреть код ответа (250 в случае успеха, 550 в случае ошибки, что там еще по rfc может быть). Баннер, который сервер отправляет сразу при подключении, нигде не стандартизирован, потому его можно игнорировать - там что угодно быть может. Для ftp можешь пробовать анонимный вход сделать; для http - GET запрос индексной страницы, для https вообще ссл-хендшейк сделать придется. В общем, гуглишь номер rfc нужного протокола и садишься читать до просветления. И да, разрыв соединения - нормальное поведение для большинства серверов в случае, когда ты шлешь им не соответствующие протоколу данные. |
26.11.2013, 21:21 | #10 |
Пользователь
Регистрация: 17.11.2013
Сообщений: 12
|
Пишу простую программку:
Код:
А при обращении к http на IIS висящий на win server 2003 я получаю: HTTP/1.1 400 Bad Request А при обращении к ftp серверу висящий на win server 2003 я получаю: Socket Error # 10061 Connection refused. Тот же результат я получаю при обращении к порту которого нет, но доступ к ftp нормальный. Я понимаю, что надо отправлять рад запросов, по ответам на запросы уже определять тип сервиса. Но какие конкретно запросы отправлять я нигде не могу найти. На то что я отправляю я получаю либо повисон программы, либо сообщение приветствия порта. Но по строке приветствия нельзя судить о типе работающего сервиса. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
idtcpclient | kostya67 | Работа с сетью в Delphi | 4 | 04.11.2013 14:06 |
работа с IdTCPClient | knopkodaf | Работа с сетью в Delphi | 5 | 28.05.2012 20:07 |
IdTCPClient+FileListBox | hysek | Работа с сетью в Delphi | 9 | 09.05.2012 02:00 |
Вопрос по IdTCPClient | -Jack- | Работа с сетью в Delphi | 2 | 04.01.2012 14:09 |
Ошибка IdTcpClient | sanek99 | Работа с сетью в Delphi | 1 | 13.02.2011 17:19 |