Ferramentas como metasploit são ótimas para explorar computadores, mas o que acontece depois que você obteve acesso a um computador? O backdoorme responde a essa pergunta liberando uma série de backdoors para estabelecer persistência por longos períodos de tempo.
Uma vez que uma conexão SSH foi estabelecida com o alvo, os pontos fortes do Backdoorme podem ser aproveitados. Infelizmente, o Backdoorme não é uma ferramenta para obter acesso root – apenas manter esse acesso depois de obtido.
Por favor, use o Backdoorme apenas com permissão explícita – por favor, não invada sem perguntar.
Uso
O Backdoorme é dividido em duas partes: backdoors e módulos.
Backdoors são pequenos trechos de código que escutam em uma porta e redirecionam para um interpretador, como bash. Existem muitos backdoors escritos em várias linguagens para oferecer variedade.
Os módulos tornam os backdoors mais potentes executando-os com mais frequência, por exemplo, a cada poucos minutos ou sempre que o computador inicializa. Isso ajuda a estabelecer persistência.
Demonstração:
Configuração
Para iniciar o backdoorme, primeiro certifique-se de ter as dependências necessárias.
Para Python 3.5+:
$ sudo apt-get install python3 python3-pip python3-tk nmap
$ cd backdoorme/
$ virtualenv --python=python3.5 env
$ source env/bin/activate
(env) $ pip install -r requirements.txt
Para Python 2.7:
$ sudo python dependencies.py
Primeiros Passos
Iniciando o backdoorme:
$ python master.py
Para adicionar um alvo:
>> addtarget
Target Hostname: 10.1.0.2
Username: victim
Password: password123
+ Target 1 Set!
>>
Backdoors
Para usar um backdoor, simplesmente execute a palavra-chave "use".
>> use shell/metasploit
+ Using current target 1.
+ Using Metasploit backdoor...
(msf) >>
A partir daí, você pode definir opções pertinentes ao backdoor. Execute "show options" ou "help" para ver uma lista de parâmetros que podem ser configurados. Para definir uma opção, simplesmente use a palavra-chave "set".
(msf) >> show options
Backdoor options:
Option Value Description Required
------ ----- ----------- --------
name initd name of the backdoor False
...
(msf) >> set name apache
+ name => apache
(msf) >> show options
Backdoor options:
Option Value Description Required
------ ----- ----------- --------
name apache name of the backdoor False
...
Como no metasploit, os backdoors são organizados por categoria.
- Auxiliary
- keylogger - Adiciona um keylogger ao sistema e oferece a opção de enviar os resultados por e-mail para você.
- simplehttp - Instala o servidor SimpleHTTP do Python no cliente.
- user - Adiciona um novo usuário ao alvo.
- web - Instala um servidor Apache no cliente.
- Escalation
- setuid - O backdoor SetUID funciona definindo o bit setuid em um binário enquanto o usuário tem acesso root, para que, quando esse binário for executado posteriormente por um usuário sem acesso root, o binário seja executado com acesso root. Por padrão, este backdoor ativa o bit setuid no nano, de modo que, se o acesso root for perdido, o invasor pode se conectar via SSH como um usuário sem privilégios e ainda assim executar o nano (ou qualquer binário escolhido) como root. ('nano /etc/shadow'). Observe que o acesso root é inicialmente necessário para implantar este backdoor de escalonamento.
- shell - O backdoor shell é um backdoor de escalonamento de privilégio, semelhante ao (mas mais específico que) seu irmão de escalonamento SetUID. Ele duplica o shell bash para um binário oculto e define o bit SUID. Observe que o acesso root é inicialmente necessário para implantar este backdoor de escalonamento. Para usar, enquanto estiver conectado via SSH como um usuário sem privilégios, simplesmente execute ".bash -p", e você terá acesso root.
- Shell
- bash - Usa um script bash simples para conectar a uma combinação específica de IP e porta e redirecionar a saída para o bash.
- bash2 - Uma versão ligeiramente diferente (e mais confiável) do backdoor bash acima que não solicita a senha no lado do cliente.
- sh - Semelhante ao primeiro backdoor bash, mas redireciona a entrada para /bin/sh.
- sh2 - Semelhante ao segundo backdoor bash, mas redireciona a entrada para /bin/sh.
- metasploit - Emprega o msfvenom para criar um binário reverse_tcp no alvo e, em seguida, executa o binário para conectar a um shell meterpreter.
- java - Cria uma conexão socket usando bibliotecas do Java e compila o backdoor no alvo.
- ruby - Usa as bibliotecas do Ruby para criar uma conexão e, em seguida, redireciona para /bin/bash.
- netcat - Usa o netcat para redirecionar a entrada e saída padrão para /bin/sh, fornecendo ao usuário um shell interativo.
- netcat_traditional - Utiliza a opção -e do netcat-traditional para criar um shell reverso.
- perl - Um script escrito em Perl que redireciona a saída para o bash e renomeia o processo para parecer menos suspeito.
- php - Executa um backdoor PHP que envia a saída para o bash. Ele não instala automaticamente um servidor web, mas usa o módulo web.
- python - Usa um pequeno script Python para executar comandos e enviar a saída de volta ao usuário.
- web - Envia um servidor web para o alvo, depois carrega o backdoor PHP reverse_tcp do msfvenom e conecta ao host. Embora também seja um backdoor PHP, não é o mesmo backdoor que o backdoor PHP acima.
- Access
- remove_ssh - Remove o servidor SSH no cliente. Geralmente é bom usar no final de uma sessão do backdoorme para remover todos os vestígios.
- ssh_key - Cria uma chave RSA e copia para o alvo para uma conexão SSH sem senha.
- ssh_port - Adiciona uma nova porta para SSH.
- Windows
- windows - Usa o msfvenom para criar um backdoor do Windows.
Módulos
Cada backdoor tem a capacidade de ter módulos adicionais aplicados para torná-lo mais potente. Para adicionar um módulo, simplesmente use a palavra-chave "add".
(msf) >> add poison
+ Poison module added
Cada módulo possui parâmetros adicionais que podem ser personalizados, e se "help" for executado novamente, você pode ver ou definir quaisquer opções adicionais.
(msf) >> help
...
Poison module options:
Option Value Description Required
------ ----- ----------- --------
name ls name of command to poison False
location /bin where to put poisoned files into False
Os módulos atualmente habilitados incluem:
- Poison
- Realiza envenenamento de binários no computador alvo – compila um executável para chamar um utilitário do sistema e um backdoor existente.
- Por exemplo, se o módulo de envenenamento de binários for acionado com "ls", ele compilaria e moveria um binário chamado "ls" que executaria tanto um backdoor existente quanto o "ls" original, fazendo com que um usuário acione um backdoor existente com mais frequência.
- Cron
- Adiciona um backdoor existente ao crontab do usuário root para executar com uma frequência determinada.
- Web
- Configura um servidor web e coloca uma página web que aciona o backdoor.
- Simplesmente visite o site com seu listener aberto e o backdoor começará.
- User
- Adiciona um novo usuário ao alvo.
- Startup
- Permite que backdoors sejam gerados com os arquivos bashrc e init.
- Whitelist
- Coloca um IP na lista de permissões para que apenas esse IP possa conectar ao backdoor.