WebShell详解

644 阅读4分钟

​​本文已参与「新人创作礼」活动,一起开启掘金创作之路。

WebShell


解释

在计算机科学中,Shell 俗称壳(用来区别“核”),是指“为使用者提供操作界面”的软件(命令解释器)。类似于windows 系统给的cmd.exe 或者Linux 下bash/sh 等,虽然这些系统的命令解释器不止一种。

WebShell 是一个网站的后门,也是一个命令解释器,不过是以Web 方式(HTTP 协议)通信(传递命令消息),继承了Web 用户的权限。WebShell 本质上是服务器端可运行的脚本文件,后缀名为.php/.asp/.aspx/.jsp 等,也就是说WebShell 接受来自于Web 用的命令,然后在服务器端执行。

分类

大马

WebShell 也可以是大马,也就是网站木马。有一类WebShell 之所以叫大马,是因为与小马(一句话木马)区分开,并且代码量较大,但是功能丰富。同样,大马有很多脚本格式,其功能基本相同。渗透测试的每个团队都有自己的定制木马。

在大马中,我们可以进行文件管理,执行系统命令等,还有一些其他定制功能。

小马

小马就是一句话木马,因为其代码量比较小,就是一句简单的代码。以下是各个脚本的一句话

#ASP:

<%eval request("cmd")%>

#ASP.NET:

<%@ Page Language="Jscript"%>

<%eval(request.Item["cmd"],"unsafe");%>

#PHP:

JSP 和 jspx 的一句话木马比较复杂一些

一句话木马短小精悍,功能强大,但是需要配合中国菜刀或者中国蚁剑客户端使用,中国菜刀是一句话木马的管理器,也是命令操作接口。中国菜刀在连接一句话木马的时候需要填写密码(实际上就是变量名)。例如,我们上传一个php 的一句话木马,密码就是[cmd]。

GetShell

GetShell ,顾名思义就是获取web 的过程。当然任意文件上传是GetShell 的主要方式,但并不是唯一途径

借用文件上传在web服务器端上传成功木马,可以使用getshell连接工具连接

常用的getshell连接工具

中国菜刀

github项目地址: GitHub - raddyfiy/caidao-official-version: 中国菜刀官方版本,拒绝黑吃黑,来路清晰

初始界面

在web服务器根目录下创建testshell.php 一句话木马文件

连接(空白界面右键添加)

脚本类型可选择: php/asp/aspx

连接成功

文件管理

在中国菜刀页面继承Web 用户权限可以实现文件管理,包括文件查看、上传、下载、修改、删除甚至运行exe 程序等

虚拟终端

在中国菜刀下可以获得cmd 和 bash的命令行接口,可以执行相关命令。

数据库管理

我们可以使用中国菜刀进行数据库管理,此时需要知道连接数据库的账密。以MYSQL 为例

MYSQL      //数据库类型

localhost     //数据地址

root     //数据库用户

root

    //数据库密码

utf-8     //数据库编码

还有一些功能笔者这里就不一一列举了,大家自行挖掘

一款比较老的工具的了,免杀过狗效果一般。

中国蚁剑

github项目地址

蚁剑源码: GitHub - AntSwordProject/antSword: 中国蚁剑是一款跨平台的开源网站管理工具。AntSword is a cross-platform website management toolkit.

蚁剑加载器: GitHub - AntSwordProject/AntSword-Loader: AntSword 加载器

蚁剑使用手册: doc.u0u.us/zh-hans/get…

关于蚁剑的安装过程,可参考: 中国蚁剑安装教程_rab3it的博客-CSDN博客_中国蚁剑

初始界面

连接(右键添加数据)

文件管理

更多详细功能可以参考我前面给出的蚁剑使用手册

Behinder (冰蝎)

github项目地址: github.com/rebeyond/Be…

软件安装包: Releases · rebeyond/Behinder · GitHub

运行需要java环境(jdk)

工具中已经给出了一些小马,直接拿来用即可

初始界面

连接(右键新增)

连接成功



Godzilla (哥斯拉)

github项目地址: github.com/BeichenDrea…

软件安装包: Releases · BeichenDream/Godzilla · GitHub

运行需要java环境(jdk)

初始界面

在管理里面可以生成木马,

密码和密钥都需要设定

有效载荷:

JavaDynamicPayload -> jre5及以上

CShapDynamicPayload -> .net2.0及以上

PhpDynamicPayload -> php5.0及以上

payload以及加密器支持

哥斯拉内置了3种Payload以及6种加密器,6种支持脚本后缀,20个内置插件

  1. JavaDynamicPayload

    1. JAVA_AES_BASE64

      1. jsp
      2. jspx
    2. JAVA_AES_RAW

      1. jsp
      2. jspx
  2. CShapDynamicPayload

    1. CSHAP_AES_BASE64

      1. aspx
      2. asmx
      3. ashx
    2. JAVA_AES_RAW

      1. aspx
      2. asmx
      3. ashx
  3. PhpDynamicPayload

    1. PHP_XOR_BASE64

      1. php
    2. PHP_XOR_RAW

      1. php

来自 < GitHub - BeichenDream/Godzilla at v1.10-godzilla >

这里我们做PHP的马,选择以下配置即可

值作成功之后将其放置到web服务器下,之后在初始界面选择目标--添加

连接成功