SlideShare a Scribd company logo
How to drive a malware
analyst crazy
MICHAEL BOMAN, MALWARE RESEARCH INSTITUTE
About me
4th year speaking at 44CON
- 2012: Malware as a hobby [P]
- 2013: Controlling a PC using Arduino [WS]
- 2014: Malware analysis as a big data problem [P]
- 2015: Malware anti-reversing [P], Indicators of Compromise [WS]
Malware Researcher, Founder Malware Research Institute
6 kids, one more on the way…
Malware Research Lab, 2012
Malware Research Lab, 2015
Disclaimer
 These are the techniques I’ve come across trying to keep malware
researchers out of the game
 Or just waste a heck of a lot time doing quite silly things…
 Not a complete list of techniques
 The techniques discussed are aimed towards a x86/win32 environment
Technique #1: Breakpoints
 INT 3h
 Memory Breakpoints
 Hardware Breakpoints
How INT3 breakpoints work
mov eax, fs:[0x30]
mov eax, [eax + 0x0c] // <- Break here
mov eax, [eax + 0x0c]
mov dword ptr [eax + 0x20], NewSize
How INT3 breakpoints work
mov eax, fs:[0x30]
int 3h [garbage] // <- EP
mov eax, [eax + 0x0c]
mov dword ptr [eax + 0x20], NewSize
How INT3 breakpoints work
mov eax, fs:[0x30]
mov eax, [eax + 0x0c] // <- restored by debugger
mov eax, [eax + 0x0c]
mov dword ptr [eax + 0x20], NewSize
Memory Breakpoints
 Allocate memory, mark PAGE_GUARD
 When accessed
STATUS_GUEARD_PAGE_VIOLATION is
raised, handled by program
Allocate memory as buffer
Fill buffer with RET instruction
Mark buffer with PAGE_GUARD
PUSH potential return address to stack
JMP to buffer
If debugger:
RET will jump back to potential return address
else:
STATUS_GUARD_PAGE_VIOLATOIN exception
occur
Hardware breakpoints
 Hardware breakpoints are a technology implemented by Intel in their
processor architecture, and are controlled by the use of
 Special registers DR0 - DR7
 DR0 - DR3 - 32 bit registers for the breakpoint address
 DR4, DR5 - obsolete synonyms for DR6 and DR7
 DR6 – Debug status
 DR7 – Debug control
Technique #1: Breakpoints
 INT 3h
 Look for code that scans memory for 0xCC [INT3] and/or 0xCD 0x03 [INT
(immediate) 3]
 Memory Breakpoints
 Look for memory allocations with PAGE_GUARD flag set
 Hardware Breakpoints
 Win32 GetThreadContext and SetThreadContext
 Structured Exception Handling
Technique #2: Timing
 RDTSC (ReaD TimeStampClock)
 Win32 Timing Functions
 GetTickCount
 timeGetTime
 QueryPerformanceCounter
 […]
Technique #2: Timing
 RDTSC (ReaD TimeStampClock)
 Mark RDTSC as a elevated instruction (can then be intercepted and modified)
 Win32 Timing Functions
 Use DLL-injection to overload the function with one that lies nicely in our favour
Please remember to lie consistently to all timing methods.
Technique #3: Windows Internals
 ProcessDebugFlags
 Debug Object Handle
 Thread Hiding
 BlockInput
 OutputDebugString
ProcessDebugFlags
 Pass undocumented class ProcessDebugFlags (0x1f) to the
NtQueryProcessInformation() function.
 When NtQueryProcessInformation is called with the ProcessDebugFlags
class, returns the inverse of EPROCESS -> NoDebugInherit
 FALSE == Debugger present
Debug Object Handle
 Windows XP or later
 When debugged a Debug Object created
 Can be queried using NtQueryInformationProcess
 Originating from kernel -> hard to hide
Thread Hiding
 Windows 2000 and later
 HideThreadFromDebugger class, passed into NtSetInformationThread,
 The class prevents debuggers from receiving events from any thread that
has had NtSetInformationThread with the HideThreadFromDebugger class
called on it.
 These events include breakpoints, and the exiting of the program if it is
called on the main thread of an application.
BlockInput
 BlockInput() blocks mouse and keyboard messages from reaching the
desired application
 Only the thread that called BlockInput can call it to remove the block
 Not really Anti-RE, but can mess with you
OutputDebugString
 Call OutputDebugString()
 GetLastError()
 No error == debugger present
Technique #3: Windows Internals
 ProcessDebugFlags
 Check NtQueryProcessInformation() calls for [undocumented] ProcessDebugFlags (0x1f) object
 Hook NtQueryProcessInformation(), lie about the ProcessDebugFlags value
 Debug Object Handle
 Hook NtQueryInformationProcess(), remove any links to debug objects
 Thread Hiding
 Remove any HideThreadFromDebugger class passed into NtSetInformationThread
 BlockInput
 Hook it to a NO-OP
 OutputDebugString
 Hook it to always return error
Technique #4: Process Exploitation
 Open Process
 Parent Process
 Self-Debugging
 UnhandledExceptionFilter
 NtQueryObject
Open Process
 Debugger not properly resets process privileges
 Open privileged process like csrss.exe
 If succeed we are running under a debugger
Parent Process
 Check if GetParentProcessId() and GetExplorerPIDbyShellWindow()) is the
same
 Or however you are expecting your malware to be executed
Self-Debugging
 Parent spawns child who debugs the
parent
 Prevents debugger to attach to
parent
Child
Parent
UnhandledExceptionFilter
 UnhandledExceptionFilter is the
exception handler that is called when
there are no other handlers to handle
the exception.
 When utilizing this technique, the
process will exit instead of resuming
execution which is fine for Anti-RE
purposes.
UnhandledExceptionFilter
SEH Chain
Vectored Exception Handlers
NtQueryObject
 NtQueryObject() called with ObjectAllTypesInformation class, returns
information about the host system and the current process including
DebugObjects in the environment.
 ObjectAllTypesInformation can be traversed to locate DebugObjects
Technique #4: Process Exploitation
 Open Process – Make sure debugger drops SeDebugPrivilege
 Parent Process – Fake GetParentProcessId()
 Self-Debugging - Set PsGetProcessId()->EPROCESS->DebugPort to 0
 UnhandledExceptionFilter – Make sure the debugger do “the right thing”
 NtQueryObject – Intercept and filter
Technique #5: Anti-dumping
 Nanomites
 Stolen Bytes (Stolen Code)
 SizeOfImage
 Virtual Machines
 Guard Pages
 Removing the PE Header
Nanomites
 Replace JUMP (Jxx) instructions with INT 3h breakpoints
 Store original JUMP (Jxx) instruction in an encrypted table
 Use self-debugging, debugger process will substitute the INT 3h code with
the correct JUMP instruction depending on encryption algorithm.
 Put some stray INT 3h in the execution flow and you have made a real
mess
Stolen Bytes (Stolen Code)
 Code or bytes from the original process protected by the packer are
