Conectando-se ao servidor POP / SMTP via Telnet

3

Estou tentando conectar-me para conectar a um servidor SMTP / POP via telnet (porta 25 e 110). No entanto, não consigo me autenticar. Sempre que eu tento, diz (pop)

-ERR SPA Required, use AUTH or APOP

O que eu entendo com alguma pesquisa, esse SPA é o próprio repositório da Microsoft. Eu serei capaz de autenticar usando telnet?

    
por Ankit 11.11.2011 / 06:11

1 resposta

6

Talvez. Você pode precisar usar o openssl para fornecer segurança antes que o servidor disponibilize um método de autenticação simples.

Primeiro, você precisa verificar quais mecanismos AUTH estão disponíveis. Você pode fazer isso passando o comando AUTH sem argumentos para o servidor pop:

$ telnet pop-server.example.com 110
Trying 10.10.10.10...
Connected to pop-server.example.com
Escape character is '^]'.
+OK The Microsoft Exchange POP3 service is ready.
AUTH
+OK
NTLM
GSSAPI
PLAIN
.
quit
+OK Microsoft Exchange Server 2010 POP3 server signing off.

Bom. ( para os nossos propósitos, de qualquer maneira ) Este servidor permite AUTH simples. Agora você precisa construir sua string auth, que é uma junção do nome de usuário e senha, e então codificada em base64.

Existe um requisito específico de que o formato da string AUTH é <NUL>username<NUL>password . Existem várias maneiras de reunir essas informações. Você pode usar perl ou o comando printf.

bash-$ perl -MMIME::Base64 -e 'print encode_base64("
bash-$ printf '
$ telnet pop-server.example.com 110
Trying 10.10.10.10...
Connected to pop-server.example.com
Escape character is '^]'.
+OK The Microsoft Exchange POP3 service is ready.
AUTH PLAIN
+ 
AHVzZXJuYW1lAHBhc3N3b3Jk
+OK Logged in.
0username
openssl s_client -connect pop-server.example.com:995
0password' | base64 AHVzZXJuYW1lAHBhc3N3b3Jk
0username
bash-$ openssl s_client -connect pop-server.example.com:995
CONNECTED(00000003)
<snip a bunch of ssl cruft>
SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES128-SHA
    Session-ID: blahblahblah
    Session-ID-ctx: 
    Master-Key: blahblahblah
    Key-Arg   : None
    Start Time: 1320992572
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---
+OK The Microsoft Exchange POP3 service is ready.
0password");' AHVzZXJuYW1lAHBhc3N3b3Jk

ou, se você não tiver o módulo MIME :: Base64 perl instalado.

$ telnet pop-server.example.com 110
Trying 10.10.10.10...
Connected to pop-server.example.com
Escape character is '^]'.
+OK The Microsoft Exchange POP3 service is ready.
AUTH
+OK
NTLM
GSSAPI
PLAIN
.
quit
+OK Microsoft Exchange Server 2010 POP3 server signing off.

A string que esses comandos retornam é o nome de usuário e a senha codificados em base64, que você passa para o comando AUTH.

Agora, sua sessão de autenticação para o servidor pop será parecida com:

bash-$ perl -MMIME::Base64 -e 'print encode_base64("
bash-$ printf '
$ telnet pop-server.example.com 110
Trying 10.10.10.10...
Connected to pop-server.example.com
Escape character is '^]'.
+OK The Microsoft Exchange POP3 service is ready.
AUTH PLAIN
+ 
AHVzZXJuYW1lAHBhc3N3b3Jk
+OK Logged in.
0username
openssl s_client -connect pop-server.example.com:995
0password' | base64 AHVzZXJuYW1lAHBhc3N3b3Jk
0username
bash-$ openssl s_client -connect pop-server.example.com:995
CONNECTED(00000003)
<snip a bunch of ssl cruft>
SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES128-SHA
    Session-ID: blahblahblah
    Session-ID-ctx: 
    Master-Key: blahblahblah
    Key-Arg   : None
    Start Time: 1320992572
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---
+OK The Microsoft Exchange POP3 service is ready.
0password");' AHVzZXJuYW1lAHBhc3N3b3Jk

Agora você pode fazer o que precisa fazer. no entanto , o servidor pode não permitir que você use o AUTH PLAIN em uma sessão não criptografada. Se for esse o caso, talvez você precise usar o openssl, em vez do telnet, para gerenciar sua sessão pop3.

%pre%

Agora, sua sessão será protegida por SSL / TLS e você poderá continuar com o método AUTH descrito acima para interagir com seu servidor pop3.

%pre%

E a partir daqui, você pode interagir com o servidor da maneira que faria normalmente em uma sessão de telnet direta.

    
por 11.11.2011 / 07:28