Esta postagem vai ser para apresentar uma pequena 'técnica' que acabei utilizando para criar backdoors em Python com apenas '1 linha' de comando via shell.
Observação:
O conteúdo apresentado nesta postagem deve ser reproduzido apenas em um ambiente no qual você possui autorização para a realização de testes de segurança.
Introdução
Em algumas situações específicas durante um Pentest, você pode acabar tendo acesso a um servidor Linux (ou até Windows que tenha ActivePython instalado) através de um webshell e queira implantar um backdoor no mesmo servidor (conexão direta ou reversa).
A opção '-c' do interpretador do Python permite executar um comando passado como parâmetro. A figura abaixo apresenta um exemplo da execução desta opção:
 |
Figura 01: Opção -c do interpretador Python |
Obfuscando o código
O próximo passo é poder executar diversas instruções em sequência. Para realizar esta tarefa podemos utilizar a função exec e uma codificação em Base64 (até para obfuscar um pouco o nosso código hehe). Eu criei um pequeno script para codificar em Base64 o conteúdo de um arquivo '.py' e apresentar a instrução utilizada na decodificação e execução do código.
A figura abaixo ilustra a execução de um backdoor (escutando na porta 4444/TCP) através do script criado.
 |
Figura 02: Rodando o script :) |
O script esta disponível para download na URL abaixo:
Conclusão
Nesta postagem foi apresentada uma pequena técnica para execução de backdoors em Python com uma única instrução via shell. Por favor escrevam suas sugestões e comentários!
Obrigado :)
Keep Hacking!