
Ferramenta extensível de triagem de hosts para equipes vermelhas, carregando dinamicamente verificações cientes de OpSec para coletar informações de usuário, domínio, privilégio e credencial de endpoints Windows via execute-assembly.
Triagem de host extensível e configurável.
SitRep tem como objetivo fornecer uma alternativa leve e extensível de triagem de host. As verificações são carregadas dinamicamente em tempo de execução a partir de arquivos independentes. Isso permite que operadores modifiquem rapidamente as verificações existentes ou adicionem novas conforme necessário.
As verificações são agrupadas por categoria e podem ser marcadas como seguras/inseguras para OpSec. Verificações inseguras só são carregadas se a flag /AllowUnsafe for fornecida.
Resultados interessantes são destacados com "[*]"
As verificações são separadas em categorias. Isso permite que sejam exibidas em grupos apropriados. As seguintes verificações estão atualmente disponíveis:
Ambiente
Defesas
Permissões
Software
Credenciais
As seguintes verificações estão atualmente marcadas como inseguras para OpSec:
Você deve revisar esta configuração e atualizar as tags OpSec conforme necessário.
Todas as verificações estão habilitadas por padrão. No entanto, como as verificações são carregadas dinamicamente, é possível desabilitá-las.
Desabilitando uma verificação
CheckBase inclui uma propriedade booleana "Enabled", que padrão é true. Isso pode ser definido na classe derivada adicionando um construtor. O exemplo abaixo desabilita a verificação CurrentUser (CurrentUser.cs):
public CurrentUser()
{
base.Enabled = false;
}
Excluindo verificações da compilação
Como as verificações são carregadas dinamicamente, é possível excluir uma verificação da compilação sem outras modificações. A maneira mais fácil de fazer isso é clicar com o botão direito na classe de verificação no Visual Studio e selecionar "excluir do projeto". A verificação pode ser readicionada selecionando "incluir no projeto" no mesmo menu de contexto.
Esta abordagem tem a vantagem de remover o código do artefato compilado.
Executar todas as verificações
SitRep.exe /AllowUnsafe
Executar apenas verificações seguras para OpSec (padrão)
SitRep.exe
SitRep é projetado para ser executado via execute-assembly (ou equivalente)

As verificações herdam de CheckBase e implementam a interface ICheck. Isso impõe os padrões necessários para o carregamento dinâmico de verificações. Outros métodos e classes podem ser adicionados conforme necessário.
A interface ICheck expõe as seguintes propriedades e métodos:
As classes derivadas devem sobrescrever o método "ToString()" definido em CheckBase. Este método é chamado ao exibir a saída de cada verificação.
O acesso a métodos nativos é fornecido através de classes na pasta "NativeMethods". Cada classe é nomeada de acordo com a dll com a qual interage.
As verificações são responsáveis por fornecer seu próprio tratamento de erros. As verificações atuais envolvem todo o método "check" em um bloco try-catch, o uso deste padrão é incentivado.
Um exemplo de verificação vazia é mostrado abaixo
using SitRep.Interfaces;
using System;
namespace SitRep.Checks.Software
{
class ExampleCheck : CheckBase, ICheck
{
public bool IsOpsecSafe => true;
public int DisplayOrder => 1;
public Enums.Enums.CheckType CheckType => Enums.Enums.CheckType.Credential;
public void Check()
{
try
{
throw new NotImplementedException();
}
catch
{
Message = "Check failed [*]";
}
}
public override string ToString()
{
throw new NotImplementedException();
}
}
}
PRs são bem-vindos. Por favor, garanta que as verificações sejam independentes (ou seja, não dependentes da saída de outras verificações). Na medida do possível, as verificações devem ser autossuficientes, com todo o código de uso único presente dentro da classe de verificação.
Você já tentou simular um endpoint Windows ingressado em domínio? É por isso.
SitRep faz uso de código do Seatbelt, SharpUp e posts aleatórios do StackOverflow. Créditos foram adicionados onde apropriado.