Nessa parte, devemos seguir o mesmo raciocino do artigo passado, o porque disso é por conta da conexão cliente-servidor e por conta da criptografia, onde, o cliente - assim como o servidor - possuem uma mesma chave para troca de dados pela rede de forma segura.
Vale lembrar que existem outras formas para troca de dados na rede de forma segura com o socket.
Leia mais em:
https://stackoverflow.com/questions/7698488/turn-a-simple-socket-into-an-ssl-socketBibliotecas
https://stackoverflow.com/questions/26851034/opening-a-ssl-socket-connection-in-python
https://github.com/christiandt/Secure-Chat
Como dito, devemos seguir o mesmo raciocínio do servidor.
Configuração de conexão e protocolos
Devemos definir o IP (ou DNS) e a porta que o servidor esta configurado.
Criptografia e auxiliares
Sendo a ultima parte do código, finalizamos o nosso malware por completo, tendo ele:
- Conexão Socket;
- Criptografia com AES e base64;
- Módulos auxiliares;
- Backdoor e Spyware embutidos;
Na pratica
É hora de testar o malware, verificar se a conexão esta pegando, se ela esta realmente criptografada e testar nossos auxiliares. Lembrando que eu não criptografei os dados enviados pelos módulos auxiliares, é muito importante lembrar disso.
Como utilizei o sistema Windows como alvo, eu tive que transformar o .py em .exe
- cx_Freeze para Windows, Linux, e Mac OS X (Python 2.7, 3.x)
- pyinstaller para Windows, Linux, e Mac OS X (Python 2.7, 3.3-3.5)
- bbfreeze para Windows e Linux (Python 2.4-2.7)
- py2exe para Windows (Python 2.6, 2.7)
- py2exe para Windows (Python 3.3-3.5)
- pytoexe para Windows (Python 2, 3)
- Freeze para Linux e maybe Mac OS X (Python 2.x)
- py2app para Mac OS X (Python 2.x)
Lembrando que a conexão entre cliente-servidor não é totalmente criptografada, apenas os comandos que são enviados pelos dados que são criptografados. Para ter um conexão segura, é necessário por o SSL no Socket.
Considerações finais
Bom galera, espero que vocês tenham gostado desse artigo com três partes sobre desenvolvimento de malware. Vimos que é importante saber pelo menos o básico-intermediário de programação, redes e sistemas operacionais.
Nenhum comentário:
Postar um comentário