Я хотел бы подробно остановиться на this question и, в частности, на this answer. Предположим, у меня есть фиксированный список сервисов для проверки, например: ('ftp', 'ssh', 'http')
. Открытие сокета к порту 22 удаленного сервера:Идентификация служб, прослушивающих удаленные порты
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = s.connect_ex(('my_remote_server', 22))
if(result == 0) :
print s.recv(256)
s.close()
я получаю следующий результат:
'SSH-2.0-OpenSSH_6.1p1 Debian-4\r\n'
Так что я могу догадаться, что есть служба SSH прослушивает этот порт. Поэтому мой вопрос: где и как я могу найти приветственные сообщения (или аналогичные) для различных видов услуг? Связаны ли они с этим? В случае ssh всегда ли он начинается с SSH-
?
Хорошо, мне нужно будет планировать, какие службы я буду поддерживать, а затем проверить эвристику, чтобы обнаружить эти службы. –