copied and encrypted somewhere inside the packing code
 The original (copied) code is replaced with jumps to a dynamic allocated
buffer for the decrypted bytes and then jumps back to the original flow
SizeOfImage
 Modifying PE -> IMAGE_OPTION_HEADER -> SizeOfImage can cause
problems for tools that weren't developed to handle this problem.
Virtual Machines (think JVM, not VBox)
 Protectors like Themida and VMProtect already use virtual machines in
their protection schemes.
 Themida uses a technology that creates a unique virtual machine for
every protected executable
 Prevents the use of a generic attack against its virtualization protection
 Many protection schemes implement junk code instructions
Guard Pages
 Discussed earlier
 Can be used for an on-demand decryption/decompression system
 Mark all pages that were not immediately needed as guard pages
 When accessed, an EXCEPTION_GUARD_PAGE exception will be raised
 Additional data can be decrypted or decompressed either from file or
memory.
Removing the PE Header
 Removes an executable's portable executable from memory at runtime
 A dumped image would be missing important information such as the RVA
(Relative Virtual Address) of important tables (Reloc, Import, Export etc..),
the entry point, and other information that the Windows loader needs to
utilize when loading an image
Technique #5: Anti-dumping
 Nanomites
 Stolen Bytes (Stolen Code)
 SizeOfImage
 Virtual Machines
 Guard Pages
 Removing the PE Header
Technique #6: Exploiting IA-32 Instructions
 Interrupt 2D
 Stack Segment
 Instruction Prefixes
Interrupt 2D
 INT 2D instruction can be used as a debugger detection method
 When executed
 No Debugger Present -> Exception
 Debugger Present -> No Exception
 Debugger specific
Stack Segment
 Manipulate stack segment using push
ss and pop ss cause the debugger to
execute instructions unwillingly
 In the following code, when stepping
over the code with any debugger, the
mov eax, 9 line will execute, but will
not be stepped on by the debugger.
push ss
pop ss
mov eax, 9 // This line executes
but is stepped over
xor edx, edx // This is where the
debugger will step to
Instruction Prefixes
 Takes advantage of the way debuggers
handle instruction prefixes.
 When stepping over this code in OllyDBG
or in Visual Studio 2008, we will reach the
first emit and immediately be taken to
the end of the __try block. What
happens is that the debugger essentially
skips over the prefix and handles the INT
1.
 When running this code without a
debugger, there will be an exception
that SEH will catch and the program will
continue along.
inline bool IsDbgPresentPrefixCheck()
{
__try
{
__asm __emit 0xF3 // 0xF3 0x64 disassembles as PREFIX REP:
__asm __emit 0x64
__asm __emit 0xF1 // One byte INT 1
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
return false;
}
return true;
}
Technique #6: Exploiting IA-32
Instructions
 Interrupt 2D
 Stack Segment
 Instruction Prefixes
Technique #7: VM Detection
 VM Artefacts
 Hardware
 Drivers
 OS version / serial number
 Add-ons
 WMI calls
 Interactivity
 Is the computer being used?
 Click on invisible or very small buttons no human could see
Technique #7: VM Detection
 VM Artefacts
 Hardware – Clone real system configuration
 Drivers – Don’t use VM-specific drivers
 OS version / serial number – Use ”real” serial numbers
 Add-ons – Never install VM Guest tools
 WMI calls – Patch hypervisor, use real hardware
 Interactivity
 Is the computer being used? – Fake interactivity
 Click on invisible or very small buttons no human could see – Make sure your
fake interactivity is plausible
Debugger specific techniques
 OllyDBG
 FindWindow
 OutputDebugString Exploit
 WinDBG
 FindWindow
 Cuckoo Sandbox
 Check if hooked
Debugger specific techniques
 OllyDBG
 FindWindow – Hijack function call or modify OllyDBG binary
 OutputDebugString Exploit – Run patched version
 WinDBG
 FindWindow – Hijack function call or modify WinDBG binary
 Cuckoo Sandbox
 Check if hooked – Run unhooked, patch the hook-check function
Other Techniques
 Junk Code
 Native Code Permutations
Other Techniques
 Junk Code
 Native Code Permutations
Unfortunately there are no quick-fixes for these techniques
Announcement
Riddle
Announcement
 Public VXCage-server
 Available at vxcage.malwareresearch.institute (http, soon https)
 Feel free to apply for a personal account, free of charge:
 TO: michael@michaelboman.org
 SUBJECT: VXCage Access
 BODY:
 Who you are: name, twitter handle (if any, for cyberstalking), other contact info
 Why you want access
 Proposed username for the system (the password will be generated for you)
 Please contact me at the above address for raw access to the archive
VXCage API: Quick intro
 REST with JSON output
 /malware/add – upload sample
 /malware/get/<sha256> - download sample
 /malware/find – search sample based on hash, date, tag
 /tags/list – list tags
 Docs & Source code at https://github.com/mboman/vxcage
Thank you
 Michael Boman (@mboman)
 michael@michaelboman.org (soon also
michael.boman@malwareresearch.institute)
 Malware repository: vxcage.malwareresearch.institute
 Malware blog: blog.malwareresearch.institute

More Related Content

What's hot

Crash dump analysis - experience sharing
Crash dump analysis - experience sharingCrash dump analysis - experience sharing
Crash dump analysis - experience sharingJames Hsieh
 
Understand study
Understand studyUnderstand study
Understand study
Antonio Costa aka Cooler_
 
Volatile IOCs for Fast Incident Response
Volatile IOCs for Fast Incident ResponseVolatile IOCs for Fast Incident Response
Volatile IOCs for Fast Incident ResponseTakahiro Haruyama
 
One-Byte Modification for Breaking Memory Forensic Analysis
One-Byte Modification for Breaking Memory Forensic AnalysisOne-Byte Modification for Breaking Memory Forensic Analysis
One-Byte Modification for Breaking Memory Forensic AnalysisTakahiro Haruyama
 
Windows Crash Dump Analysis
Windows Crash Dump AnalysisWindows Crash Dump Analysis
Windows Crash Dump Analysis
Microsoft TechNet - Belgium and Luxembourg
 
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)
Shota Shinogi
 
WAF protections and bypass resources
WAF protections and bypass resourcesWAF protections and bypass resources
WAF protections and bypass resources
Antonio Costa aka Cooler_
 
Code Injection in Windows
Code Injection in WindowsCode Injection in Windows
Code Injection in Windows
n|u - The Open Security Community
 
AntiRE en Masse
AntiRE en MasseAntiRE en Masse
AntiRE en Masse
Kurt Baumgartner
 
The Nightmare Fuzzing Suite and Blind Code Coverage Fuzzer
The Nightmare Fuzzing Suite and Blind Code Coverage FuzzerThe Nightmare Fuzzing Suite and Blind Code Coverage Fuzzer
The Nightmare Fuzzing Suite and Blind Code Coverage Fuzzer
Joxean Koret
 
