Um servidor de comando e controle [C&C] é um computador controlado por um invasor ou cibercriminoso que é usado para enviar comandos a sistemas comprometidos por malware e receber dados roubados de uma rede de destino. Muitas campanhas foram encontradas usando serviços baseados em nuvem , como webmail e serviços de compartilhamento de arquivos, como servidores C&C para se misturar ao tráfego normal e evitar detecção.
servidores C&C servem como centros de comando que o malware relacionado a ataques direcionados usa para armazenar dados roubados ou baixar comandos. Estabelecer comunicações C&C é uma etapa vital para os invasores se moverem lateralmente dentro de uma rede.
Os servidores C&C também servem como quartéis-generais para máquinas comprometidas em um botnet. Ele pode ser usado para disseminar comandos que podem roubar dados, espalhar malware, interromper serviços da Web e muito mais. Os sistemas C&C usados por botnets podem seguir qualquer um destes três modelos: O modelo centralizado, modelo peer-to-peer [P2P] e o modelo aleatório.
https://www.trendmicro.com/vinfo/us/security/definition/command-and-control-server
Ferramentas de C&C
Você tem inúmeras ferramentas de C&C que são bacanas de utilizar, eu particularmente gosto do Cobalt Strike, mas é sempre legal experimentar outras alternativas:
- Cobalt Strike is software for Adversary Simulations and Red Team Operations. https://cobaltstrike.com/
- Empire is a post-exploitation framework that includes a pure-PowerShell2.0 Windows agent, and a pure Python 2.6/2.7 Linux/OS X agent. https://github.com/EmpireProject/Empire
- Metasploit Framework is a computer security project that provides information about security vulnerabilities and aids in penetration testing and IDS signature development. https://github.com/rapid7/metasploit-framework
- SILENTTRINITY A post-exploitation agent powered by Python, IronPython, C#/.NET. https://github.com/byt3bl33d3r/SILENTTRINITY
- Pupy is an opensource, cross-platform (Windows, Linux, OSX, Android) remote administration and post-exploitation tool mainly written in python. https://github.com/n1nj4sec/pupy
- Koadic or COM Command & Control, is a Windows post-exploitation rootkit similar to other penetration testing tools such as Meterpreter and Powershell Empire. https://github.com/zerosum0x0/koadic
- PoshC2 is a proxy aware C2 framework written completely in PowerShell to aid penetration testers with red teaming, post-exploitation and lateral movement. https://github.com/nettitude/PoshC2_Python
- Gcat a stealthy Python based backdoor that uses Gmail as a command and control server. https://github.com/byt3bl33d3r/gcat
- TrevorC2 is a legitimate website (browsable) that tunnels client/server communications for covert command execution. https://github.com/trustedsec/trevorc2
- Merlin is a cross-platform post-exploitation HTTP/2 Command & Control server and agent written in golang. https://github.com/Ne0nd0g/merlin
- Quasar is a fast and light-weight remote administration tool coded in C#. Providing high stability and an easy-to-use user interface, Quasar is the perfect remote administration solution for you. https://github.com/quasar/QuasarRAT
- Covenant is a .NET command and control framework that aims to highlight the attack surface of .NET, make the use of offensive .NET tradecraft easier, and serve as a collaborative command and control platform for red teamers. https://github.com/cobbr/Covenant
- FactionC2 is a C2 framework which use websockets based API that allows for interacting with agents and transports. https://github.com/FactionC2/
- DNScat2 is a tool is designed to create an encrypted command-and-control (C&C) channel over the DNS protocol. https://github.com/iagox86/dnscat2
- Sliver is a general purpose cross-platform implant framework that supports C2 over Mutual-TLS, HTTP(S), and DNS. https://github.com/BishopFox/sliver
- EvilOSX An evil RAT (Remote Administration Tool) for macOS / OS X. https://github.com/Marten4n6/EvilOSX
- EggShell is a post exploitation surveillance tool written in Python. It gives you a command line session with extra functionality between you and a target machine. https://github.com/neoneggplant/EggShell
- Telegra-Csharp_C2 https://github.com/sf197/Telegra_Csharp_C2
https://github.com/infosecn1nja/Red-Teaming-Toolkit
Um artigo bacana sobre covenant é do João Paulo, recomendo a leitura, segue o link:
GCAT C&C
Nesse exemplo vou falar um pouco sobre o GCAT, pois curtir bastante ele principalmente por ser feito em Python e bem simples de se configurar.
Caso você queira baixar https://github.com/byt3bl33d3r/gcat
Vamos ao processo de configuração, eu recomendo que você crie uma conta de e-mail no GMAIL somente para isso, pois vamos habilitar configurações que acarretam em menos segurança para maior efetividade da ferramenta.
Primeiramente, você vai habilitar à utilização de Apps menos seguros:
https://myaccount.google.com/u/3/lesssecureapps?pli=1
Após isso, você vai no seu GMAIL, acessar a barra de configurações, clicando na engrenagem e em seguida vai clicar em ver todas as definições e ativar o recurso IMAP, em resumo o objetivo da ativação é para que ele leia e-mails de diferentes tipos de recursos e caminhos, assim eliminando a probabilidade do nosso C&C não ser eficiente e acabar não funcionando. Para realizar essa configuração, basta fazer o seguinte:
Agora vamos efetuar o processo de Download e configuração do nosso GCAT, são bem simples:
Basta clonar o repositório do github, digitando:
git clone https://github.com/byt3bl33d3r/gcat
Depois é só acessar a pasta do gcat e dentro dela vai ter dois arquivos importantes chamados gcat.py e implant.py
Sendo o gcat.py o nosso servidor e o implant.py o nosso agente ao qual vai ser usado para executar na máquina do alvo, mas antes será necessário alterar apenas 2 linhas em ambos os arquivos:
Basta colocar o seu e-mail e senha ao qual foi criado e configurado para o C2,além disso tem outras configurações que você pode fazer no implant nas linhas abaixos que estão comentadas, mas eu não vou modificar mais nada, pois é apenas um laboratório.
Agora o que você pode fazer?
- Baixar o Pyinstaller ou Py2Exe e gerar um executável em cima do implant.py
- Ao comprometer o alvo, você pode criar um arquivo silencioso para instalar uma versão python2 e assim executar o implant.py via interpretador
- Caso a máquina já tenha instalado o Python é só executar o implant.py
Vou mostrar os dois primeiros processos de maneira superficial!
Usando o Py2Exe, você vai instalar usando o comando:
pip install py2exe
Vai criar esse script, chamando o implant.py em uma console ao qual ele vai executar uma série de comandos.
Após isso basta digitar:
python script.py py2exe
Ai ele vai gerar o executável para você de 32 bits ou de 64 bits, eu recomendo que você gere conforme a arquitetura da sua máquina, pois se ela for de 32 a principio em automatico ele vai gerar de 32 bits mesmo.
Utilizando PyInstaller é um pouco diferente, mas é bem simples também, você vai instalar:
pip install pyinstaller
Após isso é só executar o comando:
pyinstaller implant.py
Pronto! Processo efetuado com sucesso, basta pegar o arquivo.exe na pasta /gcat/dist/implant/
https://www.py2exe.org/index.cgi/Tutorial
https://pyinstaller.readthedocs.io/en/stable/usage.html
Por fim, você tem uma gambiarra que eu gosto de fazer e é algo que eu particularmente não vi muita gente fazendo, no meu caso eu utilizo um BAT EXEC CONVERTER para instalar pacotes essências não ofensivos, mas que são necessários para executar algo ofensivo.
Então eu crio um script em BAT que reconhece se o sistema é 32 ou 64 bits e baixo 2 pacotes do Python em MSI tanto de 32 como de 64, você pode baixar pelo próprio site
Mais detalhes: https://www.python.org/download/releases/2.5/msi/
Agora vamos ao processo:
Esses nomes python64-install e python32-install é só representando os nomes dos executáveis, você baixar as duas versões e jogar em uma pasta junto com o script.bat, em resumo esse script tem uma estrutura de condição que não faz a melhor verificação, mas que ajuda bastante na instalação silenciosa e automatizada de um arquivo, detalhe é o /qn que ele é uma opção que não faz interação em nenhum momento com o usuário, sendo silenciosa.
Agora é só baixar um bat_to_exec_converter, eu tenho um aqui no meu drive e vou compartilhar com vocês:
Primeiramente vamos selecionar o nosso script.bat que é o principal para automatizar a nossa instalação
Em save-as você pode mudar o nome do executável para o que desejar, e de resto você pode colocar essas configurações que eu definir, pois eles vão executar de maneira silenciosa esse executável também, além de executar na pasta %temp% e ser apagado depois da instalação.
Na opção include, você vai incluir aqueles 2 MSI que são os dois instaladores, como eu fiquei com preguiça de baixa-los, eu usei 2 que eu tinha só para exemplificar mesmo rsrsrsrs
Por fim, você tem umas modificações extras que você pode fazer se quiser, é opcional, ai basta compilar que ele vai nos gerar o nosso executável e ai é só testar, claro que antivírus na sua maioria fazem verificações nesse tipo de arquivo, por isso é só um exemplo mesmo, mas com criatividade as coisas podem ser melhoradas 😉
https://www.battoexeconverter.com/
Após fazer o processo desejado e executar na máquina alvo, seja iniciando um executável ou utilizando o interpretador do python para iniciar o implant.py, ex: python implant.py, você vai receber um e-mail e assim você terá acesso remoto a máquina.
Agora no terminal basta digitar:
python gcat.py -list para ver os IDs disponível, pois eles são os IDs de cada máquina como agente executado
Como executar comandos?
python gcat.py ele te mostra o help dele, vamos a brincadeira
python gcat.py -id “id da maquina” -cmd dir
Ele vai executar o comando dir na máquina alvo, referente ao ID é sempre aquele código que parece uma HASH sempre antes do nome do Sistema Operacional.
Após executar o comando, ele cria um jobid ao qual você pode utilizar para visualizar a resposta do programa ou não
Assim ele retorna para você os diretórios aonde o implant.py está sendo executado, caso você não especifique um caminho utilizando aspas simples (‘ ‘)
Um outro comando que você pode utilizar é o -info que trás informações cruciais do seu alvo
python gcat.py -id “id” -info
Em resumo a ferramentas tem outras funcionalidades também, como keylogger, download e upload de arquivos e screenshoot, porém é necessário fazer algumas alterações a mais para que ela fique 100%, por isso é bom saber programar em situações como essa também.
Conclusão
Esse é um exemplo de C2 bem simples, não é tão avançado, mas utiliza algo como o GMAIL que você não imaginaria que poderia ser útil como um meio ofensivo, mas é claro que existem C2 mais sofisticado, tem alguns que utilizam próprio telegram ao qual pretendo mostrar mais para frente.
Mas imagine isso em um cenário estilo MR. Robot aonde você usa um Raspberry PI e com o gcat você cria um C&C para enviar comandos para seu raspberry e até mesmo realizar ações maliciosas, inúmeras possibilidades!
Eu espero que você tenha gostado desse simples artigo, nada tão profundo, mas feedbacks são bem vindos e você pode explorar a ferramenta com mais detalhes se desejar, pretendo trazer outros C&C para vocês.
Caso queira ver outros artigos meus, acesse: https://www.linkedin.com/in/joas-antonio-dos-santos/
Views: 605