
Расширяемый инструмент анализа хостов для red team, динамически загружающий проверки с учётом OpSec для сбора информации о пользователях, доменах, привилегиях и учётных данных с конечных точек Windows через execute-assembly.
Расширяемая, настраиваемая триаж-утилита для хостов.
SitRep представляет собой легковесную, расширяемую альтернативу для триажа хостов. Проверки загружаются динамически из самостоятельных файлов во время выполнения. Это позволяет операторам быстро изменять существующие проверки или добавлять новые по мере необходимости.
Проверки сгруппированы по категориям и могут быть помечены как безопасные/небезопасные с точки зрения OpSec. Небезопасные проверки загружаются только при указании флага /AllowUnsafe.
Интересные результаты выделяются с помощью "[*]"
Проверки разделены по категориям. Это позволяет отображать их в соответствующих группах. В настоящее время доступны следующие проверки:
Окружение
Защита
Разрешения
ПО
Учётные данные
Следующие проверки в настоящее время отмечены как небезопасные с точки зрения OpSec:
Вам следует просмотреть эту конфигурацию и обновить теги OpSec при необходимости.
Все проверки включены по умолчанию. Однако, поскольку проверки загружаются динамически, их можно отключить.
Отключение проверки
CheckBase включает логическое свойство "Enabled", которое по умолчанию имеет значение true. Его можно задать в производном классе, добавив конструктор. Приведённый ниже пример отключает проверку CurrentUser (CurrentUser.cs):
public CurrentUser()
{
base.Enabled = false;
}
Исключение проверок из сборки
Поскольку проверки загружаются динамически, можно исключить проверку из сборки без внесения других изменений. Самый простой способ сделать это — щёлкнуть правой кнопкой мыши по классу проверки в Visual Studio и выбрать "Исключить из проекта". Проверку можно снова добавить, выбрав "Включить в проект" в том же контекстном меню.
Преимущество этого подхода в том, что код удаляется из скомпилированного артефакта.
Запуск всех проверок
SitRep.exe /AllowUnsafe
Запуск только безопасных с точки зрения OpSec проверок (по умолчанию)
SitRep.exe
SitRep предназначен для выполнения через execute-assembly (или эквивалентный метод)

Проверки наследуют от CheckBase и реализуют интерфейс ICheck. Это обеспечивает соблюдение шаблонов, необходимых для динамической загрузки проверок. Другие методы и классы могут быть добавлены по мере необходимости.
Интерфейс ICheck предоставляет следующие свойства и методы:
Производные классы должны переопределить метод "ToString()", определённый в CheckBase. Этот метод вызывается при отображении вывода каждой проверки.
Доступ к нативным методам предоставляется через классы в папке "NativeMethods". Каждый класс назван в соответствии с DLL, с которой он взаимодействует.
Проверки отвечают за собственную обработку ошибок. В текущих проверках весь метод "check" обёрнут в блок try-catch, использование этого шаблона приветствуется.
Пример пустой проверки показан ниже
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();
}
}
}
Принимаются пул-реквесты. Пожалуйста, убедитесь, что проверки являются автономными (т.е. не зависят от результатов других проверок). Насколько это возможно, проверки должны быть самодостаточными, со всем одноразовым кодом внутри класса проверки.
Вы когда-нибудь пробовали мокать конечную точку Windows, присоединённую к домену? Вот почему.
SitRep использует код из Seatbelt, SharpUp и случайных постов на StackOverflow. Соответствующие указания авторства добавлены.