Telnet per spedire la posta (login autenticato)

Data: 3 set 2004


Sito on line dal 2003
Home page
email
Chi sono
Translation
CLI - Command line interface
QUANDO ESIGENZA IMPONE...
(ovvero smtp auth login plain && base64 de/coder)

"... In un vicolo di New York, dove il sole non batte neanche la domenica, ..."

Così esordivano le storie del famigerato GRUPPO TNT... ed è proprio in uno di quei racconti esilaranti che si riportava come titolo il motto sopra citato.... "quando esigenza impone", diventato forse per molti una regola di vita e lo spunto di questo articolo.

Molte più volte di quanto pensiamo necessitiamo di una VALIDA e SEMPLICE alternativa nel mondo informatico.
Da VI a CDRECORD, passando per SC, LYNX, ETTERCAP.... ;o)... eh eh eh. In buona sostanza non tutto è solamente grafica, anche perché più la cosa è complicata e più saranno complicati gli eventuali problemi correlati (Murphy docet).

Settimane fa entro a controllare la posta e oppsss! Il mio browser non mi fa leggere i messaggi a me arrivati, pur dandomi notizia di avere in casella alcune nuove missive. Praticamente un errore del server del servizio di posta, che non citerò qui, mi causava l'inconveniente, mentre mio figlio poteva tranquillamente leggere, dalla mia stessa macchina, la sua posta sul sito del mio stesso operatore. Ed eccoci al dunque... Cosa fare?
Per fortuna che avevo attivato in precedenza l'opzione SMTP e POP per poter leggere da telnet le mie mail. Altro oppsss!!! Mi si chiede un'autenticazione anche nel servizio SMTP... Ma come procedere?

Facciamo un passo indietro all'articolo di Sandro a riguardo di TELNET del 09 ott 2003, andatevelo a leggere perché è la base di ciò che verrà descritto dopo. Il buon kensan vi fa notare che con una sessione telnet su SMTP, si può fare una fake-mail. Ed è per questo che un riconoscimento era d'obbligo imporlo.

Eggià... ormai tutti i servizi di posta hanno posto delle limitazioni. Chi semplicemente rimandandovi al vostro ISP, Internet Service Provider, per poter usufruire di SMTP, quindi scaricando a lui il fardello dell'eventuale spammer, chi utilizzando un normale controllo sull'utenza basato su login e password. Noi esamineremo questo caso e quindi andiamo a vedere come autenticarci tramite una sessione Telnet.

Questa procedura, ora, nel mio caso è con il protocollo AUTH LOGIN PLAIN.

Prima di effettuare la connessione telnet dobbiamo trasformare la nostra USERID e la relativa PASSWORD in base64. O cavoli con carta e penna?! Ma nooo.... in rete trovate un sacco di applicazioni web-based, in codice C  o in altri linguaggi da voi preferiti. Naturalmente sarebbe consigliata un'applicazione sulla propria macchina che una in rete... parlando di sicurezza non si sa mai.... che ne dite?

Di solito quando si codifica una stringa, per esempio "venusia" come userid e "segreto" come passwd, l'applicazione ci avverte che la sequenza è ultimata o  con "==" o "o="; naturalmente qualche prova di codifica e decodifica non è male da sperimentare. Alla bisogna naturalmente non metteremo i simboli di "fine stringa" perché non fanno parte ovviamente dei dati che l'autentificazione ci richiederà.

Di seguito allego il codice di un de/codificatore, che uso per la sua semplicità ed efficenza, di cui gentilmente ringraziamo Daniel Lerch per averlo condiviso sulla rete... fatevi un giro sul suo sito.

/********************* ************************** ************************

*  Autor: Daniel Lerch
*  e-mail: lerch@ya.com
*
*  Referencias:
*  Network security with OpenSSL (O'Reilly)
*
*  Compilacion:
*  $ gcc base64.c -o base64 -lssl
*
********************** ************************** ***********************/

#include <stdio.h>
#include <string.h>
#include <openssl/evp.h>

unsigned char *base64_encode (unsigned char *buffer, unsigned int len)
{

  unsigned char *ret = (unsigned char *) malloc ((((len+2)/3)*4)+1);
  EVP_EncodeBlock (ret, buffer, len);
  ret[(((len+2)/3)*4)] = 0;
  return ret;
}

unsigned char *base64_decode (unsigned char *buffer, unsigned int len)
{

  unsigned char *ret = (unsigned char *) malloc ((((len+2)/3)*4)+1);
  EVP_DecodeBlock (ret, buffer, len);
  ret[(((len+2)/3)*4)] = 0;
  return ret;
}

void usage (char *progname) {

   printf ("Usage: %s [ encode | decode ] Text\n\n", progname);
   exit(0);
}

int main (int argc, char *argv[])
{
   int i;

   /* Sin parametros */
   if (argc < 3) usage(argv[0]);

   if (argc == 3) {

      /* Verificamos los algoritmos */
      if (strcmp(argv[1], "encode")  == 0)
         printf ("%s\n", base64_encode (argv[2], strlen(argv[2])));

      if (strcmp(argv[1], "decode") == 0)
         printf ("%s\n", base64_decode (argv[2], strlen(argv[2])));

   }
   else  usage(argv[0]);

   return 0;
}

