3.3 爆破
3.3.1 利用Burp进行爆破
Burp是Web渗透中用于爆破的最常用的工具,其操作极其简单,只需要简单几步即可实现爆破:抓包,设置变量,加载字典进行攻击,返回信息。本节具体讲述如何操作。
(1)对浏览器的代理进行设置,具体过程这里就不阐述了。设置完毕后,打开目标站点。
(2)如图3-22所示,这里随意使用用户名admin,密码123456登录,登录失败。在Burp中可以看到刚才登录操作的数据包,如图3-23所示。
图3-22 目标爆破页面
(3)单击Burp工具界面右上角的Action按钮,可以看到如图3-24所示的下拉菜单栏。
图3-23 登录操作发送的数据包
图3-24 Action下拉菜单栏
(4)选择Send to Intruder,单击该命令后回到Burp的主界面,如图3-25所示,可以看到主界面的Intruder选项卡会加亮显示。
(5)切换到Intruder选项卡,单击Positions选项,如图3-26所示,可以看到刚才抓到的数据包。
图3-25 数据包成send to intruder
图3-26 登录包
(6)可以看到数据包中有些字符被标注起来了,这是Burp对变量的自动判断并标注。单击Clear§按钮,这里只对密码进行字典替换,所以选中123456,然后单击Add§按钮。
(7)如图3-27所示,此时123456已经被设为变量了,接下来只需加载字典文件,对其进行替换,并提交数据包就可以进行爆破了。选中Payloads选项卡,单击Load按钮,进行字典文件的加载。
图3-27 设置爆破变量
(8)如图3-28所示,字典文件加载完毕,便可以进行爆破了。选中最上方Intruder选项卡,单击Start attack命令,如图3-29所示。
图3-28 字典文件成功加载
图3-29 准备开始爆破
(9)这时可以看到返回信息在不停滚动。待字典跑完后,分析返回数据Length,找出正确密码。如图3-30所示,是目标站点的爆破结果,可以看到除了admin返回的Length是370,其他的都是354,因此判断admin为正确密码。
图3-30 爆破结束
Tips:可以通过Length值的排序来快速找出数值不同的项。
当然,如今很多Web站点都有验证码。但是,验证码依旧存在被绕过的风险,利用Python Image Library、Tesseract-OCR、pytesser这几个Python第三方库,仅二值化、文字分割两个选项就能轻松识别互联网60%以上的验证码。
3.3.2 爆破在大型Web站点渗透中的作用
在对大型Web站点的渗透中,一般不会直接将目标放到主站上,而是从子站入手。大家都知道,一个大型站点一定有些内部人员登录的系统。而对于这类系统,安全往往掌握在用户手里,因为很多安全公司认为某个系统只有固定的一些内部账号能登录,而其里面的一些操作引发的安全问题便不是那么重要了,因此开发中常常会有很多疏忽。这种情况下,内部人员密码的强弱就显得格外重要,但是弱口令仍是常发生的问题。
就拿内部邮件系统来说,不妨假设渗透目标是某著名网络安全公司A,其域名是www.aaa.com,通过二级域名的爆破,发现了其内部邮件系统mail.aaa.com。大家都知悉,一般企业邮箱的格式都为:用户名@公司的域名,所以这里登录的账号格式应该是:用户名@aaa.com。接下来,可以用搜索引擎对@aaa.com进行搜索,很快便可以发现用户名的命名规则,而一般都是以员工姓名拼写作为用户名。
接下来,尝试用爬虫将搜索引擎能搜索到的员工名字都爬下来,搭建过交互站点的人都知道,如果不对密码的复杂度作要求,总会有些人使用123456、88888888这样的弱口令作为密码,而爆破就是利用这一特性。所以尽可能多地搜集其员工的名字。
当员工名字搜集完毕以后,便可以将其做成用户名的字典文件,然后选取一些最常见的弱口令,将密码设为不变量,用户名设为变量,从而进行用户名的爆破。
当成功地爆破出某个账户的账号、密码后,尝试利用人的惰性和密码的通用性通杀其他系统,可以大大提高渗透效率。