Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
OneDrive-UDC2 — OneDrive como transporte C2 encoberto para Cobalt Strike | Kitploit
Ferramentas/GitHubGitHub/nmht3t/onedrive-udc2
Ferramentas DefensivasFrameworks de Testes de PenetraçãoPós-ExploraçãoSegurança na NuvemComando e ControleRed TeamingDesenvolvimento de Payloads
GitHubnmht3t/onedrive-udc2

OneDrive-UDC2

OneDrive como transporte C2 encoberto para Cobalt Strike

Ver Repositório
721085há 27 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

OneDrive UDC2

Um canal C2 definido pelo usuário do Cobalt Strike que usa o OneDrive como camada de transporte.

Architecture

O que você precisa

  • Um tenant do Microsoft Entra ID com um usuário que tenha OneDrive for Business.
  • Um registro de aplicativo com a permissão de aplicativo Files.ReadWrite.All.

Configuração

1. Registrar um aplicativo

No Portal do Azure, vá para Registros de aplicativo e crie um novo aplicativo:

  • Tipo de conta: Locatário único.
  • URI de redirecionamento: Deixe em branco.

Anote o ID do locatário e o ID do cliente na página de visão geral.

2. Adicionar a permissão do Graph

Em Permissões de API:

  1. Adicione Microsoft Graph, depois Permissões de aplicativo, depois Files.ReadWrite.All.
  2. Clique em Conceder consentimento do administrador.

3. Criar um segredo de cliente

Em Certificados e segredos, crie um novo segredo e copie seu valor.

4. Criar as pastas do OneDrive

No OneDrive do usuário, crie duas pastas, uma para a caixa de entrada e outra para a caixa de saída (por exemplo, c2inbox e c2outbox).

5. Obter os IDs da unidade e das pastas

Abra o Graph Explorer, faça login como esse usuário e execute:

GET https://graph.microsoft.com/v1.0/me/drive/root/children

Pegue o id de cada pasta e o driveId de qualquer entrada na resposta JSON.

Compilar

cp server/config.json.example server/config.json

Preencha server/config.json:

CampoValor
tenant_idID do locatário do Microsoft Entra ID
client_idID do cliente do aplicativo
client_secretValor do segredo do cliente
drive_idID da unidade do OneDrive
inbox_folder_idID da pasta de entrada
outbox_folder_idID da pasta de saída

Em seguida, compile o cliente:

make

Executar

Inicie o relay (use screen ou tmux para que ele permaneça ativo caso seu terminal desconecte):

python3 server/relay.py --config server/config.json --ts-addr <teamserver-ip> --ts-port <udc2-port>

No Cobalt Strike, crie um listener UDC2 na mesma porta e carregue client/bof.o.

Opções do relay

FlagDescrição
--configCaminho para config.json (obrigatório)
--ts-addrIP do Teamserver
--ts-portPorta do listener UDC2
--pollIntervalo de polling em segundos (padrão 2.0)
--stateCaminho para o arquivo de estado (padrão: <config>.state.json)
--debugAtivar registro de depuração
--cleanExcluir o arquivo de estado e o diretório de spool, depois sair

Arquivo de estado, spool e lock

O relay cria alguns arquivos ao lado da sua configuração para acompanhar as coisas entre reinicializações:

  • Arquivo de estado (config.json.state.json) - rastreia quais arquivos da caixa de entrada foram processados, uploads pendentes e informações de sessão do beacon. Defina um caminho personalizado com --state.
  • Diretório de spool (config.json.state.json.spool/) - contém dados de resposta que ainda não foram enviados ao OneDrive. Se o relay travar no meio de um upload, o spool mantém os dados para que ele possa tentar novamente na próxima inicialização.
  • Arquivo de lock (config.json.state.json.lock) - impede que duas instâncias do relay sejam executadas com o mesmo estado. Se você vir Another relay holds the lock e nenhum outro relay estiver em execução, o lock está obsoleto devido a um travamento.

Redefinindo o estado do relay

Se o estado local do relay ficar corrompido ou um lock obsoleto estiver bloqueando a inicialização, use --clean para apagar o arquivo de estado e o diretório de spool para que o relay comece do zero:

python3 server/relay.py --config server/config.json --clean

O arquivo de lock é mantido. O relay não fará a limpeza enquanto outra instância estiver em execução. Na próxima inicialização normal, ele se reinicializa e ignora quaisquer arquivos da caixa de entrada com mais de 30 minutos.

Você também pode redefinir manualmente excluindo o arquivo de estado e o diretório de spool por conta própria. Se o arquivo de lock estiver obsoleto (nenhum relay em execução), exclua-o também.

Demonstração

POC

Referências

  • Cobalt Strike UDC2 docs
  • Cobalt Strike ICMP UDC2
  • WKL Slack UDC2
Baixar ferramenta