Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
neurax — Um framework para construção de binários autopropagantes | Kitploit
Ferramentas/GitHubGitHub/redcode-labs/neurax
ReconhecimentoAtaques de SenhaGeração de PayloadsMecanismos de PersistênciaExploraçãoMovimento LateralPós-ExploraçãoAnálise de MalwareComando e ControleRed Teaming
GitHubredcode-labs/neurax

neurax

1.0k101há 2 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Um framework para construção de binários autopropagantes

Ver Repositório



Neurax



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

root@kitploit:~
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

Encontrando novos alvos

A função NeuraxScan(func(string)) permite a detecção de hosts ativos na rede local. Seu único argumento é uma função de callback que é chamada em segundo plano para cada host ativo. Um host é tratado como ativo quando tem pelo menos 1 porta aberta, não está já infectado e cumpre as condições especificadas dentro de N.

NeuraxScan() executa como um loop infinito - ela escaneia toda a sub-rede especificada pela entrada de configuração .Cidr e quando todos os hosts são escaneados, a função dorme por um intervalo definido em .ScanInterval.

Infecção de discos

O binário Neurax não precisa se copiar usando meios sem fio. A função NeuraxDisks() copia o binário atual (sob um nome não suspeito) para todas as unidades lógicas encontradas. O binário copiado não é executado, mas simplesmente reside em seu destino esperando para ser executado. NeuraxDisks() retorna um error se a lista de discos não puder ser obtida ou a cópia para qualquer destino foi impossível.

Outra função, NeuraxZIP(num_files int) err permite criar um arquivo .zip com nome aleatório contendo o binário atual. Ele é salvo no diretório atual e contém até num_files arquivos aleatórios.

NeuraxZIPSelf() simplesmente compacta o binário atual, criando um arquivo com o mesmo nome.

Conexões reversas

Um shell reverso interativo pode ser estabelecido com NeuraxReverse(). Ele receberá comandos do hostname especificado dentro de .ReverseListener na forma de "<host>:<port>". O protocolo usado é definido em .ReverseProto Se NeuraxOpenComm() foi iniciado antes de chamar esta função, cada comando se comportará como descrito na seção acima. Se não foi, os comandos serão executados localmente.

Nota: esta função também deve ser executada como goroutine para evitar bloqueio causado pelo loop infinito usado para recebimento.

Limpeza

Sempre que um comando "purge" é recebido por um nó, ele reenvia este comando para todos os outros nós, remove-se do host e sai. Este comportamento também pode ser iniciado usando NeuraxPurge() executado em algum lugar do código fonte.

Criação de wordlist

Se o vetor de propagação de sua escolha é baseado em algum tipo de bruteforce, é bom ter uma wordlist adequada preparada. Armazenar palavras em um arquivo de texto no lado do cliente não é realmente eficaz, então você pode mutar uma wordlist básica usando NeuraxWordlist(...words) []string. Para permutar um conjunto de palavras fornecidas, use NeuraxWordlistPermute(..words) []string

Definindo tempo de vida

Se você quiser que seu binário se remova após um determinado tempo, use NeuraxSetTTL() no início do seu código. Esta função deve ser lançada como uma goroutine. Por exemplo:

go NeuraxSetTTL("2m")

fará com que o binário execute NeuraxPurgeSelf() após 2 minutos da execução inicial.

Usando múltiplos stagers ao mesmo tempo

Se você quiser encadear todos os stagers disponíveis para uma determinada plataforma, defina .Stager como "chain".

Movendo o binário descartado

Se você precisar copiar o binário após a execução inicial, use NeuraxMigrate(path string). Ele copiará o binário para path, removerá o binário atual e executará o binário recém-migrado.

Apoie esta ferramenta

Se você gosta deste projeto e quer vê-lo crescer, por favor considere fazer uma pequena doação :>

>>>>> DOAR <<<<<

Licença

Este software está sob licença MIT

