Forensics · Lesson 10
Processes, Services & Startup Evidence
Learn how running processes, service configuration, startup mechanisms, parent-child relationships, executable paths, user context, and network activity work together to explain what is running and how it started.
Current-state evidence can disappear as soon as you stop a process or service. Preserve the process identity, service configuration, startup source, and related logs before making defensive changes.
Lesson Snapshot
Learning objectives
Connect running state to launch mechanism and evidence
Explain how running processes, services, startup mechanisms, and executable paths support forensic reasoning.
Distinguish process identity from filename, display name, service name, and user account.
Recognize evidence that connects a running process to a service, startup item, scheduled mechanism, or user session.
Use Windows and Linux tools to inspect process ownership, executable paths, parent relationships, service state, and startup configuration.
Preserve relevant process and service evidence before stopping, disabling, or deleting anything.
Correlate process and service evidence with logs, files, accounts, scheduled tasks, and network activity.
Core idea
A running process is only one moment in a larger chain
To explain a process, connect its executable, account, parent, start time, service or startup source, logs, and network activity.
Competition caution
Do not kill the evidence before recording it
Stopping a process or service can erase current state. Record the PID, path, command line, user, parent, service configuration, startup mechanism, and related network evidence first.
Process principles
Use identity and context, not names alone
A name is not an identity
Two different executables can share the same process name, and legitimate software can be copied or renamed. Path, hash, owner, and parent context matter.
Processes are temporary
A running process can disappear quickly. Record PID, path, account, parent, command line, start time, and network state before stopping it.
Services add persistence and privilege context
A service can start automatically, run under a specific account, and launch an executable without an interactive user.
Startup location changes meaning
A program started from Program Files or /usr may be expected, while a similar binary in AppData, Temp, /tmp, or a user autostart folder may require more review.
Parent-child relationships help explain sequence
The parent process can show whether a program was launched by a shell, service manager, scheduled task, browser, script host, or another application.
Preserve before hardening
Stopping a process or disabling a service can erase current-state evidence and create new log entries that complicate the timeline.
Process evidence
Fields worth preserving
Process name
Useful label, but not enough to identify the executable.
PID
Identifies the process instance at that moment.
Executable path
Connects the process to a specific file and location.
Command line
Can reveal arguments, scripts, configuration files, or launched targets.
User / account
Shows which security context the process is running under.
Parent process
Adds launch context and can explain how the process started.
Start time
Places the process in the timeline.
Hash
Provides strong content identity for the executable file.
Network activity
Connects the process to listening ports or remote connections.
Service evidence
Fields worth preserving
Service name
Stable identifier used by the operating system.
Display name
Human-readable label that can differ from the service name.
Executable / unit command
Shows what program or script actually starts.
Startup type
Shows whether the service starts automatically, manually, or is disabled.
Run-as account
Explains privilege and security context.
Current state
Running, stopped, failed, inactive, or another state.
Dependencies
Helps explain why a service starts, stops, or fails.
Related logs
Supports installation, startup, stop, restart, or failure timing.
Windows processes
Inspect running state safely
List processes
Get-Process
Shows running Windows processes and their PIDs.
Process details
Get-Process -Id 1234 | Format-List *
Shows detailed properties for one process instance when permissions allow.
Executable path and command line
Get-CimInstance Win32_Process | Select-Object ProcessId, ParentProcessId, Name, ExecutablePath, CommandLine
Provides process identity, parent PID, path, and command line.
Current process owner
Get-CimInstance Win32_Process -Filter "ProcessId=1234" | Invoke-CimMethod -MethodName GetOwner
Returns the user context for a selected process.
Hash the executable
Get-FileHash "C:\ProgramData\Example\helper.exe" -Algorithm SHA256
Adds strong content identity for the executable file.
Windows services
Inspect service configuration
List services
Get-Service
Shows service names, display names, and current state.
Detailed service configuration
Get-CimInstance Win32_Service | Select-Object Name, DisplayName, State, StartMode, StartName, PathName
Shows state, startup mode, account, and executable path.
Inspect one service
Get-CimInstance Win32_Service -Filter "Name='ExampleService'" | Format-List *
Shows detailed configuration for one service.
Classic service configuration
sc.exe qc ExampleService
Displays service type, start mode, account, and binary path.
Classic service status
sc.exe query ExampleService
Shows current service state.
Windows startup
Common automatic-start evidence sources
Startup folders
Per-user and all-users startup shortcuts and files.
Preserve
Target path, arguments, user scope, timestamps, and linked executable.
Run / RunOnce registry locations
Common Windows auto-start configuration points.
Preserve
Value name, command, path, user/system scope, and related file metadata.
Scheduled Tasks
Can trigger at logon, startup, time intervals, or events.
Preserve
Task name, trigger, action, arguments, run-as account, enabled state, and history.
Services
Can launch at boot and run without user interaction.
Preserve
Service name, binary path, account, start mode, state, and installation/start logs.
Shell extensions and application startup
Some applications configure their own login-time or startup behavior.
Preserve
Application configuration, startup path, user profile context, and process evidence.
Linux processes
Inspect process identity and ancestry
Process snapshot
ps aux
Shows users, PIDs, resource use, and command information.
Custom process view
ps -eo pid,ppid,user,lstart,cmd
Shows PID, parent PID, user, start time, and full command.
Process tree
pstree -ap
Displays parent-child process relationships with PIDs and arguments where available.
Executable path
readlink -f /proc/1234/exe
Resolves the executable used by a running process.
Command line
tr '