基于Pikachu渗透测试平台的暴力破解

如何判断web是否存在暴力破解呢?

是否要求用户设置复杂的密码;
是否每次认证都使用安全的验证码
是否对尝试登陆的行为进行判断和限制
是否在必要的情况下采用了双因素认证

暴力破解漏洞测试流程

1.确认登录接口的脆弱性
确认目标是否存在暴力破解的漏洞。(确认被暴力破解的可能性)
比如:尝试登录-抓包-观察验证元素和response信息,判断是否存在被暴力破解的可能。还可以申请一个帐号,多次登录错误尝试看会不会被锁掉,并且在注册的时候可以得到一些账户规则。
2.对字典进行优化
根据实际的情况对字典进行优化,提高爆破过程的效率
3.工具自动化操作
配置自动化工具(比如线程,超时时间,重试次数等),进行自动化操作。

暴力破解字典优化技巧

技巧一:
根据注册提示信息进行优化
对目标站点进行注册,搞清楚帐号密码的一些限制。比如目标站点要求密码必须是6位以上,字母数字组合,则可以按照此优化字典,比如去掉不符合要求的密码。
技巧二:
如果爆破的是管理后台,往往这种系统的管理员是admin/administrator/root的几率比较高,可以使用这三个帐号+随便一个密码,尝试登录,观看返回的结果,确定用户名,如果返回用户名或密码错误或者返回密码错误,则可以确定用户名,这样只需对密码进行爆破即可。

Burpsuit proxy模块

一般情况下,只要打开了burpsuit,proxy就处于一个监听状态,那么他是监听在哪个端口呢,我们可以通过options看一下,默认情况下是127.0.0.1:8080.

Intruder模块可以通过对http request的数据包以变量的方式自定义参数,然后根据对应策略进行自动化的重放。常用于自动化猜测/暴力破解过程中。

当我们把数据包发送到Intruder之后,需要配置几个选项达到我们的目的,target选项卡,设置攻击目标,可以通过proxy发送。Pasitions选项卡,指定需要暴力破解的参数并设置成变量,同时选择攻击模式:
Sniper设置一个payload,先将第一个变量使用字典进行测试,然后再将第二个变量使用字典进行测试

Intercept选项卡可以对拦截下来的包进行修改。这是里面有一个Intercept is on,默认就是打开的,也就是说,如果使用Burpsuit代理的话,根本访问不到你要请求的网页,都会被代理模块拦截下来。为了方便,这里把这个关掉,并不做修改,只是做转发和丢掉。

HTTP History所有的请求都会被记录下来
打开火狐->首选项->设置->手动代理配置(HTTP代理,下面的为所有协议使用相同代理服务器也勾上):127.0.0.1 8080
这时候我们再去访问一下pikachu这个平台,就发现在burpsuit里面已经记录下来了。

进入基于表单的暴力破解,随便输入一个用户密码,发现是错误的,这时候回到burpsuit,在HTTP history找到刚才发送的包含帐号密码的包,发现只有帐号密码,并且没有验证码,所以是可以做暴力破解的,然后选中这个请求,send to Intruder,在Intruder的Positions选项卡,看到原始数据包,Attack type是攻击类型,有4种。可以先点击右边的clear把变量清除掉,然后把我们要做的测试的选项选中,然后Add成变量。

然后payloads里面,payload type默认是simple list,在下面的Payload Options里面有Add,可以手动加字典,不过这样比较麻烦,我们用的比较多的payload type是Runtime file,这样可以选择字典文件。下面有一个Payload Encoding,问你需不需要对一些字符进行URL编码,按照默认就可以。

然后Options选项卡,有一些选项是灰色的,这是因为我们用的是free版本,Number of thread是并发数,做暴力破解,并发是比较能提高效率的一个事情,可以把他设高一点,Number of retries on network failure,请求失败了重试多少次,Pause before retry请求中间间隔多少次。然后我们点一下右上角的start attack,攻击一下看看。发现Sniper这种攻击类型,一次只能替换一个变量,按字典里的顺序把第一个变量替换完后,再替换第二个变量,并且替换变量的同时不会管另一个变量。

然后我们回到payload type里面,换成Battering ram,然后到payload发先payload set同样只有一个payload,开始攻击发现他会把两个变量同时进行替换成一样的。然后再回去看看Pitchfork这种类型,这时候你会发现payload set里面,你设了几个变量就有几个payload,然后对两个变量分别进行设置,然后发起攻击,发现会对两个变量根据设置的文件分别进行替换。然后我们看一下最后一种攻击类型,Cluster bomb,对变量进行设置之后,攻击,发现他会进行交叉,他会用密码字典的第一个去把用户名字典匹配一遍,然后再把第二个再匹配一边,如此下去。

那么,你怎么确定你发送的这么多请求哪个是成功的呢,我们就要用到Grep Mach这个功能,我们可以看到表单页面,输入错误会提示一个字符串,把他复制,在Grep Match清空,加上这句话,这时候我们再攻击,攻击完后,我们点一下length后面那一选项,让他排序,最上面的没有标上√的跟其他都不一样的应该就是成功的。当没办法通过字符串进行判断的时候,我们可以通过length来判断。

发布了13 篇原创文章 · 获赞 1 · 访问量 258

猜你喜欢

转载自blog.csdn.net/qq_43499389/article/details/104970080
今日推荐