WebShell基础详解(特点、原理、分类、工具) 您所在的位置:网站首页 脚本分为哪几类 WebShell基础详解(特点、原理、分类、工具)

WebShell基础详解(特点、原理、分类、工具)

2024-03-13 22:34| 来源: 网络整理| 查看: 265

文章目录 一、WebShell简介二、WebShell特点三、WebShell分类四、WebShell原理五、内存马六、WebShell管理工具

一、WebShell简介

Webshell就是以asp、php、jsp或cgi等网页文件形式存在的一种代码执行环境,也可以将其称做为一种网页后门。

“web”的含义是显然 需要服务器开放web服务,“shell”的含义是 取得对服务器某种程度上操作权限。 webshell常常被称为入侵者通过网站端口对网站服务器的某种程度上操作的权限。 由于webshell其大多是以动态脚本的形式出现,也有人称之为网站的后门工具。

黑客在入侵了一个网站后,通常会将asp或php后门文件与网站目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。步骤简写如下:

入侵网站 将ASP或PHP等后门文件混入正常网页文件 通过网页访问后门文件 得到命令执行环境 控制网站服务器

Shell文件可从服务器那边接收数据并执行、返回结果;也就是说我们只要把 shell 文件上传到目标服务器,就能操控服务器了。

利用Webshell可以在Web服务器上执行系统命令、窃取数据、植入病毒、Le索核心数据、SEO挂马等恶意操作,危害极大。

对于网站管理员来说,shell 文件也可以用于 网站管理、服务器管理、数据库管理 等。根据FSO权限的不同,作用有在线编辑网页脚本、上传下载文件、查看数据库、执行任意程序命令等。

二、WebShell特点

黑客使用Webshell的第一步通常是将其上传到可以访问的服务器中, 例如利用用户CMS系统的第三方插件中的漏洞上传一个简单的php Webshell。

当然,Webshell类型和作用也不完全相同, 一些简单的Webshell只起到连接外界的作用,允许黑客插入更加精准的恶意脚本,执行他们所需要的指令; 另外一些则可能更加复杂,带有数据库或文件浏览器,让黑客能够从数千英里之外的地方查看入侵系统的代码和数据。 无论何种设计,Webshell都极其危险,是网络罪犯和高级持续威胁(APT)的常用工具。

Webshell常见的攻击特点主要有以下几点:

1、持久化远程访问 Webshell脚本通常会包含后门,黑客上传Webshell之后,就可以充分利用Webshell的后门实现远程访问并控制服务器,从而达到长期控制网站服务器的目的。此外,在上传完Webshell之后,黑客会选择自己修复漏洞,以确保没有其他人会利用该漏洞。通过这种方式,黑客就可以一种低调的姿态,避免与管理员进行任何交互,同时仍然获得相同的结果。

2、提权 在服务器没有配置错误的情况下,Webshell将在web服务器的用户权限下运行,而用户权限是有限的。通过Webshell,黑客可以利用系统上的本地漏洞来实现权限提升,从而获得Root权限,这样黑客基本上可以在系统上做任何事情,包括安装软件、更改权限、添加和删除用户、窃取密码、阅读电子邮件等等。

3、隐蔽性极强 Webshell可以嵌套在正常网页中运行,且不容易被查杀。它还可以穿越服务器防火墙,由于与被控制的服务器或远程主机交互的数据都是通过80端口传递,因此不会被防火墙拦截,在没有记录流量的情况下,Webshell使用post包发送,也不会被记录在系统日志中,只会在Web日志中记录一些数据提交的记录。

三、WebShell分类

Webshell根据脚本可以分为PHP脚本木马,ASP脚本木马,JSP脚本木马,也有基于.NET的脚本木马。根据时代和技术的变迁,也有用python和lua编写的脚本木马,常用有如下几种:

大马 体积大,功能全;会调用系统关键函数;以代码加密进行隐藏

小马 体积小,功能少;一般只有一个上传功能,用于上传大马

一句话木马 代码短;使用场景大,可单独生成文件,可插入文件;安全性高,隐藏性强,可变形免杀;框架不变,数据执行,数据传递; 使用客户端管理webshell,省去使用命令行以及各种参数配置,可以使用中国蚁剑图形化操作webshell

打包马 主要用于打包网站源码

拖库马 主要用于导出网站数据库

内存马 无文件落地;极难检测和发现;难以清除

注:本文之后所讲的WebShell就是指一句话木马

四、WebShell原理

Webshell的恶意性表现在它的实现功能上,是一段带有恶意目的的正常脚本代码。

不同脚本类型的一句话木马:

在这里插入图片描述 PHP一句话木马核心步骤如下:

1、数据传递

$_GET、$_POST、$_COOKIES、$_REQUEST、$_FILE、$_SERVER

从远程远程URL中获取数据: file_get_contents、curl、svn_checkout… (将需要执行的指令数据放在远程URL中,通过URL_INCLUDE来读取)

从本地磁盘文件中获取数据: file、file_get_contents… (将需要执行的指令数据放在本地磁盘文件中,利用IO函数来读取)

从数据库中读取(将需要执行的指令放在数据库中,利用数据库函数来读取)

从图片头部中获取: exif_read_data…(将需要执行的指令数据放在图片头部中,利用图片操作函数来读取)

2、代码执行

将用户传输的数据进行执行

代码执行函数:eval、assert、system…执行(这是最普通、标准的代码执行)

LFI(本地文件包含):include、require…(利用浏览器的伪协议将文件包含转化为代码执行)

动态函数执行:($()…PHP的动态函数特性)

Curly Syntax:(${${…}}…它将执行花括号间的代码,并将结果替换回去。这种思路可以把变量赋值的漏洞转化为代码执行的机会)

五、内存马

这里以PHP的脚本木马为主。

内存马是无文件攻击的一种常用手段,随着攻防演练热度越来越高:攻防双方的博弈,流量分析、EDR等专业安全设备被蓝方广泛使用,传统的文件上传的webshll或以文件形式驻留的后门越来越容易被检测到,内存马使用越来越多。

Webshell内存马,是在内存中写入恶意后门和木马并执行,达到远程控制Web服务器的一类内存马,其瞄准了企业的对外窗口:网站、应用。但传统的Webshell都是基于文件类型的,黑客可以利用上传工具或网站漏洞植入木马,区别在于Webshell内存马是无文件马,利用中间件的进程执行某些恶意代码,不会有文件落地,给检测带来巨大难度。

PHP内存马,也叫做PHP不死马、不死僵尸,在线下AWD中是常用手段之一。 在蚁剑中也有专门的插件可以一键注入内存马。 原理也很简单,相对于Java可以直接把整个shell写入内存,php内存马的实现则是将一个木马反复写入,达到无法删除的目的。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有