
Serviço do Windows que cria sessões SMB falsas para simular logons de usuários com altos privilégios, atraindo atacantes para máquinas honeypot para detecção precoce e resposta a incidentes.
________ _________ _____ _ _____ __
/ ___| \/ || ___ \ / ___| (_) / ___| / _|
\ `--.| . . || |_/ / \ `--. ___ ___ ___ _ ___ _ __ \ `--. _ __ ___ ___ | |_ ___ _ __
`--. \ |\/| || ___ \ `--. \/ _ \/ __/ __| |/ _ \| '_ \ `--. \ '_ \ / _ \ / _ \| _/ _ \ '__|
/\__/ / | | || |_/ / /\__/ / __/\__ \__ \ | (_) | | | | /\__/ / |_) | (_) | (_) | || __/ |
\____/\_| |_/\____/ \____/ \___||___/___/_|\___/|_| |_| \____/| .__/ \___/ \___/|_| \___|_|
| |
|_|
Bem-vindo! Esta é uma utilidade que pode ser compilada com Visual Studio 2019 (ou mais recente). O objetivo deste programa é criar uma sessão SMB falsa. O propósito principal é servir como um método para atrair invasores a acessar um dispositivo-isca (honey-device). Este programa não oferece garantia ou garantias.
Este programa exigirá que você modifique ligeiramente o código. Na linha 144, a API CreateProcessWithLogonW do Windows é chamada, há dois parâmetros fornecidos por padrão – svc-admin (o Nome de Usuário) e contoso.com (o domínio). É necessário que você altere esses valores para algo que corresponda à sua rede de produção.
CreateProcessWithLogonW(L"DomainAdminUser", L"YourDomain.com", NULL, LOGON_NETCREDENTIALS_ONLY, <snip>);
Após modificar o código e compilá-lo, você deve então instalar o serviço. Isso pode ser feito com o seguinte comando:
sc create servicename binpath="C:\ProgramData\Services\Inject\service.exe" start="auto"
Para verificar se o programa está funcionando corretamente, você deve verificar quais sessões existem no sistema. Isso pode ser feito com o seguinte comando:
C:\ProgramData\Services\Inject> net sessions
Computer User name Client Type Opens Idle time
-------------------------------------------------------------------------------
\\[::1] svc-admin 0 00:00:04
The command completed successfully.
Você deve verificar novamente em cerca de 13 minutos para confirmar que uma nova sessão foi criada e o programa está funcionando corretamente.
A teoria por trás disso é que quando um adversário executa o SharpHound e coleta sessões e analisa caminhos de ataque a partir de principais comprometidos, ele pode identificar que um usuário com privilégios elevados está logado em infraestrutura de Tier 2 (Workstations), o que (aparentemente) permite que ele acesse e extraia credenciais para obter acesso de Administrador de Domínio.
No cenário acima, um invasor comprometeu o usuário "[email protected]" que é Administrador Local em lab-wkst-2.contoso.com. O usuário svc-admin está logado em lab-wkst-2.contoso.com, o que significa que tudo o que o invasor precisa fazer é entrar na estação de trabalho, executar o Mimikatz e extrair credenciais. Então, como monitorar isso?
A implementação desta ferramenta é importante, assim como a monitoração. Se você implementar a ferramenta sem monitoração, ela será efetivamente inútil; portanto, a monitoração é obrigatória. A maneira mais eficaz de monitorar este host é alertar sobre qualquer logon. Este programa é melhor utilizado em um host sem atividade de usuário que seja membro do domínio com ferramentas corporativas padrão de monitoração (EDR, AV, Encaminhamento de Eventos do Windows, etc.). É altamente recomendável que você tenha alertas por e-mail, SMS e muitos outros, se possível, para garantir que incidentes envolvendo esta máquina sejam triados o mais rápido possível, já que esta tem a maior probabilidade de um adversário real interagir com a estação de trabalho em questão.
Agradecimentos à Microsoft por fornecer o código de modelo de serviço e pela excelente Documentação da API do Windows.