T1547 - Boot or Logon Autostart Execution
Description from ATT&CK (opens in a new tab)
Adversaries may configure system settings to automatically execute a program during system boot or logon to maintain persistence or gain higher-level privileges on compromised systems. Operating systems may have mechanisms for automatically running a program on system boot or account logon.(Citation: Microsoft Run Key)(Citation: MSDN Authentication Packages)(Citation: Microsoft TimeProvider)(Citation: Cylance Reg Persistence Sept 2013)(Citation: Linux Kernel Programming) These mechanisms may include automatically executing programs that are placed in specially designated directories or are referenced by repositories that store configuration information, such as the Windows Registry. An adversary may achieve the same goal by modifying or extending features of the kernel.
Since some boot or logon autostart programs run with higher privileges, an adversary may leverage these to elevate privileges.
Atomic Tests
Atomic Test #1 - Add a driver
Install a driver via pnputil.exe lolbin
Supported Platforms: Windows
auto_generated_guid: cb01b3da-b0e7-4e24-bf6d-de5223526785
Inputs:
Name | Description | Type | Default Value |
---|---|---|---|
driver_inf | A built-in, already installed windows driver inf | path | C:\Windows\INF\usbstor.inf |
Attack Commands: Run with command_prompt
!
pnputil.exe /add-driver "#{driver_inf}"
Atomic Test #2 - Driver Installation Using pnputil.exe
pnputil.exe is a native command-line utility in Windows to install drivers, this can be abused by to install malicious drivers. Ref: https://lolbas-project.github.io/lolbas/Binaries/Pnputil/ (opens in a new tab)
Supported Platforms: Windows
auto_generated_guid: 5cb0b071-8a5a-412f-839d-116beb2ed9f7
Inputs:
Name | Description | Type | Default Value |
---|---|---|---|
driver_path | Enter the driver file path to install (Default is used built-in windows driver - acpipmi.inf) | path | C:\Windows\INF\acpipmi.inf |
Attack Commands: Run with powershell
!
pnputil.exe -i -a #{driver_path}
Atomic Test #3 - Leverage Virtual Channels to execute custom DLL during successful RDP session
Virtual Channels can be leveraged to alter RDP behavior using dedicated Addins.The mechanism is implemented using DLLs which can be executed during RDP session automatically. The DLLs are loaded in the host system only after successful connection is established with the remote system. Once the test is run, amsi.dll will be loaded on the host system during successful RDP session. Blog :https://learn.microsoft.com/en-us/windows/win32/termserv/terminal-services-virtual-channels?redirectedfrom=MSDN (opens in a new tab)
Supported Platforms: Windows
auto_generated_guid: fdd45306-74f6-4ade-9a97-0a4895961228
Inputs:
Name | Description | Type | Default Value |
---|---|---|---|
Subkey_Added | New Sub key added in the registry path | String | Malware |
dll_inf | custom DLL to be executed | Path | C:\Windows\System32\amsi.dll |
Attack Commands: Run with command_prompt
! Elevation Required (e.g. root or admin)
reg add "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default\Addins\#{Subkey_Added}" /v Name /t REG_SZ /d "#{dll_inf}" /f
Cleanup Commands:
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default\Addins\#{Subkey_Added}" /f