0box Analyzer--Afterdark Runtime Forensics for Automated Malware Analysis and...
0box Analyzer--Afterdark Runtime Forensics for Automated Malware Analysis and...0box Analyzer--Afterdark Runtime Forensics for Automated Malware Analysis and...
0box Analyzer--Afterdark Runtime Forensics for Automated Malware Analysis and...
Wayne Huang
 
Malicious File for Exploiting Forensic Software
Malicious File for Exploiting Forensic SoftwareMalicious File for Exploiting Forensic Software
Malicious File for Exploiting Forensic SoftwareTakahiro Haruyama
 
Ceh v8 labs module 07 viruses and worms
Ceh v8 labs module 07 viruses and wormsCeh v8 labs module 07 viruses and worms
Ceh v8 labs module 07 viruses and worms
Asep Sopyan
 
A Security Barrier Device That Can Protect Critical Data Regardless of OS or ...
A Security Barrier Device That Can Protect Critical Data Regardless of OS or ...A Security Barrier Device That Can Protect Critical Data Regardless of OS or ...
A Security Barrier Device That Can Protect Critical Data Regardless of OS or ...
CODE BLUE
 
Advanced System Security and Digital Forensics
Advanced System Security and Digital ForensicsAdvanced System Security and Digital Forensics
Advanced System Security and Digital Forensics
Dr. Ramchandra Mangrulkar
 
Ceh v8 labs module 10 denial of service
Ceh v8 labs module 10 denial of serviceCeh v8 labs module 10 denial of service
Ceh v8 labs module 10 denial of service
Asep Sopyan
 
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)
CODE WHITE GmbH
 
ShinoBOT Suite
ShinoBOT SuiteShinoBOT Suite
ShinoBOT Suite
Shota Shinogi
 
Defending against Java Deserialization Vulnerabilities
 Defending against Java Deserialization Vulnerabilities Defending against Java Deserialization Vulnerabilities
Defending against Java Deserialization Vulnerabilities
Luca Carettoni
 

What's hot (19)

Crash dump analysis - experience sharing
Crash dump analysis - experience sharingCrash dump analysis - experience sharing
Crash dump analysis - experience sharing
 
Understand study
Understand studyUnderstand study
Understand study
 
Volatile IOCs for Fast Incident Response
Volatile IOCs for Fast Incident ResponseVolatile IOCs for Fast Incident Response
Volatile IOCs for Fast Incident Response
 
One-Byte Modification for Breaking Memory Forensic Analysis
One-Byte Modification for Breaking Memory Forensic AnalysisOne-Byte Modification for Breaking Memory Forensic Analysis
One-Byte Modification for Breaking Memory Forensic Analysis
 
Windows Crash Dump Analysis
Windows Crash Dump AnalysisWindows Crash Dump Analysis
Windows Crash Dump Analysis
 
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)
 
WAF protections and bypass resources
WAF protections and bypass resourcesWAF protections and bypass resources
WAF protections and bypass resources
 
Code Injection in Windows
Code Injection in WindowsCode Injection in Windows
Code Injection in Windows
 
AntiRE en Masse
AntiRE en MasseAntiRE en Masse
AntiRE en Masse
 
The Nightmare Fuzzing Suite and Blind Code Coverage Fuzzer
The Nightmare Fuzzing Suite and Blind Code Coverage FuzzerThe Nightmare Fuzzing Suite and Blind Code Coverage Fuzzer
The Nightmare Fuzzing Suite and Blind Code Coverage Fuzzer
 
0box Analyzer--Afterdark Runtime Forensics for Automated Malware Analysis and...
0box Analyzer--Afterdark Runtime Forensics for Automated Malware Analysis and...0box Analyzer--Afterdark Runtime Forensics for Automated Malware Analysis and...
0box Analyzer--Afterdark Runtime Forensics for Automated Malware Analysis and...
 
Malicious File for Exploiting Forensic Software
Malicious File for Exploiting Forensic SoftwareMalicious File for Exploiting Forensic Software
Malicious File for Exploiting Forensic Software
 
Ceh v8 labs module 07 viruses and worms
Ceh v8 labs module 07 viruses and wormsCeh v8 labs module 07 viruses and worms
Ceh v8 labs module 07 viruses and worms
 
A Security Barrier Device That Can Protect Critical Data Regardless of OS or ...
A Security Barrier Device That Can Protect Critical Data Regardless of OS or ...A Security Barrier Device That Can Protect Critical Data Regardless of OS or ...
A Security Barrier Device That Can Protect Critical Data Regardless of OS or ...
 
Advanced System Security and Digital Forensics
Advanced System Security and Digital ForensicsAdvanced System Security and Digital Forensics
Advanced System Security and Digital Forensics
 
Ceh v8 labs module 10 denial of service
Ceh v8 labs module 10 denial of serviceCeh v8 labs module 10 denial of service
Ceh v8 labs module 10 denial of service
 
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)
 
ShinoBOT Suite
ShinoBOT SuiteShinoBOT Suite
ShinoBOT Suite
 
Defending against Java Deserialization Vulnerabilities
 Defending against Java Deserialization Vulnerabilities Defending against Java Deserialization Vulnerabilities
Defending against Java Deserialization Vulnerabilities
 

Viewers also liked

Webinar: Deployment Best Practices
Webinar: Deployment Best PracticesWebinar: Deployment Best Practices
Webinar: Deployment Best Practices
MongoDB
 
Bright talk voip vofi webinar jan2015-v2
Bright talk voip vofi webinar jan2015-v2Bright talk voip vofi webinar jan2015-v2
Bright talk voip vofi webinar jan2015-v2
Savvius, Inc
 
Sans och vett på Internet
Sans och vett på InternetSans och vett på Internet
Sans och vett på Internet
Michael Boman
 
Omnipliance family - Powerful Precise Affordable
Omnipliance family - Powerful Precise AffordableOmnipliance family - Powerful Precise Affordable
Omnipliance family - Powerful Precise Affordable
Savvius, Inc
 
Long Term Reporting with Savvius and Splunk
Long Term Reporting with Savvius and SplunkLong Term Reporting with Savvius and Splunk
Long Term Reporting with Savvius and Splunk
Savvius, Inc
 
All Hope is Not Lost Network Forensics Exposes Today's Advanced Security Thr...
All Hope is Not LostNetwork Forensics Exposes Today's Advanced Security Thr...All Hope is Not LostNetwork Forensics Exposes Today's Advanced Security Thr...
All Hope is Not Lost Network Forensics Exposes Today's Advanced Security Thr...
Savvius, Inc
 
You Suspect a Security Breach. Network Forensic Analysis Gives You the Answers
You Suspect a Security Breach. Network Forensic Analysis Gives You the AnswersYou Suspect a Security Breach. Network Forensic Analysis Gives You the Answers
You Suspect a Security Breach. Network Forensic Analysis Gives You the Answers
Savvius, Inc
 
