Tools

T1654

Sysinternals

How the Sysinternals Suite -- Process Explorer, Autoruns, TCPView, PsExec -- gives analysts Windows forensic visibility without installing agents, and how attackers use the same tools against you.

View on Graph

What the Sysinternals Suite Is and Why It Belongs in Every Analyst Toolkit

  • Sysinternals Suite is a collection of 70+ free Windows system utilities developed by Mark Russinovich and now maintained by Microsoft.
  • These tools give analysts deep visibility into Windows internals — processes, threads, handles, network connections, registry, file system, and kernel objects — without installing agents or drivers.
  • For incident response, Sysinternals is indispensable: it runs from a USB drive or network share with no installation, leaves minimal forensic footprint, and exposes what the OS actually sees rather than what user-mode applications report.
  • MITRE ATT&CK maps log enumeration and analysis tools to T1654 (Log Enumeration).

The Essential Tools and Their Use Cases

Process Explorer (procexp.exe)

What it shows: Tree view of all running processes, including parent-child relationships, handle usage, DLLs loaded, and process properties Task Manager does not expose.

Analyst use cases:

ScenarioWhat to Check in Process Explorer
Unknown process runningCheck the process properties: “Verified Signer” — is it Microsoft-signed? “Parent” — what spawned it?
Suspicious CPU spikeSort by CPU. Look for processes with high CPU that you cannot identify. Check the command line and file path.
Process injection detectionRight-click process → Properties → “Image” tab → Check the “Address space” for unexpected loaded DLLs. Switch to “Strings” tab — look for process name strings (self-injection).
Handle analysisView → Lower Pane → Handles. Suspicious: a process with handles to lsass.exe, SAM, or C:\Windows\System32\drivers\etc\hosts.
Network connections per processView → Lower Pane → “TCP/IP” tab. See every open TCP/UDP connection and the process that owns it.

How to run: procexp.exe → accept EULA → switch to “Process Tree” view (View → Show Process Tree) to see parent-child relationships.

Autoruns (autoruns.exe)

What it shows: Every location where a program can automatically start — registry Run keys, scheduled tasks, services, drivers, WMI subscriptions, browser extensions, and 20+ other autorun locations.

Analyst use cases:

ScenarioWhat to Check
Persistence huntingClick “Everything” tab. Sort by “Verified” column. Any unverified entry is suspicious. Focus on files in %TEMP%, %APPDATA%, %LOCALAPPDATA%.
Ransomware preventionRun Autoruns weekly. A new entry for powershell.exe -EncodedCommand... in HKCU\...\Run is a ransomware precursor.
Malware removalAfter discovering malware, run Autoruns to find the persistence mechanism. Disable the entry (uncheck), do not delete — you may need it for forensic analysis.
Dll hijacking checkLook for missing DLL entries — Autoruns shows entries where the referenced file does not exist (yellow highlight). These can be exploited for DLL hijacking.

How to run: autoruns.exe → go to “Everything” → scroll to unverified entries (yellow background). Focus on items scheduled to start from %TEMP%, %APPDATA%, or non-system directories.

TCPView (tcpvcon.exe)

What it shows: Real-time list of all TCP and UDP endpoints on the system, mapped to the owning process. Includes state (LISTENING, ESTABLISHED, CLOSE_WAIT), process ID, and local/remote addresses.

Analyst use cases:

ScenarioWhat to Check
C2 beaconingLook for processes with ESTABLISHED connections to external IPs on port 443. Check if the process name matches the connection (e.g., svchost.exe connected to known bad IP is suspicious).
Data exfiltrationLook for CLOSE_WAIT connections — the process closed the local side but the remote side is still waiting. Large data transfers leave many CLOSE_WAIT connections.
Unauthorized listening servicesSort by State: LISTENING. Any process listening on a high port (4443, 8080, 1337) without a corresponding legitimate application is suspicious.
RDP enumerationCheck for svchost.exe listening on port 3389 — is RDP currently enabled and accepting connections?

