เข็มขัดนิรภัยเป็นโครงการ C# ที่ดำเนินการ "การตรวจสอบความปลอดภัย" แบบสำรวจโฮสต์ที่มุ่งเน้นการรักษาความปลอดภัย ซึ่งเกี่ยวข้องจากมุมมองด้านความปลอดภัยทั้งเชิงรุกและเชิงรับ
สคริปต์ HostEnum.ps1 ของ @andrewchiles และ Get-HostProfile.ps1 ของ @tifkin_ เป็นแรงบันดาลใจให้อาร์ติแฟกต์จำนวนมากน่าสะสม
@harmj0y และ @tifkin_ เป็นผู้เขียนหลักของการใช้งานนี้
เข็มขัดนิรภัยได้รับอนุญาตภายใต้ใบอนุญาต 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 (HKLMSoftware 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=DOMAINUSER -password=PASSWORD]' will run an applicable check remotely
'Seatbelt.exe -group=remote -computername=COMPUTER.DOMAIN.COM [-username=DOMAINUSER -password=PASSWORD]' will run remote specific checks
'Seatbelt.exe -group=system -outputfile="C:Tempout.txt"' will run system checks and output to a .txt file.
'Seatbelt.exe -group=user -q -outputfile="C:Tempout.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 |
แอนติไวรัส | โปรแกรมป้องกันไวรัสที่ลงทะเบียน (ผ่าน WMI) |
แอพล็อกเกอร์ | การตั้งค่า AppLocker หากติดตั้งไว้ |
ARPTable | แสดงรายการตาราง ARP และข้อมูลอะแด็ปเตอร์ปัจจุบัน (เทียบเท่ากับ arp -a) |
นโยบายการตรวจสอบ | ระบุการตั้งค่านโยบายการตรวจสอบแบบคลาสสิกและขั้นสูง |
นโยบายการตรวจสอบรีจิสทรี | ตรวจสอบการตั้งค่าผ่านทางรีจิสทรี |
การทำงานอัตโนมัติ | รันไฟล์ปฏิบัติการ/สคริปต์/โปรแกรมอัตโนมัติ |
ใบรับรอง | ไฟล์ใบรับรองส่วนบุคคลของผู้ใช้และเครื่อง |
ใบรับรองลายนิ้วมือ | รหัสประจำตัวสำหรับใบรับรองที่เก็บใบรับรองทั้งหมดบนระบบ |
เครดการ์ด | การกำหนดค่า CredentialGuard |
DNSCache | รายการแคช DNS (ผ่าน WMI) |
ดอทเน็ต | เวอร์ชันดอทเน็ต |
สิ่งแวดล้อมเส้นทาง | โฟลเดอร์ %PATH$ สภาพแวดล้อมปัจจุบันและข้อมูล SDDL |
ตัวแปรสภาพแวดล้อม | ตัวแปรสภาพแวดล้อมของผู้ใช้ปัจจุบัน |
โปรแกรมแก้ไขด่วน | โปรแกรมแก้ไขด่วนที่ติดตั้ง (ผ่าน WMI) |
กระบวนการที่น่าสนใจ | กระบวนการ "น่าสนใจ" - ผลิตภัณฑ์ป้องกันและเครื่องมือผู้ดูแลระบบ |
การตั้งค่าอินเทอร์เน็ต | การตั้งค่าอินเทอร์เน็ตรวมถึงการกำหนดค่าพร็อกซี |
รอบ | การตั้งค่า LAPS หากติดตั้งไว้ |
ปิดเครื่องครั้งสุดท้าย | ส่งกลับ DateTime ของการปิดระบบครั้งล่าสุด (ผ่านทางรีจิสทรี) |
GPO ท้องถิ่น | การตั้งค่านโยบายกลุ่มภายในใช้กับเครื่อง/ผู้ใช้ภายใน |
กลุ่มท้องถิ่น | กลุ่มท้องถิ่นที่ไม่ว่างเปล่า "เต็ม" แสดงกลุ่มทั้งหมด (อาร์กิวเมนต์ == ชื่อคอมพิวเตอร์ที่จะแจกแจง) |
ผู้ใช้ภายในเครื่อง | ผู้ใช้ภายใน ไม่ว่าพวกเขาจะใช้งาน/ปิดใช้งาน และ pwd ชุดสุดท้าย (อาร์กิวเมนต์ == ชื่อคอมพิวเตอร์ที่จะแจกแจง) |
เซสชันการเข้าสู่ระบบ | เหตุการณ์การเข้าสู่ระบบ (Event ID 4624) จากบันทึกเหตุการณ์การรักษาความปลอดภัย ค่าเริ่มต้น 10 วัน อาร์กิวเมนต์ == X วันล่าสุด |
การตั้งค่า LSA | การตั้งค่า LSA (รวมถึงแพ็คเกจการรับรองความถูกต้อง) |
McAfeeConfig | ค้นหาไฟล์การกำหนดค่า McAfee |
NamePipes | ชื่อไปป์ที่มีชื่อและข้อมูล ACL ที่สามารถอ่านได้ |
โปรไฟล์เครือข่าย | โปรไฟล์เครือข่าย Windows |
NetworkShares | การแชร์เครือข่ายที่เครื่องเปิดเผย (ผ่าน WMI) |
การตั้งค่า NTLM | การตั้งค่าการรับรองความถูกต้อง NTLM |
คุณสมบัติเสริม | สิ่งที่ต้องทำ |
OSInfo | ข้อมูลระบบปฏิบัติการพื้นฐาน (เช่น สถาปัตยกรรม เวอร์ชันระบบปฏิบัติการ ฯลฯ) |
PowerOnEvents | การรีบูตและกำหนดเวลาสลีปตามบันทึกเหตุการณ์ของระบบ EID 1, 12, 13, 42 และ 6008 ดีฟอลต์คือ 7 วัน อาร์กิวเมนต์ == X วันล่าสุด |
พาวเวอร์เชลล์ | เวอร์ชัน PowerShell และการตั้งค่าความปลอดภัย |
กระบวนการ | การรันกระบวนการด้วยชื่อบริษัทข้อมูลไฟล์ที่ไม่มี 'Microsoft', "full" จะระบุกระบวนการทั้งหมด |
การตั้งค่า PSSession | ระบุการตั้งค่าเซสชัน PS จากรีจิสทรี |
RDPเซสชัน | เซสชัน RDP ขาเข้าปัจจุบัน (อาร์กิวเมนต์ == ชื่อคอมพิวเตอร์ที่จะแจกแจง) |
การตั้งค่า RDP | การตั้งค่าเซิร์ฟเวอร์/ไคลเอ็นต์เดสก์ท็อประยะไกล |
สคซีเอ็ม | การตั้งค่า System Center Configuration Manager (SCCM) ถ้ามี |
บริการ | บริการที่มีชื่อบริษัทข้อมูลไฟล์ที่ไม่มี 'Microsoft', "เต็ม" จะทิ้งกระบวนการทั้งหมด |
ซิสมอน | การกำหนดค่า Sysmon จากรีจิสทรี |
TcpConnections | การเชื่อมต่อ TCP ปัจจุบัน รวมถึงกระบวนการและบริการที่เกี่ยวข้อง |
สิทธิพิเศษโทเค็น | สิทธิ์โทเค็นที่เปิดใช้งานในปัจจุบัน (เช่น SeDebugPrivilege/ฯลฯ ) |
ยูเอซี | นโยบายระบบ UAC ผ่านทางรีจิสทรี |
UdpConnections | การเชื่อมต่อ UDP ปัจจุบันและกระบวนการและบริการที่เกี่ยวข้อง |
UserRightAssignments | การกำหนดสิทธิ์ผู้ใช้ที่กำหนดค่าไว้ (เช่น SeDenyNetworkLogonRight, SeShutdownPrivilege ฯลฯ ) อาร์กิวเมนต์ == ชื่อคอมพิวเตอร์ที่จะแจกแจง |
โปรไฟล์ Wifi | สิ่งที่ต้องทำ |
WindowsAutoLogon | ข้อมูลการเข้าสู่ระบบอัตโนมัติของรีจิสทรี |
WindowsDefender | การตั้งค่า Windows Defender (รวมถึงตำแหน่งที่ยกเว้น) |
การส่งต่อเหตุการณ์ของ Windows | การตั้งค่า Windows Event Forwarding (WEF) ผ่านทางรีจิสทรี |
ไฟร์วอลล์ของ Windows | กฎไฟร์วอลล์ที่ไม่ได้มาตรฐาน "เต็ม" จะทิ้งทั้งหมด (อาร์กิวเมนต์ == อนุญาต/ปฏิเสธ/tcp/udp/in/out/โดเมน/ส่วนตัว/สาธารณะ) |
WMIEventผู้บริโภค | แสดงรายการผู้บริโภคเหตุการณ์ WMI |
WMIEventFilter | แสดงรายการตัวกรองเหตุการณ์ WMI |
WMIFilterBinding | แสดงรายการตัวกรอง WMI ให้กับการผูกมัดของผู้บริโภค |
วสส | การตั้งค่า Windows Server Update Services (WSUS) ถ้ามี |
ดำเนินการตรวจสอบว่าขุดข้อมูลที่น่าสนใจเกี่ยวกับผู้ใช้ที่เข้าสู่ระบบในปัจจุบัน (หากไม่ได้ยกระดับ) หรือผู้ใช้ทั้งหมด (หากยกระดับ)
ดำเนินการด้วย: Seatbelt.exe -group=user
สั่งการ | คำอธิบาย |
---|---|
ใบรับรอง | ไฟล์ใบรับรองส่วนบุคคลของผู้ใช้และเครื่อง |
ใบรับรองลายนิ้วมือ | รหัสประจำตัวสำหรับใบรับรองที่เก็บใบรับรองทั้งหมดบนระบบ |
โครเมียมสถานะ | ตรวจสอบว่ามีไฟล์ Chrome/Edge/Brave/Opera ที่น่าสนใจอยู่หรือไม่ |
ข้อมูลประจำตัวของคลาวด์ | ไฟล์ข้อมูลรับรองระบบคลาวด์ AWS/Google/Azure |
CloudSyncProviders | สิ่งที่ต้องทำ |
CredEnum | ระบุข้อมูลรับรองที่บันทึกไว้ของผู้ใช้ปัจจุบันโดยใช้ CredEnumerate() |
ผบ | แสดงรายการไฟล์/โฟลเดอร์ ตามค่าเริ่มต้น แสดงรายการการดาวน์โหลด เอกสาร และโฟลเดอร์เดสก์ท็อปของผู้ใช้ (อาร์กิวเมนต์ == <directory> <ความลึก> <regex> |
DpapiMasterKeys | แสดงรายการคีย์หลัก DPAPI |
Dsregcmd | สิ่งที่ต้องทำ |
ExplorerMRU | ไฟล์ Explorer ที่ใช้ล่าสุด (7 วันที่ผ่านมา อาร์กิวเมนต์ == X วันล่าสุด) |
ExplorerRunCommands | คำสั่ง "run" ของ Explorer ล่าสุด |
FileZilla | ไฟล์คอนฟิกูเรชัน FileZilla |
FirefoxPresence | ตรวจสอบว่ามีไฟล์ Firefox ที่น่าสนใจอยู่หรือไม่ |
ไอเดิลไทม์ | ส่งกลับจำนวนวินาทีนับตั้งแต่อินพุตล่าสุดของผู้ใช้ปัจจุบัน |
รายการโปรดของ IE | รายการโปรดของ Internet Explorer |
IETabs | เปิดแท็บ Internet Explorer |
IEUrls | URL ที่พิมพ์โดย Internet Explorer (7 วันที่ผ่านมา อาร์กิวเมนต์ == X วันล่าสุด) |
คีพาส | สิ่งที่ต้องทำ |
แมปไดรฟ์ | ไดรฟ์ที่แมปของผู้ใช้ (ผ่าน WMI) |
OfficeMRU | รายการไฟล์ Office ที่ใช้ล่าสุด (7 วันที่ผ่านมา) |
OneNote | สิ่งที่ต้องทำ |
OracleSQLDeveloper | สิ่งที่ต้องทำ |
ประวัติ PowerShell | วนซ้ำผู้ใช้ภายในเครื่องทุกคนและพยายามอ่านประวัติคอนโซล PowerShell หากสำเร็จ ระบบจะพิมพ์ออกมา |
สีโป๊วHostKeys | บันทึกคีย์โฮสต์ Putty SSH แล้ว |
PuttySessions | การกำหนดค่า Putty ที่บันทึกไว้ (ช่องที่น่าสนใจ) และคีย์โฮสต์ SSH |
RDCManFiles | ไฟล์การตั้งค่า Windows Remote Desktop Connection Manager |
RDPSavedConnections | การเชื่อมต่อ RDP ที่บันทึกไว้จัดเก็บไว้ในรีจิสทรี |
SecPackageCreds | รับข้อมูลรับรองจากแพ็คเกจความปลอดภัย |
Slackดาวน์โหลด | แยกวิเคราะห์ไฟล์ 'slack-download' ที่พบ |
SlackPresence | ตรวจสอบว่ามีไฟล์ Slack ที่น่าสนใจอยู่หรือไม่ |
SlackWorkspaces | แยกวิเคราะห์ไฟล์ 'slack-workspaces' ที่พบ |
ซุปเปอร์ฉาบ | ไฟล์คอนฟิกูเรชัน SuperPutty |
TokenGroups | กลุ่มท้องถิ่นและโดเมนของโทเค็นปัจจุบัน |
ไฟล์ข้อมูลประจำตัวของ Windows | ข้อมูลรับรอง Windows DPAPI blobs |
WindowsVault | ข้อมูลรับรองที่บันทึกไว้ใน Windows Vault (เช่น การเข้าสู่ระบบจาก Internet Explorer และ Edge) |
ดำเนินการตรวจสอบเบ็ดเตล็ดทั้งหมด
ดำเนินการด้วย: Seatbelt.exe -group=misc
สั่งการ | คำอธิบาย |
---|---|
โครเมียมบุ๊กมาร์ก | แยกวิเคราะห์ไฟล์บุ๊กมาร์ก Chrome/Edge/Brave/Opera ที่พบ |
ประวัติความเป็นมาของโครเมียม | แยกวิเคราะห์ไฟล์ประวัติ Chrome/Edge/Brave/Opera ที่พบ |
เหตุการณ์การเข้าสู่ระบบที่ชัดเจน | เหตุการณ์การเข้าสู่ระบบที่ชัดเจน (รหัสเหตุการณ์ 4648) จากบันทึกเหตุการณ์การรักษาความปลอดภัย ค่าเริ่มต้นของ 7 วัน อาร์กิวเมนต์ == X วันที่ผ่านมา |
ไฟล์ข้อมูล | ข้อมูลเกี่ยวกับไฟล์ (ข้อมูลเวอร์ชัน เวลาประทับ ข้อมูล PE พื้นฐาน ฯลฯ อาร์กิวเมนต์ == เส้นทางไฟล์) |
ประวัติ Firefox | แยกวิเคราะห์ไฟล์ประวัติ FireFox ที่พบ |
สินค้าที่ติดตั้ง | ติดตั้งผลิตภัณฑ์ผ่านทางรีจิสทรี |
ไฟล์ที่น่าสนใจ | ไฟล์ "น่าสนใจ" ที่ตรงกับรูปแบบต่างๆ ในโฟลเดอร์ของผู้ใช้ หมายเหตุ: ใช้เวลาอันไม่สำคัญ |
เหตุการณ์การเข้าสู่ระบบ | เหตุการณ์การเข้าสู่ระบบ (Event ID 4624) จากบันทึกเหตุการณ์การรักษาความปลอดภัย ค่าเริ่มต้น 10 วัน อาร์กิวเมนต์ == X วันล่าสุด |
โลลบาส | ค้นหา Living Off The Land Binaries and Scripts (LOLBAS) บนระบบ หมายเหตุ: ใช้เวลาอันไม่สำคัญ |
McAfeeSiteList | ถอดรหัสไฟล์การกำหนดค่า McAfee SiteList.xml ที่พบ |
การอัปเดตของ Microsoft | การอัปเดต Microsoft ทั้งหมด (ผ่าน COM) |
ดาวน์โหลด Outlook | แสดงรายการไฟล์ที่ดาวน์โหลดโดย Outlook |
กิจกรรม PowerShell | บันทึกบล็อกสคริปต์ PowerShell (4104) พร้อมข้อมูลที่ละเอียดอ่อน |
เครื่องพิมพ์ | เครื่องพิมพ์ที่ติดตั้ง (ผ่าน WMI) |
เหตุการณ์กระบวนการสร้าง | บันทึกการสร้างกระบวนการ (4688) พร้อมข้อมูลที่ละเอียดอ่อน |
เจ้าของกระบวนการ | การรันรายการกระบวนการที่ไม่ใช่เซสชัน 0 กับเจ้าของ สำหรับการใช้งานระยะไกล |
ถังรีไซเคิล | รายการในถังรีไซเคิลที่ถูกลบในช่วง 30 วันที่ผ่านมา - ใช้งานได้เฉพาะกับบริบทของผู้ใช้เท่านั้น! |
เร็ก | อาร์กิวเมนต์ค่าคีย์รีจิสทรี (HKLMSoftware เป็นค่าเริ่มต้น) == [Path] [intDepth] [Regex] [boolIgnoreErrors] |
RPCMappedEndpoints | แมปจุดสิ้นสุด RPC ปัจจุบัน |
งานที่กำหนดเวลาไว้ | งานที่กำหนดเวลาไว้ (ผ่าน WMI) ที่ไม่ได้เขียนโดย 'Microsoft', "เต็ม" จะทิ้งงานที่กำหนดเวลาไว้ทั้งหมด |
ดัชนีการค้นหา | ผลลัพธ์การค้นหาจากดัชนีการค้นหาของ Windows คำเริ่มต้นของ 'รหัสผ่าน' (อาร์กิวเมนต์ == <เส้นทางการค้นหา> <รูปแบบ1,รูปแบบ2,...> |
แพคเกจความปลอดภัย | ระบุแพ็คเกจความปลอดภัยที่มีอยู่ในปัจจุบันโดยใช้ EnumerateSecurityPackagesA() |
Sysmonกิจกรรม | บันทึกการสร้างกระบวนการ Sysmon (1) พร้อมข้อมูลที่ละเอียดอ่อน |
ดำเนินการด้วย: Seatbelt.exe -group=GROUPNAME
นามแฝง | คำอธิบาย |
---|---|
หย่อน | รันโมดูลที่ขึ้นต้นด้วย "Slack*" |
โครเมียม | รันโมดูลที่ขึ้นต้นด้วย "Chromium*" |
ระยะไกล | รันโมดูลต่อไปนี้ (สำหรับใช้กับระบบระยะไกล): 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, คุณสมบัติเสริม, OSInfo, PowerShell, ProcessOwners, PSSessionSettings, PuttyHostKeys, PuttySessions, RDPSavedConnections, RDPSessions, RDPsettings, Sysmon, WindowsDefender, WindowsEventForwarding, ไฟร์วอลล์ Windows |
คำสั่งที่ยอมรับข้อโต้แย้งมีบันทึกไว้ในคำอธิบาย หากต้องการส่งผ่านอาร์กิวเมนต์ไปยังคำสั่ง ให้ใส่อาร์กิวเมนต์ลงในคำสั่งด้วยเครื่องหมายคำพูดคู่
ตัวอย่างเช่น คำสั่งต่อไปนี้ส่งคืนเหตุการณ์การเข้าสู่ระบบ 4624 ในช่วง 30 วันที่ผ่านมา:
Seatbelt.exe "LogonEvents 30"
คำสั่งต่อไปนี้สอบถามรีจิสทรีลึกสามระดับ โดยส่งคืนเฉพาะคีย์/valueNames/values ที่ตรงกับ regex .*defini.*
และไม่สนใจข้อผิดพลาดใดๆ ที่เกิดขึ้น
Seatbelt.exe "reg "HKLMSOFTWAREMicrosoftWindows Defender" 3 .*defini.* true"
เข็มขัดนิรภัยสามารถเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์ด้วยอาร์กิวเมนต์ -outputfile="C:Pathfile.txt"
หากเส้นทางของไฟล์ลงท้ายด้วย .json เอาต์พุตจะมีโครงสร้างเป็น json
ตัวอย่างเช่น คำสั่งต่อไปนี้จะส่งออกผลลัพธ์ของการตรวจสอบระบบไปยังไฟล์ txt:
Seatbelt.exe -group=system -outputfile="C:Tempsystem.txt"
คำสั่งที่มีเครื่องหมาย + ในเมนูวิธีใช้สามารถเรียกใช้จากระยะไกลกับระบบอื่นได้ ซึ่งดำเนินการผ่าน WMI ผ่านการสอบถามสำหรับคลาส WMI และ StdRegProv ของ WMI สำหรับการแจงนับรีจิสทรี
หากต้องการระบุระบบระยะไกล ให้ระบุ -computername=COMPUTER.DOMAIN.COM
- สามารถระบุชื่อผู้ใช้และรหัสผ่านสำรองด้วย -username=DOMAINUSER -password=PASSWORD
ตัวอย่างเช่น คำสั่งต่อไปนี้จะรันการตรวจสอบแบบรีโมตกับระบบรีโมต:
Seatbelt.exe -group=remote -computername=192.168.230.209 -username=THESHIREsam -password="yum "po-ta-toes""
โครงสร้างของเข็มขัดนิรภัยเป็นแบบโมดูลาร์โดยสมบูรณ์ ช่วยให้สามารถวางโมดูลคำสั่งเพิ่มเติมลงในโครงสร้างไฟล์และโหลดแบบไดนามิกได้
มีเทมเพลตโมดูลคำสั่งที่มีคำอธิบายอยู่ที่ .SeatbeltCommandsTemplate.cs
สำหรับการอ้างอิง เมื่อสร้างเสร็จแล้ว ให้ปล่อยโมดูลในตำแหน่งไฟล์โลจิคัล รวมไว้ในโปรเจ็กต์ใน Visual Studio Solution Explorer และคอมไพล์
เราไม่ได้วางแผนที่จะเปิดตัวไบนารีสำหรับเข็มขัดนิรภัย ดังนั้นคุณจะต้องรวบรวมเอง
เข็มขัดนิรภัยถูกสร้างขึ้นโดยเทียบกับ .NET 3.5 และ 4.0 พร้อมฟีเจอร์ C# 8.0 และเข้ากันได้กับ Visual Studio Community Edition เพียงเปิดโปรเจ็กต์ .sln เลือก "release" และสร้าง หากต้องการเปลี่ยนเวอร์ชันเฟรมเวิร์ก .NET เป้าหมาย ให้แก้ไขการตั้งค่าของโปรเจ็กต์และสร้างโปรเจ็กต์ใหม่
เข็มขัดนิรภัยประกอบด้วยรายการคอลเลกชันต่างๆ ตัวอย่างโค้ด C# และบิตของ PoC ที่พบในตลอดการวิจัยเกี่ยวกับความสามารถของเข็มขัดนิรภัย แนวคิด ตัวอย่าง และผู้แต่งเหล่านี้จะถูกเน้นในตำแหน่งที่เหมาะสมในซอร์สโค้ด และรวมถึง:
เราได้พยายามตรวจสอบแหล่งที่มาของการอ้างอิงแล้ว แต่หากเราปล่อยใครบางคน/บางอย่างออกไป โปรดแจ้งให้เราทราบ!