/********************** ************************ *************************/


Kensan.it

Naturalmente facciamo attenzione alla compilazione che lo stesso autore ci suggerisce:

$ gcc base64.c -o base64 -lssl

Ora che abbiamo tutto ciò che occorre vediamo la variante applicata alla sessione telnet:

telnet smtp.vega.it 25
[Trying 100.99.198.97...
Connected to vega.it.
Escape character is '^]'.
220 vega.it ESMTP Sendmail 8.12.9 ready at Sun,
03 Sep 2004 00:00:00 +0200 (CEST)]

in grassetto evidenziamo cosa andremo a comunicare al server

EHLO LOCALHOST
250-vega.it
250-auth login plain
250-pipelining
250 8bitmime

avrete notato che non abbiamo usato il saluto solito HELO ma abbiamo avvertito il server che vogliamo autenticarci passandogli il comando EHLO. Delle sue risposte a noi interessa "250-auth login plain" che ci conferma l'uso di quel tipo di  protocollo

AUTH LOGIN
334-xxxxxxxxx
dmVudXNpYQ
334-xxxxxxxxx
c2VncmV0bw
235 ok, go ahead (#2.0.0)

il server ha trasmesso la sua identificazione con il codice 334 e noi abbiamo immesso la userid (venusia) codificata in base64 "dmVudXNpYQ" e di seguito all'altra richiesta 334 la nostra passwd (segreto) "c2VncmV0bw" e se tutto è ok, ci viene comunicato con il codice 235.

Bene.... ora che siamo stati riconosciuti, il server attenderà poi la normale procedura con i comandi:

MAIL FROM:
RCPT TO:
DATA
e bla...bla... bla....

ma questo lo sapete già... vero?!

Questo tutto nel rispetto del significato dell'acronimo KISS e nel segno del "semplicemente funzionale" a molti caro.

Ma quanto amo i comandi testuali!!!

Si denota ora, che abbiamo una valente risposta ai normali e frequenti problemi di gestione del server di posta ed alla lentezza cronica della grafica ad essa applicata. Se il vostro fornitore del servizio di posta non prevede la possibilità di usare i protocolli smtp e pop, che aspettate a cambiarlo?!

A tutto c'è rimedio.... eccetto a queste maledette zanzare che ho in camera... qualcuno ha una soluzione?

Commento di kensan: ho notato che ad alcuni non piace il tono scherzoso dell'articolo che si rifà alla cultura hacker pur essendo un testo di base che si trova da moltissime parti in Internet. Alcuni hanno detto che il tono dovrebbe essere "modesto" come modesto è l'argomento trattato. Comunque la pensiate questa pubblicazione è una continuazione di un mio scritto.



Non dimenticatevi di mettere la vostra opinione: scrivete il commento, premete "Inserisci" e il commento è immediatamente pubblicato nell'area qui sotto: grazie!




Questo articolo è stato commentato 16 volte.

Ultimo commento inserito da Anonimo mercoledì 23 settembre con il titolo: NON VA.

Commento:

Salve ragazzi complimenti,
ma a me non va, probabilmente per impostazioni di sicurezza o altro.
Comunque una volta mandato il comando ehlo non accetta il comando AUTH LOGIN
Sapete come mai?
grazie



Altri testi sullo stesso argomento li trovate elencati di seguito sotto l'argomento Telnet

Diaspora* button
-
Facebook button
0
Twitter button
-
Google+ button
0
LinkedIn button
0
TzeTze button
voti: 0
luca de franchi aka ViCisLAcK

Data: 3 set 2004
Letture di questo articolo: 3
...a partire da 2024-01-16
argomento: Telnet, articoli: Telnet per i Newsgroup, Telnet per spedire la posta, Servizi via CLI, Meteo via Telnet, Telnet sito internet

argomento: Internet, articoli: Internet via GPRS, Internet Radio, HotSpot in Italia, Astroturfer, Configurare una Internet key, Nastro per pagine web, Backup sul Cloud

ball animated




Firefox: Riprenditi il web






A proposito dei giornalisti...

Non dico affatto che lei menta, dico che lei non sarebbe nel posto che occupa se non scrivesse quello che scrive.






La legge determina le condizioni in cui si esercita la libertà garantita alla donna di ricorrere all'interruzione volontaria della gravidanza.

Nuovo articolo della costituzione francese: libertà garantita
kensan logo Licenza Creative Commons 3.0
I miei testi sono sotto la Licenza "Creative Commons 3.0 Italia": se sei interessato a pubblicare i miei articoli leggi le note aggiuntive (Licenza di kensan.it) dove troverai anche le attribuzioni dei diritti per tutte le immagini pubblicate.
Questo sito memorizza sul tuo pc uno o più cookie di tipo tecnico, leggi l'informativa estesa.
Kensan site

e-mail
e-mail cifrata