
Uma implementação de agressor do Cobalt Strike criptografada com XOR em .NET para o chisel utilizar proxy mais rápido e capacidades avançadas de socks5.
Uma implementação de agressor do Cobalt Strike, criptografada com XOR .NET, para o chisel, a fim de utilizar proxy mais rápido e capacidades avançadas de socks5.
Na minha experiência, achei os proxies socks4/socks4a bastante lentos em comparação com suas contrapartes socks5 e uma falta de implementação de socks5 na maioria dos frameworks C2. Existe um wrapper em C# para a versão Go do chisel chamado SharpChisel. Este wrapper tem alguns problemas e não é mantido na versão mais recente de sua contraparte Go. SharpChisel não produzia shellcode compatível com donut, métodos de reflexão ou execute-assembly. Uma correção para isso foi encontrada usando o projeto SharpChisel-NG: https://github.com/latortuga71/SharpChisel-NG.
Como o assembly SharpChisel-NG tem cerca de 16.7 MB, o execute-assembly (que tem uma limitação oculta de tamanho de 1 MB) e métodos semelhantes em memória não funcionariam. Para manter a maior parte da execução na memória, o projeto NetLoader é incorporado e executado via execute-assembly para hospedar e carregar reflexivamente uma versão criptografada com XOR do SharpChisel-NG com argumentos base64 na memória.
Como alternativa, também é possível implementar proxies C# semelhantes como SharpSocks substituindo os binários apropriados do chisel no projeto.
Nota: Se estiver usando um teamserver Windows, pule as etapas 2 e 3.
Clone / baixe o repositório: git clone https://github.com/m3rcer/Chisel-Strike.git
Torne todos os binários executáveis:
cd Chisel-Strike
chmod +x -R chisel-modules
chmod +x -R tools
Mingw-w64 e mono:sudo apt-get install mingw-w64
sudo apt install mono-complete
ChiselStrike.cna no Cobalt Strike usando o Script ManagerRecompile e substitua os binários atualizados da pasta src se necessário.
O chisel pode ser executado tanto no cliente do teamserver do CS (Windows/Linux) quanto no beacon. Com qualquer um atuando como servidor/cliente. Um fluxo de execução normal seria configurar um servidor chisel no teamserver do CS e então criar um cliente no beacon para se conectar de volta ao teamserver.
chisel <client/server> <command>: Executar chisel em um beacon
chisel-tms <client/server> <command>: Executar chisel no seu teamserver do CS
chisel-enc: Criptografar com XOR o SharpChisel-NG com uma senha de sua escolha
chisel-jobs: Listar jobs ativos do chisel no teamserver do CS e no beacon
chisel-kill: Matar jobs ativos do chisel em um beacon
chisel-tms-kill: Matar jobs ativos do chisel no seu cliente teamserver do CS

SharpChisel-NG deixa cair uma DLL no disco devido ao uso dos pacotes Costura / Fody em um local semelhante a: C:\Users\m3rcer\AppData\Local\Temp\Costura\CB9433C24E75EC539BF34CD1AA12B236\64\main.dll, que é detectado pelo Defender. É aconselhável ofuscar e atualizar as DLLs do chisel e o SharpChisel-NG no projeto.
Descobrir uma maneira de evitar que o SharpChisel deixe cair a main.dll no disco / criar um novo wrapper em C# para o chisel.
Criar um método para analisar a saída de comando para o comando chisel-tms.
shantanu561993 pela implementação do wrapper C# do chisel: SharpChisel
latortuga71 pela correção do load-assembly: SharpChisel-NG