Wireless LAN Deployment Best Practices
Wireless LAN Deployment Best PracticesWireless LAN Deployment Best Practices
Wireless LAN Deployment Best Practices
Michael Boman
 
Network Forensics Backwards and Forwards
Network Forensics Backwards and ForwardsNetwork Forensics Backwards and Forwards
Network Forensics Backwards and Forwards
Savvius, Inc
 
Network Analysis Tips & Tricks with Omnipeek
Network Analysis Tips & Tricks with OmnipeekNetwork Analysis Tips & Tricks with Omnipeek
Network Analysis Tips & Tricks with Omnipeek
Savvius, Inc
 
Why Every Engineer Needs WLAN Packet Analysis
Why Every Engineer Needs WLAN Packet AnalysisWhy Every Engineer Needs WLAN Packet Analysis
Why Every Engineer Needs WLAN Packet Analysis
Savvius, Inc
 
Why WiFI Offload?
Why WiFI Offload?Why WiFI Offload?
Why WiFI Offload?
Dr. Mazlan Abbas
 
Planning For Success - Wireless Network Design, Analysis, and Troubleshooting
Planning For Success - Wireless Network Design, Analysis, and TroubleshootingPlanning For Success - Wireless Network Design, Analysis, and Troubleshooting
Planning For Success - Wireless Network Design, Analysis, and Troubleshooting
Savvius, Inc
 
Introducing Savvius Vigil
Introducing Savvius VigilIntroducing Savvius Vigil
Introducing Savvius Vigil
Savvius, Inc
 
3GPP workshop - LTE in unlicensed spectrum
3GPP workshop - LTE in unlicensed spectrum 3GPP workshop - LTE in unlicensed spectrum
3GPP workshop - LTE in unlicensed spectrum Nadisanka Rupasinghe
 
44CON 2014: Using hadoop for malware, network, forensics and log analysis
44CON 2014: Using hadoop for malware, network, forensics and log analysis44CON 2014: Using hadoop for malware, network, forensics and log analysis
44CON 2014: Using hadoop for malware, network, forensics and log analysis
Michael Boman
 

Viewers also liked (16)

Webinar: Deployment Best Practices
Webinar: Deployment Best PracticesWebinar: Deployment Best Practices
Webinar: Deployment Best Practices
 
Bright talk voip vofi webinar jan2015-v2
Bright talk voip vofi webinar jan2015-v2Bright talk voip vofi webinar jan2015-v2
Bright talk voip vofi webinar jan2015-v2
 
Sans och vett på Internet
Sans och vett på InternetSans och vett på Internet
Sans och vett på Internet
 
Omnipliance family - Powerful Precise Affordable
Omnipliance family - Powerful Precise AffordableOmnipliance family - Powerful Precise Affordable
Omnipliance family - Powerful Precise Affordable
 
Long Term Reporting with Savvius and Splunk
Long Term Reporting with Savvius and SplunkLong Term Reporting with Savvius and Splunk
Long Term Reporting with Savvius and Splunk
 
All Hope is Not Lost Network Forensics Exposes Today's Advanced Security Thr...
All Hope is Not LostNetwork Forensics Exposes Today's Advanced Security Thr...All Hope is Not LostNetwork Forensics Exposes Today's Advanced Security Thr...
All Hope is Not Lost Network Forensics Exposes Today's Advanced Security Thr...
 
You Suspect a Security Breach. Network Forensic Analysis Gives You the Answers
You Suspect a Security Breach. Network Forensic Analysis Gives You the AnswersYou Suspect a Security Breach. Network Forensic Analysis Gives You the Answers
You Suspect a Security Breach. Network Forensic Analysis Gives You the Answers
 
Wireless LAN Deployment Best Practices
Wireless LAN Deployment Best PracticesWireless LAN Deployment Best Practices
Wireless LAN Deployment Best Practices
 
Network Forensics Backwards and Forwards
Network Forensics Backwards and ForwardsNetwork Forensics Backwards and Forwards
Network Forensics Backwards and Forwards
 
Network Analysis Tips & Tricks with Omnipeek
Network Analysis Tips & Tricks with OmnipeekNetwork Analysis Tips & Tricks with Omnipeek
Network Analysis Tips & Tricks with Omnipeek
 
Why Every Engineer Needs WLAN Packet Analysis
Why Every Engineer Needs WLAN Packet AnalysisWhy Every Engineer Needs WLAN Packet Analysis
Why Every Engineer Needs WLAN Packet Analysis
 
Why WiFI Offload?
Why WiFI Offload?Why WiFI Offload?
Why WiFI Offload?
 
Planning For Success - Wireless Network Design, Analysis, and Troubleshooting
Planning For Success - Wireless Network Design, Analysis, and TroubleshootingPlanning For Success - Wireless Network Design, Analysis, and Troubleshooting
Planning For Success - Wireless Network Design, Analysis, and Troubleshooting
 
Introducing Savvius Vigil
Introducing Savvius VigilIntroducing Savvius Vigil
Introducing Savvius Vigil
 
3GPP workshop - LTE in unlicensed spectrum
3GPP workshop - LTE in unlicensed spectrum 3GPP workshop - LTE in unlicensed spectrum
3GPP workshop - LTE in unlicensed spectrum
 
44CON 2014: Using hadoop for malware, network, forensics and log analysis
44CON 2014: Using hadoop for malware, network, forensics and log analysis44CON 2014: Using hadoop for malware, network, forensics and log analysis
44CON 2014: Using hadoop for malware, network, forensics and log analysis
 

Similar to How to drive a malware analyst crazy

Advanced Malware Analysis Training Session 4 - Anti-Analysis Techniques
Advanced Malware Analysis Training Session 4 - Anti-Analysis TechniquesAdvanced Malware Analysis Training Session 4 - Anti-Analysis Techniques
Advanced Malware Analysis Training Session 4 - Anti-Analysis Techniques
securityxploded
 
Advanced malware analysis training session4 anti-analysis techniques
Advanced malware analysis training session4 anti-analysis techniquesAdvanced malware analysis training session4 anti-analysis techniques
Advanced malware analysis training session4 anti-analysis techniques
Cysinfo Cyber Security Community
 
Penetrating Windows 8 with syringe utility
Penetrating Windows 8 with syringe utilityPenetrating Windows 8 with syringe utility
Penetrating Windows 8 with syringe utility
IOSR Journals
 
Advanced Malware Analysis Training Session 2 - Botnet Analysis Part 1
Advanced Malware Analysis Training Session 2 - Botnet Analysis Part 1  Advanced Malware Analysis Training Session 2 - Botnet Analysis Part 1
Advanced Malware Analysis Training Session 2 - Botnet Analysis Part 1
securityxploded
 
Discussing Errors in Unity3D's Open-Source Components
Discussing Errors in Unity3D's Open-Source ComponentsDiscussing Errors in Unity3D's Open-Source Components
Discussing Errors in Unity3D's Open-Source Components
PVS-Studio
 
