接上文。Kali 渗透测试:使用Burp Suite 对网络认证服务的攻击(一)https://developer.aliyun.com/article/new/security?
我们要选择放行之前的数据包,这样才能正常访问登录界面。执行的方法就是单击上图中红框内的“Forward”,没在浏览器执行一次操作,都需要执行一次放行操作。进入登录界面,如下图所示:
接下来构造登录数据包,在上图中的登录界面中,输入一个用户名admin(假设我们已经知道用户名admin,密码未知),随意输入一个密码,如“000000”,然后单击“Login”按钮,如下图所示:
切换到Burp Suite, 这时的“Intercept”变成黄色,表示截获到了数据包,这个数据包的格式如下图所示,最关键的是红框内部分,截获到的登录数据包:
单击鼠标右键,选择Send to Intruder,如下图所示:
然后单击“Intruder”选项卡,并在其中选择“Positions”,如下图所示:
在这个模块中,我们需要向Burp Suite指明密码所在的位置,在这操作界面中,Burp Suite虽然不能确切的知道密码所在的位置,但是它给出了4个可能的位置,也就是上图中带灰色底纹的部分。Burp Suite中使用一堆“§”来表示密码的区域,我们单击右侧的“Clear §”按钮,清除所有默认的参数,如下图所示:
然后把光标移动到密码位置,也就是“000000”的前面,单击按钮“Add §”。这样就成功地标识出来密码的位置,如下图所示:
切换到“Payloads”选项,选择要使用的Payload set, 这里我们选择要设定进行密码破解目标的个数,如我们只破解密码,这里Payload set处就要选择1;如我们既不知道用户名也不知道密码,这里Payload set处就要选择2。Payload type 选择“Simple list”, 如下图所示:
接下来我们要加入使用的字典,点击“Load”按钮,如下图所示:
这里我们选择“small.txt”作为破解的字典(small.txt里面实际上没有这次实验的密码123456,我们需要手动添加一行内容123456以保证实验成功,如果实际应用可以使用较大字典)如下图所示:
设置完成之后,单击菜单栏的“Intruder”,切换到“Payloads”,选择“Start attack”,如下图所示:
现在就开始扫描了,因为免费版限制了多线程,所以攻击过程十分漫长,如下图所示:
扫描到部分内容的时候,我们可以按照Status列或者Length列进行排序。以Status列为例,我们会看到所有数据包该列的值均为200,如图所示。在这种情况下,我们就要查看Length值,一般Length的值与其他数据包不同的话就代表是正确的。但是这种判断方式的结果并不精确,除了123456返回的长度不一样之外,0返回的长度也不一样,我们应该尝试更好的方式。如登录成功的话,界面下方会出现“login success”,如下图所示,登录失败的话则不会。
我们可以尝试判断每一个Response中是否包含“login success”,如果包含则表示成功,否则表示失败。可以看到Response中包含“login success”,如下图所示:
在“Options”中有一个“Grep-Match”,里面有一个匹配选项,我们首先使用“Clear”按钮清空里面的内容,然后将“login success” 添加到表中,如下图所示:
然后单击“Start attack”, 执行时可以看到里面多了“login success”列, 如下图所示:
可以看到,只有123456的Response中包含了“login success”。如果用户名和密码都不知道,可以重复之前的动作。如下图所示,需要同时为admin 和000000添加“§”。
这时Attack type一共有4种可选类型,分别是Sniper、Battering ram、Pitchfork以及Cluster bomb,如下图所示:
这4种类型中我们主要是使用其中的Sniper和Cluster bomb。Sniper类型主要应用于一个位置(如已知用户名,不知道密码)时。Cluster bomb类型主要应用于两个位置(用户名和密码都不知道)时,它要使用两个Payload,然后将两个Payload里面的内容进行笛卡尔积运算。如Payload1里面的内容a、b;Payload2里面的内容1、2,就会产生以下组合。
◆ Usrname: a; password:1。
◆ Usrname: a; password:2。
◆ Usrname: b; password:1。
◆ Usrname: b; password:2。
使用Burp Suite来同时破解用户名和密码很简单,只需要在上图中选择“Cluster bomb”, 然后分别选择Payload set中的1和2即可,如下图所示:
使用Burp Suite是一种十分通用的办法,但是实际中这种暴力破解方式很难成功,因为消耗的时间资源太多。如果目标网站设置了验证码或者限制登录次数,还需要考虑是否可以绕过。