C#-проект для сбора информации о хосте Windows ('safety checks'), применяется как в защитных, так и в атакующих сценариях.
Инструмент для извлечения паролей, хешей, PIN-кодов и Kerberos-тикетов из памяти Windows. Поддерживает Pass-the-Hash, Pass-the-Ticket, Golden/Silver Ticket, …
Кросс-платформенный инструмент для извлечения сохранённых паролей из десятков приложений: браузеры, почтовые клиенты, SSH-клиенты, мессенджеры, БД, VPN, …
Современный C2-фреймворк (Command & Control) с поддержкой кастомных имплантов (Demon), reflective loading, sleep obfuscation, OPSEC-режимов и …
Постэксплуатационный фреймворк BC Security (форк оригинального PowerShell Empire). Поддерживает PowerShell, Python и C# агентов. Включает 300+ …
git clone https://github.com/GhostPack/Seatbelt.git # Visual Studio: открыть Seatbelt.sln -> Build # или командная строка: dotnet build Seatbelt.csproj -c Release # Готовый EXE доступен в GitHub Releases
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
Запускает проверки, извлекающие интересные данные о системе.
Выполняется с помощью: 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). |
Выполняет все прочие проверки.
Выполняется с помощью: 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, найденные в исследованиях для своих возможностей. Эти идеи, фрагменты и авторы выделены в соответствующих местах исходного кода и включают:
Мы постарались добросовестно указать все источники, но если мы кого-то или что-то упустили, пожалуйста, сообщите нам!