Exemplo básico de programa malicioso com Perl.

Atenção: Nenhuma máquina foi invadida e todo o laboratório foi executado em ambiente confinado e para fins de utilização ética, “INVASÃO DE COMPUTADOR É CRIME”.

Olá pessoal !!! Bem vindo ao site !!!

Perl é uma linguagem de programação estável e multiplataforma, muito utilizada em aplicações de missão crítica com destaque em diversos desenvolvimentos web. A criação de programas para diversos ambientes UNIX, MSDOS, Windows, Macintosh, OS/2 proporciona alta flexibilidade da linguagem para inúmeras aplicações.

Uma vasta documentação encontra -se em http://perldoc.perl.org/perl.html.

Sua versatilidade no processamento de cadeias (strings), bem como manipulação de texto utilizando expressões regulares potencializa o projeto de ferramentas estáveis para auditoria e pentest.

Este pequeno artigo é uma demosntração básica de programação com Perl, onde -se mostra a execução de um programa chamando um determinado arquivo com intenções maliciosas. A idéia é sempre suspeitar de programas e scripts, de uma forma geral  e verificar a sua estrutura, através de uma análise forense. Malwares e trojans e demais utilizam técnicas avançadas para ofuscar o código malicioso dificultando sua interpretação e real intenção.

Neste ponto foi criado um pequeno programa com nome de initperl.pl no Kali Linux aplicando permissão para execução com o comando chmod.

root@kali:~# touch initperl.pl

ls

chmod +x initperl.pl

Fig 1

Editar o arquivo initperl.pl com o comando VI desenvolvendo o pequeno programa que soma duas variáveis A e B.

vi initperl.pl

Fig 2

Pequeno programa desenvolvido. Em um programa pequeno fica fácil identificar o propósito de algumas linhas de programação  inseridas, no entanto imagine um código de programa com 5 mil linhas. Se o código estiver ofuscado o trabalho para identificar a legitimidade será maior ainda.

Fig 3

Executando o programa criado: perl initperl.pl ou ./initperl.pl

Fig 4

Criar o diretório /home com o comando mkdir  /root/home. No diretório cd /root/home criar o arquivo script.sh executável.

Fig 5

Editar o arquivo script.sh

Fig 6

O comando rm -rf pequeno* deleta o arquivo pequenoarquivo.txt e o comando exec top exibe os processos em execução, caso estivessem sem os comentários #. Várias ações poderiam ser desencadeadas, como deletar o próprio sistema operacional com o comando rm -rf /.

O programa executa a operação de soma e o arquivo script.sh ao mesmo tempo.

Fig 7

Mensagem criada dentro do arquivo pequenoarquivo.txt.

Fig 8

Rodando o programa novamente sem os comentários o pequenoarquivo.txt será deletado exibindo a operação soma e os processos do Linux com o comando TOP.

Fig 9

No diretório ROOT verifica -se o arquivo pequenoarquivo.txt deletado.

Fig 10

Resumindo qual é o nível de vulnerabilidade que é adquirido quando executa -se vários programas e scripts existentes por aí sem conhecer plenamente a sua estrutura ?

 

Um grande abraço a todos e até a próxima !!!

By: Gerson Raymond

Técnico em Contabilidade, Técnico em Eletrônica, Técnico em Telecomunicações, Bacharel em Ciência da Computação, Administrador de Redes Linux (CentOS, XEN, Zabbix, Asterisk/Elastix) e Pós-Graduado em Segurança em Tecnologia da Informação – UNIVERSIDADE MACKENZIE – SP.

Homepage: http://www.grsecurity.com.br