Has attempted to bypass digital signature verification checks at startup by adding a command to the startup config /etc/init.d/localnet within the rootfs.gz archive of both FortiManager and FortiAnalyzer devices.1
Boot or Logon Initialization Scripts T1037
- Tactics
- Persistence, Privilege Escalation
- Platforms
- ESXi, Linux, macOS, Network Devices, Windows
- Version
- 2.4
- Created
- 31 May 2017
- Last modified
- 12 May 2026
Adversaries may use scripts automatically executed at boot or logon initialization to establish persistence.[1][2] Initialization scripts can be used to perform administrative functions, which may often execute other programs or send information to an internal logging server. These scripts can vary based on operating system and whether applied locally or remotely.
Boot or Logon Initialization Scripts MITRE reference T1037
4 groups have been recorded using this technique. Newest first; each entry carries MITRE’s procedure text and a link to the group’s full record. Click a name to filter the rules below.
Has installed an "init.d" startup script to maintain persistence.1
Used a hidden shell script in /etc/rc.d/init.d to leverage the ADORE.XSECbackdoor and Adore-NG rootkit.1
Has hijacked legitimate application-specific startup scripts to enable malware to execute on system startup.1
All 4 groups for this technique
1 campaign has been recorded using this technique. Listed newest first; dates are year-granularity and attribution is MITRE’s.
Used malicious boot scripts to install the Line Runner backdoor on victim devices.1
All 1 campaigns for this technique
3 software entries are documented implementing this technique. MITRE files each as a tool or as malware; newest first, then by how many groups carry them.
Has modified the boot process files within /tmp/coreboot_fs/bin/init to establish persistence.1
Can persist as an init.d startup service on Linux vCenter systems.1
Depending on the Linux distribution and when executing with root permissions, RotaJakiro may install persistence using a .conf file in the /etc/init/ folder.1
All 3 software entries for this technique
Offense vs defense T1037
Is defensive coverage keeping up with adversary use? Eight counts, each ranked against all 697 ATT&CK techniques. Attack sits left, defense right, so a shape leaning left means adversaries are better documented here than defenders are equipped. Hover any spoke for its percentile and the share of techniques that have more. The timeline below shows when each side arrived.
How it got here
Adversary activity (campaign spans) over cumulative rule output. Each source is plotted independently from zero, so neither line includes the other. Campaign dates are year-granularity.
Boot or Logon Initialization Scripts detection strategy DET0112
MITRE names one behaviour worth catching for this technique and breaks it into 5 analytics, one per platform. Each carries the log sources it needs and the fields you tune per environment.
Boot or Logon Initialization Scripts Detection Strategy
AN0311 · Windows
Monitoring modification and execution of user or system logon scripts such as in registry Run keys or startup folders.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Scheduled Job CreationDC0001 | WinEventLog:TaskScheduler | EventCode=106 |
| Process CreationDC0032 | WinEventLog:Security | EventCode=4688 |
| Windows Registry Key ModificationDC0063 | WinEventLog:Security | EventCode=4657 |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| TargetObject | Registry path that may vary by user or policy configuration. |
| ParentProcessName | Can be tuned to known parent processes to reduce false positives. |
| TimeWindow | Logon activity clustered during specific user shifts. |
AN0312 · Linux
Detection of changes or execution of shell initialization scripts like .bashrc, .profile, or /etc/profile for persistence.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Process CreationDC0032 | auditd:SYSCALL | EXECVE |
| File MetadataDC0059 | auditd:PATH | PATH |
| File ModificationDC0061 | linux:osquery | file_events |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| FilePath | Initialization script path that can differ across user and system profiles. |
| UserContext | User-level vs root-level configuration. |
| TimeWindow | Useful to correlate between file change and subsequent execution. |
AN0313 · macOS
Monitoring for modification and execution of login hook scripts or LaunchAgents/LaunchDaemons used for persistence.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Script ExecutionDC0029 | macos:unifiedlog | log |
| Service MetadataDC0041 | macos:osquery | launchd |
| File AccessDC0055 | fs:fsusage | file |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| Label | LaunchAgent or LaunchDaemon label name, often environment-specific. |
| ProgramArguments | Arguments passed to scripts, which may need tuning by environment. |
| UserContext | Distinguish between user login and system startup agents. |
AN0314 · ESXi
Detection of modification to ESXi rc.local.d or rc scripts that are used to execute on boot.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Script ExecutionDC0029 | esxi:vmkernel | boot |
| File ModificationDC0061 | esxi:hostd | boot |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| ScriptName | Script path or name may vary across hypervisor versions. |
| LogSeverity | Log verbosity settings may alter visibility of activity. |
AN0315 · Network Devices
Detection of changes to device startup-config files that include boot scripts or scheduled execution routines.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| File ModificationDC0061 | networkdevice:syslog | config |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| Interface | Affected interface or subsystem; varies per device. |
| CommandPattern | Patterns of authorized config changes differ by vendor or policy. |
Restrict write access to logon scripts to specific administrators.
Ensure proper permissions are set for Registry hives to prevent users from modifying keys for logon scripts that may lead to persistence.