Baixar ferramenta
NomeDescriçãoValor padrão
Nrx.Config.StagerNome do stager de comando a ser usadorandom, platform-compatible
Nrx.Config.StagerSudoSe verdadeiro, stagers de comando Linux são executados com privilégios elevadosfalse
Nrx.Config.StagerRetryNúmero de vezes para reexecutar o stager de comando0
Nrx.Config.StagerRemoveDelayInstrução de suspensão é aplicada antes de remover o binário baixadotrue
Nrx.Config.PortPorta para servir6741
Nrx.Config.PlatformPlataforma a ser alvodetected automatically
Nrx.Config.PathCaminho sob o qual o binário é salvo no host.
Nrx.Config.FileNameNome sob o qual o binário baixado deve ser servido e depois salvorandom
Nrx.Config.Base64Codificar o binário transferido em base64false
Nrx.Config.CommPortPorta usada pelos binários para se comunicarem entre si7777
Nrx.Config.CommProtoProtocolo para comunicação entre nós"udp"
Nrx.Config.ReverseListenerContém "<host>:<port>" do manipulador de shell reverso remotonot specified
Nrx.Config.ReverseProtoProtocolo a ser usado para conexão reversa"udp"
Nrx.Config.ScanRequiredPortNeuraxScan() trata o host como ativo apenas quando ele tem uma porta específica abertanone
Nrx.Config.ScanPassiveNeuraxScan() detecta hosts usando monitoramento passivo de tráfego ARPfalse
Nrx.Config.ScanPassiveTimeoutNeuraxScan() monitora a camada ARP por essa quantidade de segundos50 seconds
Nrx.Config.ScanPassiveIfaceInterface a ser usada ao escanear passivamentedefault
Nrx.Config.ScanActiveTimeoutNeuraxScan() define esse valor como timeout para a porta escaneada em cada thread2 seconds
Nrx.Config.ScanPassiveAllNeuraxScan() captura pacotes em todos os dispositivos encontradosfalse
Nrx.Config.ScanPassiveNoArpEscaneamento passivo não define filtro estrito de captura ARPfalse
Nrx.Config.ScanFirstUma slice contendo endereços IP a serem escaneados primeiro[]string{}
Nrx.Config.ScanFirstOnlyNeuraxScan() escaneia apenas hosts especificados dentro de .ScanFirstfalse
Nrx.Config.ScanArpCacheNeuraxScan() escaneia primeiro os hosts encontrados na cache ARP local. Funciona apenas com escaneamento ativofalse
Nrx.Config.ScanCidrNeuraxScan() escaneia este CIDRlocal IP + "\24"
Nrx.Config.ScanActiveThreadsNúmero de threads a serem usadas para NeuraxScan()10
Nrx.Config.ScanFullRangeNeuraxScan() escaneia todas as portas do host alvo para determinar se está ativofrom 19 to 300
Nrx.Config.ScanIntervalIntervalo de tempo para dormir antes de escanear toda a sub-rede novamente"2m"
Nrx.Config.ScanHostIntervalIntervalo de tempo para dormir antes de escanear o próximo host no modo ativo"none"
Nrx.Config.ScanGatewayFirstGateway é o primeiro host escaneado quando o escaneamento ativo é usadofalse
Nrx.Config.VerboseSe verdadeiro, todas as mensagens de erro são impressas no STDOUTfalse
Nrx.Config.RemoveQuando ocorrer qualquer erro, o binário se remove do hostfalse
Nrx.Config.PreventReexecSe verdadeiro, quando qualquer comando coincidir com os que já foram recebidos antes, ele não é executadotrue
Nrx.Config.WordlistExpandNeuraxWordlist() realiza transformações não padrão nas palavras de entradafalse
Nrx.Config.WordlistCommonAntepor 20 senhas mais comuns à wordlistfalse
Nrx.Config.WordlistCommonNumNúmero de senhas comuns a usarall
Nrx.Config.WordlistCommonCountriesUm map[string]int que contém códigos de país e número de senhas a usarmap[string]int
Nrx.Config.WordlistMutatorsMutadores a usar quando .WordlistExpand é especificado{"single_upper", "cyryllic", "encapsule"}
Nrx.Config.WordlistPermuteNumComprimento máximo da permutação gerada por NeuraxWordlistPermute()2
Nrx.Config.WordlistPermuteSeparatorUm caractere separador para usar nas permutações"-"
Nrx.Config.WordlistShuffleEmbaralhar a wordlist gerada antes de retorná-lafalse
Nrx.Config.AllocNumEsta entrada define quantas vezes NeuraxAlloc() aloca memória aleatória5
Nrx.Config.BlacklistSlice que contém endereços IP que são excluídos de qualquer tipo de escaneamento[]string{}
Nrx.Config.FastHTTPRequisição HTTP em IsHostInfected() é realizada usando a biblioteca fasthttpfalse
Nrx.Config.DebugHabilitar mensagens de debugfalse
Nrx.Config.NoInfectCheckDesabilitar verificação se o host já está infectadotrue