terça-feira, 18 de agosto de 2015

Enviando e-mail com Netcat/Telnet/OpenSSL - Com e sem SSL/TLS

Manhã de terça novamente, já imaginam né?...

Bom, hoje vou mostrar como enviar e-mails de uma maneira não tão convencional, porém, bastante útil em algum momento ou script.
Ao invés de utilizar todas essas linhas, também podemos usar o comando "mail", porém não é tão divertido quanto vc conversar com o servidor SMTP.
No final do post há a explicação de cada comando utilizado.


#1 - Método com Telnet descriptografado
telnet smtp.email.com 25

#2 - Método com NetCat
nc smtp.email.com 25

#3 - Método com OpenSSL
openssl s_client -crlf -connect smtp.email.com:465

#4 - Método com STARTTLS
openssl s_client -starttls smtp -crlf -connect smtp.email.com:587

Ao executarmos um dos três comandos acima, receberemos a mensagem
220 smtp.mail.yahoo.com ESMTP ready

Ok, Agora podemos conversar com o servidor.

Nesse post vamos usar o método 4 e pegar como exemplo o  servidor SMTP do Yahoo!.

As linhas em vermelho é o que o usuário irá digitar.

openssl s_client -starttls smtp -crlf -connect smtp.mail.yahoo.com.br:587

220 smtp.mail.yahoo.com ESMTP ready

Após isso digitaremos:
EHLO localhost

Teremos como saída:


250-smtp.mail.yahoo.com
250-PIPELINING
250-SIZE 41697280
250-8 BITMIME
250 AUTH PLAIN LOGIN XOAUTH2 XYMCOOKIE
AUTH PLAIN 
334
XDBzZXVsb2dpbkB5YWhvby5jb20uYnJcMHN1YXNlbmhh*/ <---Aqui inserimos o usuário e senha codificados em base64---- 
Comando para encodar no linux: echo -ne "\0email@server.com\0senha" /*
235 2.0.0 OK
MAIL FROM: <email_usado_no_login@yahoo.com.br>
250 OK , completed
RCPT TO: <destino@gmail.com>
250 OK , completed
data
354 Start Mail. End with CRLF.CRLF
SUBJECT: Testando um, dois, três

Digite a mensagem aqui e ao fim dela, pule uma linha, adicione um ponto e aperte enter.
Atenção ao ponto ali embaixo.




Se ocorreu tudo corretamente, receberemos a seguinte mensagem

250 OK , completed

Para sair do terminal, basta digitarmos quit

Entendendo os comandos:
Com telnet:

telnet mailserver.com 25 
--Com o telnet, estamos simplesmente definindo o servidor e a porta a qual desejamos conectar. Podemos usar o telnet para N coisas, inclusive enviar email :v

Com openssl:

openssl s_client -crlf -connect endereco_server:porta


openssl s_client -starttls smtp -crlf -connect smtp.email.com:587

#Parâmetros:

 s_client - Definimos que queremos um cliente SSL
-crlf - Carriage Return Line Feed - Pula linha e retorna o cursor para o início
-connect - Aqui definimos o endereço do servidor e a porta
-starttls smtp - Definimos que queremos negociar uma conexão com STARTTLS utilizando o protocolo smtp

##Comandos SMTP##

EHLO - Identifica o emissor da mensagem
AUTH PLAIN - Usado para inserirmos nosso login e senha encodado em base64. Podemos encodar da seguinte forma em um outro terminal: $echo "\0email@server.com\0senha" | base64

MAIL FROM: <email@server.com> - Definimos o e-mail de origem utilizado
RCPT TO: <destino@server.com> - Definimos o e-mail de destino
DATA - A partir daqui já podemos começar a escrever a mensagem.
SUBJECT: - Nessa linha adicionamos o assunto da mensagem e após isso, apertamos o enter duas vezes  para escrevermos nossa mensagem.
. - Atenção ao PONTO, ele define o Fim da mensagem .


Bom pessoal, é isso
Dúvidas, sugestões, xingamentos, opção de comentário ta aí
flw

Um comentário:

  1. http://cardingmafia.ws/f26/sql-scaner-havij-923/
    Legit Carding/Hacking/Accounts Dumps/etc etc

    ResponderExcluir