Seatbelt

Post-Exploitation >1 года

C#-проект для сбора информации о хосте Windows ('safety checks'), применяется как в защитных, так и в атакующих сценариях.


Установка
git clone https://github.com/GhostPack/Seatbelt.git
# Visual Studio: открыть Seatbelt.sln -> Build
# или командная строка:
dotnet build Seatbelt.csproj -c Release
# Готовый EXE доступен в GitHub Releases
показать оригинал переведено ИИ

Seatbelt


Seatbelt — это проект на C#, который выполняет ряд ориентированных на безопасность проверок хоста («safety checks»), актуальных как с точки зрения наступательной, так и оборонительной безопасности.

Скрипт HostEnum.ps1 от @andrewchiles и скрипт Get-HostProfile.ps1 от @tifkin_ послужили источником вдохновения для многих собираемых артефактов.

@harmj0y и @tifkin_ являются основными авторами этой реализации.

Seatbelt распространяется под лицензией BSD 3-Clause.

Содержание

Использование командной строки



                        %&&@@@&&                                                                                  
                        &&&&&&&%%%,                       #&&@@@@@@%%%%%%###############%                         
                        &%&   %&%%                        &////(((&%%%%%#%################//((((###%%%%%%%%%%%%%%%
%%%%%%%%%%%######%%%#%%####%  &%%**#                      @////(((&%%%%%%######################(((((((((((((((((((
#%#%%%%%%%#######%#%%#######  %&%,,,,,,,,,,,,,,,,         @////(((&%%%%%#%#####################(((((((((((((((((((
#%#%%%%%%#####%%#%#%%#######  %%%,,,,,,  ,,.   ,,         @////(((&%%%%%%%######################(#(((#(#((((((((((
#####%%%####################  &%%......  ...   ..         @////(((&%%%%%%%###############%######((#(#(####((((((((
#######%##########%#########  %%%......  ...   ..         @////(((&%%%%%#########################(#(#######((#####
###%##%%####################  &%%...............          @////(((&%%%%%%%%##############%#######(#########((#####
#####%######################  %%%..                       @////(((&%%%%%%%################                        
                        &%&   %%%%%      Seatbelt         %////(((&%%%%%%%%#############*                         
                        &%%&&&%%%%%        v1.2.1         ,(((&%%%%%%%%%%%%%%%%%,                                 
                         #%%%%##,                                                                                 


Available commands (+ means remote usage is supported):

    + AMSIProviders          - Providers registered for AMSI
    + AntiVirus              - Registered antivirus (via WMI)
    + AppLocker              - AppLocker settings, if installed
      ARPTable               - Lists the current ARP table and adapter information (equivalent to arp -a)
      AuditPolicies          - Enumerates classic and advanced audit policy settings
    + AuditPolicyRegistry    - Audit settings via the registry
    + AutoRuns               - Auto run executables/scripts/programs
      azuread                - Return AzureAD info
      Certificates           - Finds user and machine personal certificate files
      CertificateThumbprints - Finds thumbprints for all certificate store certs on the system
    + ChromiumBookmarks      - Parses any found Chrome/Edge/Brave/Opera bookmark files
    + ChromiumHistory        - Parses any found Chrome/Edge/Brave/Opera history files
    + ChromiumPresence       - Checks if interesting Chrome/Edge/Brave/Opera files exist
    + CloudCredentials       - AWS/Google/Azure/Bluemix cloud credential files
    + CloudSyncProviders     - All configured Office 365 endpoints (tenants and teamsites) which are synchronised by OneDrive.
      CredEnum               - Enumerates the current user's saved credentials using CredEnumerate()
    + CredGuard              - CredentialGuard configuration
      dir                    - Lists files/folders. By default, lists users' downloads, documents, and desktop folders (arguments == [directory] [maxDepth] [regex] [boolIgnoreErrors]
    + DNSCache               - DNS cache entries (via WMI)
    + DotNet                 - DotNet versions
    + DpapiMasterKeys        - List DPAPI master keys
      EnvironmentPath        - Current environment %PATH$ folders and SDDL information
    + EnvironmentVariables   - Current environment variables
    + ExplicitLogonEvents    - Explicit Logon events (Event ID 4648) from the security event log. Default of 7 days, argument == last X days.
      ExplorerMRUs           - Explorer most recently used files (last 7 days, argument == last X days)
    + ExplorerRunCommands    - Recent Explorer "run" commands
      FileInfo               - Information about a file (version information, timestamps, basic PE info, etc. argument(s) == file path(s)
    + FileZilla              - FileZilla configuration files
    + FirefoxHistory         - Parses any found FireFox history files
    + FirefoxPresence        - Checks if interesting Firefox files exist
    + Hotfixes               - Installed hotfixes (via WMI)
      IdleTime               - Returns the number of seconds since the current user's last input.
    + IEFavorites            - Internet Explorer favorites
      IETabs                 - Open Internet Explorer tabs
    + IEUrls                 - Internet Explorer typed URLs (last 7 days, argument == last X days)
    + InstalledProducts      - Installed products via the registry
      InterestingFiles       - "Interesting" files matching various patterns in the user's folder. Note: takes non-trivial time.
    + InterestingProcesses   - "Interesting" processes - defensive products and admin tools
      InternetSettings       - Internet settings including proxy configs and zones configuration
    + KeePass                - Finds KeePass configuration files
    + LAPS                   - LAPS settings, if installed
    + LastShutdown           - Returns the DateTime of the last system shutdown (via the registry).
      LocalGPOs              - Local Group Policy settings applied to the machine/local users
    + LocalGroups            - Non-empty local groups, "-full" displays all groups (argument == computername to enumerate)
    + LocalUsers             - Local users, whether they're active/disabled, and pwd last set (argument == computername to enumerate)
    + LogonEvents            - Logon events (Event ID 4624) from the security event log. Default of 10 days, argument == last X days.
    + LogonSessions          - Windows logon sessions
      LOLBAS                 - Locates Living Off The Land Binaries and Scripts (LOLBAS) on the system. Note: takes non-trivial time.
    + LSASettings            - LSA settings (including auth packages)
    + MappedDrives           - Users' mapped drives (via WMI)
      McAfeeConfigs          - Finds McAfee configuration files
      McAfeeSiteList         - Decrypt any found McAfee SiteList.xml configuration files.
      MicrosoftUpdates       - All Microsoft updates (via COM)
      MTPuTTY                - MTPuTTY configuration files
      NamedPipes             - Named pipe names, any readable ACL information and associated process information.
    + NetworkProfiles        - Windows network profiles
    + NetworkShares          - Network shares exposed by the machine (via WMI)
    + NTLMSettings           - NTLM authentication settings
      OfficeMRUs             - Office most recently used file list (last 7 days)
      OneNote                - List OneNote backup files
    + OptionalFeatures       - List Optional Features/Roles (via WMI)
      OracleSQLDeveloper     - Finds Oracle SQLDeveloper connections.xml files
    + OSInfo                 - Basic OS info (i.e. architecture, OS version, etc.)
    + OutlookDownloads       - List files downloaded by Outlook
    + PoweredOnEvents        - Reboot and sleep schedule based on the System event log EIDs 1, 12, 13, 42, and 6008. Default of 7 days, argument == last X days.
    + PowerShell             - PowerShell versions and security settings
    + PowerShellEvents       - PowerShell script block logs (4104) with sensitive data.
    + PowerShellHistory      - Searches PowerShell console history files for sensitive regex matches.
      Printers               - Installed Printers (via WMI)
    + ProcessCreationEvents  - Process creation logs (4688) with sensitive data.
      Processes              - Running processes with file info company names that don't contain 'Microsoft', "-full" enumerates all processes
    + ProcessOwners          - Running non-session 0 process list with owners. For remote use.
    + PSSessionSettings      - Enumerates PS Session Settings from the registry
    + PuttyHostKeys          - Saved Putty SSH host keys
    + PuttySessions          - Saved Putty configuration (interesting fields) and SSH host keys
      RDCManFiles            - Windows Remote Desktop Connection Manager settings files
    + RDPSavedConnections    - Saved RDP connections stored in the registry
    + RDPSessions            - Current incoming RDP sessions (argument == computername to enumerate)
    + RDPsettings            - Remote Desktop Server/Client Settings
      RecycleBin             - Items in the Recycle Bin deleted in the last 30 days - only works from a user context!
      reg                    - Registry key values (HKLM\Software by default) argument == [Path] [intDepth] [Regex] [boolIgnoreErrors]
      RPCMappedEndpoints     - Current RPC endpoints mapped
    + SCCM                   - System Center Configuration Manager (SCCM) settings, if applicable
    + ScheduledTasks         - Scheduled tasks (via WMI) that aren't authored by 'Microsoft', "-full" dumps all Scheduled tasks
      SearchIndex            - Query results from the Windows Search Index, default term of 'passsword'. (argument(s) == <search path> <pattern1,pattern2,...>
      SecPackageCreds        - Obtains credentials from security packages
    + SecureBoot             - Secure Boot configuration
      SecurityPackages       - Enumerates the security packages currently available using EnumerateSecurityPackagesA()
      Services               - Services with file info company names that don't contain 'Microsoft', "-full" dumps all processes
    + SlackDownloads         - Parses any found 'slack-downloads' files
    + SlackPresence          - Checks if interesting Slack files exist
    + SlackWorkspaces        - Parses any found 'slack-workspaces' files
    + SuperPutty             - SuperPutty configuration files
    + Sysmon                 - Sysmon configuration from the registry
    + SysmonEvents           - Sysmon process creation logs (1) with sensitive data.
      TcpConnections         - Current TCP connections and their associated processes and services
      TokenGroups            - The current token's local and domain groups
      TokenPrivileges        - Currently enabled token privileges (e.g. SeDebugPrivilege/etc.)
    + UAC                    - UAC system policies via the registry
      UdpConnections         - Current UDP connections and associated processes and services
      UserRightAssignments   - Configured User Right Assignments (e.g. SeDenyNetworkLogonRight, SeShutdownPrivilege, etc.) argument == computername to enumerate
      WifiProfile            - Enumerates the saved Wifi profiles and extract the ssid, authentication type, cleartext key/passphrase (when possible)
    + WindowsAutoLogon       - Registry autologon information
      WindowsCredentialFiles - Windows credential DPAPI blobs
    + WindowsDefender        - Windows Defender settings (including exclusion locations)
    + WindowsEventForwarding - Windows Event Forwarding (WEF) settings via the registry
    + WindowsFirewall        - Non-standard firewall rules, "-full" dumps all (arguments == allow/deny/tcp/udp/in/out/domain/private/public)
      WindowsVault           - Credentials saved in the Windows Vault (i.e. logins from Internet Explorer and Edge).
    + WMI                    - Runs a specified WMI query
      WMIEventConsumer       - Lists WMI Event Consumers
      WMIEventFilter         - Lists WMI Event Filters
      WMIFilterBinding       - Lists WMI Filter to Consumer Bindings
    + WSUS                   - Windows Server Update Services (WSUS) settings, if applicable


Seatbelt has the following command groups: All, User, System, Slack, Chromium, Remote, Misc

    You can invoke command groups with         "Seatbelt.exe <group>"


    Or command groups except specific commands "Seatbelt.exe <group> -Command"

   "Seatbelt.exe -group=all" runs all commands

   "Seatbelt.exe -group=user" runs the following commands:

        azuread, Certificates, CertificateThumbprints, ChromiumPresence, CloudCredentials, 
        CloudSyncProviders, CredEnum, dir, DpapiMasterKeys, 
        ExplorerMRUs, ExplorerRunCommands, FileZilla, FirefoxPresence, 
        IdleTime, IEFavorites, IETabs, IEUrls, 
        KeePass, MappedDrives, MTPuTTY, OfficeMRUs, 
        OneNote, OracleSQLDeveloper, PowerShellHistory, PuttyHostKeys, 
        PuttySessions, RDCManFiles, RDPSavedConnections, SecPackageCreds, 
        SlackDownloads, SlackPresence, SlackWorkspaces, SuperPutty, 
        TokenGroups, WindowsCredentialFiles, WindowsVault

   "Seatbelt.exe -group=system" runs the following commands:

        AMSIProviders, AntiVirus, AppLocker, ARPTable, AuditPolicies, 
        AuditPolicyRegistry, AutoRuns, Certificates, CertificateThumbprints, 
        CredGuard, DNSCache, DotNet, EnvironmentPath, 
        EnvironmentVariables, Hotfixes, InterestingProcesses, InternetSettings, 
        LAPS, LastShutdown, LocalGPOs, LocalGroups, 
        LocalUsers, LogonSessions, LSASettings, McAfeeConfigs, 
        NamedPipes, NetworkProfiles, NetworkShares, NTLMSettings, 
        OptionalFeatures, OSInfo, PoweredOnEvents, PowerShell, 
        Processes, PSSessionSettings, RDPSessions, RDPsettings, 
        SCCM, SecureBoot, Services, Sysmon, 
        TcpConnections, TokenPrivileges, UAC, UdpConnections, 
        UserRightAssignments, WifiProfile, WindowsAutoLogon, WindowsDefender, 
        WindowsEventForwarding, WindowsFirewall, WMI, WMIEventConsumer, 
        WMIEventFilter, WMIFilterBinding, WSUS

   "Seatbelt.exe -group=slack" runs the following commands:

        SlackDownloads, SlackPresence, SlackWorkspaces

   "Seatbelt.exe -group=chromium" runs the following commands:

        ChromiumBookmarks, ChromiumHistory, ChromiumPresence

   "Seatbelt.exe -group=remote" runs the following commands:

        AMSIProviders, AntiVirus, AuditPolicyRegistry, ChromiumPresence, CloudCredentials, 
        DNSCache, DotNet, DpapiMasterKeys, EnvironmentVariables, 
        ExplicitLogonEvents, ExplorerRunCommands, FileZilla, Hotfixes, 
        InterestingProcesses, KeePass, LastShutdown, LocalGroups, 
        LocalUsers, LogonEvents, LogonSessions, LSASettings, 
        MappedDrives, NetworkProfiles, NetworkShares, NTLMSettings, 
        OptionalFeatures, OSInfo, PoweredOnEvents, PowerShell, 
        ProcessOwners, PSSessionSettings, PuttyHostKeys, PuttySessions, 
        RDPSavedConnections, RDPSessions, RDPsettings, SecureBoot, 
        Sysmon, WindowsDefender, WindowsEventForwarding, WindowsFirewall


   "Seatbelt.exe -group=misc" runs the following commands:

        ChromiumBookmarks, ChromiumHistory, ExplicitLogonEvents, FileInfo, FirefoxHistory, 
        InstalledProducts, InterestingFiles, LogonEvents, LOLBAS, 
        McAfeeSiteList, MicrosoftUpdates, OutlookDownloads, PowerShellEvents, 
        Printers, ProcessCreationEvents, ProcessOwners, RecycleBin, 
        reg, RPCMappedEndpoints, ScheduledTasks, SearchIndex, 
        SecurityPackages, SysmonEvents


Examples:
    'Seatbelt.exe <Command> [Command2] ...' will run one or more specified checks only
    'Seatbelt.exe <Command> -full' will return complete results for a command without any filtering.
    'Seatbelt.exe "<Command> [argument]"' will pass an argument to a command that supports it (note the quotes).
    'Seatbelt.exe -group=all' will run ALL enumeration checks, can be combined with "-full".
    'Seatbelt.exe -group=all -AuditPolicies' will run all enumeration checks EXCEPT AuditPolicies, can be combined with "-full".
    'Seatbelt.exe <Command> -computername=COMPUTER.DOMAIN.COM [-username=DOMAIN\USER -password=PASSWORD]' will run an applicable check remotely
    'Seatbelt.exe -group=remote -computername=COMPUTER.DOMAIN.COM [-username=DOMAIN\USER -password=PASSWORD]' will run remote specific checks
    'Seatbelt.exe -group=system -outputfile="C:\Temp\out.txt"' will run system checks and output to a .txt file.
    'Seatbelt.exe -group=user -q -outputfile="C:\Temp\out.json"' will run in quiet mode with user checks and output to a .json file.

Примечание: поиски, нацеленные на пользователей, будут выполняться для текущего пользователя, если нет прав администратора, и для ВСЕХ пользователей, если права администратора имеются.

Группы команд

Примечание: многие команды по умолчанию выполняют фильтрацию определённого типа. Указание аргумента -full отключает фильтрацию вывода. Кроме того, группа команд all запускает все текущие проверки.

Например, следующая команда запустит ВСЕ проверки и вернёт ВЕСЬ вывод:

Seatbelt.exe -group=all -full

system

Запускает проверки, извлекающие интересные данные о системе.

Выполняется с помощью: Seatbelt.exe -group=system

Команда Описание
AMSIProviders Поставщики, зарегистрированные для AMSI
AntiVirus Зарегистрированные антивирусы (через WMI)
AppLocker Настройки AppLocker, если установлен
ARPTable Выводит текущую ARP-таблицу и информацию об адаптерах (эквивалент arp -a)
AuditPolicies Перечисляет классические и расширенные настройки политики аудита
AuditPolicyRegistry Настройки аудита через реестр
AutoRuns Автозагружаемые исполняемые файлы/скрипты/программы
Certificates Личные файлы сертификатов пользователя и компьютера
CertificateThumbprints Отпечатки для всех сертификатов в хранилищах сертификатов системы
CredGuard Конфигурация CredentialGuard
DNSCache Записи DNS-кэша (через WMI)
DotNet Версии DotNet
EnvironmentPath Текущие папки переменной окружения %PATH$ и информация об SDDL
EnvironmentVariables Переменные окружения текущего пользователя
Hotfixes Установленные исправления (через WMI)
InterestingProcesses «Интересные» процессы — защитные продукты и административные инструменты
InternetSettings Настройки интернета, включая конфигурации прокси
LAPS Настройки LAPS, если установлен
LastShutdown Возвращает дату и время последнего завершения работы системы (через реестр)
LocalGPOs Настройки локальной групповой политики, применённые к компьютеру/локальным пользователям
LocalGroups Непустые локальные группы, «full» отображает все группы (аргумент == имя компьютера для перечисления)
LocalUsers Локальные пользователи, их статус активности/отключения и дата последней установки пароля (аргумент == имя компьютера для перечисления)
LogonSessions События входа в систему (ID события 4624) из журнала безопасности. По умолчанию 10 дней, аргумент == последние X дней.
LSASettings Настройки LSA (включая пакеты аутентификации)
McAfeeConfigs Поиск конфигурационных файлов McAfee
NamedPipes Имена именованных каналов и любая доступная для чтения информация об ACL
NetworkProfiles Сетевые профили Windows
NetworkShares Сетевые ресурсы, доступные с машины (через WMI)
NTLMSettings Настройки аутентификации NTLM
OptionalFeatures TODO
OSInfo Базовая информация об ОС (т.е. архитектура, версия ОС и т.д.)
PoweredOnEvents Расписание перезагрузок и сна на основе событий системного журнала с ID 1, 12, 13, 42 и 6008. По умолчанию 7 дней, аргумент == последние X дней.
PowerShell Версии PowerShell и настройки безопасности
Processes Запущенные процессы с названиями компаний из информации о файлах, которые не содержат 'Microsoft', «full» перечисляет все процессы
PSSessionSettings Перечисляет настройки PS-сеансов из реестра
RDPSessions Текущие входящие RDP-сеансы (аргумент == имя компьютера для перечисления)
RDPsettings Настройки сервера/клиента удалённого рабочего стола
SCCM Настройки System Center Configuration Manager (SCCM), если применимо
Services Службы с названиями компаний из информации о файлах, которые не содержат 'Microsoft', «full» выводит все процессы
Sysmon Конфигурация Sysmon из реестра
TcpConnections Текущие TCP-соединения и связанные с ними процессы и службы
TokenPrivileges Включённые привилегии токена (например, SeDebugPrivilege и т.д.)
UAC Системные политики UAC через реестр
UdpConnections Текущие UDP-соединения и связанные процессы и службы
UserRightAssignments Настроенные назначения прав пользователей (например, SeDenyNetworkLogonRight, SeShutdownPrivilege и т.д.) — аргумент == имя компьютера для перечисления
WifiProfile TODO
WindowsAutoLogon Информация об автоматическом входе из реестра
WindowsDefender Настройки Windows Defender (включая исключения)
WindowsEventForwarding Настройки Windows Event Forwarding (WEF) через реестр
WindowsFirewall Нестандартные правила брандмауэра, «full» выводит все (аргументы == allow/deny/tcp/udp/in/out/domain/private/public)
WMIEventConsumer Выводит список WMI-потребителей событий
WMIEventFilter Выводит список WMI-фильтров событий
WMIFilterBinding Выводит список привязок WMI-фильтров к потребителям
WSUS Настройки Windows Server Update Services (WSUS), если применимо
### user

Выполняет проверки, которые извлекают интересные данные о текущем вошедшем в систему пользователе (если не от имени администратора) или обо ВСЕХ пользователях (если от имени администратора).

Выполняется с помощью: Seatbelt.exe -group=user

Команда Описание
Certificates Личные файлы сертификатов пользователя и компьютера
CertificateThumbprints Отпечатки всех сертификатов в хранилищах сертификатов системы
ChromiumPresence Проверяет наличие интересных файлов Chrome/Edge/Brave/Opera
CloudCredentials Файлы учётных данных облачных сервисов AWS/Google/Azure
CloudSyncProviders TODO
CredEnum Перечисляет сохранённые учётные данные текущего пользователя с помощью CredEnumerate()
dir Выводит список файлов/папок. По умолчанию выводит папки загрузок, документов и рабочего стола пользователей (аргументы == \<каталог> \<глубина> \<регулярное выражение>
DpapiMasterKeys Выводит список главных ключей DPAPI
Dsregcmd TODO
ExplorerMRUs Недавно использованные файлы в проводнике (за последние 7 дней, аргумент == за последние X дней)
ExplorerRunCommands Недавние команды "Выполнить" в проводнике
FileZilla Файлы конфигурации FileZilla
FirefoxPresence Проверяет наличие интересных файлов Firefox
IdleTime Возвращает количество секунд с момента последнего ввода данных текущим пользователем.
IEFavorites Избранное Internet Explorer
IETabs Открытые вкладки Internet Explorer
IEUrls Введённые URL-адреса в Internet Explorer (за последние 7 дней, аргумент == за последние X дней)
KeePass TODO
MappedDrives Сопоставленные диски пользователей (через WMI)
OfficeMRUs Список недавно использованных файлов в Office (за последние 7 дней)
OneNote TODO
OracleSQLDeveloper TODO
PowerShellHistory Перебирает каждого локального пользователя и пытается прочитать его историю консоли PowerShell, при успехе выводит её
PuttyHostKeys Сохранённые ключи SSH-хостов Putty
PuttySessions Сохранённая конфигурация Putty (интересные поля) и ключи SSH-хостов
RDCManFiles Файлы настроек Windows Remote Desktop Connection Manager
RDPSavedConnections Сохранённые подключения RDP, хранящиеся в реестре
SecPackageCreds Получает учётные данные из пакетов безопасности
SlackDownloads Анализирует все найденные файлы 'slack-downloads'
SlackPresence Проверяет наличие интересных файлов Slack
SlackWorkspaces Анализирует все найденные файлы 'slack-workspaces'
SuperPutty Файлы конфигурации SuperPutty
TokenGroups Локальные и доменные группы текущего токена
WindowsCredentialFiles BLOB-объекты DPAPI учётных данных Windows
WindowsVault Учётные данные, сохранённые в Windows Vault (например, логины из Internet Explorer и Edge).

misc

Выполняет все прочие проверки.

Выполняется с помощью: Seatbelt.exe -group=misc

Команда Описание
ChromiumBookmarks Анализирует все найденные файлы закладок Chrome/Edge/Brave/Opera
ChromiumHistory Анализирует все найденные файлы истории Chrome/Edge/Brave/Opera
ExplicitLogonEvents События явного входа (ID события 4648) из журнала безопасности. По умолчанию 7 дней, аргумент == за последние X дней.
FileInfo Информация о файле (сведения о версии, временные метки, основная информация о PE и т.д. аргумент(ы) == путь(и) к файлу(ам)
FirefoxHistory Анализирует все найденные файлы истории FireFox
InstalledProducts Установленные продукты через реестр
InterestingFiles "Интересные" файлы, соответствующие различным шаблонам в папке пользователя. Примечание: занимает значительное время.
LogonEvents События входа (ID события 4624) из журнала безопасности. По умолчанию 10 дней, аргумент == за последние X дней.
LOLBAS Находит Living Off The Land Binaries and Scripts (LOLBAS) в системе. Примечание: занимает значительное время.
McAfeeSiteList Расшифровывает все найденные файлы конфигурации McAfee SiteList.xml.
MicrosoftUpdates Все обновления Microsoft (через COM)
OutlookDownloads Выводит список файлов, загруженных Outlook
PowerShellEvents Журналы блоков скриптов PowerShell (4104) с конфиденциальными данными.
Printers Установленные принтеры (через WMI)
ProcessCreationEvents Журналы создания процессов (4688) с конфиденциальными данными.
ProcessOwners Список запущенных процессов не в сессии 0 с владельцами. Для удалённого использования.
RecycleBin Элементы в корзине, удалённые за последние 30 дней — работает только из контекста пользователя!
reg Значения ключей реестра (HKLM\Software по умолчанию) аргумент == [Путь] [intГлубина] [Regex] [boolИгнорироватьОшибки]
RPCMappedEndpoints Текущие сопоставленные конечные точки RPC
ScheduledTasks Планировщик задач (через WMI), не созданных "Microsoft", "full" выводит все запланированные задачи
SearchIndex Результаты запросов из индекса поиска Windows, по умолчанию термин 'passsword'. (аргумент(ы) == \<путь поиска> \<шаблон1,шаблон2,...>
SecurityPackages Перечисляет доступные в данный момент пакеты безопасности с помощью EnumerateSecurityPackagesA()
SysmonEvents Журналы создания процессов Sysmon (1) с конфиденциальными данными.
### Дополнительные группы команд

Выполняется с помощью: Seatbelt.exe -group=GROUPNAME

Псевдоним Описание
Slack Запускает модули, начинающиеся с "Slack*"
Chromium Запускает модули, начинающиеся с "Chromium*"
Remote Запускает следующие модули (для использования на удалённой системе): AMSIProviders, AntiVirus, AuditPolicyRegistry, ChromiumPresence, CloudCredentials, DNSCache, DotNet, DpapiMasterKeys, EnvironmentVariables, ExplicitLogonEvents, ExplorerRunCommands, FileZilla, Hotfixes, InterestingProcesses, KeePass, LastShutdown, LocalGroups, LocalUsers, LogonEvents, LogonSessions, LSASettings, MappedDrives, NetworkProfiles, NetworkShares, NTLMSettings, OptionalFeatures, OSInfo, PoweredOnEvents, PowerShell, ProcessOwners, PSSessionSettings, PuttyHostKeys, PuttySessions, RDPSavedConnections, RDPSessions, RDPsettings, Sysmon, WindowsDefender, WindowsEventForwarding, WindowsFirewall

Аргументы команд

В командах, которые принимают аргументы, это указано в их описании. Чтобы передать аргумент команде, заключите команду и аргументы в двойные кавычки.

Например, следующая команда возвращает события входа 4624 за последние 30 дней:

Seatbelt.exe "LogonEvents 30"

Следующая команда запрашивает реестр на три уровня вглубь, возвращая только ключи/имена значений/значения, соответствующие регулярному выражению .*defini.*, и игнорируя любые возникающие ошибки.

Seatbelt.exe "reg \"HKLM\SOFTWARE\Microsoft\Windows Defender\" 3 .*defini.* true"

Вывод

Seatbelt может перенаправить свой вывод в файл с помощью аргумента -outputfile="C:\Path\file.txt". Если путь к файлу заканчивается на .json, вывод будет структурированным JSON.

Например, следующая команда выведет результаты проверок системы в txt-файл:

Seatbelt.exe -group=system -outputfile="C:\Temp\system.txt"

Удалённая энумерация

Команды, помеченные знаком + в справочном меню, могут выполняться удалённо на другой системе. Это выполняется через WMI посредством запросов к классам WMI и StdRegProv для перечисления реестра.

Чтобы перечислить удалённую систему, укажите -computername=COMPUTER.DOMAIN.COM — альтернативные имя пользователя и пароль можно указать с помощью -username=DOMAIN\USER -password=PASSWORD

Например, следующая команда выполняет удалённо-ориентированные проверки на удалённой системе:

Seatbelt.exe -group=remote -computername=192.168.230.209 -username=THESHIRE\sam -password="yum \"po-ta-toes\""

Создание собственных модулей

Структура Seatbelt полностью модульная, что позволяет добавлять дополнительные модули команд в структуру файлов и загружать их динамически.

Существует шаблон модуля команды с комментариями в .\Seatbelt\Commands\Template.cs для справки. После сборки поместите модуль в логическое место файла, включите его в проект в обозревателе решений Visual Studio и скомпилируйте.

Инструкции по компиляции

Мы не планируем выпускать бинарные файлы для Seatbelt, поэтому вам придётся компилировать его самостоятельно.

Seatbelt был собран для .NET 3.5 и 4.0 с функциями C# 8.0 и совместим с Visual Studio Community Edition. Просто откройте файл проекта .sln, выберите "release" и соберите. Чтобы изменить целевую версию .NET Framework, измените настройки проекта и пересоберите проект.

Благодарности

Seatbelt включает в себя различные элементы коллекции, фрагменты кода C# и части PoC, найденные в исследованиях для своих возможностей. Эти идеи, фрагменты и авторы выделены в соответствующих местах исходного кода и включают:

Мы постарались добросовестно указать все источники, но если мы кого-то или что-то упустили, пожалуйста, сообщите нам!

Войдите, чтобы оставить комментарий