redcanary.com
Open in
urlscan Pro
104.198.136.223
Public Scan
URL:
https://redcanary.com/blog/its-all-fun-and-games-until-ransomware-deletes-the-shadow-copies/
Submission: On May 09 via api from US — Scanned from DE
Submission: On May 09 via api from US — Scanned from DE
Form analysis
3 forms found in the DOM<form id="mktoForm_1034" novalidate="novalidate" class="mktoForm mktoHasWidth mktoLayoutLeft" style="font-family: inherit; font-size: 13px; color: rgb(51, 51, 51); width: 997px;" __bizdiag="1302408230" __biza="WJ__">
<style type="text/css"></style>
<div class="mktoFormRow">
<div class="mktoFieldDescriptor mktoFormCol" style="margin-bottom: 5px;">
<div class="mktoOffset" style="width: 5px;"></div>
<div class="mktoFieldWrap mktoRequiredField"><label for="FirstName" id="LblFirstName" class="mktoLabel mktoHasWidth" style="width: 146px;">
<div class="mktoAsterix">*</div>First Name:
</label>
<div class="mktoGutter mktoHasWidth" style="width: 5px;"></div><input id="FirstName" name="FirstName" placeholder="First Name" maxlength="255" aria-labelledby="LblFirstName InstructFirstName" type="text"
class="mktoField mktoTextField mktoHasWidth mktoRequired" aria-required="true" style="width: 342px;"><span id="InstructFirstName" tabindex="-1" class="mktoInstruction"></span>
<div class="mktoClear"></div>
</div>
<div class="mktoClear"></div>
</div>
<div class="mktoFieldDescriptor mktoFormCol" style="margin-bottom: 5px;">
<div class="mktoOffset" style="width: 5px;"></div>
<div class="mktoFieldWrap mktoRequiredField"><label for="LastName" id="LblLastName" class="mktoLabel mktoHasWidth" style="width: 146px;">
<div class="mktoAsterix">*</div>Last Name:
</label>
<div class="mktoGutter mktoHasWidth" style="width: 5px;"></div><input id="LastName" name="LastName" placeholder="Last Name" maxlength="255" aria-labelledby="LblLastName InstructLastName" type="text"
class="mktoField mktoTextField mktoHasWidth mktoRequired" aria-required="true" style="width: 342px;"><span id="InstructLastName" tabindex="-1" class="mktoInstruction"></span>
<div class="mktoClear"></div>
</div>
<div class="mktoClear"></div>
</div>
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow">
<div class="mktoFieldDescriptor mktoFormCol" style="margin-bottom: 5px;">
<div class="mktoOffset" style="width: 5px;"></div>
<div class="mktoFieldWrap mktoRequiredField"><label for="Email" id="LblEmail" class="mktoLabel mktoHasWidth" style="width: 146px;">
<div class="mktoAsterix">*</div>Email Address:
</label>
<div class="mktoGutter mktoHasWidth" style="width: 5px;"></div><input id="Email" name="Email" placeholder="Email Address" maxlength="255" aria-labelledby="LblEmail InstructEmail" type="email"
class="mktoField mktoEmailField mktoHasWidth mktoRequired" aria-required="true" style="width: 342px;"><span id="InstructEmail" tabindex="-1" class="mktoInstruction"></span>
<div class="mktoClear"></div>
</div>
<div class="mktoClear"></div>
</div>
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="GCLID__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Company_Country__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Company_Industry__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Company_Location_Type__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Company_Name__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Company_Phone__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Company_Revenue_Range__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Company_Size_Exact__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Company_State__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Company_Website__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Company_Zipcode__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Confidence_Description__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Confidence_Level__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Enrichment_Status__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Matching_Confidence_Level__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Person_Department__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Person_Email__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Person_First_Name__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Person_Last_Name__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Person_Level__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Person_Original_Email_Verification__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Person_Phone__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Person_Title__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Person_Verification_Source__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Person_Verification_Status__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="lSSystemStatus" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="lSUpdated" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="LS_Company_Size_Range__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoButtonRow"><span class="mktoButtonWrap mktoNative" style="margin-left: 110px;"><button type="submit" class="mktoButton">Subscribe</button></span></div><input type="hidden" name="formid" class="mktoField mktoFieldDescriptor"
value="1034"><input type="hidden" name="munchkinId" class="mktoField mktoFieldDescriptor" value="003-YRU-314"><input type="hidden" name="mktoUTMSource" class="mktoField mktoFieldDescriptor" value=""><input type="hidden" name="mktoUTMMedium"
class="mktoField mktoFieldDescriptor" value=""><input type="hidden" name="mktoUTMCampaign" class="mktoField mktoFieldDescriptor" value="">
</form>
GET https://redcanary.com/
<form method="get" class="search-form" action="https://redcanary.com/" __bizdiag="115" __biza="WJ__"> <svg width="20" height="19" viewBox="0 0 20 19" fill="none" xmlns="http://www.w3.org/2000/svg">
<line x1="12.8839" y1="12.1161" x2="18.8839" y2="18.1161" stroke="black" stroke-width="2.5"></line>
<circle cx="7.5" cy="7.5" r="6.25" stroke="black" stroke-width="2.5"></circle>
</svg> <input id="input-search" class="search-input" name="s" type="text" placeholder="Search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"> <input type="submit" class="search-btn" value="Search"></form>
<form novalidate="novalidate" class="mktoForm mktoHasWidth mktoLayoutLeft" style="font-family: inherit; font-size: 13px; color: rgb(51, 51, 51); visibility: hidden; position: absolute; top: -500px; left: -1000px; width: 1600px;"
__bizdiag="1045523891" __biza="WJ__"></form>
Text Content
Skip Navigation Improve cybersecurity preparedness with our NEW Readiness Exercises platform LEARN MORE Get a Demo Demo * Products & Solutions * Resources * Partners * Why Red Canary * Company * 2022 Threat Detection Report PDF * 2022 Executive Summary PDF * Intro * Past Reports * Threats * Techniques * Introduction * Ransomware * Supply Chain Compromises * Vulnerabilities * Affiliates * Crypters-as-a-Service * Common Webshells * User-Initiated Initial Access * Malicious macOS Installers * Remote Monitoring and Management Abuse * Linux Coinminers * Abusing Remote Procedure Calls * Defense Validation and Testing * Top Threats * Rose Flamingo * Silver Sparrow * Bazar * Latent Threats * Cobalt Strike * Impacket * SocGholish * Yellow Cockatoo * Gootkit * BloodHound * Top Techniques * Command and Scripting Interpreter * Signed Binary Proxy Execution * Windows Management Instrumentation * OS Credential Dumping * Ingress Tool Transfer * Process Injection * Scheduled Task/Job * Obfuscated Files or Information * Masquerading * Hijack Execution Flow * Impair Defenses * Managed Detection and Response * Integrations * The Red Canary Difference * Get a Demo Named a leader in MDR PRODUCTS * Managed Detection and ResponseProtect your users, endpoints, and cloud * Readiness ExercisesTraining, tabletops, and atomic tests in an engaging learning platform * Linux EDRProtect production Linux endpoints that can never go down * Atomic Red Team™ [open source]Easily simulate adversary techniques to test your controls SOLUTIONS * Get a 24x7 SOC instantly * Protect your corporate endpoints and network * Protect your users’ email, identities, and SaaS apps * Protect your cloud * Protect critical production Linux and Kubernetes * Stop business email compromise * Replace your MSSP or existing MDR * Run more effective tabletops * Train continuously for real world situations * Operationalize your Microsoft security stack * Test your defenses * Minimize downtime with after-hours support * View All Resources * Blog * Guides & Overviews * Case Studies * Videos * Webinars * Events * Customer Help Center Blog Sharpen your skills with the latest information, security articles, and insights. * Overview * Incident Response * Insurance & Risk * Managed Service Providers * Solution Providers * Technology Partners Red Canary Partner Connect Apply to become a partner. * About Us * News & Press * Careers - We're Hiring! * Contact Us * Trust Center and Security Contact Us How can we help you? Reach out to our team and we'll get in touch. * Liner Notes * Side 1: Trends * Side 2: Threats * Bonus Tracks: Techniques * Products & Solutions Products & Solutions * Managed Detection and Response * Readiness Exercises * Linux EDR * Atomic Red Team™ [open source] * Get a 24x7 SOC instantly * Protect your corporate endpoints and network * Protect your users’ email, identities, and SaaS apps * Protect your cloud * Protect critical production Linux and Kubernetes * Stop business email compromise * Replace your MSSP or existing MDR * Operationalize your Microsoft security stack * Run more effective tabletops * Train continuously for real world situations * Test your defenses * Minimize downtime with after-hours support * Resources Resources * View All Resources * Blog * Guides & Overviews * Case Studies * Videos * Webinars * Events * Customer Help Center * Partners Partners * Overview * Incident Response * Insurance & Risk * Managed Service Providers * Solution Providers * Technology Partners * Apply to Become a Partner * Why Red Canary Why Red Canary * Managed Detection and Response * Integrations * The Red Canary Difference * Get a Demo * Company Company * About Us * News & Press * Careers - We're Hiring! * Contact Us * Trust Center and Security Share RESOURCES • BLOG THREAT DETECTION IT’S ALL FUN AND GAMES UNTIL RANSOMWARE DELETES THE SHADOW COPIES Adversaries reliably use the Vssadmin Windows process to delete backup files during ransomware infections. TONY LAMBERT• BRIAN DONOHUE• Originally published August 21, 2019. Last modified June 7, 2022. Security is too frequently described in terms of wins and losses. When your freshly tuned email filter blocks a phishing email, it’s a win; when an employee downloads a malicious attachment, it’s a loss. Of course, as is nearly always the case, it’s more complicated than that. Not everything is binary, and there are degrees of good and bad. For example, it’s not good when an adversary manages to delete the backup files on one of your endpoints. However, it’s decidedly bad if that adversary manages to encrypt all of the files on that same endpoint and worse still if the infection spreads to hundreds of other machines on the network. We detected an adversary deleting Windows Volume Shadow Copy Service (VSS) files on a handful of endpoints a few weeks back. This detection kept a bad situation from getting worse and scored our customer a win from the midst of a losing situation. In the following paragraphs, we hope to offer guidance for how you can stop ransomware infections before they get totally out of hand. TL;DR A malicious batch (.bat) file executed a PowerShell command that downloaded and executed a remotely hosted payload on Pastebin to deploy ransomware. Additionally, it launched the Volume Shadow Service Administration Tool (vssadmin.exe) to remove local shadow copies. THE FULL STORY Our detection begins with Kaseya, an IT client management tool that wrote a batch script to disk and executed it on one of the endpoints we monitor. In general, IT support and help desk teams use Kaseya to remotely deploy software across an organization or on specific endpoints. Under normal conditions, you’d expect to see Kaseya spawning known binaries associated with legitimate software. However, it can also be a powerful tool in the hands of an adversary seeking to install malware or other malicious tooling in a host environment. In fact, this is such a common approach among adversaries that MITRE has an ATT&CK technique for it: Application Deployment Software (T1017). This is precisely what we can see happening in the following image. As a sidebar, it’s worth pointing out that adversaries have leveraged a number of compromised Kaseya accounts to deliver ransomware in the past, according to reporting from BleepingComputer. We’ve seen similar instances where Kaseya has been compromised and used to deploy cryptocurrency miners. A WILD POWERSHELL EMERGES In this instance, however, we see PowerShell executing with a variety of Base64-encoded commands. Upon decoding these, we see a network connection going out to Pastebin to download and execute a follow-on command. WHEN THE SHADOW COPIES DISAPPEAR The command line associated with the script from Pastebin showed that it was instructing vssadmin.exe to delete shadow copies, a behavior that very often occurs in tandem with ransomware infections. WHAT’S A VSSADMIN, ANYWAY? AND WHAT IS A SHADOW COPY? Vssadmin is a default Windows process that manipulates volume shadow copies of the files on a given computer. These shadow copies are often used as backups, and they can be used to restore or revert files back to a previous state if they are corrupted or lost for some reason. Vssadmin is commonly used by backup utilities and systems administrators. As such, the people responsible for ransomware campaigns often attempt to delete them so that their victims can’t restore file access by reverting to the shadow copies. As a note, interacting with vssadmin should require administrative privileges. DETECTION VIA VSSADMIN The command line parameter—vssadmin.exe Delete Shadows—offers us a great opportunity to detect ransomware. In fact, this detector has helped us uncover 496 confirmed threats since we created it. Beyond this strain of malware, looking for vssadmin manipulation is a reliable method for identifying other ransomware like Robbinhood and more sophisticated threats like Ryuk. In fact, this is so common that MITRE has included it as a technique in ATT&CK: Inhibit System Recovery (T1490). TESTING YOUR ABILITY TO DETECT THIS TECHNIQUE If you want to test the detection of this technique in your environment, there are Atomic Red Team tests that will help you do just that! OPPORTUNITIES FOR DETECTION The deletion of shadow copies is suspicious enough on its own that we don’t really need to inquire any further. However, we always strive for defense-in-depth, and it’s always preferable for the events we analyze to have more than one detector associated with them—just in case the adversary develops some method for circumventing a specific detector. Of course, there are other ways to remove shadow copies via PowerShell or WMI as well. Other detection opportunities here—with varying levels of fidelity—include: * PowerShell downloading remotely hosted files * PowerShell using the encoded command flag * PowerShell making a network connection to an external paste-site * PowerShell containing a URL in its command line * Wmic.exe with command line shadowcopy delete * PowerShell with command line win32_shadowcopy * Vssadmin.exe with command line resize shadowstorage Beyond these, we can see the Pastebin URL in question, and there isn’t much risk in going directly to Pastebin and examining the payload there. At first glance, the filename itself is somewhat suspicious, although that is an admittedly unreliable indicator of malice. What’s more telling is the inclusion of function names that correspond with a PowerShell payload called Invoke-ReflectivePEInjection, which lets an attacker inject a dynamic link library (DLL) directly into PowerShell. Further, at the bottom of the page, you can see a long block of apparent nonsense that, when base64 decoded, reveals the actual ransomware binary. When we checked that binary in VirusTotal, we learned it had been previously associated with a known malware strain called Sodinokibi. This family, along with a few others, have rushed to take advantage of a post-Gandcrab era to make loads of money from ransoming files. CONCLUSION Having the capacity to detect when an adversary interacts with vssadmin will provide a reliable method for detecting a wide variety of ransomware. As we explained above, you’ll certainly want more robust detection in the off-chance that an adversary devises a method for circumventing this. However, at a higher level, if you have the necessary visibility required to observe interactions with vssadmin, then you will also have the visibility required to build detection for vast quantities of other threats that materialize in process metadata and other endpoint telemetry. RELATED ARTICLES Introducing: Red Canary Mac Monitor * Threat detection INTRODUCING: RED CANARY MAC MONITOR Threat Detection Series: Watch the PowerShell power hour * Threat detection THREAT DETECTION SERIES: WATCH THE POWERSHELL POWER HOUR Live from New York, it’s Threat Detection Series Live! * Threat detection LIVE FROM NEW YORK, IT’S THREAT DETECTION SERIES LIVE! A guided tour of the 2023 Threat Detection Report * Threat detection A GUIDED TOUR OF THE 2023 THREAT DETECTION REPORT SUBSCRIBE TO OUR BLOG You'll receive a weekly email with our new blog posts. * First Name: * Last Name: * Email Address: Subscribe SEE WHAT IT'S LIKE TO HAVE A SECURITY ALLY. EXPERIENCE THE DIFFERENCE BETWEEN A SENSE OF SECURITY AND ACTUAL SECURITY. Get a Demo * * * * Products & Solutions * Atomic Red Team™ * MDR Everywhere * MDR for Microsoft * Active Remediation * Replace your MSSP * Post-Breach Response * EDR Deployment * EDR Migration * Linux Security * Alert Triage * Mac Monitor * Resources * View all Resources * Blog * Guides & Overviews * Case Studies * Videos * Webinars * Events * Customer Help Center * Newsletter * Partners * Overview * Incident Response * Insurance & Risk * Managed Service Providers * Solution Providers * Technology Partners * Apply to Become a Partner * Why Red Canary? * Managed Detection and Response * Integrations * The Red Canary Difference * Get a Demo * Company * About Us * News & Press * Careers – We’re Hiring! * Contact Us * Trust Center and Security © 2014-2023 Red Canary. All rights reserved. info@redcanary.com +1 855-977-0686 Privacy Policy Trust Center and Security Our website uses cookies to provide you with a better browsing experience. More information can be found in our Privacy Policy. OK Privacy & Cookies Policy Close PRIVACY OVERVIEW This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities... Necessary Necessary Always Enabled Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information. Non-necessary Non-necessary Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website. SAVE & ACCEPT Back to Top