|This article is part of a series on|
|Related security categories|
A web shell (classified as a remote access trojan) is a web security exploit that is a web-based implementation of the shell concept. A web shell is able to be uploaded to a web server to allow remote access to the web server, such as the web server's file system. A web shell is unique in that it enables users to access a web server by way of a web browser that acts like a command-line interface.
A user can access a remote computer via the World Wide Web using a web browser on any type of system, whether it's a desktop computer or a mobile phone with a web browser, and perform tasks on the remote system. No command-line environment is required on either the host or the client.
A web shell could be programmed in any language that the target server supports. Web shells are most commonly written in PHP, Active Server Pages, or ASP.NET, but Python, Perl, Ruby and Unix shell scripts are also used, although not as common because it is not very common for web servers to support these languages.
Using network monitoring tools such as Wireshark, an attacker can find vulnerabilities which are exploited resulting in a web shell installation. These vulnerabilities may be present in content management system applications (abbreviated CMS) or the web server's softwares.
Web shells are used in attacks mostly because they are multi-purpose and are difficult to detect.
Web shells are commonly used for:
- Data theft
- Infecting website visitors (watering hole attacks)
- Website defacement by modifying files with a malicious intent
- Launch distributed denial of service (DDoS) attacks
- To relay commands inside the network which is unable to be accessed via the Internet
- To use as command and control base, for example as a bot in a botnet system or in way to compromise the security of additional external networks.
- SQL injection;
- Vulnerabilities in applications and services (e.g. web server software such as NGINX or content management system applications such as WordPress);
- File processing and uploading vulnerabilities (e.g. limiting the files types that can be uploaded);
- Remote file inclusion (RFI) and local file inclusion (LFI) vulnerabilities;
- Exposed administration interfaces;
- Cross-site scripting
Examples of web shells
- China Chopper – A web shell which is only 4 kilobytes in size, which was first discovered in 2012. This web shell is commonly used by malicious Chinese actors, including advanced persistent threat (APT) groups, to remote control web servers. This web shell has two parts, the client interface (an executable file) and the receiver host file on the compromised web server. Has many commands and control features such as a password brute-force attack option.
- b374k – A web shell written in PHP with abilities such as monitoring processes & command execution.
- C99 – A special type of the WSO web shell which is capable to show the web server's security standards and has a self-destruction option.
- WSO (web shell by orb) – Has the ability to pretend as an HTML error page with a hidden form to login to the web shell.
- R57 – The R57 web shell has tools to scan the infected web server for other web shell installations, with the option to remove or overwrite them.
If an attacker inserts this line of code into a malicious file with a PHP filename extension (such as
.php) on a web server that is running PHP, the attacker can issue commands, for example reading the
/etc/passwd file, through a web browser using the following Uniform Resource Locator if the web shell was located at
uploads/webshell.php (regardless if the page is encrypted with TLS or SSL):
The above request will take the value of the
x URL parameter, decode the URL it and send the following Bash command:
If the permissions of the
/etc/passwd file allow viewing the file, the web server will send the contents of
/etc/passwd to the web browser and the browser will then display the contents of the
/etc/passwd file or any other file the attacker wishes to view.
This attack could have been prevented if the file permissions did not allow viewing the file or if the shell functions of PHP were disabled so that arbitrary shell commands cannot be executed from PHP.
echo Hijacked page contents > index.php
The above command could be used to replace the contents of the
index.php file with the text "Hijacked page contents", which is one way a web page could be defaced, or create the
index.php file with the contents if the file does not exist. Attackers can also use the Bash command
rm to delete files on the web server and
mv to move files.
Prevention and mitigation
A web shell is usually installed by taking advantage of vulnerabilities present in the web server's software. That is why removal of these vulnerabilities are important to avoid potential risk of a compromised web server.
The following are security measures for preventing the installation of a web shell:
- Regularly update the applications and the host server's operating system to ensure immunity from known bugs
- Deploy a demilitarized zone (DMZ) between the web facing servers and the internal networks
- Secure configuration of the web server
- Ports and services which are not used should be closed or blocked
- Using user input data validation to limit local and remote file inclusion vulnerabilities
- Use a reverse proxy service to restrict the administrative URL's to known legitimate ones 
- Frequent vulnerability scan to detect areas of risk and conduct regular scans using web security software (this does not prevent zero day attacks)
- Deploy a firewall
- Disable directory browsing
- Not using default passwords
- Abnormal high web server usage (due to heavy downloading and uploading by the attacker);
- Files with an abnormal timestamp (e.g. newer than the last modification date);
- Unknown files in server;
- Files having references to dubious words, for example,
- Unknown connections in the logs of web server
Using web shells, adversaries can modify the .htaccess file (on servers running the Apache HTTP Server software) on web servers to redirect search engine requests to the web page with malware or spam. Often web shells detect the user-agent and the content presented to the search engine spider is different from that presented to the user's browser. To find a web shell a user-agent change of the crawler bot is usually required. Once the web shell is identified, it can be deleted easily.
Analyzing the web server's log could specify the exact location of the web shell. Legitimate users/visitor usually have different user-agents and referers (referrers), on the other hand a web shell is usually only visited by the attacker, therefore have very few variants of user-agent strings.
Usage by malicious adversaries
This section may require cleanup to meet Wikipedia's quality standards. The specific problem is: Needs fixing (March 2019) (Learn how and when to remove this template message)
On February 19, 2019, a sophisticated state actor used web shells to hack into the Australian Parliament House computer network and attacked some political parties such as Liberal, Labor and the Nationals. In the 2016 Democratic National Committee email leak incident P.A.S. web shell (author Profexer, a pseudonym) was used by Guccifer 2.0.
China Chopper was used in attacks against eight Australian web hosting providers, they were compromised due use of unsupported operating system (Windows Server 2008). Hackers connected the web servers to a Monero mining pool (a way by which cryptocurrency miners pool their resources), by which they mined about AU$3868 worth of Monero.
Over 3,000 backdoor-ed sites details were sold on MagBO (a Russian website for selling access to servers) with price ranging from $0.5 to $1,000 per site. Price was based on the traffic, hosting parameters and access on the backdoor-ed server.
There are also some trojan WordPress plugins, such as woocomerce and aksimet (not to be confused with WooCommerce and Akismet) which uploads a web shell to the web server with the WordPress installation. The web shells use the
add_action('init',") function to self-activate and then take commands from an attacker.
An Indonesian website defacer known as "Hmei7" defaced 5,000 websites with WordPress installations in two days. Hmei7 used web shells with a file uploading feature and changed critical web server files, such as
index.php. Hmei7 has defaced more than 154,000 sites which are notified on Zone-H.
Web shells was used to attack Verticalscope, a Canadian web forums manager that manages hundreds of popular forums with more than 45 million user accounts. Web forums affected included Toyota Nation Forum, Jeep Forum and watchuseek.
- Wrench, P. M.; Irwin, B. V. W. (1 August 2015). "Towards a PHP webshell taxonomy using deobfuscation-assisted similarity analysis". 2015 Information Security for South Africa (ISSA). pp. 1–8. doi:10.1109/ISSA.2015.7335066. ISBN 978-1-4799-7755-0. Retrieved 17 February 2019 – via IEEE Xplore.
- "How can web shells be used to exploit security tools and servers?". SearchSecurity.
- US Department of Homeland Security. "Web Shells – Threat Awareness and Guidance". www.us-cert.gov. Retrieved 20 December 2018. This article incorporates text from this source, which is in the public domain.
- admin (3 August 2017). "What is a Web shell?". malware.expert. Retrieved 20 December 2018.
- "Russian Government Cyber Activity Targeting Energy and Other Critical Infrastructure Sectors - US-CERT". www.us-cert.gov. Retrieved 20 December 2018.
- co-organizer, Makis MourelatosWordPress Security Engineer at FixMyWPWC Athens 2016; Support, W. P.; Aficionado, Security; Kitesurfer, Wannabe (16 October 2017). "The Definitive Guide about Backdoor Attacks - What are WebShell BackDoors". fixmywp.com. Retrieved 20 December 2018.
- "Got WordPress? PHP C99 Webshell Attacks Increasing". 14 April 2016.
- "Equifax breach was 'entirely preventable' had it used basic security measures, says House report". Retrieved 21 December 2018.
- "China Chopper". NJCCIC. Retrieved 22 December 2018.
- "What is the China Chopper Webshell, and how to find it on a compromised system?". 28 March 2018. Retrieved 22 December 2018.
- "Breaking Down the China Chopper Web Shell - Part I « Breaking Down the China Chopper Web Shell - Part I". FireEye. Retrieved 22 December 2018.
- "Google Code Archive - Long-term storage for Google Code Project Hosting". code.google.com. Retrieved 22 December 2018.
- "The Webshell Game Continues". 8 July 2016. Retrieved 22 December 2018.
- "Got WordPress? PHP C99 Webshell Attacks Increasing". 14 April 2016. Retrieved 22 December 2018.
- "WSO Shell: The Hack Is Coming From Inside The House!". 22 June 2017. Retrieved 22 December 2018.
- "Web Shells: The Criminal's Control Panel - Netcraft". news.netcraft.com. Retrieved 22 December 2018.
- "Web Shells: The Criminal's Control Panel | Netcraft". news.netcraft.com. Retrieved 2019-02-22.
- "Breaking Down the China Chopper Web Shell - Part I « Breaking Down the China Chopper Web Shell - Part I". FireEye. Retrieved 20 December 2018.
- "Intrusion Detection and Prevention Systems".
- LightCyber, Kasey Cross, Senior Product Manager (16 June 2016). "Five signs an attacker is already in your network". Network World. Retrieved 22 December 2018.
- "Traffic Analysis for Network Security: Two Approaches for Going Beyond Network Flow Data".
- "Hackers Hiding Web Shell Logins in Fake HTTP Error Pages". BleepingComputer. Retrieved 21 December 2018.
- "Hackers Hiding Web Shell Logins in Fake HTTP Error Pages". ThreatRavens. 24 July 2018. Retrieved 17 February 2019.
- "Hackers Hiding Web Shell Logins in Fake HTTP Error Pages". cyware.com. Retrieved 22 December 2018.
- z3525182 (19 February 2019). "A state actor has targeted Australian politics – but that shouldn't surprise us". UNSW Newsroom.
- Grattan, Michelle. "'State actor' makes cyber attack on Australian political parties". The Conversation.
- CNN, Ben Westcott. "Australian parliament's computer network targeted by unknown hacker". CNN. Retrieved 2019-03-17.
- "DNC hack — Krebs on Security". Retrieved 2019-02-25.
- Kramer, Andrew E.; Higgins, Andrew (2017-08-16). "In Ukraine, a Malware Expert Who Could Blow the Whistle on Russian Hacking". The New York Times. ISSN 0362-4331. Retrieved 2019-02-25.
- Stilgherrian. "Australian web hosts hit with a Manic Menagerie of malware". ZDNet.
- "Thousands of Breached Websites Turn Up On MagBo Black Market". threatpost.com. Retrieved 2019-02-25.
- Cimpanu, Catalin. "Access to over 3,000 backdoored sites sold on Russian hacking forum". ZDNet. Retrieved 2019-02-25.
- admin (2019-01-15). "Malware plugin's to WordPress (woocomerce & aksimet)". Malware Expert. Retrieved 2019-02-25.
- "Hackers actively exploiting JBoss vulnerability to compromise servers". PCWorld. 2013-11-18. Retrieved 2019-02-25.
- twitter.com/ehackernews, E. Hacking News. "5,000+ sites hacked in 2 days by Indonesian Top Hacker Hmei7". E Hacking News - Latest Hacker News and IT Security News. Retrieved 2019-03-17.
- "Got WordPress? PHP C99 Webshell Attacks Increasing". Security Intelligence. 2016-04-14. Retrieved 2019-02-25.
- Solomon, Howard. "Canada third in reported data breaches so far this year". IT World Canada. Retrieved 2019-03-17.
- "2nd Breach at Verticalscope Impacts Millions — Krebs on Security". Retrieved 2019-02-25.
- Whittaker, Zack. "Ubuntu Forums hack exposes 2 million users". ZDNet. Retrieved 2019-03-17.
- Insider, pzdupe2, Tech. "High-tech pirates hacked a shipping company to figure out the perfect vessels to plunder". Business Insider. Retrieved 2019-03-17.
- "Pirates hacked shipping company, cherry-picking targets based on cargo". Boing Boing. Retrieved 2019-02-25.
- Rogers, James (2016-03-02). "From high seas to high tech: Pirates hack shipping company". Fox News. Retrieved 2019-03-17.