Date Tags bash / smtp

Table of content:

Intro

Citeodata vrem sa testam functionalitatea serverului e-mail prin comenzi SMTP direct din consola. In acest caz deschidem linia de cmanda si folosim clientul Telnet , fie in Windows sie in Linux bash. Nu stu cum altii dar eu deseori nu introduc careva date in comenzile FROM, RCPT TO si atunci conexiunea se intrerupe ..

Comenzi SMTP

Mai jos voi da lista cu cele mai importante comenzi SMTP cu o scurta explicatie. Fiecare comanda este folosita intr-o conexiune dintre doua servere prin protocolul SMTP, pentru a putea trimite mesaje e-mail.

HELO Este prima comanda SMTP cu care incepe conversatia, este urmata de numele de domeniu (hostname).

EHLO O comanda alternativa pentru a incepe conversatia pe protocolul SMTP, subliniind ca serverul utilizeaza protocolul SMTP extins.

MAIL FROM Cu aceasta comanda SMTP incepe transmiterea mesajului: expeditorul afiseaza adresa de e-mail sursa in campul “De la”.

RCPT TO Acesta identifica destinatarul e-mailului; daca exista mai multe, comanda este pur si simplu repetata.

SIZE Aceasta comanda SMTP informeaza serverul despre dimensiunea estimata (in termeni de Bytes) a e-mailului atasat. Acesta poate fi, de asemenea, utilizat pentru a raporta dimensiunea maxima a unui mesaj care va fi acceptat de server.

DATA Cu comanda DATA continutul de e-mail incepe sa fie transferat; este in general urmat de un cod de raspuns de 354 dat de server, oferind permisiunea de a incepe transmisia efectiva.

VRFY Se solicita serverului sa verifice daca intr-adevar exista o anumita adresa de e-mail sau un nume de utilizator.

TURN Aceasta comanda este utilizata pentru a inversa rolurile intre client si server, fara a fi nevoie sa initiati o noua conexiune.

AUTH Cu ajutorul comenzii AUTH, clientul se autentifica pe server, oferindu-i numele de utilizator si parola. Este un nivel de securitate pentru a garanta o transmisie sigura.

RSET Acesta comunica serverului ca transmisia de e-mail in curs va fi terminata, desi conversatia SMTP nu va fi inchisa (ca in cazul QUIT).

EXPN Aceasta comanda SMTP cere confirmarea identificarii unei liste de adrese.

HELP Este o cerere a unui client pentru unele informatii care pot fi utile pentru transferul reusit al mesajului.

QUIT Termina conversatia SMTP.

Script

Cream un fisier unde vom avea comenzile

EHLO localhost
AUTH LOGIN
NGJsb2dAc3Rpc2MuZ292Lm1k
T2VDYU1vTjEx
MAIL FROM: <admin@zimbra.md>
RCPT TO: <client@zimbra.md>
DATA
From: <admin@zimbra.md>
To: <client@zimbra.md>
Date: Thu, 26 Oct 2018 14:50:11 +0000
Subject: Mesaj de test

Norocele !!!

Have a good day!
-- System
.
QUIT

Salvam fisierul in msg.txt

Executam aceasta comanda

cat "msg.txt" |while read L; do sleep "1"; echo "$L"; done | "nc" -C -v "smtp.zimbra.md" "25"

sau

function slowcat(){ cat "$1" | while read; do sleep .05; echo "$REPLY"; done; }

slowcat msg.txt | nc smtp.zimbra.md 25

AUTH

In comenzile de mai sus a fost folosita comanda AUTH LOGIN pentru autentificare. Aceasta foloseste username-ul si parola in base64

Generam in consola hash-ul la Username si Parola

perl -MMIME::Base64 -e 'print encode_base64("username");'
perl -MMIME::Base64 -e 'print encode_base64("password");'

Sau generam online

Surse

[1] https://stackoverflow.com/questions/44250054/send-email-with-netcat [2] https://www.ndchost.com/wiki/mail/test-smtp-auth-telnet



Comments

comments powered by Disqus