目录
一、基于远程服务的弱口令攻击
(一)服务暴力破解软件
(二)实验
二、基于web的弱口令测试
(一)基于表单的暴力破解
(二)验证码绕过(on client)
1、通过Script Blocker Ultimate插件绕过验证码
2、通过burp suite进行绕过验证
3、通过替换前端代码破环验证
(三)验证码绕过(on server)
(四)token防爆破
三、拓展——
一、基于远程服务的弱口令攻击
(一)服务暴力破解软件
medusa -M smbnt -h 192.168.1.100 -u Eternal -P pass.lst -e ns -F -v 3
-M: 表示你要破解的类型(协议)。
-h:目标机器地址。
-u:用户名。
-U:指定账号列表
-e : 尝试空密码。
-F:破解成功后立即停止破解。
-v:显示破解过程。
-P:指定密码字典列表
-p:指定单个密码
通过medusa –d 查看支持的服务类型
(二)实验
1、例如打开一个kali、centos,两者能够通讯
2、使用kaili探测当前网段,探测到了一个192.168.174.130的主机
3、对192.168.174.130主机进行端口探测,探测到了22端口
4、手动创建一个字典
5、使用meduse工具进行测试,发现root为192.168.174.131主机的root用户的密码
同理,使用hydra进行测试
其实kali也会自带一些字典
二、基于web的弱口令测试
(一)基于表单的暴力破解
进入pikachu靶场、开启burp suite
抓包成功
放入重发器当中
如果已知用户名探测密码,将信息发送到批量处理中
清理掉自带的标签
将密码的位置标注为标签
进入Payloads进行设置
设置密码库,也可以用自带的密码库,这里为方便设置了几个简单的密码
进行攻击
注意观察Length为35052的数据,与其他条目的Length不一样,由于密码正确与否所得到的数据长度不同,由此可以推出123456位正确密码!
还有另一种方法查看是否为正确密码
随意左击一条数据,可以看出如果密码错误会返回“ username or password is not exists ”这一条数据
在Options中的Grep-Match中添加“ username or password is not exists ”
从而可以看出“username or password is not exists”出现的次数,从而判断是否为正确密码!
完成实验!
(二)验证码绕过(on client)
1、通过Script Blocker Ultimate插件绕过验证码
可以看出此登录界面有验证码!
如果验证码输入错误或者没有输入则burp Suite没有抓取到任何包
若验证码正确后,burp suite将成功抓取包!
ctrl + U 后可以找到验证码对应的JS代码,
由于这里的验证码是通过本地的JS进行验证,验证成功后,再向服务器发送数据,因此在这里,可以通过火狐的一些插件来屏蔽JS代码从而实现对验证码的屏蔽。比如Script Blocker Ultimate这款插件
安装Script Blocker Ultimate插件后,进行设置。
设置完成后,可以看到验证码框失效了
再次登录,可以看到即使验证码框没有输入任何内容,burp Suite却抓取到了包。
次方法通过插件的方式屏蔽本地JS代码从而实现对验证码的绕过!
2、通过burp suite进行绕过验证
上面的方法屏蔽掉了所有JS的代码,因此有时候会影响其网页的正常使用,因此可是通过burp Suite绕过前端认证
先填写正确的验证码进行正常登录
burp suite抓取到包
将数据包发送到触发器中
多次点击发送,可以看到burp suite不会因为脚本而收到干扰,可以直接绕过验证码来进行发送数据。
放入批量处理当
后面的操作与第一种方式一样
从数据的长度可以看到123456为正确的密码!
3、通过替换前端代码破环验证
重新进入“验证码绕过(on client)”界面
抓取到数据包!
修改验证码的判定方式
对数据包进行替换设置
刷新pikachu页面
ctrl + U 查看代码,发现代码被修改
验证失效
(三)验证码绕过(on server)
从页面可以看出,这里的验证码是一张图片,我们先随机输入用户名、密码、验证码
对burp suite抓取的文件进行设置
从burp suite中可以看到,此次抓取到了两个包,一个是账号密码登录的包,另一个包为验证码的图片包用于更新验证码
把发送账户密码的包和验证码图片的包发送到触发器中手动发送
首先发送一个验证码的包,得到一个新的验证码
在vcode中输入新的验证码,并发送包,可以看出登录成功,操作完成后,不管发送多少次账户密码的包,验证码一直为mssnat验证码,实现了验证码的固定。
(四)token防爆破
1、打开靶场,从页面中可以看到并没有验证码
2、我们先随意的登入一下
3、从burpsuite中抓取的包可以看出,有一条token的数据。
4、把这包放入触发器中,多次发动发送,可以发现出现了“ csrf token error ”提示,从这里可以看出这个“ token ”值被校验功能。
5、ctrl + U,查看页面的源代码,可以看到一条隐藏的token值
6、再次刷新页面,查看源代码,可以看出token值发生变化,这说明每次发送包后,token都会发生变化。
token原理:每一次请求页面的时候,服务器都是生成一个token值,并加载到当前页面当中,返回给浏览器,浏览器接受到该值的时候,将token值保留下来,当发送登陆的数据包时,会自带这个koken值,发送完成会会自动返回当前页面,当前页面又会生成一个新的token值,这就形成了一个循环,无论登录的账号密码是否正确都会生成新的token值。
7、对token有了一定了解后,我们重新登录该页面并抓取数据包发送至批量处理,然后只对密码和token进行标签
8、设置爆破的模式和字典
9、点击攻击,这里看到第“ 1 ”条数据是没有token值进行访问的,相当于有一组数据无法验证是否正确
解决的方式是在设置字典时添加一个空格
再次攻击,从数据包中可以看出“123456”为正确密码
三、拓展——
1、在phpstudy中安装uploads并更名为cms
2、一直“ 继续 ”
3、进入后台、登录、burpsuite抓包
4、在burpsuite中设置image
5、查看每个数据的的内容,显示提示“ 验证码不正确 ”,然后发送一个数据包,然后回到原来登录的页面,然后刷新了验证码的图片
6、将验证码、POST包发送至触发器
7、在触发器当中,多次发送一刻看到验证码会不断刷新
7、在这里可以通过burp suite来手动控制验证码的更新,将固定的验证码写入源代码包中,并发送,我们可以看到这里的提示是“ 你的密码错误 ”,这说明验证码通过了
8、再次发送登录,提示“验证码不正确”,这说明验证码使用过一次后验证码就会失效,
9、我们刷新验证码,再次刷新验证码,然后不使用这个验证码登录,发现“ 验证码错误 ”,然后使用最新的验证码进行登录,发现还是“验证码不正确”,
这说明这里的验证码无法被burp suite绕过,这说明登录页面被访问一次,验证码就会变更一次
10、安装Pkav HTTP Fuzzer工具
这里我们在推荐一个工具Codex验证码后台爆破V2.1