
Ferramentas autodesenvolvidas para Movimento Lateral/Execução de Código
Este repositório foi criado com base no já existente MiscTool, então um grande agradecimento ao rasta-mouse por ter lançado essas ferramentas e por me dar a motivação certa para trabalhar nelas.
Execução de comandos / Movimentação lateral através de funcionalidade semelhante ao PsExec. Deve estar sendo executado no contexto de um usuário privilegiado. A ferramenta é baseada no CsExec do rasta-mouse, mas foi projetada para permitir controle adicional sobre a criação de serviços, especificamente:
CheeseExec.exe <targetMachine> <serviceName> <binPath> <action>
Veja também TikiService.
CheesePS é um framework de Execução de Comandos / Movimentação Lateral. Ele depende de System.Management.Automation.PowerShell para carregar e executar código arbitrário via PowerShell.
A ferramenta é nativamente capaz de contornar restrições comuns criando e usando runspaces do PowerShell em alvos locais ou remotos.
Deve ser executada no contexto de um usuário privilegiado (se estiver usando PowerShell Remoting).
A ferramenta foi originalmente criada como uma melhoria do CsPosh do rasta_mouse, mas cresceu o suficiente para se tornar um framework próprio, e agora pode ser usada como um injetor genérico de PowerShell.
A ideia por trás desta ferramenta foi resumida no seguinte artigo:
As principais funcionalidades implementadas são:
A seguinte captura de tela é um esquema razoavelmente preciso para descrever o fluxo de trabalho da ferramenta:

