O Telnet está basicamente abrindo um soquete TCP . Portanto, qualquer porta que aceite conexões TCP permitirá que você se conecte a ela com o telnet (às vezes de forma breve, se você não negociar posteriormente corretamente e de maneira oportuna).
Isso inclui o serviço SSH que é executado por padrão na porta 22 pelo caminho, mas como isso não é simples protocolo de texto (como o serviço de telnet na porta 23 ou SMTP na porta 25) você não pode digitar manualmente os caracteres no soquete depois de se conectar e esperar que ele funcione - será apenas tolice.
Em termos de saber quais portas testar em um determinado servidor, primeiro você precisa ter cuidado - a verificação de portas abertas em uma máquina que você não possui pode causar problemas com o proprietário dessa máquina, e pode disparar alarmes em sistemas de detecção de intrusão . É, afinal de contas, como um hacker tentaria "capturar" um host para determinar o que está sendo executado nele. Não há uma maneira fácil de distinguir entre esse tipo de varredura e seu tipo relativamente inocente, então tenha cuidado.
Se você possui a máquina ou tem certeza de que não há problemas com a procura de portas abertas, você pode usar um programa como nmap (existem outros) para descobrir o que você pode se conectar.
Em termos de saber com que portas se conectar antecipadamente, ou descobrir o que uma porta aberta em particular pode fazer, o registro oficial de atribuições de portas é o primeiro porto de escala. Você normalmente terá uma versão disso localmente em seu host também - para sistemas Unix / Linux, você pode encontrar isso em /etc/services
e, para o Windows, será algo como C:\Windows\System32\drivers\etc\services
. Esteja avisado que essas cópias locais podem ser bastante obsoletas.
Também é importante notar que você pode executar serviços em qualquer porta que desejar, estes são apenas os padrões registrados. Alguns serviços não são registrados. Em outros casos, um administrador pode executar um serviço em uma porta não padrão simplesmente para evitar varreduras de portas óbvias (executando o ssh na porta 722, por exemplo). Você pode, em teoria, executar um servidor da Web na porta 22 e, em seguida, apontar seu navegador para http://server:22/
e ele funcionará, mas por que você deseja? (além de talvez contornar um firewall).
O que vale a pena mencionar o HTTP - você pode fazer telnet para a porta 80 (a porta padrão http) e emitir um comando simples em texto simples, como um navegador. Costumava ser tão fácil quanto enviar GET /
, mas isso estava no HTTP 1.0 dias, e é um pouco (mas não muito) mais complicado agora:
$ telnet superuser.com 80
Trying 198.252.206.16...
Connected to superuser.com.
Escape character is '^]'.
GET / HTTP/1.1
Host: superuser.com
HTTP/1.1 200 OK
Cache-Control: public, no-cache="Set-Cookie", max-age=14
Content-Type: text/html; charset=utf-8
Expires: Thu, 31 Jul 2014 18:04:39 GMT
Last-Modified: Thu, 31 Jul 2014 18:03:39 GMT
Vary: *
X-Frame-Options: SAMEORIGIN
Set-Cookie: prov=d901880d-730c-4d91-9ac9-7d81d84fe58a; domain=.superuser.com; expires=Fri, 01-Jan-2055 00:00:00 GMT; path=/; HttpOnly
Date: Thu, 31 Jul 2014 18:04:24 GMT
Content-Length: 69500
<!DOCTYPE html>
Eu trunquei o resto por questão de brevidade.