Correo desde el futuro: Modificación de Headers y anonimato con TOR

Los protocolos de correo electrónico tienen sus limitaciones. Entre muchas de ellas esta la de que nuestra información viajará en plano por defecto pese a que puede ser cifrada sin problema usando GPG. Con GPG cifraríamos el contenido del email pero no ocultaríamos las trazas desde donde enviamos el correo y como lo enviamos.

Cuando enviamos correos electrónicos desde gestores de correo del tipo Thunderbird, Claws mail, K-9, Emacs mail, … estos añaden una serie de cabeceras.

Algunas de estas cabeceras son las siguientes: Date, Message-id, X-Mailer, User-Agent, Subject, From, Return-Path, Envelope-To, …

Todas ellas son alterables perfectamente y desde Thunderbird/Icedove veremos una forma de hacer que los datos del User-Agent no sean enviados, es decir, que no se mande desde que sistema operativo estamos mandando el correo, que versión de cliente de correo usamos, que usuario estamos usando en el sistema operativo para mandar ese correo, …

Instalación

Instalaremos TOR en Debian, con el siguiente comando:

apt-get install tor

Si no tenemos Icedove / Thunderbird, lo instalaremos con el siguiente comando. Podéis ver como conseguir la última versión aquí.

apt-get install icedove

En Ubuntu y otros derivados:

apt-get install thunderbird

Configuración de TOR

Para configurar TOR iremos al Menú y luego a Preferencias. En la pestaña Red y espacio en disco haremos click en el botón Configuración.

thunderbird0

Debemos dejarlo configurado como en la imagen siguiente y eliminar de la caja “No usar proxy para” su contenido, es decir, donde pone “localhost, 127.0.0.1” lo dejaremos en blanco sin dato alguno. No nos olvidemos de marcar SOCKS v5.

thunderbird01

Eliminar user-agent

Para eliminar el user-agent iremos al Menú y haremos click en Preferencias. En la pestaña General clickaremos sobre el botón Editor de configuración y aceptaremos el aviso.

thunderbird1

Hacemos click derecho y seleccionamos en Nuevo → Cadena . Introducimos general.useragent.override y le damos cómo valor un campo vacío. Nos debería quedar así:

useragent

Hemos de tener en cuenta que al dejarlo en blanco estaremos con el tiempo siendo igualmente identificables. Es preferible colocar datos falsos cada cierto tiempo.

Script en python para enviar correos y alterarles todas las cabeceras posibles

Una buena forma de enviar correos con las cabeceras alteradas es este script escrito en Python en nuestro Lab:

Se ha de crear una cuenta y modificarle esos datos en el script (linea 48). Es posible alterar los datos y en vez de usar una cuenta en Openmailbox se pueda usar otra en otros servidores.

El script se ejecuta para mandar un hola mundo de la siguiente forma:

python send.py -t "hola mundo mundial" -e "bobylo@gmail.com" -d 'Mon, 17 Feb 2015 08:42:33 +0100' -s "hola mundo" -f "cuenta@openmailbox.org" -i "2323423423423" -n "windows XP" -o "Thunderbird 0.1"

Añadiendo torify delante de python “torificarmos” el envió. Podemos probar a enviarnos un correo a nuestra propia cuenta y desde nuestra propia cuenta y veremos los headers del correo alterados tal y como hemos indicado.

De esta forma es posible cambiar a cada envio la información que ofrecemos extra así como enviar correos desde el futuro si alteramos la fecha.
Alterar date solo servirá para colocar por ejemplo en el inbox de alguien un email que viene de por ejemplo el 2015 y eso no quiere decir que se enviará en la fecha que indicamos y si que cuando le llega al destinatario se le quedará constantemente en primera posición pese a que otras personas o bots le estén mandando emails.

2 Comments

  1. me mola.
    una pregunta >>
    ¿Por qué queremos que el proxy actue sobre localhost, 127.0.0.1?

    otra pregunta >>
    ¿Qué es el parámetro -i del script?

    y un warning >>
    contraseña en texto plano dentro del script???

  2. Se coloca el proxy para que actue sobre localhost ya que deseamos torificar la conexión.
    El parámetro -i del script es el id del email. Podriemos modificarlo y poner el que queramos.
    Si, es un script sencillito. Se puede modificar el script para que la password sea pedida antes de mandar y no tener que almacenarla por ejemplo. Meterla por parametro no que queda en el history.

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax