CERT mailing list archives

TA15-314A: Web Shells – Threat Awareness and Guidance


From: "US-CERT" <US-CERT () ncas us-cert gov>
Date: Wed, 11 Nov 2015 08:47:58 -0600

NCCIC / US-CERT

National Cyber Awareness System:

TA15-314A: Web Shells – Threat Awareness and Guidance [ https://www.us-cert.gov/ncas/alerts/TA15-313A ] 11/10/2015 
08:12 PM EST 
Original release date: November 10, 2015

Systems Affected

Web servers that allow web shells

Overview

This alert describes the frequent use of web shells as an exploitation vector. Web shells can be used to obtain 
unauthorized access and can lead to wider network compromise. This alert outlines the threat and provides prevention, 
detection, and mitigation strategies.

Consistent use of web shells by Advanced Persistent Threat (APT) and criminal groups has led to significant cyber 
incidents.

This product was developed in collaboration with US-CERT partners in the United Kingdom, Australia, Canada, and New 
Zealand based on activity seen targeting organizations across these countries. The detection and mitigation measures 
outlined in this document represent the shared judgement of all participating agencies.

Description

*W**e**b Shell Description*

A web shell is a script that can be uploaded to a web server to enable remote administration of the machine. Infected 
web servers can be either Internet-facing or internal to the network, where the web shell is used to pivot further to 
internal hosts.

A web shell can be written in any language that the target web server supports. The most commonly observed web shells 
are written in languages that are widely supported, such as PHP and ASP. Perl, Ruby, Python, and Unix shell scripts are 
also used.

Using network reconnaissance tools, an adversary can identify vulnerabilities that can be exploited and result in the 
installation of a web shell. For example, these vulnerabilities can exist in content management systems (CMS) or web 
server software.

Once successfully uploaded, an adversary can use the web shell to leverage other exploitation techniques to escalate 
privileges and to issue commands remotely. These commands are directly linked to the privilege and functionality 
available to the web server and may include the ability to add, delete, and execute files as well as the ability to run 
shell commands, further executables, or scripts.

*How and why are they used by malicious adversaries?*

Web shells are frequently used in compromises due to the combination of remote access and functionality. Even simple 
web shells can have a considerable impact and often maintain minimal presence.

Web shells are utilized for the following purposes:


  * To harvest and exfiltrate sensitive data and credentials; 
  * To upload additional malware for the potential of creating, for example, a watering hole for infection and scanning 
of further victims; 
  * To use as a relay point to issue commands to hosts inside the network without direct Internet access; 
  * To use as command-and-control infrastructure, potentially in the form of a bot in a botnet or in support of 
compromises to additional external networks. This could occur if the adversary intends to maintain long-term 
persistence. 

While a web shell itself would not normally be used for denial of service (DoS) attacks, it can act as a platform for 
uploading further tools, including DoS capability.

*E**xamples*

Web shells such as China Chopper, WSO, C99 and B374K are frequently chosen by adversaries; however these are just a 
small number of known used web shells. (Further information linking to IOCs and SNORT rules can be found in the 
Additional Resources section).


  * *"China Chopper "*"– "A small web shell packed with features. Has several command and control features including a 
password brute force capability. 
  * *"W"**"S"**"O "*"– "Stands for “web shell by orb” and has the ability to masquerade as an error page containing a 
hidden login form. 
  * *"C99 "*"– "A version of the WSO shell with additional functionality. Can display the server’s security measures 
and contains a self-delete function. 
  * *"B374K "*"– "PHP based web shell with common functionality such as viewing processes and executing commands. 

*Delivery Tactics*

Web shells can be delivered through a number of web application exploits or configuration weaknesses including:


  * Cross-Site Scripting; 
  * SQL Injection; 
  * Vulnerabilities in applications/services  (e.g., WordPress or other CMS applications); 
  * File processing vulnerabilities (e.g., upload filtering or assigned permissions); 
  * Remote File Include (RFI) and Local File Include (LFI) vulnerabilities; 
  * Exposed Admin Interfaces (possible areas to find vulnerabilities mentioned above). 

The above tactics can be and are combined regularly. For example, an exposed admin interface also requires a file 
upload option, or another exploit method mentioned above, to deliver successfully.

Impact

A successfully uploaded shell script may allow a remote attacker to bypass security restrictions and gain unauthorized 
system access.

Solution

*Prevention and Mitigation*

Installation of a web shell is commonly accomplished through web application vulnerabilities or configuration 
weaknesses. Therefore, identification and closure of these vulnerabilities is crucial to avoiding potential compromise. 
The following suggestions specify good security and web shell specific practices:


  * Employ regular updates to applications and the host operating system to ensure protection against known 
vulnerabilities. 
  * Implement a least-privileges policy on the web server to: 
  * Reduce adversaries’ ability to escalate privileges or pivot laterally to other hosts. 
  * Control creation and execution of files in particular directories. 

  * If not already present, consider deploying a demilitarized zone (DMZ) between your webfacing systems and the 
corporate network. Limiting the interaction and logging traffic between the two provides a method to identify possible 
malicious activity. 
  * Ensure a secure configuration of web servers. All unnecessary services and ports should be disabled or blocked. All 
necessary services and ports should be restricted where feasible. This can include whitelisting or blocking external 
access to administration panels and not using default login credentials. 
  * Utilize a reverse proxy or alternative service, such as mod_security, to restrict accessible URL paths to known 
legitimate ones. 
  * Establish, and backup offline, a “known good” version of the relevant server and a regular change-management  
policy to enable monitoring for changes to servable content with a file integrity system. 
  * Employ user input validation to restrict local and remote file inclusion vulnerabilities. 
  * Conduct regular system and application vulnerability scans to establish areas of risk. While this method does not 
protect against zero day attacks it will highlight possible areas of concern. 
  * Deploy a web application firewall and conduct regular virus signature checks, application fuzzing, code reviews and 
server network analysis. 

*Detection*

Due to the potential simplicity and ease of modification of web shells, they can be difficult to detect. For example, 
anti-virus products sometimes produce poor results in detecting web shells.

The following may be indicators that your system has been infected by a web shell. Note a number of these indicators 
are common to legitimate files. Any suspected malicious files should be considered in the context of other indicators 
and triaged to determine whether further inspection or validation is required.


  * Abnormal periods of high site usage (due to potential uploading and downloading activity); 
  * Files with an unusual timestamp (e.g., more recent than the last update of the web applications installed); 
  * Suspicious files in Internet-accessible locations (web root); 
  * Files containing references to suspicious keywords such as cmd.exe or eval; 
  * Unexpected connections in logs. For example: 
  * A file type generating unexpected or anomalous network traffic (e.g., a JPG file making requests with POST 
parameters); 
  * Suspicious logins originating from internal subnets to DMZ servers and vice versa. 

  * Any evidence of suspicious shell commands, such as directory traversal, by the web server process.  

For investigating many types of shells, a search engine can be very helpful. Often, web shells will be used to spread 
malware onto a server and the search engines are able to see it. But many web shells check the User-Agent and will 
display differently for a search engine spider (a program that crawls through links on the Internet, grabbing content 
from sites and adding it to search engine indexes) than for a regular user. To find a shell, you may need to change 
your User-Agent to one of the search engine bots. Some browsers have plugins that allow you to easily switch a 
User-Agent. Once the shell is detected, simply delete the file from the server.

Client characteristics can also indicate possible web shell activity. For example, the malicious actor will often visit 
only the URI where the web shell script was created, but a standard user usually loads the webpage from a linked 
page/referrer or loads additional content/resources. Thus, performing frequency analysis on the web access logs could 
indicate the location of a web shell. Most legitimate URI visits will contain varying user-agents, whereas a web shell 
is generally only visited by the creator, resulting in limited user-agent variants.

References

  * Australian Cyber Security Centre – Securing Content Management Systems (CMS) [ 
http://asd.gov.au/publications/protect/securing-cms.htm ] 
  * FireEye China Chopper – The Little Malware That Could. Detecting and Defeating the China Chopper Web Shell [ 
https://www.fireeye.com/content/dam/fireeye-www/global/en/current-threats/pdfs/rpt-china-chopper.pdf ] 
  * MANDIANT – Old Web Shells New Tricks [ 
https://www.owasp.org/images/c/c3/ASDC12-Old_Webshells_New_Tricks_How_Persistent_Threats_haverevived_an_old_idea_and_how_you_can_detect_them.pdf
 ] 
  * FireEye – Breaking Down the China Chopper Web Shell Part I [ 
https://www.fireeye.com/blog/threat-research/2013/08/breaking-down-the-china-chopper-web-shell-part-i.html ] 
  * FireEye – Breaking Down the China Chopper Web Shell Part II [ 
https://www.fireeye.com/blog/threat-research/2013/08/breaking-down-the-china-chopper-web-shell-part-ii.html ] 
  * WSO Information  [ http://www.stratigery.com/phparasites/wso.html ] 
  * Exploit-db – China Chopper [ https://www.exploit-db.com/docs/27654.pdf ] 
  * C99 [ 
http://www.cybersecurity.me/ids-intrusion-detection-systems-snort-bro/snort-ids-intrusiondetection-system/snort-signatures-rules-to-detect-webshells-c99-c99shell-and-more/
 ] 
  * INFOSEC Institute – Web Shell Detection [ http://Resources.infosecinstitute.com/web-shell-detection/ ] 

Revision History

  * November 10, 2015: Initial Release 
________________________________________________________________________

This product is provided subject to this Notification [ http://www.us-cert.gov/privacy/notification ] and this Privacy 
& Use [ http://www.us-cert.gov/privacy/ ] policy.

________________________________________________________________________

A copy of this publication is available at www.us-cert.gov [ https://www.us-cert.gov ]. If you need help or have 
questions, please send an email to info () us-cert gov. Do not reply to this message since this email was sent from a 
notification-only address that is not monitored. To ensure you receive future US-CERT products, please add US-CERT () 
ncas us-cert gov to your address book. 

OTHER RESOURCES: Contact Us [ http://www.us-cert.gov/contact-us/ ] | Security Publications [ 
http://www.us-cert.gov/security-publications ] | Alerts and Tips [ http://www.us-cert.gov/ncas ] | Related Resources [ 
http://www.us-cert.gov/related-resources ] 

STAY CONNECTED: Sign up for email updates [ http://public.govdelivery.com/accounts/USDHSUSCERT/subscriber/new ] 


Current thread: