Net Debugging

Total Page:16

File Type:pdf, Size:1020Kb

Net Debugging Troubleshooting Exceptions Module Overview Exceptions Managed Exceptions Unhandled Exceptions (UhE) Corrupted State Exceptions (CSE) Just In Time (JIT) Debugging Debugging Managed Exceptions 2 Exceptions Unexpected behavior (for example, an error) encountered by an executing program Managed exception inherits from System.Exception - Contains properties that describe and provide more info about the exception - All managed languages use the same exception-handling system 3 Exception Hierarchy SystemException - Base class for all exceptions thrown by Application's and the Common Language Runtime - Types • System.Runtime.InteropServices.ComException • System.OutOfMemoryException • System.NullReferenceException • Many more… ApplicationException - .NET 1.1 - Design pattern, not used anymore 4 COM Interop Exception The runtime tries to map the HRESULT from COM interop to .NET exceptions. eg: E_ACCESSDENIED becomes UnauthorizedAccessException E_OUTOFMEMORY becomes OutOfMemoryException If this does not work Throws COMException If HRESULT that does not map to a managed exception (eg. a custom HRESULT) IErrorInfo is used to gather more detailed information 5 How Runtime Manages Exceptions The runtime creates an exception information table for each executable. Each method of the executable has an associated array of exception handling information in this table. Each exception information table entry describes a protected block of code, any exception filters associated with that code, any exception handlers (catch statements). no performance penalty when an exception does not occur. You use resources only when an exception occurs. Four types of exception handlers for protected blocks: A finally handler that executes whenever the block exits, whether that occurs by normal control flow or by an unhandled exception. A fault handler that has to execute if an exception occurs but does not execute on completion of normal control flow. A type-filtered handler that handles any exception of a specified class or any of its derived classes. A user-filtered handler that runs user-specified code to determine whether the exception should be handled by the associated handler or should be passed to the next protected block (VB.NET) 6 How Runtime Manages Exceptions When an exception occurs: - The runtime creates an Exception object. - If a debugger is attached, the debugger is notified of the exception (first chance). - If no debugger is attached - or if a debugger is attached but ignores the exception - the runtime searches for an array for the protected block that: • Includes the currently executing instruction; and • Contains an exception handler that can handle the current exception. 7 How Runtime Manages Exceptions cont. If the runtime finds a handler in the current method: - The runtime populates an Exception object that describes the exception and executes all finally statements or exception handlers between the statement where the exception occurred and the statement handling the exception. If no handler is found in the current method: - Search the “caller” of the method and continue your way up the call stack. If no handlers are found even in the callers: - If a debugger is attached, the debugger gets the second chance notification. - If a debugger is not attached, or the debugger does not handle, the runtime raises an UnhandledException event. 8 Exception Handling Model Build an Exception Information Table for each executable Unhandled Exception event Exception Occurs Notify Debugger 2nd Chance Populate Exception Object Create an Execute Finally blocks Exception Object. yes Terminate Process! Notify Debugger Beginning of no 1st Chance call stack? Search for an entry for the caller of the current method no Search for an entry for the in the call stack current method in the table to Handler handle the exception found? Populate Exception Object yes Execute Finally blocks Resume Execution 9 Coding to Handle Managed Exceptions Coding blocks - Try - Catch - Finally - Filters (VB.NET only) Implement exception-handling code appropriate for associated code blocks Handle most specific types first, then the more general types Minimum combo of statements - Try-Catch - Try-Finally AVOID empty catch blocks 10 C# Using and Exceptions Used to clean up resources that require disposal (IDisposable interface). using (StreamReader reader = new StreamReader(@"C:\test.txt")) { string line = reader.ReadLine(); } IL Code IL_0000: ldstr "C:\\test.txt" IL_0005: newobj instance void [mscorlib]System.IO.StreamReader::.ctor(string) … .try { … IL_000c: callvirt instance string [mscorlib]System.IO.TextReader::ReadLine() } // end .try finally { … IL_0018: callvirt instance void [mscorlib]System.IDisposable::Dispose() …. } // end handler 11 Demo: Exception Objects Sxe clr !dumpheap –type Exception !ehinfo Corrupted State Exceptions (CSE) Introduced in .Net 4.0 Corrupted State Exceptions are a symptom of the corrupted process, not the cause - Raised after the process has been corrupted By the time the OS gives you notification you don’t know what’s gone wrong & for how long People write managed code that swallows these exceptions all the time! try { CreateNamedPipe(MyBadPointer, 0, ..0, 0, new System.IntPtr(0)); } catch (Exception ex){ //Exception handling code… } 13 Corrupted State Exceptions (CSE) Corrupted State Exceptions - STATUS_ACCESS_VIOLATION • presented as System.AccessViolationException - STATUS_STACK_OVERFLOW - EXCEPTION_ILLEGAL_INSTRUCTION - EXCEPTION_IN_PAGE_ERROR - EXCEPTION_INVALID_DISPOSITION - EXCEPTION_NONCONTINUABLE_EXCEPTION - EXCEPTION_PRIV_INSTRUCTION - STATUS_UNWIND_CONSOLIDATE Exception will be marked as “corrupted” COM will no longer convert a CSE to an HRESULT 14 Corrupted State Exceptions (Cont.) .NET 4.0 marks CSE exceptions internally and will not allow them to be caught .NET 4.0 will not catch CSEs inside of runtime or swallow them - TargetInvocation and TypeInitialization will inherit corrupted exception state: • Eg: When CSE happens during TypeInitialization, a TypeInitializationException will be created with CSE as the inner exception and instance will be marked as corrupted (we can’t trust the state of the object). - COM will no longer convert CSEs to HRESULTS • Non-CSEs will still be converted into HRESULTS To handle CSE, you have to use: - [HandleProcessCorruptedStateExceptions] attribute • code must be SecurityCritical & not sandboxed - <legacyCorruptedStateExceptionsPolicy enabled="true|false"/> • Process-wide switch to mimic .NET 3.5 or older behavior 15 Exception Policies Behavior of runtime in case of Exceptions can be controlled with CLR Policy: - Requires to host runtime - Eg: in case of stack overflow unload AppDomain instead of terminating Application hr = pPolicyManager->SetActionOnFailure(EClrFailure::FAIL_StackOverflow, EPolicyAction::eRudeUnloadAppDomain); - Eg: Change to Rude Thread Abort (no finally) in case of a Thread Abort hr = pPolicyManager->SetDefaultAction(EClrOperation::OPR_ThreadAbort, EPolicyAction::eRudeAbortThread); 16 Unhandled Exceptions (UhE) Occurs when an exception is thrown and no catch filter accepts the exception object Set up UnhandledExceptionEventHandler - Delegate which is triggered by an unhandled exception In .NET 4.0, the following will terminate a process - StackOverflowException - Corrupted State Exceptions 17 Unhandled Exceptions (UhE) What happens if unhandled Exception occurs on what kind of thread? .NET Version Unmanaged Main Finalizer Worker Threadpool 1.1 Process Process Thread Thread Thread Term. Term. Term. Term. Term. 2.0 / 4.0 Process Process Process Process Process Term. Term. Term. Term. Term. 2.0 / 4.0 + Process Process Thread Thread Thread Term. <legacyUnhandledExce Term. Term. Term. Term. ptionPolicy =“true”/> 18 Just In Time (JIT) Debugging .NET 4.X JIT debugging for native and managed code configured in registry HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\AeDebug During 2nd chance exceptions Auto (REG_SZ) 0 – The system displays a message box notifying the user when an application error occurs. Auto (REG_SZ) 1 – Starts automatically debugging Debugger Name of debugger and switch settings (REG_SZ) -p Stores the Process ID specified by %ld -e Stores the Events ID specified by %ld eg: cdb -pv -p %ld -c ".dump /u /ma c:\crashdump.dmp;.kill;qd" UserDebuggerHot Specifies the key that, when pressed, establishes Key (DWORD) a breakpoint in code being debugged. 19 Exceptions and WinRT up from .NET 4.5.1 Better exception support for Windows Runtime components - Up from Windows 8.1 and .NET 4.5.1 - preserve information about the error that caused the exception, even across language boundaries 20 Perfmon Counters .NET CLR Exceptions ASP.NET version # of Exceps Thrown Application Restarts # Exceps Thrown/sec Worker Process Restarts Memory Available MBytes 21 Debugging Managed Exceptions Managed debuggers - Visual Studio 2008..2013 • Break if CLR exceptions are thrown • Supports Full and Mini Dumps up from .NET 4.0 22 Managed debuggers - IntelliTrace “Historical” Debugging facility Included with Ultimate Edition Cmd line tool “IntelliTrace.exe” Options - Exceptions and other Events only - Events and call information (can build custom) Limitations - Managed code only - 64-bit support launched from Visual Studio 2010 up from sp1 - Edit and continue is disabled 23 Gather Dumps on unhandled Exceptions ProcDump Debug Diag Intellitrace Windows Error Reporting 24 Demo: WER, Procdump Native Debuggers Windbg / cdb Pros - Debuggers of choice in production • Automated • Can be noninvasive
Recommended publications
  • Hunting Red Team Activities with Forensic Artifacts
    Hunting Red Team Activities with Forensic Artifacts By Haboob Team 1 [email protected] Table of Contents 1. Introduction .............................................................................................................................................. 5 2. Why Threat Hunting?............................................................................................................................. 5 3. Windows Forensic.................................................................................................................................. 5 4. LAB Environment Demonstration ..................................................................................................... 6 4.1 Red Team ......................................................................................................................................... 6 4.2 Blue Team ........................................................................................................................................ 6 4.3 LAB Overview .................................................................................................................................. 6 5. Scenarios .................................................................................................................................................. 7 5.1 Remote Execution Tool (Psexec) ............................................................................................... 7 5.2 PowerShell Suspicious Commands ......................................................................................
    [Show full text]
  • The Development and Effectiveness of Malware Vaccination
    Master of Science in Engineering: Computer Security June 2020 The Development and Effectiveness of Malware Vaccination : An Experiment Oskar Eliasson Lukas Ädel Faculty of Computing, Blekinge Institute of Technology, 371 79 Karlskrona, Sweden This thesis is submitted to the Faculty of Computing at Blekinge Institute of Technology in partial fulfilment of the requirements for the degree of Master of Science in Engineering: Computer Security. The thesis is equivalent to 20 weeks of full time studies. The authors declare that they are the sole authors of this thesis and that they have not used any sources other than those listed in the bibliography and identified as references. They further declare that they have not submitted this thesis at any other institution to obtain a degree. Contact Information: Author(s): Oskar Eliasson E-mail: [email protected] Lukas Ädel E-mail: [email protected] University advisor: Professor of Computer Engineering, Håkan Grahn Department of Computer Science Faculty of Computing Internet : www.bth.se Blekinge Institute of Technology Phone : +46 455 38 50 00 SE–371 79 Karlskrona, Sweden Fax : +46 455 38 50 57 Abstract Background. The main problem that our master thesis is trying to reduce is mal- ware infection. One method that can be used to accomplish this goal is based on the fact that most malware does not want to get caught by security programs and are actively trying to avoid them. To not get caught malware can check for the existence of security-related programs and artifacts before executing malicious code and depending on what they find, they will evaluate if the computer is worth in- fecting.
    [Show full text]
  • Pro .NET Memory Management for Better Code, Performance, and Scalability
    Pro .NET Memory Management For Better Code, Performance, and Scalability Konrad Kokosa Pro .NET Memory Management Konrad Kokosa Warsaw, Poland ISBN-13 (pbk): 978-1-4842-4026-7 ISBN-13 (electronic): 978-1-4842-4027-4 https://doi.org/10.1007/978-1-4842-4027-4 Library of Congress Control Number: 2018962862 Copyright © 2018 by Konrad Kokosa This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made.
    [Show full text]
  • What Are Kernel-Mode Rootkits?
    www.it-ebooks.info Hacking Exposed™ Malware & Rootkits Reviews “Accessible but not dumbed-down, this latest addition to the Hacking Exposed series is a stellar example of why this series remains one of the best-selling security franchises out there. System administrators and Average Joe computer users alike need to come to grips with the sophistication and stealth of modern malware, and this book calmly and clearly explains the threat.” —Brian Krebs, Reporter for The Washington Post and author of the Security Fix Blog “A harrowing guide to where the bad guys hide, and how you can find them.” —Dan Kaminsky, Director of Penetration Testing, IOActive, Inc. “The authors tackle malware, a deep and diverse issue in computer security, with common terms and relevant examples. Malware is a cold deadly tool in hacking; the authors address it openly, showing its capabilities with direct technical insight. The result is a good read that moves quickly, filling in the gaps even for the knowledgeable reader.” —Christopher Jordan, VP, Threat Intelligence, McAfee; Principal Investigator to DHS Botnet Research “Remember the end-of-semester review sessions where the instructor would go over everything from the whole term in just enough detail so you would understand all the key points, but also leave you with enough references to dig deeper where you wanted? Hacking Exposed Malware & Rootkits resembles this! A top-notch reference for novices and security professionals alike, this book provides just enough detail to explain the topics being presented, but not too much to dissuade those new to security.” —LTC Ron Dodge, U.S.
    [Show full text]
  • Journey Into Hunting the Attackers
    Journey into hunting the attackers Asif Matadar 25/08/15 Labs.mwrinfosecurity.com | © MWR Labs Labs.mwrinfosecurity.com | © MWR Labs 1 #whoami • Incident Response Consultant @ MWR InfoSecurity working in the Investigations and Incident Response Practice: • Responding to and containing security incidents with a particular focus on advanced targeted attacks • Digital Investigations • Threat Intelligence • Guide clients through the implementation of Incident Response Procedures • Security Consultant @ MWR InfoSecurity working in the Security Assurance Practice • Previously worked for an ISP working as a Security Systems Engineer responding to security related incidents ranging from: • APT attacks, nation-state attacks, DDoS, phishing scams and web defacements to name a few • Worked primarily with complex *NIX systems • Degree in BSc (Hons) Forensic Computing Labs.mwrinfosecurity.com | © MWR Labs 2 Introduction An attacker can use a number of tools and techniques to retrieve the credentials without triggering Anti-Virus programs, these include built-in Windows Operating System commands or popular attacker tools. A number of scenarios were conducted to determine the artefacts on the File System along with Memory Analysis to identify malicious activity to aid an Investigator during an incident. A technique that was not explored was copying mimikatz over to the victim’s machine as it would’ve been triggered by Anti-Virus programs. An attacker can compile their own to get around that but the objective of this research was to use legitimate tools and built-in Operating System commands for malicious intent. Labs.mwrinfosecurity.com | © MWR Labs 3 1. Procdump on victim’s machine and run mimikatz remotely from attacker machine Scenario An attacker can use this legitimate program for malicious intent without the use of a remote shell.
    [Show full text]
  • Sysinternals Learning Resources
    THE PERSONAL COMPUTER SPECIALIST Sysinternals Learning Resources Help and Support Sysinternals Learning Resources Help Desk Books Windows Internals Book Homepage The official updates and errata page for the definitive book on Windows internals, by Mark Russinovich and David Solomon. Windows Sysinternals Administrator's Reference The official guide to the Sysinternals utilities by Mark Russinovich and Aaron Margosis, including descriptions of all the tools, their features, how to use them for troubleshooting, and example real-world cases of their use. Articles Inside the Windows Vista Kernel: Part 1 Inside the Windows Vista Kernel: Part 2 Inside the Windows Vista Kernel: Part 3 Inside Windows Vista User Account Control Inside Windows Server 2008 Kernel Changes Mark's Blog Articles Hunting Down and Killing Ransomware Scareware, a type of malware that mimics antimalware software, has been around for a decade and shows no sign of going away. The goal of scareware is to fool a user into thinking that their computer is heavily infected with malware and the most convenient...(read more) Monday, Jan 7 The Case of the Unexplained FTP Connections A key part of any cybersecurity plan is “continuous monitoring”, or enabling auditing and monitoring throughout a network environment and configuring automated analysis of the resulting logs to identify anomalous behaviors that merit investigation. This...(read more) Tuesday, Oct 30 Windows Azure Host Updates: Why, When, and How Windows Azure’s compute platform, which includes Web Roles, Worker Roles, and Virtual Machines, is based on machine virtualization. It’s the deep access to the underlying operating system that makes Windows Azure’s Platform-as-a-Service (PaaS) uniquely...(read more) Wednesday, Aug 22 The Case of the Veeerrry Slow Logons This case is my favorite kind of case, one where I use my own tools to solve a This case is my favorite kind of case, one where I use my own tools to solve a problem affecting me personally.
    [Show full text]
  • Practical-Malware-Analysis Index.Pdf
    INDEX Symbols and Numbers administrator privileges, for malware launchers, 254 ! (bang symbol), 305 Adobe Reader -- operation, 112 CVE-2010-0188 critical % operation, 112 vulnerability, 424 % symbol, 423 overflow in, 705 | (pipe symbol), in Snort, 304 ADS (Alternate Data Streams) ++ operation, 112 010 Editor, 468 feature, 139 32-bit applications, WOW64 and, 448 Advanced Encryption Standard 32-bit rotate-right-additive hash, 418 (AES), 618 64-bit malware, 441–449 decrypting, 625–626 clues to functionality, 448 advapi32.dll, 17 labs, 450–451 imports from, 20, 480, 481 solutions, 723–732 obtaining handle to, 237 advertisements, pop-up, 560–561 A AES (Advanced Encryption Standard), 618 A, at end of Windows function decrypting, 625–626 name, 17 Agobot, 376 absolute addresses, 443 air-gapped networks, 29 vs. relative addresses, in OllyDbg, _alloca_probe function, 522 184–185 alphabetic encoding, shellcode abstraction levels, in x86 disassembly, decoder with, 697 66–67 Alternate Data Streams (ADS) accept function, 143, 144, 454 feature, 139 access token, 246 ALU (arithmetic logic unit), 68 accuracy, vs. expediency, 304 AMD64 architecture, 441 active window, logging, 239 “Analysis of the Intel Pentium’s ADD encoding algorithm, 276 Ability to Support a Secure add instruction, 74, 349 Virtual Machine Monitor” AddCodeXref function (IDC), 342 (Robin and Irvine), 373 address space, loading executable AND logical operator, in x86 into another process’s, 595 architecture, 75 address space layout randomization anti-debugging, 351–366 (ASLR), 184 checks,
    [Show full text]
  • Automating Problem Analysis and Triage Sasha Goldshtein @Goldshtn Production Debugging
    Automating Problem Analysis and Triage Sasha Goldshtein @goldshtn Production Debugging Requirements Limitations • Obtain actionable • Can’t install Visual information about Studio crashes and errors • Can’t suspend • Obtain accurate production servers performance • Can’t run intrusive information tools In the DevOps Process… Automatic build (CI) Automatic Automatic deployment remediation (CD) Automatic Automatic error triage monitoring and analysis Dump Files Dump Files • A user dump is a snapshot of a running process • A kernel dump is a snapshot of the entire system • Dump files are useful for post-mortem diagnostics and for production debugging • Anytime you can’t attach and start live debugging, a dump might help Limitations of Dump Files • A dump file is a static snapshot • You can’t debug a dump, just analyze it • Sometimes a repro is required (or more than one repro) • Sometimes several dumps must be compared Taxonomy of Dumps • Crash dumps are dumps generated when an application crashes • Hang dumps are dumps generated on-demand at a specific moment • These are just names; the contents of the dump files are the same! Generating a Hang Dump • Task Manager, right- click and choose “Create Dump File” • Creates a dump in %LOCALAPPDATA%\Te mp Procdump • Sysinternals utility for creating dumps • Examples: Procdump -ma app.exe app.dmp Procdump -ma -h app.exe hang.dmp Procdump -ma -e app.exe crash.dmp Procdump -ma -c 90 app.exe cpu.dmp Procdump -m 1000 -n 5 -s 600 -ma app.exe Windows Error Reporting • WER can create dumps automatically
    [Show full text]
  • NET Debugging Debugging Tools Module Overview
    Welcome to Advanced .NET Debugging Debugging Tools Module Overview Introduction to Debugging Problems in Production Challenges in debugging Production issues Production Environment Debugging Timeline Tools for .NET Debugging Review 3 Types of Problems in Production System hang or deadlock Fatal exception Nonfatal exception Data loss or inconsistency Performance problems Memory leaks or excessive memory usage 5 Causes of Problems in Production Interaction with other systems Hardware differences Software differences Unexpected load Transient network conditions Resource contention 6 Challenges of Debugging in Production Real users Pressure to resolve quickly Reluctance to ”make things worse” Change control Concern over tool installation 7 Challenges of Debugging in Production (Cont.) Hard to access server Can’t use normal tools No repro Infrequent problem Hard to characterize problem The problem only appears at a customer site 8 Production Debugging Timeline Before a problem occurs - Pre-install debugging tools in production - Build symbols as appropriate - Build in application exception handling and logging - Design, build, and test for performance and scalability - Build in monitoring and diagnostics - Know the metrics of your system - Find and resolve problems before they become crises - Plan your deployments 9 Production Debugging Timeline (Cont.) When a problem does occur - Don’t panic; be methodical - Evaluate the symptoms - Document what you do - Consider mitigation strategies - Gather data After the problem has occurred - Analyze data - Plan and implement steps to resolve - Evaluate the improvement and repeat as necessary 10 Tools and environments Least-invasive Debugging tools Environment Debug Diagnostics, Production Perfmon, Event Logs, WER, Dr Watson, Netmon, procdump Testing/Staging WinDbg, cdb, profilers, remote Debug with VS, SysInternals Suite,.
    [Show full text]
  • Windows Memory Forensics Technical Guide Part 3
    July, 2020 Windows Memory Forensics III Investigating Process Objects and Network Activity. Contents Investigating Process Objects .................................................................................... 3 HANDLES .............................................................................................................. 3 FILESCAN .............................................................................................................. 6 DUMPFILES ........................................................................................................... 6 MUTANTSCAN ....................................................................................................... 9 One step further: executable extraction and brief analysis. ....................................... 9 DUMPFILES vs. PROCDUMP vs. MEMDUMP ........................................................ 10 DLLLIST .............................................................................................................. 14 ENUMFUNC ......................................................................................................... 18 Network: Who do You Talk To?................................................................................ 19 NETSCAN ............................................................................................................ 19 Conclusion .............................................................................................................. 22 244 Fifth Avenue, Suite 2035, New York, NY 10001 LIFARS.com (212) 222-7061
    [Show full text]
  • Intro to Windows Debugger (Windbg) for .NET Developers and Concepts in C# Vijay Rodrigues (Vijayrod) Last Updated: 2011-11-30 I
    Intro to Windows Debugger (WinDBG) for .NET Developers And Concepts in C# Vijay Rodrigues (VijayRod) Last Updated: 2011-11-30 I’ve written this content as part of driving .Net Academy. Most of content has been written at home in my spare time with a real slow internet connection. Due to its very nature of publicly available symbols, .Net and its debugging information is publicly available on the internet. Hence this content can be freely redistributed for non-commercial use. A lot of acknowledgements to Ranjan Bhattacharjee for this idea, to Xavier S Raj for valuable mentorship and for the logo, and to Rishi Maini for his guidance whenever required. We’ve also discussed this with multiple resources and got ideas from them. They’ve made a difference - Kane Conway, Satya Madhuri Krovvidi, Dhiraj H N, Durai Murugan, Varun Dhawan, Balmukund Lakhani, Anmol Bhasin, Tejas Shah, Ajith Krishnan, Shasank Prasad, Chandresh Hegde. If you have any new inputs or suggestion that will help this effort please let me know. Table of Contents Section i: Getting Started 1. To give a start 2. Introduction and Concepts 3. Learning - videos (and books) 4. Learning - Advantages of C# over VB.NET and vice versa 5. Practical guide to .Net debugging 6. Useful websites Section ii: Introduction 7. Introduction 8. Intro to WinDBG for .NET Developers - part II 9. Intro to WinDBG for .NET Developers - part III (Examining code and stacks) 10. Intro to WinDBG for .NET Developers - part IV (Examining code and stacks contd.) 11. Intro to WinDBG for .NET Developers - part V (still more on Examining code and stacks) 12.
    [Show full text]
  • Living Off the Land White Paper
    White Paper Living off the Land Turning Your Infrastructure Against You Table of Contents Dual-Use Tools PowerShell Windows Management Instrumentation (WMI) Attack Tactics, Techniques, and Procedures Case Study: Ransomware. GoGalocker Mapping to the MITRE ATTACK Framework Protection Mitigation Living off the land techniques remain popular, with Symantec blocking 480,000 PowerShell commands in one month alone. Introduction Targeted attack groups, as well as common cyber criminal gangs, are increasingly using so-called “living-off-the-land” tactics. This involves attackers taking advantage of native tools and services already present on targeted systems. This allows the attackers to achieve their goals without needing to create and deploy their own binary files on disk— operating fileless, so to speak—or to blend in with the daily work of a system administrator who uses the same dual-use tools. Such attack strategies have been around for decades, especially on Unix systems, but we are currently witnessing an ongoing trend of these methods being used in attacks against Windows computers. All these attacks have one thing in common: to begin, the attacker must execute at least one custom command on the target system. This can be done through a dropper malware attachment that the victim executes, which can make use of living-off-the-land tactics as well, or when the attacker has already gained code execution through a different vector. Therefore, living off the land is primarily a post-infection tactic, often used for lateral movement and persistence. Living off the Land White Paper In September 2019 alone, Symantec blocked more than 480,000 malicious PowerShell scripts on endpoints.
    [Show full text]