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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Shellcode-Injection-Techniques — Implementações em C# de técnicas de injeção de shellcode, incluindo injeção clássica, hijacking de thread, process hollowing e atom bombing, usando payloads Meterpreter criptografados com AES para pesquisa de evasão de AV. | Kitploit
Ferramentas/GitHubGitHub/plackyhacker/shellcode-injection-techniques
ExploraçãoShellcodePós-ExploraçãoRed Teaming
GitHubplackyhacker/shellcode-injection-techniques

Shellcode-Injection-Techniques

Implementações em C# de técnicas de injeção de shellcode, incluindo injeção clássica, hijacking de thread, process hollowing e atom bombing, usando payloads Meterpreter criptografados com AES para pesquisa de evasão de AV.

Ver Repositório
4669215há 4 anosRevisado pelo Kitploit

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

Técnicas de Injeção de Shellcode

Uma coleção de técnicas de injeção de shellcode em C#. Todas as técnicas usam um payload meterpreter criptografado com AES.

Irei expandir este projeto à medida que aprendo, descubro ou desenvolvo mais técnicas.

Nota: O projeto não deve ser usado como está. Se for utilizar alguma das técnicas, há uma maior probabilidade de contornar o AV se criar um projeto mais pequeno e personalizado com a técnica escolhida.

Se usar algum código destes repositórios, mantenha-o dentro da legalidade!

Assembly Injection

Pode usar uma técnica de injeção de assembly PowerShell se quiser evitar escrever binários .Net em disco.

Executor de Shellcode

ShellcodeRunner.cs : Esta técnica não é estritamente uma técnica de injeção (porque executamos o shellcode no mesmo processo), mas é a mais simples de todas. Garantimos que o shellcode usa uma localização de memória fixa num contexto unsafe. Alteramos a proteção na página onde o shellcode está localizado para o podermos executar. Em seguida, usamos uma função delegada em C# para executar o shellcode.

[+] Using technique: ShellcodeInjectionTechniques.ShellcodeRunner
[+] VirtualProtect() - set to PAGE_EXECUTE_READWRITE, shellcode address: 0x20D000418E0
[+] Executing shellcode - memory address: 0x20D000418E0

Injeção Clássica

ClassicInjection.cs : Esta técnica aloca memória no processo alvo, injeta o shellcode e inicia uma nova thread.

[+] Found process: 24484
[+] Using technique: ShellcodeInjectionTechniques.ClassicInjection
[+] VirtualAllocEx(), assigned: 0x23642220000
[+] WriteProcessMemory() - remote address: 0x23642220000
[+] CreateRemoteThread() - thread handle: 0x380

Sequestro de Thread

ThreadHijack.cs : Esta técnica sequestra uma thread injetando código no processo alvo, suspende a thread sequestrada, define o ponteiro de instrução (RIP) para o nosso código injetado e depois retoma a thread.

[+] Found process: 11508
[+] Using technique: ShellcodeInjectionTechniques.ThreadHijack
[+] Found thread: 9344
[+] OpenThread() - thread handle: 0x378
[+] VirtualAllocEx(), assigned: 0x1D17AB80000
[+] WriteProcessMemory() - remote address: 0x1D17AB80000
[+] SuspendThread() - thread handle: 0x378
[+] GetThreadContext() - thread handle: 0x378
[+] RIP is: 0x7FFA77D21104
[+] SetThreadContext(), RIP assigned: 0x1D17AB80000
[+] ResumeThread() - thread handle: 0x378

Sequestro de Thread Local

LocalThreadHijack.cs : Esta técnica cria uma nova thread local em estado suspenso, depois sequestramos a thread, definimos o ponteiro de instrução (RIP) para o nosso código injetado e retomamos a thread.

