Send email using telnet

To test if our email server is working correctly we can use the following logic 🙂

1 – If we do now have sure of what is our email server address we can check it easily using nslookp.

Normally has any website our email server has to have a name associated to a ip address. If we want to confirm if the name is resolving to the correct ip address we will need to do a nslookup query.

Use the following syntax to confirm if the server has the correct address.

    1. nslookup
    2. set type=mx
    3. write the name of our domain e.g.: hjfr-info.com
    4. the return will be the name of the email server e.g.: mail.hjfr-info.com
    5. exit

eg:nslookup1

After this we can use this name to connect via telnet or resolve the name to a ip address.

now to start a telnet connection to the server we only need to write this on the command line:

1 – telnet mail.hjfr-info.com 25

if the connection is successfully established you should see something like this:

telnet SMTP Server 1

Now it is possible to begin sending a email.

  1. greet the server with a: Helo
  2. Identify yourself: MAIL FROM: hjfr@hjfr-info.com
  3. Identify the destination: RCPT TO:hjfr@hjfr-info.com
  4. Identify the Data that you want to send: DATA and write the data
  5. end with a . (point and enter)

The telnet also can be used to verify other things on the SMTP server.

For example we have the commands VRFY and EXPN that might be used to identify valid users.

VRFY = This command will request that the receiving SMTP server verify that a given email username is valid. The SMTP server will reply with the login name of the user. 

ESPN = is similar to VRFY, except that when used with a distribution list, it will list all users on that list. This can be a bigger problem than the “VRFY” command since sites often have an alias such as “all”.

Testar Portas SMTP e Validar Utilizadores

Testar SMTP e utilizadores

Há imensas aplicações para testar portas de servidores, uma mais complexas outras mais simples.
Apesar do universo ter uma escolha não estava satisfeito.
Decidi criar a minha aplicação, como estava a tentar aprender Python decidi começar a fazer um simples esboço em Python.
Esta aplicação estabelece uma ligação á porta 25 (SMTP) e tenta verificar se um utilizador especifico existe.

Como entrada do scritpt recebe um ficheiro (smtpServers.txt) com uma lista de máquinas que queremos testar a porta 25 o retorno é feito para o ecrã.

Aqui fica o meu primeiro script em Python…

#!/usr/bin/python
import socket
import sys
if len(sys.argv) !=2:
	print "Usage: SMTP_Test "
	sys.exit(0) 
	#ReadFile with Machines
	f = open('../smtpServers.txt','r')
	lines = f.readlines()
	f.close 
	for x in lines:
	    #Create Socket
	    print x
	    s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
	    #Connect to the Server
	    connect=s.connect((x,25))
	    #receive Banner
	    banner=s.recv(1024)
	    print banner
	    #VRFY a user
	    s.send('VRFY ' + sys.argv[1] + 'rn')
	    result=s.recv(1024)
	    print result
	#close the socket

e-Mail over Telnet… III

Depois de nos ligarmos por telnet ao servidor de SMTP na porta 25 iniciamos o dialogo…

Primeiro cumprimentamos o servidor com um silples…

Hello

Depois indicamos quem somos…

MAIL FROM: nosso@server.com

Depois obtemos uma resposta educada do genero “250 OK”
Seguidamente indicamos com quem queremos falar:
RCPT TO: Destino@algures.com, Todos_os_outros@aqui.com

Mais uma vez obtemos a resposta educada do servidor de destino: “250 OK”

Agora só falta dizer o que pensamos aos nossos destinatários…. para isso fazemos o seguinte:

DATA
Resto da mensagem aqui…
Podemos escrever o que queremos e dar entrers á vontade….
(comver não acabar paragrafos com ponto e enter… 🙂

Para indicar que chegamos ao fim temos de fazer:

.

“Carregamos no ponto e logo se seguida na tecla enter”

Seguida só nos resta fazer quit para sair do programa de telnet… Pois acabamos de enviar um email e de testar as nossas ligações / relays…

e-Mail over Telnet II

Depois de executarmos o comando atrás indicado deveremos ter algo equivalente a isto no monitor.

hjfr-info.com MX preference = 10, mail exchanger = hjfr-info.com
hjfr-info.com internet address = 82.154.130.119

Neste exemplo podemos ver qual o nome do dominio que administra os nossos e-mails… e também qual o seu ip.

Agora é só fazer:

telenet 82.154.130.119 25 para obtermos ligação ao servidor de e-mail via smtp.

E isto é o que vemos de resposta da ligação ao servidor.

220 w2k3-srv.home Microsoft ESMTP MAIL Service ready at Fri, 22 Aug 2008 23:27:3 4 +0100

Neste caso o servidor de e-mail é um exchange com um pouco mais iformação do que deveria ter exposta para publico… 🙂

Continua…

e-Mail over Telnet…

Bem para quem quiser enviar um email anónimo ou testar um servidor de e-mail publico ou privado… aqui fica a dica…

1- Descobrir qual o endereço do servidor de e-mail…

Normalmente um servidor de e-mail tem um dominio associado esse dominio tem um mxrecord associado indicando qual o ip que recebe e processa os e-mails.

Para o descobrir vamos usar uma ferramenta chamada nslookup que nos permite ligar a um servidor DNS publico ou privado para perguntar quais são os servidores de email que respondem a um determinado dominio, seja ele publico ou privado.

entao vamos escrever numa shell ou numa linha de comandos o seguinte comando:

nslookup
set type=MX
[escrever o dominio que queremos saber os SMTP server]
exit

Continua….