Wikipedia definitsiooni kohaselt on surnud tilk vandenõutööriist, mille eesmärk on vahetada teavet või mõnda üksust inimeste vahel salajase asukoha abil. Idee seisneb selles, et inimesed ei kohtu kunagi, kuid nad vahetavad siiski teavet tööohutuse tagamiseks.
Peidukoht ei tohiks tähelepanu tõmmata. Seetõttu kasutavad nad võrguvälises maailmas sageli diskreetseid asju: lahtist tellist seinas, raamatukogu raamatut või puuõõnsust.
Internetis on palju krüpteerimis- ja anonüümsuse tööriistu, kuid nende tööriistade kasutamise fakt tõmbab tähelepanu. Lisaks võidakse need blokeerida ettevõtte või valitsuse tasandil. Mida teha?
Arendaja Ryan Flowers pakkus välja huvitava võimaluse -
Selgub, et iga veebiserver võimaldab logisse salvestada peaaegu iga sõnumi. Lilled mõtlesid, kuidas seda kasutada.
Ta pakub järgmist võimalust:
- Võtke tekstifail (salajane sõnum) ja arvutage räsi (md5sum).
- Me kodeerime selle (gzip+uuencode).
- Kirjutame logisse, kasutades serverile sihilikult vale päringut.
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
Faili lugemiseks tuleb need toimingud sooritada vastupidises järjekorras: dekodeerida ja lahti pakkida fail, kontrollida räsi (räsi saab ohutult edastada avatud kanalite kaudu).
Tühikud asendatakse =+=
et aadressis ei oleks tühikuid. Programm, mida autor nimetab CurlyTP-ks, kasutab base64 kodeeringut, nagu meilimanused. Taotlus tehakse märksõnaga ?transfer?
et saaja leiaks selle logidest hõlpsasti üles.
Mida me sel juhul logides näeme?
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"
Nagu juba mainitud, peate salajase sõnumi saamiseks tegema toimingud vastupidises järjekorras:
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
Protsessi on lihtne automatiseerida. Md5sum vastab ja faili sisu kinnitab, et kõik dekodeeriti õigesti.
Meetod on väga lihtne. "Selle harjutuse eesmärk on lihtsalt tõestada, et faile saab edastada süütute väikeste veebipäringute kaudu ja see töötab igas lihtteksti logidega veebiserveris. Sisuliselt on iga veebiserver peidupaik!” kirjutab Flowers.
Loomulikult töötab meetod ainult siis, kui adressaadil on juurdepääs serveri logidele. Kuid sellist juurdepääsu pakuvad näiteks paljud majutajad.
Kuidas seda kasutada?
Ryan Flowers ütleb, et ta ei ole infoturbe ekspert ega koosta CurlyTP võimalike kasutuste loendit. Tema jaoks on see lihtsalt tõestus kontseptsioonist, et tuttavaid tööriistu, mida me igapäevaselt näeme, saab kasutada ebatavaliselt.
Tegelikult on sellel meetodil mitmeid eeliseid võrreldes teiste serveri "peitidega", näiteks
See on üks viise sõnumite edastamiseks teenusefailide kaudu. Mäletate, kuidas mõned arenenud ettevõtted varem paigutasid
Idee seisnes selles, et seda lihavõttemuna näeksid ainult veebiarendajad, kuna tavaline inimene ei vaata päiseid ega HTML-koodi.
Allikas: www.habr.com