How to run: tcpview.exe → observe active connections → right-click connections to close them or look up IP addresses via WHOIS.

PsExec (psexec.exe)

What it does: Execute processes remotely on Windows systems. Primary tool for both IT administration and lateral movement.

Analyst use cases:

PerspectiveWhat to Check
Defender useRun commands remotely on multiple systems during incident response without deploying full remote management. PsExec \\target -s cmd.exe opens a SYSTEM-level command prompt. The -s flag runs as System — invaluable for accessing protected processes.
DetectionEvent 7045 (service installed) for PSEXECSVC is the key detection signal. Event 4688 with parent process PsExec.exe. Logon type 3 from the controlling workstation.
Attacker useAttackers use PsExec exactly the same way. The same PsExec binary is used by IT and by ransomware operators. Detection relies on parent process, account context, and timing.

AccessChk (accesschk.exe)

What it does: Reports effective permissions on files, registry keys, processes, services, and more. Essential for privilege escalation investigations.

How to use it:

# Check if a user can modify a service binary (potential privilege escalation)
accesschk64.exe -w -c "DNS"  (service permissions)

# Check effective permissions for a specific user on a file
accesschk64.exe "C:\Program Files\SomeApp\config.exe" -u "DOMAIN\user"

# Check which services are writable by non-admin users
accesschk64.exe -w -c *

Strings (strings.exe)

What it does: Extracts ASCII and Unicode strings from binary files. Essential for quick malware analysis without a disassembler. Pair with YARA for automated pattern matching on extracted strings.

How to use it:

# Extract strings from a suspicious binary
strings.exe suspicious.exe > strings_output.txt

# Look for interesting strings in the output
findstr /i "http:// https:// C2 beacon powershell cmd.exe DLL" strings_output.txt
# URLs → likely network indicators
# Registry paths → possible persistence
# API calls → file access, network access, process injection
# Usernames/paths → attacker artifacts

Detection — Sysinternals Tools as Attack Tools

Sysinternals ToolHow Attackers Abuse ItDetection Signal
PsExecLateral movement — run commands remotelyEvent 7045 (PSEXECSVC), Event 4688 (PsExec.exe as parent), SMB access to ADMIN$
AccessChkEnumerate service permissions for privilege escalationSysmon Event 1 (accesschk.exe execution), Event 4688 with AccessChk command lines
ProcDumpDump lsass.exe for credential theftSysmon Event 10 (process access to lsass.exe — see Mimikatz for credential dumping), ProcDump binary execution
StringsExtract strings from target binaries for reconRarely used live — usually executed on forensic image or offline. No direct detection signal.
SigcheckVerify file signatures, check PE metadataRare. Usually legitimate IT use.

Investigation Workflow — Using Sysinternals in Incident Response

Step 1 — Capture Running State

procexp.exe /accepteula /t /g /e /p processes.csv
tcpview.exe /accepteula /a /o connections.txt
autoruns.exe /accepteula /a /c autoruns.csv

Step 2 — Analyze for Anomalies

  1. Process Explorer: Sort by company name (Column: “Verified Signer”). Any process listed as “(Verified) Microsoft Windows” is expected. Unverified or “not verified” binaries in %TEMP% or %APPDATA% are suspicious.
  2. TCPView: Note all ESTABLISHED connections to external IPs. Cross-reference with known IPs (CDN, cloud providers, SIEM, threat intel).
  3. Autoruns: Filter by “Entry Type” → “Run” and “RunOnce”. Any entry with a command line including powershell, wscript, or a URL is a persistence signal.

Step 3 — Collect Evidence

Use the following tools to collect forensic evidence without altering the system state:

ToolWhat It CollectsForensics Value
procdump -ma lsass.dmpLSASS process memory (live memory dump)Credential access — only if necessary for IR
strings.exe malicious.exeEmbedded strings in malicious binaryNetwork IOCs, C2 URLs, file paths
handle.exeAll open handlesIdentify which files/registry keys a process is accessing
logonsessions.exeActive logon sessionsIdentify which users are logged on — useful for lateral movement detection

Sources