Vxcon 2016
Vxcon 2016Vxcon 2016
Vxcon 2016
Kelvin Chan
 
.Net Debugging Techniques
.Net Debugging Techniques.Net Debugging Techniques
.Net Debugging Techniques
Bala Subra
 
.NET Debugging Tips and Techniques
.NET Debugging Tips and Techniques.NET Debugging Tips and Techniques
.NET Debugging Tips and Techniques
Bala Subra
 
[2007 CodeEngn Conference 01] dual5651 - Windows 커널단의 후킹
[2007 CodeEngn Conference 01] dual5651 - Windows 커널단의 후킹[2007 CodeEngn Conference 01] dual5651 - Windows 커널단의 후킹
[2007 CodeEngn Conference 01] dual5651 - Windows 커널단의 후킹
GangSeok Lee
 
Automated JavaScript Deobfuscation - PacSec 2007
Automated JavaScript Deobfuscation - PacSec 2007Automated JavaScript Deobfuscation - PacSec 2007
Automated JavaScript Deobfuscation - PacSec 2007Stephan Chenette
 
Possibility of arbitrary code execution by Step-Oriented Programming
Possibility of arbitrary code execution by Step-Oriented ProgrammingPossibility of arbitrary code execution by Step-Oriented Programming
Possibility of arbitrary code execution by Step-Oriented Programming
kozossakai
 
Possibility of arbitrary code execution by Step-Oriented Programming by Hiroa...
Possibility of arbitrary code execution by Step-Oriented Programming by Hiroa...Possibility of arbitrary code execution by Step-Oriented Programming by Hiroa...
Possibility of arbitrary code execution by Step-Oriented Programming by Hiroa...
CODE BLUE
 
Production Debugging at Code Camp Philly
Production Debugging at Code Camp PhillyProduction Debugging at Code Camp Philly
Production Debugging at Code Camp Philly
Brian Lyttle
 
Debugging With Php
Debugging With PhpDebugging With Php
Debugging With Php
Automatem Ltd
 
JS Fest 2019. Виктор Турский. 6 способов взломать твое JavaScript приложение
JS Fest 2019. Виктор Турский. 6 способов взломать твое JavaScript приложениеJS Fest 2019. Виктор Турский. 6 способов взломать твое JavaScript приложение
JS Fest 2019. Виктор Турский. 6 способов взломать твое JavaScript приложение
JSFestUA
 
How We Analyzed 1000 Dumps in One Day - Dina Goldshtein, Brightsource - DevOp...
How We Analyzed 1000 Dumps in One Day - Dina Goldshtein, Brightsource - DevOp...How We Analyzed 1000 Dumps in One Day - Dina Goldshtein, Brightsource - DevOp...
How We Analyzed 1000 Dumps in One Day - Dina Goldshtein, Brightsource - DevOp...DevOpsDays Tel Aviv
 
6 ways to hack your JavaScript application by Viktor Turskyi
6 ways to hack your JavaScript application by Viktor Turskyi   6 ways to hack your JavaScript application by Viktor Turskyi
6 ways to hack your JavaScript application by Viktor Turskyi
OdessaJS Conf
 
Presentation slides: "How to get 100% code coverage"
Presentation slides: "How to get 100% code coverage" Presentation slides: "How to get 100% code coverage"
Presentation slides: "How to get 100% code coverage"
Rapita Systems Ltd
 
Heap overflows for humans – 101
Heap overflows for humans – 101Heap overflows for humans – 101
Heap overflows for humans – 101
Craft Symbol
 
