HOME

TheInfoList



OR:

A web shell is a shell-like interface that enables a web server to be remotely accessed, often for the purposes of
cyberattack A cyberattack is any offensive maneuver that targets computer information systems, computer networks, infrastructures, or personal computer devices. An attacker is a person or process that attempts to access data, functions, or other restricted ...
s. A web shell is unique in that a
web browser A web browser is application software for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's screen. Browsers are used on ...
is used to interact with it. A web shell could be programmed in any
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming l ...
that is supported on a server. Web shells are most commonly written in the PHP programming language due to the widespread usage of PHP for
web application A web application (or web app) is application software that is accessed using a web browser. Web applications are delivered on the World Wide Web to users with an active network connection. History In earlier computing models like client-serve ...
s. However, Active Server Pages, ASP.NET, Python,
Perl Perl is a family of two High-level programming language, high-level, General-purpose programming language, general-purpose, Interpreter (computing), interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it ...
,
Ruby A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum (aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sapp ...
, and
Unix shell A Unix shell is a command-line interpreter or shell that provides a command line user interface for Unix-like operating systems. The shell is both an interactive command language and a scripting language, and is used by the operating system t ...
scripts are also used, although these languages are less commonly used. Using network monitoring tools, an attacker can find vulnerabilities that can potentially allow delivery of a web shell. These vulnerabilities are often present in applications that are run on a web server. An attacker can use a web shell to issue shell commands, perform privilege escalation on the web server, and the ability to
upload Uploading refers to ''transmitting'' data from one computer system to another through means of a network. Common methods of uploading include: uploading via web browsers, FTP clients], and computer terminal, terminals (SCP/ SFTP). Uploadi ...
, File deletion, delete,
download In computer networks, download means to ''receive'' data from a remote system, typically a server such as a web server, an FTP server, an email server, or other similar system. This contrasts with uploading, where data is ''sent to'' a remo ...
, and
execute Execute, in capital punishment Capital punishment, also known as the death penalty, is the state-sanctioned practice of deliberately killing a person as a punishment for an actual or supposed crime, usually following an authorized, rule- ...
files to and from the web server.


General usage

Web shells are used in attacks mostly because they are multi-purpose and 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 inaccessible over the Internet * To use as
command and control Command and control (abbr. C2) is a "set of organizational and technical attributes and processes ... hatemploys human, physical, and information resources to solve problems and accomplish missions" to achieve the goals of an organization or e ...
base, for example as a bot in a botnet system or in way to compromise the security of additional external networks.


Delivery of web shells

Web shells are installed through vulnerabilities in web application or weak server security configuration including the following: * SQL injection; * Vulnerabilities in applications and services (e.g. web server software such as NGINX or
content management system A content management system (CMS) is computer software used to manage the creation and modification of digital content ( content management).''Managing Enterprise Content: A Unified Content Strategy''. Ann Rockley, Pamela Kostur, Steve Manning. New ...
applications such as
WordPress WordPress (WP or WordPress.org) is a free and open-source software, free and open-source content management system (CMS) written in PHP, hypertext preprocessor language and paired with a MySQL or MariaDB database with supported secure hypert ...
); * File processing and uploading vulnerabilities, which can be mitigated by e.g. limiting the file types that can be uploaded; * Remote file inclusion (RFI) and local file inclusion (LFI) vulnerabilities; * Remote code execution; * Exposed administration interfaces; An attacker may also modify ( spoof) the Content-Type header to be sent by the attacker in a file upload to bypass improper file validation (validation using MIME type sent by the client), which will result in a successful upload of the attacker's shell.


Example

The following is a simple example of a web shell written in PHP that executes and outputs the result of a shell command: ?> Assuming the filename is example.php, an example that would output the contents of the
/etc/passwd passwd is a command on Unix, Plan 9, Inferno, and most Unix-like operating systems used to change a user's password. The password entered by the user is run through a key derivation function to create a hashed version of the new password, whi ...
file is shown below: https://example.com/example.php?x=cat%20%2Fetc%2Fpasswd The above request will take the value of the x parameter of the query string, sending the following shell command: cat /etc/passwd This could have been prevented if the shell functions of PHP were disabled so that arbitrary shell commands cannot be executed from PHP.


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 is important to avoid the 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 An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
to ensure immunity from known
bugs Bugs may refer to: * Plural of bug Arts, entertainment and media Fictional characters * Bugs Bunny, a character * Bugs Meany, a character in the ''Encyclopedia Brown'' books Films * ''Bugs'' (2003 film), a science-fiction-horror film * ''Bugs ...
* Deploying a
demilitarized zone A demilitarized zone (DMZ or DZ) is an area in which treaties or agreements between nations, military powers or contending groups forbid military installations, activities, or personnel. A DZ often lies along an established frontier or bounda ...
(DMZ) between the web facing servers and the internal networks * Secure configuration of the web server * Closing or blocking ports and services which are not used * Using user input data validation to limit local and remote file inclusion vulnerabilities * Use a
reverse proxy In computer networks, a reverse proxy is the application that sits in front of back-end applications and forwards client (e.g. browser) requests to those applications. Reverse proxies help increase scalability, performance, resilience and securi ...
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


Detection

Web shells can be easily modified, so it's not easy to detect web shells and antivirus software are often not able to detect web shells. The following are common indicators that a web shell is present on a web server: *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 a web server; *Files having dubious references, for example, cmd.exe or eval; *Unknown connections in the logs of web server For example, a file generating suspicious traffic (e.g. a PNG file requesting with POST parameters); Dubious logins from DMZ servers to internal sub-nets and vice versa. Web shells may also contain a login form, which is often disguised as an error page. Using web shells, adversaries can modify the .htaccess file (on servers running the Apache HTTP Server software) on web servers to redirect
search engine A search engine is a software system designed to carry out web searches. They search the World Wide Web in a systematic way for particular information specified in a textual web search query. The search results are generally presented in a ...
requests to the web page with
malware Malware (a portmanteau for ''malicious software'') is any software intentionally designed to cause disruption to a computer, server, client, or computer network, leak private information, gain unauthorized access to information or systems, de ...
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.


See also

* Backdoor (computing) *
Cyberwarfare Cyberwarfare is the use of cyber attacks against an enemy state, causing comparable harm to actual warfare and/or disrupting vital computer systems. Some intended outcomes could be espionage, sabotage, propaganda, manipulation or economic war ...
* Internet security *
Network security Network security consists of the policies, processes and practices adopted to prevent, detect and monitor unauthorized access, misuse, modification, or denial of a computer network and network-accessible resources. Network security involves th ...
*
China Chopper China Chopper is a web shell approximately 4 kilobytes in size, first discovered in 2012. This web shell is commonly used by malicious Chinese actors, including advanced persistent threat (APT) groups, to remotely control web servers. This web ...


References

{{Authority control Web shells Web security exploits Hacking (computer security)