← SYSREF
HYLAS // PSEXECREF
PSTOOLS SUITE — REMOTE ADMIN & LATERAL MOVEMENT REFERENCE
LATERAL MOVEMENT
// OVERVIEW
PsTools is a suite of remote administration utilities — legitimate system management tools that have become a staple of attacker post-exploitation playbooks. Because they are signed Microsoft binaries and perform functions indistinguishable from normal administration, they are prime living-off-the-land (LotL) tools.

Understanding PsTools from both sides — what an attacker does with each tool, and what log artefacts each leaves — is essential for both red team tradecraft and blue team detection engineering.
// TOOL INVENTORY
BinaryFunctionAttacker Use Case
PsExecExecute processes on remote systemsLateral movement, remote shell, ransomware deployment
PsInfoGather system info from remote hostReconnaissance — OS version, uptime, patch level, installed apps
PsListList processes on remote systemIdentify security tools, EDR agents, AV processes to kill
PsKillKill a process by name or PID (local/remote)Terminate AV, EDR, backup agents before ransomware detonation
PsLoggedonShow logged-on users (local and via resource shares)Identify active admin sessions for credential theft timing
PsLogListDump event logs from remote systemGrab logs before clearing them; offline analysis
PsPasswdChange account passwords (local/remote)Reset admin password to lock defenders out
PsPingPing with TCP/UDP options, latency statsNetwork discovery, firewall rule probing, port scanning
PsServiceView and control services (local/remote)Start/stop services, install malicious service
PsShutdownShutdown/restart remote systemWiper/ransomware trigger, cover tracks by forcing reboot
PsSuspendSuspend/resume processesFreeze AV/EDR process without triggering tamper alerts
PsGetSidGet SID for user, group, or remote computerDomain reconnaissance — enumerate SIDs for pass-the-hash
PsFileShow files opened remotely on a systemIdentify which remote users have files open (share enumeration)
// PSEXEC — DEEP DIVE
PsExec is the most heavily abused tool in the suite. It works by copying a service binary (PSEXESVC.exe) to the target's ADMIN$ share, registering it as a service, and using that service to execute commands.

Basic syntax:
PsExec64.exe \\TARGET -u DOMAIN\admin -p password cmd.exe PsExec64.exe \\TARGET -s cmd.exe ; Run as SYSTEM PsExec64.exe \\TARGET -d payload.exe ; Non-interactive (detach) PsExec64.exe \\TARGET -c payload.exe ; Copy file to remote then run PsExec64.exe \\TARGET -c -f -s -d beacon.exe ; Full LotL payload drop PsExec64.exe \\TARGET powershell -enc [Base64EncodedCommand] ; Ransomware operators frequently use: PsExec64.exe \\* -u domain\admin -p pass -d ransomware.exe ; The \\* syntax executes on all machines in the domain — wormlike spread
What PsExec does on the target (artefacts it leaves):
1. Copies PSEXESVC.exe to \\TARGET\ADMIN$\PSEXESVC.exe 2. Creates service: PSEXESVC 3. Starts service — service runs the specified command 4. After execution: stops service, deletes PSEXESVC.exe Artefacts remaining: - Windows Event Log (System): Event 7045 — Service installed "PSEXESVC" - Windows Event Log (System): Event 7036 — Service state changes - Security log: Event 4624 — Logon Type 3 (network) from source IP - Security log: Event 4648 — Explicit credential logon - Security log: Event 5140 — Network share ADMIN$ accessed - Prefetch: PSEXESVC.EXE-[hash].pf (even after deletion) - File: $MFT entry for PSEXESVC.exe (recoverable even post-deletion)
// DETECTION RULES — EVENT IDS
Event IDLogTriggerTool
4624 Type 3SecurityNetwork logon — lateral movement via credentialsPsExec, PsInfo, PsList, most tools
4648SecurityExplicit credential logon (RunAs style)PsExec with -u flag
5140SecurityNetwork share accessed (ADMIN$, IPC$)PsExec (ADMIN$ for PSEXESVC)
7045SystemNew service installedPsExec (PSEXESVC service)
7036SystemService state changePsExec, PsService
4656 / 4663SecurityObject access (file/registry handle)PsKill (handle to process), PsPasswd
4723 / 4724SecurityPassword change attemptPsPasswd
1102SecurityAudit log clearedPsLogList often precedes log clearing
4688SecurityNew process created — check parent/childAll PsTools (look for psexec parent)

Sigma rule concepts for PsExec detection:
// Service name detection: EventID: 7045 ServiceName: PSEXESVC // Child process of psexec pattern: EventID: 4688 NewProcessName contains: cmd.exe OR powershell.exe ParentProcessName contains: PSEXESVC.exe // Network + ADMIN$ share access correlation: EventID: 5140 AND ShareName: ADMIN$ AND ObjectName: PSEXESVC.exe // Wildcard execution across domain — look for same command // executed across multiple hosts within short time window (burst)
// PSKILL — AV/EDR TERMINATION
pskill64.exe \\TARGET MsMpEng.exe ; Kill Windows Defender pskill64.exe \\TARGET CylanceSvc.exe ; Kill Cylance pskill64.exe \\TARGET xagt.exe ; Kill FireEye HX pskill64.exe \\TARGET CSFalconService ; Kill CrowdStrike Falcon ; Note: Most modern EDR products implement tamper protection — PsKill will fail. ; Attackers may instead use PsSuspend to freeze the process without triggering ; tamper alerts, or use a kernel-level driver to bypass protection. ; Detection: 4689 (process terminated) on protected process from unexpected parent
// RED TEAM
Rename binaries — rename PsExec64.exe to svchost.exe or msiexec.exe before deployment. Process name in logs changes but behaviour is identical.
Use -r to rename servicepsexec -r mysvcname renames PSEXESVC to a custom name, evading service name IOCs.
Avoid ADMIN$ — use -c with a custom share to avoid the ADMIN$/PSEXESVC pattern. Or use impacket's psexec.py equivalent.
PsPing for network recon — legitimate tool, less suspicious than nmap. TCP connect scan: psping -n 1 TARGET:445
// BLUE TEAM
Block PSEXESVC hash — application control policy to block execution of the known PSEXESVC.exe hash. Attackers must use custom builds to bypass.
Alert on ADMIN$ writes — any write to ADMIN$ share from a non-admin management system should alert. PsExec cannot function without it.
Correlate logon burst — single source IP with Event 4624 Type 3 to many hosts in short window = lateral movement. Baseline normal admin patterns.
EDR tamper protection — enable on all endpoints. PsKill should fail against protected processes; the attempt itself generates a detectable event.