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
CS-DropSpawn_BOF — CobaltStrike BOF para gerar Beacons usando DLL Application Directory Hijacking | Kitploit
Ferramentas/GitHubGitHub/gmh5225/cs-dropspawn_bof
ExploraçãoPós-ExploraçãoTestes de PenetraçãoRed TeamingDesenvolvimento de Payloads
GitHubgmh5225/cs-dropspawn_bof

CS-DropSpawn_BOF

CobaltStrike BOF para gerar Beacons usando DLL Application Directory Hijacking

Ver Repositório
324há 3 anosAinda 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

DropSpawn

Introdução

DropSpawn é um BOF do CobaltStrike usado para gerar Beacons adicionais por meio de um método relativamente desconhecido de sequestro de DLL. Funciona em x86-x86, x64-x64 e x86-x64/vice-versa. Use como alternativa à injeção de processos.

Executáveis do Windows seguirão a ordem de pesquisa de DLL ao tentar carregar DLLs cujos caminhos absolutos não foram especificados:
image

O sequestro de DLL normalmente exige que:

A. Um usuário tenha permissões de escrita em uma pasta com precedência maior na ordem de pesquisa do que onde a DLL real reside

ou

B. Que a DLL em questão não exista em nenhum lugar do sistema; nesse caso, ela pode ser colocada em uma pasta gravável pelo usuário na variável %PATH% do usuário (como %USERPROFILE%\appdata\local\microsoft\windowsapps).

Esses requisitos descartam o sequestro de DLL para executáveis localizados em C:\Windows\System32, porque quase todas as DLLs que esses executáveis carregam também residem em System32. Copiar um executável do System32 para um local gravável pelo usuário e executá-lo lá é uma opção, mas não é muito seguro em termos de OPSEC, pois binários do System32 executados a partir de locais alternativos são fáceis de identificar.

DropSpawn permite o sequestro de DLL usando executáveis do System32 (e outros encontrados em pastas adicionais não graváveis pelo usuário) ao falsificar "O diretório a partir do qual o aplicativo é carregado" para um diretório arbitrário especificado pelo usuário.

Nota:

O lançamento público do DropSpawn difere ligeiramente do não público. O lançamento não público utiliza um gerador de payload proprietário, tornando a experiência muito mais fluida para o operador. O lançamento público foi ligeiramente alterado para considerar o fato de que os usuários terão suas próprias formas de gerar payloads compatíveis com sequestro de DLL. Um script Python3, bem como o código-fonte de uma DLL de demonstração, foram incluídos para auxiliar os usuários na integração e weaponização do dropspawn.

Como Usar

1.

Identifique alguns executáveis de destino que tentam carregar DLLs sem especificar seus caminhos absolutos. Você pode fazer isso copiando o exe para um diretório gravável pelo usuário e executando-o enquanto o monitora com o Procmon. Neste exemplo, usaremos o WerFault.exe, que normalmente reside em C:\Windows\System32\WerFault.exe

image

No exemplo acima, cryptsp.dll, wer.dll, dbghelp.dll e bcrypt.dll são todos candidatos viáveis porque seus caminhos absolutos não foram especificados dentro do WerFault; como resultado, o WerFault tentará carregá-los do seu diretório de aplicativo primeiro antes de recorrer ao restante da ordem de pesquisa de DLL. Observe que isso normalmente não é uma preocupação, pois o diretório do aplicativo do WerFault É o System32.

2.

Baixe uma das DLLs sequestráveis do sistema de destino.

image Isso é necessário para que possamos extrair suas exportações e incluí-las em nossa DLL de payload. É importante obter a DLL sequestrável da mesma máquina em que você deseja usar o DropSpawn, pois as DLLs mudam entre versões do Windows. Além disso, se você estiver executando um beacon x86 e quiser gerar um beacon x64 usando o DropSpawn, certifique-se de baixar a versão x64 da DLL real especificando 'C:\windows\sysnative...' em vez de 'C:\windows\system32...'.

3.

Execute o generate_dll.py, passando a DLL baixada e a arquitetura de payload desejada. O generate_dll.py é uma versão modificada deste script. Ele analisará a DLL fornecida, criará um arquivo .def contendo as exportações da DLL e chamará o MingW para compilar nossa DLL de payload de demonstração. Quando o processo gerado tentar chamar uma função real dentro da DLL falsificada, nossa DLL de payload encaminhará a chamada para a DLL real localizada no System32 para que o processo host não falhe. image

4.

Chame o dropspawn usando a DLL de payload gerada.

dropspawn <payload DLL> <x86|x64> <programa a gerar> [pasta de destino gravável] [processo pai]

payload DLL - o caminho completo para a DLL de payload gerada.
arquitetura - a arquitetura do processo que você deseja gerar
programa a gerar - o nome/caminho do processo que você deseja gerar. Se este processo residir no System32 (ou syswow64), você pode simplesmente especificar o nome. Caso contrário, especifique o caminho completo. Você também pode fornecer argumentos de linha de comando para o processo. Se houver espaços no caminho/se você usar argumentos, coloque tudo entre aspas.
pasta de destino gravável - Opcional. Se deixado em branco, o dropspawn tentará usar o diretório atual do Beacon. Use aspas se houver espaços no caminho.
processo pai - Opcional. O nome do processo a ser usado para falsificação de PPID com o processo recém-gerado. Se um processo for especificado com múltiplas instâncias em execução de diferentes níveis de privilégio (ou seja, svchost.exe), o dropspawn tentará identificar uma que possa ser usada para falsificação de PPID.

Exemplo: dropspawn /root/dbgcore.dll x64 "WerFault.exe -u -p 4352 -s 160" C:\users\user\appdata\local\temp explorer.exe

Isso gravará a DLL de payload 'dbgcore.dll' em disco em 'c:\users\user\appdata\local\temp\dbgcore.dll' e gerará um processo WerFault.exe x64 com os argumentos de linha de comando '-u -p 4352 -s 160' e explorer.exe como processo pai.

image

image

5.

A limpeza é fácil. Ao incluir a função de Auto-Exclusão na DLL de payload gravada em disco, ela será excluída assim que nosso novo processo for gerado e a carregar. Isso é um divisor de águas, pois normalmente a DLL ficaria bloqueada em disco enquanto nosso processo que a carregou continuasse em execução. Se a técnica de Auto-Exclusão falhar por algum motivo (ou o processo falhar ao ser gerado), o DropSpawn tentará excluir a DLL de payload do disco e informará o usuário sobre o resultado da operação de qualquer forma.

Detecção

A injeção de processos normalmente segue a cadeia abrir processo remoto -> alocar memória remota -> escrever memória remota -> executar memória remota, com a opção de gerar um novo processo no início em vez de usar um existente. O DropSpawn apenas cria um novo processo; o processo recém-gerado é responsável por alocar, escrever e executar o shellcode, então podemos evitar muitos dos IOCs normalmente associados à injeção remota de processos.

Baixar ferramenta