[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법
[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법
[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법
GangSeok Lee
 

Similar to How to drive a malware analyst crazy (20)

Advanced Malware Analysis Training Session 4 - Anti-Analysis Techniques
Advanced Malware Analysis Training Session 4 - Anti-Analysis TechniquesAdvanced Malware Analysis Training Session 4 - Anti-Analysis Techniques
Advanced Malware Analysis Training Session 4 - Anti-Analysis Techniques
 
Advanced malware analysis training session4 anti-analysis techniques
Advanced malware analysis training session4 anti-analysis techniquesAdvanced malware analysis training session4 anti-analysis techniques
Advanced malware analysis training session4 anti-analysis techniques
 
Penetrating Windows 8 with syringe utility
Penetrating Windows 8 with syringe utilityPenetrating Windows 8 with syringe utility
Penetrating Windows 8 with syringe utility
 
Advanced Malware Analysis Training Session 2 - Botnet Analysis Part 1
Advanced Malware Analysis Training Session 2 - Botnet Analysis Part 1  Advanced Malware Analysis Training Session 2 - Botnet Analysis Part 1
Advanced Malware Analysis Training Session 2 - Botnet Analysis Part 1
 
Discussing Errors in Unity3D's Open-Source Components
Discussing Errors in Unity3D's Open-Source ComponentsDiscussing Errors in Unity3D's Open-Source Components
Discussing Errors in Unity3D's Open-Source Components
 
Vxcon 2016
Vxcon 2016Vxcon 2016
Vxcon 2016
 
.Net Debugging Techniques
.Net Debugging Techniques.Net Debugging Techniques
.Net Debugging Techniques
 
.NET Debugging Tips and Techniques
.NET Debugging Tips and Techniques.NET Debugging Tips and Techniques
.NET Debugging Tips and Techniques
 
[2007 CodeEngn Conference 01] dual5651 - Windows 커널단의 후킹
[2007 CodeEngn Conference 01] dual5651 - Windows 커널단의 후킹[2007 CodeEngn Conference 01] dual5651 - Windows 커널단의 후킹
[2007 CodeEngn Conference 01] dual5651 - Windows 커널단의 후킹
 
Automated JavaScript Deobfuscation - PacSec 2007
Automated JavaScript Deobfuscation - PacSec 2007Automated JavaScript Deobfuscation - PacSec 2007
Automated JavaScript Deobfuscation - PacSec 2007
 
Possibility of arbitrary code execution by Step-Oriented Programming
Possibility of arbitrary code execution by Step-Oriented ProgrammingPossibility of arbitrary code execution by Step-Oriented Programming
Possibility of arbitrary code execution by Step-Oriented Programming
 
Possibility of arbitrary code execution by Step-Oriented Programming by Hiroa...
Possibility of arbitrary code execution by Step-Oriented Programming by Hiroa...Possibility of arbitrary code execution by Step-Oriented Programming by Hiroa...
Possibility of arbitrary code execution by Step-Oriented Programming by Hiroa...
 
Production Debugging at Code Camp Philly
Production Debugging at Code Camp PhillyProduction Debugging at Code Camp Philly
Production Debugging at Code Camp Philly
 
Debugging With Php
Debugging With PhpDebugging With Php
Debugging With Php
 
JS Fest 2019. Виктор Турский. 6 способов взломать твое JavaScript приложение
JS Fest 2019. Виктор Турский. 6 способов взломать твое JavaScript приложениеJS Fest 2019. Виктор Турский. 6 способов взломать твое JavaScript приложение
JS Fest 2019. Виктор Турский. 6 способов взломать твое JavaScript приложение
 
How We Analyzed 1000 Dumps in One Day - Dina Goldshtein, Brightsource - DevOp...
How We Analyzed 1000 Dumps in One Day - Dina Goldshtein, Brightsource - DevOp...How We Analyzed 1000 Dumps in One Day - Dina Goldshtein, Brightsource - DevOp...
How We Analyzed 1000 Dumps in One Day - Dina Goldshtein, Brightsource - DevOp...
 
6 ways to hack your JavaScript application by Viktor Turskyi
6 ways to hack your JavaScript application by Viktor Turskyi   6 ways to hack your JavaScript application by Viktor Turskyi
6 ways to hack your JavaScript application by Viktor Turskyi
 
Presentation slides: "How to get 100% code coverage"
Presentation slides: "How to get 100% code coverage" Presentation slides: "How to get 100% code coverage"
Presentation slides: "How to get 100% code coverage"
 
Heap overflows for humans – 101
Heap overflows for humans – 101Heap overflows for humans – 101
Heap overflows for humans – 101
 
[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법
[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법
[2009 CodeEngn Conference 03] koheung - 윈도우 커널 악성코드에 대한 분석 및 방법
 

More from Michael Boman

DEEPSEC 2013: Malware Datamining And Attribution
DEEPSEC 2013: Malware Datamining And AttributionDEEPSEC 2013: Malware Datamining And Attribution
DEEPSEC 2013: Malware Datamining And Attribution
Michael Boman
 
44CON 2013 - Controlling a PC using Arduino
44CON 2013 - Controlling a PC using Arduino44CON 2013 - Controlling a PC using Arduino
44CON 2013 - Controlling a PC using Arduino
Michael Boman
 
Malware analysis as a hobby (Owasp Göteborg)
Malware analysis as a hobby (Owasp Göteborg)Malware analysis as a hobby (Owasp Göteborg)
Malware analysis as a hobby (Owasp Göteborg)
Michael Boman
 
Malware Analysis as a Hobby
Malware Analysis as a HobbyMalware Analysis as a Hobby
Malware Analysis as a HobbyMichael Boman
 
Malware analysis as a hobby - the short story (lightning talk)
Malware analysis as a hobby - the short story (lightning talk)Malware analysis as a hobby - the short story (lightning talk)
Malware analysis as a hobby - the short story (lightning talk)Michael Boman
 
Blackhat USA 2011 - Cesar Cerrudo - Easy and quick vulnerability hunting in W...
Blackhat USA 2011 - Cesar Cerrudo - Easy and quick vulnerability hunting in W...Blackhat USA 2011 - Cesar Cerrudo - Easy and quick vulnerability hunting in W...
Blackhat USA 2011 - Cesar Cerrudo - Easy and quick vulnerability hunting in W...
Michael Boman
 
Hur man kan testa sin HTTPS-server
Hur man kan testa sin HTTPS-serverHur man kan testa sin HTTPS-server
Hur man kan testa sin HTTPS-server
Michael Boman
 
OWASP AppSec Research 2010 - The State of SSL in the World
OWASP AppSec Research 2010 - The State of SSL in the WorldOWASP AppSec Research 2010 - The State of SSL in the World
OWASP AppSec Research 2010 - The State of SSL in the World
Michael Boman
 
Enkla hackerknep för testare
Enkla hackerknep för testareEnkla hackerknep för testare
Enkla hackerknep för testareMichael Boman
 
Privacy In Wireless Networks Keeping Your Private Data Private 2008-08-08
Privacy In Wireless Networks   Keeping Your Private Data Private 2008-08-08Privacy In Wireless Networks   Keeping Your Private Data Private 2008-08-08
Privacy In Wireless Networks Keeping Your Private Data Private 2008-08-08Michael Boman
 
USB (In)Security 2008-08-22
USB (In)Security 2008-08-22USB (In)Security 2008-08-22
USB (In)Security 2008-08-22
Michael Boman
 
Automatic Malware Analysis 2008-09-19
Automatic Malware Analysis 2008-09-19Automatic Malware Analysis 2008-09-19
Automatic Malware Analysis 2008-09-19
Michael Boman
 
Overcoming USB (In)Security
Overcoming USB (In)SecurityOvercoming USB (In)Security
Overcoming USB (In)Security
Michael Boman
 
Privacy in Wireless Networks
Privacy in Wireless NetworksPrivacy in Wireless Networks
Privacy in Wireless NetworksMichael Boman
 
Network Security Monitoring - Theory and Practice
Network Security Monitoring - Theory and PracticeNetwork Security Monitoring - Theory and Practice
Network Security Monitoring - Theory and Practice
Michael Boman
 
Introduction To Linux Security
Introduction To Linux SecurityIntroduction To Linux Security
Introduction To Linux Security
Michael Boman
 
Snort
SnortSnort
SoHo Honeypot (LUGS)
SoHo Honeypot (LUGS)SoHo Honeypot (LUGS)
SoHo Honeypot (LUGS)
Michael Boman
 
Sguil
SguilSguil
Introduction To NIDS
Introduction To NIDSIntroduction To NIDS
Introduction To NIDS
Michael Boman
 

More from Michael Boman (20)

DEEPSEC 2013: Malware Datamining And Attribution
DEEPSEC 2013: Malware Datamining And AttributionDEEPSEC 2013: Malware Datamining And Attribution
DEEPSEC 2013: Malware Datamining And Attribution
 
44CON 2013 - Controlling a PC using Arduino
44CON 2013 - Controlling a PC using Arduino44CON 2013 - Controlling a PC using Arduino
44CON 2013 - Controlling a PC using Arduino
 
Malware analysis as a hobby (Owasp Göteborg)
Malware analysis as a hobby (Owasp Göteborg)Malware analysis as a hobby (Owasp Göteborg)
Malware analysis as a hobby (Owasp Göteborg)
 
Malware Analysis as a Hobby
Malware Analysis as a HobbyMalware Analysis as a Hobby
Malware Analysis as a Hobby
 
Malware analysis as a hobby - the short story (lightning talk)
Malware analysis as a hobby - the short story (lightning talk)Malware analysis as a hobby - the short story (lightning talk)
Malware analysis as a hobby - the short story (lightning talk)
 
Blackhat USA 2011 - Cesar Cerrudo - Easy and quick vulnerability hunting in W...
Blackhat USA 2011 - Cesar Cerrudo - Easy and quick vulnerability hunting in W...Blackhat USA 2011 - Cesar Cerrudo - Easy and quick vulnerability hunting in W...
Blackhat USA 2011 - Cesar Cerrudo - Easy and quick vulnerability hunting in W...
 
Hur man kan testa sin HTTPS-server
Hur man kan testa sin HTTPS-serverHur man kan testa sin HTTPS-server
Hur man kan testa sin HTTPS-server
 
OWASP AppSec Research 2010 - The State of SSL in the World
OWASP AppSec Research 2010 - The State of SSL in the WorldOWASP AppSec Research 2010 - The State of SSL in the World
OWASP AppSec Research 2010 - The State of SSL in the World
 
Enkla hackerknep för testare
Enkla hackerknep för testareEnkla hackerknep för testare
Enkla hackerknep för testare
 
Privacy In Wireless Networks Keeping Your Private Data Private 2008-08-08
Privacy In Wireless Networks   Keeping Your Private Data Private 2008-08-08Privacy In Wireless Networks   Keeping Your Private Data Private 2008-08-08
Privacy In Wireless Networks Keeping Your Private Data Private 2008-08-08
 
USB (In)Security 2008-08-22
USB (In)Security 2008-08-22USB (In)Security 2008-08-22
USB (In)Security 2008-08-22
 
Automatic Malware Analysis 2008-09-19
Automatic Malware Analysis 2008-09-19Automatic Malware Analysis 2008-09-19
Automatic Malware Analysis 2008-09-19
 
Overcoming USB (In)Security
Overcoming USB (In)SecurityOvercoming USB (In)Security
Overcoming USB (In)Security
 
Privacy in Wireless Networks
Privacy in Wireless NetworksPrivacy in Wireless Networks
Privacy in Wireless Networks
 
Network Security Monitoring - Theory and Practice
Network Security Monitoring - Theory and PracticeNetwork Security Monitoring - Theory and Practice
Network Security Monitoring - Theory and Practice
 
Introduction To Linux Security
Introduction To Linux SecurityIntroduction To Linux Security
Introduction To Linux Security
 
Snort
SnortSnort
Snort
 
SoHo Honeypot (LUGS)
SoHo Honeypot (LUGS)SoHo Honeypot (LUGS)
SoHo Honeypot (LUGS)
 
Sguil
SguilSguil
Sguil
 
Introduction To NIDS
Introduction To NIDSIntroduction To NIDS
Introduction To NIDS
 

Recently uploaded

GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 

Recently uploaded (20)

GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 

How to drive a malware analyst crazy

  • 1. How to drive a malware analyst crazy MICHAEL BOMAN, MALWARE RESEARCH INSTITUTE
  • 2. About me 4th year speaking at 44CON - 2012: Malware as a hobby [P] - 2013: Controlling a PC using Arduino [WS] - 2014: Malware analysis as a big data problem [P] - 2015: Malware anti-reversing [P], Indicators of Compromise [WS] Malware Researcher, Founder Malware Research Institute 6 kids, one more on the way…
  • 5. Disclaimer  These are the techniques I’ve come across trying to keep malware researchers out of the game  Or just waste a heck of a lot time doing quite silly things…  Not a complete list of techniques  The techniques discussed are aimed towards a x86/win32 environment
  • 6. Technique #1: Breakpoints  INT 3h  Memory Breakpoints  Hardware Breakpoints
  • 7. How INT3 breakpoints work mov eax, fs:[0x30] mov eax, [eax + 0x0c] // <- Break here mov eax, [eax + 0x0c] mov dword ptr [eax + 0x20], NewSize
  • 8. How INT3 breakpoints work mov eax, fs:[0x30] int 3h [garbage] // <- EP mov eax, [eax + 0x0c] mov dword ptr [eax + 0x20], NewSize
  • 9. How INT3 breakpoints work mov eax, fs:[0x30] mov eax, [eax + 0x0c] // <- restored by debugger mov eax, [eax + 0x0c] mov dword ptr [eax + 0x20], NewSize
  • 10. Memory Breakpoints  Allocate memory, mark PAGE_GUARD  When accessed STATUS_GUEARD_PAGE_VIOLATION is raised, handled by program Allocate memory as buffer Fill buffer with RET instruction Mark buffer with PAGE_GUARD PUSH potential return address to stack JMP to buffer If debugger: RET will jump back to potential return address else: STATUS_GUARD_PAGE_VIOLATOIN exception occur
  • 11. Hardware breakpoints  Hardware breakpoints are a technology implemented by Intel in their processor architecture, and are controlled by the use of  Special registers DR0 - DR7  DR0 - DR3 - 32 bit registers for the breakpoint address  DR4, DR5 - obsolete synonyms for DR6 and DR7  DR6 – Debug status  DR7 – Debug control
  • 12. Technique #1: Breakpoints  INT 3h  Look for code that scans memory for 0xCC [INT3] and/or 0xCD 0x03 [INT (immediate) 3]  Memory Breakpoints  Look for memory allocations with PAGE_GUARD flag set  Hardware Breakpoints  Win32 GetThreadContext and SetThreadContext  Structured Exception Handling
  • 13. Technique #2: Timing  RDTSC (ReaD TimeStampClock)  Win32 Timing Functions  GetTickCount  timeGetTime  QueryPerformanceCounter  […]
  • 14. Technique #2: Timing  RDTSC (ReaD TimeStampClock)  Mark RDTSC as a elevated instruction (can then be intercepted and modified)  Win32 Timing Functions  Use DLL-injection to overload the function with one that lies nicely in our favour Please remember to lie consistently to all timing methods.
  • 15. Technique #3: Windows Internals  ProcessDebugFlags  Debug Object Handle  Thread Hiding  BlockInput  OutputDebugString
  • 16. ProcessDebugFlags  Pass undocumented class ProcessDebugFlags (0x1f) to the NtQueryProcessInformation() function.  When NtQueryProcessInformation is called with the ProcessDebugFlags class, returns the inverse of EPROCESS -> NoDebugInherit  FALSE == Debugger present
  • 17. Debug Object Handle  Windows XP or later  When debugged a Debug Object created  Can be queried using NtQueryInformationProcess  Originating from kernel -> hard to hide
  • 18. Thread Hiding  Windows 2000 and later  HideThreadFromDebugger class, passed into NtSetInformationThread,  The class prevents debuggers from receiving events from any thread that has had NtSetInformationThread with the HideThreadFromDebugger class called on it.  These events include breakpoints, and the exiting of the program if it is called on the main thread of an application.
  • 19. BlockInput  BlockInput() blocks mouse and keyboard messages from reaching the desired application  Only the thread that called BlockInput can call it to remove the block  Not really Anti-RE, but can mess with you
  • 20. OutputDebugString  Call OutputDebugString()  GetLastError()  No error == debugger present
  • 21. Technique #3: Windows Internals  ProcessDebugFlags  Check NtQueryProcessInformation() calls for [undocumented] ProcessDebugFlags (0x1f) object  Hook NtQueryProcessInformation(), lie about the ProcessDebugFlags value  Debug Object Handle  Hook NtQueryInformationProcess(), remove any links to debug objects  Thread Hiding  Remove any HideThreadFromDebugger class passed into NtSetInformationThread  BlockInput  Hook it to a NO-OP  OutputDebugString  Hook it to always return error
  • 22. Technique #4: Process Exploitation  Open Process  Parent Process  Self-Debugging  UnhandledExceptionFilter  NtQueryObject
  • 23. Open Process  Debugger not properly resets process privileges  Open privileged process like csrss.exe  If succeed we are running under a debugger
  • 24. Parent Process  Check if GetParentProcessId() and GetExplorerPIDbyShellWindow()) is the same  Or however you are expecting your malware to be executed
  • 25. Self-Debugging  Parent spawns child who debugs the parent  Prevents debugger to attach to parent Child Parent
  • 26. UnhandledExceptionFilter  UnhandledExceptionFilter is the exception handler that is called when there are no other handlers to handle the exception.  When utilizing this technique, the process will exit instead of resuming execution which is fine for Anti-RE purposes. UnhandledExceptionFilter SEH Chain Vectored Exception Handlers
  • 27. NtQueryObject  NtQueryObject() called with ObjectAllTypesInformation class, returns information about the host system and the current process including DebugObjects in the environment.  ObjectAllTypesInformation can be traversed to locate DebugObjects
  • 28. Technique #4: Process Exploitation  Open Process – Make sure debugger drops SeDebugPrivilege  Parent Process – Fake GetParentProcessId()  Self-Debugging - Set PsGetProcessId()->EPROCESS->DebugPort to 0  UnhandledExceptionFilter – Make sure the debugger do “the right thing”  NtQueryObject – Intercept and filter
  • 29. Technique #5: Anti-dumping  Nanomites  Stolen Bytes (Stolen Code)  SizeOfImage  Virtual Machines  Guard Pages  Removing the PE Header
  • 30. Nanomites  Replace JUMP (Jxx) instructions with INT 3h breakpoints  Store original JUMP (Jxx) instruction in an encrypted table  Use self-debugging, debugger process will substitute the INT 3h code with the correct JUMP instruction depending on encryption algorithm.  Put some stray INT 3h in the execution flow and you have made a real mess
  • 31. Stolen Bytes (Stolen Code)  Code or bytes from the original process protected by the packer are copied and encrypted somewhere inside the packing code  The original (copied) code is replaced with jumps to a dynamic allocated buffer for the decrypted bytes and then jumps back to the original flow
  • 32. SizeOfImage  Modifying PE -> IMAGE_OPTION_HEADER -> SizeOfImage can cause problems for tools that weren't developed to handle this problem.
  • 33. Virtual Machines (think JVM, not VBox)  Protectors like Themida and VMProtect already use virtual machines in their protection schemes.  Themida uses a technology that creates a unique virtual machine for every protected executable  Prevents the use of a generic attack against its virtualization protection  Many protection schemes implement junk code instructions
  • 34. Guard Pages  Discussed earlier  Can be used for an on-demand decryption/decompression system  Mark all pages that were not immediately needed as guard pages  When accessed, an EXCEPTION_GUARD_PAGE exception will be raised  Additional data can be decrypted or decompressed either from file or memory.
  • 35. Removing the PE Header  Removes an executable's portable executable from memory at runtime  A dumped image would be missing important information such as the RVA (Relative Virtual Address) of important tables (Reloc, Import, Export etc..), the entry point, and other information that the Windows loader needs to utilize when loading an image
  • 36. Technique #5: Anti-dumping  Nanomites  Stolen Bytes (Stolen Code)  SizeOfImage  Virtual Machines  Guard Pages  Removing the PE Header
  • 37. Technique #6: Exploiting IA-32 Instructions  Interrupt 2D  Stack Segment  Instruction Prefixes
  • 38. Interrupt 2D  INT 2D instruction can be used as a debugger detection method  When executed  No Debugger Present -> Exception  Debugger Present -> No Exception  Debugger specific
  • 39. Stack Segment  Manipulate stack segment using push ss and pop ss cause the debugger to execute instructions unwillingly  In the following code, when stepping over the code with any debugger, the mov eax, 9 line will execute, but will not be stepped on by the debugger. push ss pop ss mov eax, 9 // This line executes but is stepped over xor edx, edx // This is where the debugger will step to
  • 40. Instruction Prefixes  Takes advantage of the way debuggers handle instruction prefixes.  When stepping over this code in OllyDBG or in Visual Studio 2008, we will reach the first emit and immediately be taken to the end of the __try block. What happens is that the debugger essentially skips over the prefix and handles the INT 1.  When running this code without a debugger, there will be an exception that SEH will catch and the program will continue along. inline bool IsDbgPresentPrefixCheck() { __try { __asm __emit 0xF3 // 0xF3 0x64 disassembles as PREFIX REP: __asm __emit 0x64 __asm __emit 0xF1 // One byte INT 1 } __except(EXCEPTION_EXECUTE_HANDLER) { return false; } return true; }
  • 41. Technique #6: Exploiting IA-32 Instructions  Interrupt 2D  Stack Segment  Instruction Prefixes
  • 42. Technique #7: VM Detection  VM Artefacts  Hardware  Drivers  OS version / serial number  Add-ons  WMI calls  Interactivity  Is the computer being used?  Click on invisible or very small buttons no human could see
  • 43. Technique #7: VM Detection  VM Artefacts  Hardware – Clone real system configuration  Drivers – Don’t use VM-specific drivers  OS version / serial number – Use ”real” serial numbers  Add-ons – Never install VM Guest tools  WMI calls – Patch hypervisor, use real hardware  Interactivity  Is the computer being used? – Fake interactivity  Click on invisible or very small buttons no human could see – Make sure your fake interactivity is plausible
  • 44. Debugger specific techniques  OllyDBG  FindWindow  OutputDebugString Exploit  WinDBG  FindWindow  Cuckoo Sandbox  Check if hooked
  • 45. Debugger specific techniques  OllyDBG  FindWindow – Hijack function call or modify OllyDBG binary  OutputDebugString Exploit – Run patched version  WinDBG  FindWindow – Hijack function call or modify WinDBG binary  Cuckoo Sandbox  Check if hooked – Run unhooked, patch the hook-check function
  • 46. Other Techniques  Junk Code  Native Code Permutations
  • 47. Other Techniques  Junk Code  Native Code Permutations Unfortunately there are no quick-fixes for these techniques
  • 49. Announcement  Public VXCage-server  Available at vxcage.malwareresearch.institute (http, soon https)  Feel free to apply for a personal account, free of charge:  TO: michael@michaelboman.org  SUBJECT: VXCage Access  BODY:  Who you are: name, twitter handle (if any, for cyberstalking), other contact info  Why you want access  Proposed username for the system (the password will be generated for you)  Please contact me at the above address for raw access to the archive
  • 50. VXCage API: Quick intro  REST with JSON output  /malware/add – upload sample  /malware/get/<sha256> - download sample  /malware/find – search sample based on hash, date, tag  /tags/list – list tags  Docs & Source code at https://github.com/mboman/vxcage
  • 51. Thank you  Michael Boman (@mboman)  michael@michaelboman.org (soon also michael.boman@malwareresearch.institute)  Malware repository: vxcage.malwareresearch.institute  Malware blog: blog.malwareresearch.institute