Secondo la definizione di Wikipedia, un dead drop è uno strumento di cospirazione che serve a scambiare informazioni o alcuni elementi tra persone che utilizzano un luogo segreto. L'idea è che le persone non si incontrino mai, ma si scambiano comunque informazioni per mantenere la sicurezza operativa.
Il nascondiglio non dovrebbe attirare l'attenzione. Pertanto, nel mondo offline usano spesso cose discrete: un mattone sciolto nel muro, un libro della biblioteca o una cavità in un albero.
Esistono molti strumenti di crittografia e anonimizzazione su Internet, ma il fatto stesso di utilizzare questi strumenti attira l’attenzione. Inoltre, potrebbero essere bloccati a livello aziendale o governativo. Cosa fare?
Lo sviluppatore Ryan Flowers ha proposto un'opzione interessante:
Si scopre che qualsiasi server Web ti consente di salvare quasi tutti i messaggi nel registro. Flowers si chiedeva come usarlo.
Offre questa opzione:
- Prendi un file di testo (messaggio segreto) e calcola l'hash (md5sum).
- Lo codifichiamo (gzip+uuencode).
- Scriviamo nel registro utilizzando una richiesta deliberatamente errata al 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
Per leggere un file, è necessario eseguire queste operazioni in ordine inverso: decodificare e decomprimere il file, controllare l'hash (l'hash può essere trasmesso in sicurezza su canali aperti).
Gli spazi vengono sostituiti con =+=
in modo che non ci siano spazi nell'indirizzo. Il programma, che l'autore chiama CurlyTP, utilizza la codifica base64, come gli allegati di posta elettronica. La richiesta viene effettuata con una parola chiave ?transfer?
in modo che il destinatario possa trovarlo facilmente nei registri.
Cosa vediamo nei log in questo caso?
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"
Come già accennato, per ricevere un messaggio segreto è necessario eseguire le operazioni in ordine inverso:
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
Il processo è facile da automatizzare. Md5sum corrisponde e il contenuto del file conferma che tutto è stato decodificato correttamente.
Il metodo è molto semplice. “Lo scopo di questo esercizio è semplicemente dimostrare che i file possono essere trasferiti attraverso piccole e innocenti richieste web, e funziona su qualsiasi server web con log di testo semplice. In sostanza, ogni server web è un nascondiglio!” scrive Flowers.
Naturalmente il metodo funziona solo se il destinatario ha accesso ai log del server. Ma tale accesso è fornito, ad esempio, da molti hoster.
Come usarlo?
Ryan Flowers afferma di non essere un esperto di sicurezza informatica e non compilerà un elenco di possibili usi per CurlyTP. Per lui è solo una prova del fatto che gli strumenti familiari che vediamo ogni giorno possono essere utilizzati in modo non convenzionale.
In effetti, questo metodo presenta una serie di vantaggi rispetto ad altri server "nascosti" simili
Questo è uno dei modi per trasmettere messaggi tramite file di servizio. Puoi ricordare come si posizionavano alcune aziende avanzate
L'idea era che solo gli sviluppatori web avrebbero visto questo uovo di Pasqua, poiché una persona normale non avrebbe guardato le intestazioni o il codice HTML.
Fonte: habr.com