Útwikseling fan geheime berjochten fia tsjinner logs

Neffens de Wikipedia-definysje is in deade drip in gearspanningsynstrumint dat tsjinnet om ynformaasje of guon items út te wikseljen tusken minsken dy't in geheime lokaasje brûke. It idee is dat minsken noait moetsje - mar se wikselje dochs ynformaasje út om operasjonele feiligens te behâlden.

It skûlplak moat gjin oandacht lûke. Dêrom brûke se yn 'e offline wrâld faak diskrete dingen: in losse bakstien yn 'e muorre, in bibleteekboek, of in hol yn in beam.

D'r binne in protte ark foar fersifering en anonymisaasje op it ynternet, mar it feit fan it brûken fan dizze ark lûkt oandacht. Derneist kinne se blokkeare wurde op bedriuws- as oerheidsnivo. Wat te dwaan?

Untwikkelder Ryan Flowers stelde in nijsgjirrige opsje foar - brûk elke webserver as skûlplak. As jo ​​der oer tinke, wat docht in webserver? Untfangt oanfragen, jout bestannen út en skriuwt logs. En it logt alle oanfragen, sels ferkearde!

It docht bliken dat elke webserver jo hast alle berjochten yn it log kinne bewarje. Blommen fregen har ôf hoe't se dit brûke.

Hy biedt dizze opsje:

  1. Nim in tekstbestân (geheim berjocht) en berekkenje de hash (md5sum).
  2. Wy kodearje it (gzip+uuencode).
  3. Wy skriuwe nei it log mei in bewust ferkeard fersyk oan de tsjinner.

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

Om in bestân te lêzen, moatte jo dizze operaasjes yn omkearde folchoarder útfiere: it bestân ûntsiferje en unzip, kontrolearje de hash (de hash kin feilich oerbrocht wurde oer iepen kanalen).

Spaasjes wurde ferfongen mei =+=sadat der gjin spaasjes yn it adres binne. It programma, dat de auteur CurlyTP neamt, brûkt base64-kodearring, lykas e-postbylagen. It fersyk wurdt makke mei in kaaiwurd ?transfer?sadat de ûntfanger it maklik kin fine yn 'e logs.

Wat sjogge wy yn 'e logs yn dit gefal?

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"

Lykas al neamd, om in geheim berjocht te ûntfangen, moatte jo de operaasjes yn omkearde folchoarder útfiere:

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

It proses is maklik te automatisearjen. Md5sum komt oerien, en de ynhâld fan it bestân befêstiget dat alles goed dekodearre is.

De metoade is hiel ienfâldich. "It punt fan dizze oefening is gewoan om te bewizen dat bestannen kinne wurde oerdroegen fia ûnskuldige lytse weboanfragen, en it wurket op elke webserver mei platte tekstlogs. Yn essinsje is elke webserver in skûlplak!” skriuwt Flowers.

Fansels wurket de metoade allinich as de ûntfanger tagong hat ta serverlogs. Mar sa'n tagong wurdt fersoarge, bygelyks, troch in protte hosters.

Hoe kinne jo it brûke?

Ryan Flowers seit dat hy gjin ynformaasjefeiligensekspert is en gjin list mei mooglike gebrûk foar CurlyTP sil gearstalle. Foar him is it gewoan in proof of concept dat de bekende ark dy't wy elke dei sjogge op in ûnkonvinsjonele manier brûkt wurde kinne.

Yn feite, dizze metoade hat in oantal foardielen boppe oare tsjinner "hides" lykas Digital Dead Drop of PirateBox: it fereasket gjin spesjale konfiguraasje oan 'e serverkant of spesjale protokollen - en sil gjin fertinking opwekke ûnder dyjingen dy't it ferkear kontrolearje. It is net wierskynlik dat in SORM- of DLP-systeem URL's sil scan foar komprimearre tekstbestannen.

Dit is ien fan 'e manieren om berjochten te ferstjoeren fia tsjinstbestannen. Jo kinne ûnthâlde hoe't guon avansearre bedriuwen brûkt te pleatsen Developer Jobs yn HTTP Headers of yn 'e koade fan HTML-siden.

Útwikseling fan geheime berjochten fia tsjinner logs

It idee wie dat allinich webûntwikkelders dit Peaske-aai soene sjen, om't in normale persoan net nei de kopteksten of HTML-koade soe sjen.

Útwikseling fan geheime berjochten fia tsjinner logs

Boarne: www.habr.com

Add a comment