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这样的弱口令作为密码,而爆破就是利用这一特性。所以尽可能多地搜集其员工的名字。

当员工名字搜集完毕以后,便可以将其做成用户名的字典文件,然后选取一些最常见的弱口令,将密码设为不变量,用户名设为变量,从而进行用户名的爆破。

当成功地爆破出某个账户的账号、密码后,尝试利用人的惰性和密码的通用性通杀其他系统,可以大大提高渗透效率。