Usage:
-t, --target=VALUE Target machine
-c, --code=VALUE Code to execute
-e, --encoded Indicates that provided code is base64 encoded
-a, --am-si-bypass=VALUE Uses the given PowerShell script to bypass A-M-S-
I (fs, smb o http[s])
--aX, --encrypted-am-si
Indicates that provided A.M.S.I. bypass is
encrypted
-i, --import=VALUE Imports additional PowerShell modules (fs, smb o
http[s])
--iX, --encrypted-imports
Indicates that provided PowerShell modules are
encrypted
-o, --outstring Append Out-String to code
-r, --redirect Redirect stderr to stdout
-d, --domain=VALUE Domain for alternate credentials
-u, --username=VALUE Username for alternate credentials
-p, --password=VALUE Password for alternate credentials
-X, --encrypt=VALUE Encrypt a script with an hardcoded key
-D, --decrypt=VALUE Test decryption of a script with an hardcoded key
-n, --skip-bypass=VALUE Skip A.M.S.I (A), WLDP (W) or ALL (*) Bypass
techniques
-l, --lockdown-escape Try to enable PowerShell FullLanguage mode using
REGINI
-w, --wldp-bypass=VALUE Uses the given PowerShell script to bypass WLDP
(fs, smb o http[s])
--wX, --encrypted-wldp Indicates that provided WLDP bypass is encrypted
-x, --executable=VALUE [Download and] Execute given executable
--xX, --encrypted-executable
Indicates that provided Exe/DLL is encrypted
--xCS, --executable-csharp
Indicates that the executable provided is C# -
(.NET)
-R, --reflective-injection Uses Invoke-ReflectivePEInjection to load the
assmebly from memory (requires Invoke-
ReflectivePEInjection to be imported!)
-P, --powershell-decrypt Force use of PowerShell-based decryption
-k, --encryption-key=VALUE Uses the provided key for encryption/decryption
--ssl Force use of SSL
-h, -?, --help Show Help
Nota: Se executado sem um alvo, o script será executado contra a máquina local
Veja também AmsiBypass.
Execução de comandos / Movimentação Lateral via DCOM. Deve ser executado no contexto de um usuário privilegiado. Esta ferramenta é baseada no CsDCOM do rasta-mouse, mas foi aprimorada para adicionar métodos adicionais, adaptando-se às novas pesquisas feitas por Philip Tsukerman. Há também um método experimental para "corrigir" eventuais tentativas de desabilitar objetos DCOM afetados via dcomcfg, mas requer algumas pré-condições para funcionar corretamente.
A ideia por trás desta ferramenta foi resumida no seguinte artigo:
Métodos Atuais: MMC20.Application, ShellWindows, ShellBrowserWindow, ExcelDDE, VisioAddonEx,
OutlookShellEx, ExcelXLL, VisioExecLine, OfficeMacro.
Usage:
-t, --target=VALUE Target Machine
-b, --binary=VALUE Binary: powershell.exe
-a, --args=VALUE Arguments: -enc <blah>
-m, --method=VALUE Methods: MMC20Application, ShellWindows,
ShellBrowserWindow, ExcelDDE, VisioAddonEx,
OutlookShellEx, ExcelXLL, VisioExecLine,
OfficeMacro
-r, --reg, --registry Enable registry manipulation
-h, -?, --help Show Help
Nota: Se executado com -t ., o script será executado contra a máquina local
Veja também Movimentação Lateral Usando Objetos DCOM e C#
Ferramenta de roubo de credenciais RDP via RDI (injeção reflexiva de DLL). Deve ser executado no contexto de um usuário privilegiado, ou um usuário com SeImpersonatePrivilege.
Esta ferramenta é construída sobre o RdpThief da MDSec, mas foi totalmente encapsulada em um único C# para permitir sua execução via .NET Reflection (Assembly.Load e similares). Dessa forma, é
possível executá-la via Covenant, sem a dificuldade de fazer upload de uma DLL no sistema alvo.
Usage:
CheeseRDP [actions]
Actions:
wait: keep listening for any new mstsc.exe process indefinitely (stop with ctrl-C)
clean: delete the credentials dump file if present
dump: dump the content of the file if present, parsing the credentials in a compact format
Nota: Se executado sem opções, o programa tentará injetar em um processo mstsc.exe ativo (o tempo de espera padrão é de 10 segundos)
Execução de comandos / Movimentação Lateral via Trust MSSQL. Esta ferramenta foi desenvolvida para superar algumas das limitações de ferramentas já existentes, como o esc, principalmente no que diz respeito à personificação MSSQL. Além disso, o CheeseSQL foi modificado especificamente para ser executado a partir do Covenant (via carregamento reflexivo) e para automatizar as fases mais importantes do abuso de trust MSSQL. Particularmente interessante é a implementação do abuso de CLR, que permite a um usuário compilar e enviar uma extensão MSSQL em tempo real com Roslyn para obter execução de comandos. Uma pequena demonstração é mostrada abaixo, o comando executado é um downloader do Covenant codificado em PowerShell):

Seguindo minha regra de "sempre dar crédito quando o crédito é devido", esta ferramenta foi desenvolvida a partir de um projeto já existente do Jb05s, chamado SharpSQL, então um grande agradecimento ao Jeremy pelo seu trabalho.
Além disso, recomendo fortemente ver todas as ferramentas do NetSPI sobre auditoria e exploração MSSQL, pois são realmente incríveis:
[*] List of available commands:
- findspn : Find MSSQL Instances, using Domain SPNs
- listdb : List available Databases on the server
- gethash : Send Service Account Net-NTLM Hash to an Arbitrary IP
- getlogin : Retrieve SQL Logins Available for Impersonation
- getdbuser : Retrieve Information on the SQL Login, Currently Mapped User, and Available User Roles
- getlinked : Retrieve Information about Linked Servers
- getserverinfo : Retrieve current values of 'xp_cmdshell', 'ole automation procedures' and 'clr enabled'
- xp : Execute Encoded PowerShell Command via 'xp_cmdshell'
- ole : Execute Encoded PowerShell Command via 'sp_OACreate' and 'sp_OAMethod'
- clr : Execute Encoded PowerShell Command via custom .NET assemblies
- rpc : Configure Linked SQL Server to Allow RPC connections
- linkedquery : Execute Encoded PowerShell Command on Linked SQL Server via 'OPENQUERY'
- openquery : Execute an arbitrary query using 'OPENQUERY'
[*] For detailed usage, type:
- CheeseSQL <command> /help