[+] Using technique: ShellcodeInjectionTechniques.LocalThreadHijack
[+] CreateThread() - thread handle: 0x374
[+] VirtualProtect() - set to PAGE_EXECUTE_READWRITE, shellcode address: 0x270800418E0
[+] GetThreadContext() - thread handle: 0x374
[+] RIP is: 0x7FFA79EE2630
[+] SetThreadContext(), RIP assigned: 0x270800418E0
[+] ResumeThread() - thread handle: 0x374

Injeção por Chamada de Procedimento Assíncrona

ACPInjection.cs : Esta técnica é semelhante à técnica de Sequestro de Thread. Injetamos o shellcode numa thread remota e depois colocamos um objeto APC na fila da thread. Quando a thread entra num estado alertável (quando chama SleepEx, SignalObjectAndWait, MsgWaitForMultipleObjectsEx, WaitForMultipleObjectsEx, ou WaitForSingleObjectEx) executa o nosso shellcode apontado pelo nosso objeto APC na fila.

[+] Found process: 25320
[+] Using technique: ShellcodeInjectionTechniques.APCInjection
[+] Found thread: 23796
[+] OpenThread() - thread handle: 0x378
[+] VirtualAllocEx(), assigned: 0x24E064D0000
[+] WriteProcessMemory() - remote address: 0x24E064D0000
[+] QueueUserAPC() - thread handle: 0x378

Ocultação de Processo

ProcessHollow.cs : Esta técnica inicia outro processo em estado suspenso (svchost.exe), encontra o ponto de entrada da thread principal, injeta o nosso shellcode nele e depois retoma a thread.

[+] Using technique: ShellcodeInjectionTechniques.ProcessHollow
[+] CreateProcess(): C:\Windows\System32\svchost.exe
[+] Pointer to ImageBase: 0xD31E956010
[+] ReadProcessMemory() - image base pointer: 0xD31E956010
[+] ImageBase: 0x7FF6116C0000
[+] ReadProcessMemory() - svchost base: 0x7FF6116C0000
[+] EntryPoint: 0xD31E956010
[+] WriteProcessMemory(): 0x7FF6116C4E80
[+] ResumeThread() - thread handle: 0x454

Vista Mapeada Entre Processos

InterProcessMappedView.cs : Esta técnica cria uma nova secção na memória, cria uma vista mapeada local da secção, copia o nosso shellcode para a vista mapeada local e cria uma vista mapeada remota da vista mapeada local no processo alvo. Finalmente, criamos uma nova thread no processo alvo com a vista mapeada como ponto de entrada.

[+] Found process: 23740
[+] Using technique: ShellcodeInjectionTechniques.InterProcessMappedView
[+] NtCreateSection() - section handle: 0x37C
[+] NtMapViewOfSection() - local view: 0x20CB8E40000
[+] Marshalling shellcode
[+] NtMapViewOfSection() - remote view: 0x22D90310000
[+] RtlCreateUserThread() - thread handle: 0x384

Bomba de Átomo

AtomBomb.cs : Esta técnica é interessante na forma como escrevemos shellcode no processo alvo. Usamos a Tabela de Átomos Global que nos permite escrever strings terminadas em nulo com um tamanho máximo de 255 bytes. Encontramos uma cave de código para escrever o nosso shellcode, depois usamos chamadas APC para acionar o processo alvo a ler os Nomes de Átomo na memória. Finalmente, usamos algumas chamadas APC para alterar a proteção de memória do alvo e executar o shellcode.

O meu código difere da técnica original Atom Bombing, escrita em C/C++. Primeiro, encadeio Nomes de Átomo juntos, usando múltiplos APCs, para formar um shellcode maior que 255 bytes. Não uso cadeias ROP para forçar o processo alvo a chamar VirtualProtect e depois executar o código, uso a fila APC.

Este código requer que a thread principal entre num estado alertável para executar a fila APC e não faço limpeza após a execução do shellcode, o processo alvo torna-se instável. Planeio melhorar esta técnica (procurando threads alertáveis e limpando depois), mas como PoC funciona bem.

Baixar ferramenta