burpsuite 验证码怎么爆破验证码

51CTO旗下网站
渗透测试中的密码扫描与破解技巧
一次测试的过程总会涉及到”密码”与”加解密”。在踩点的过程中,对弱口令的尝试是必不可少的过程,从xx抓鸡到内网哈希批量传递,从个人PC到网络设备/工控设施,只要依旧采用单因素模式的密码认证,密码扫描就不会被遗忘。
作者:le4f来源:网络安全攻防实验室| 09:41
一次测试的过程总会涉及到&密码&与&加解密&。在踩点的过程中,对弱口令的尝试是必不可少的过程,从xx抓鸡到内网哈希批量传递,从个人PC到网络设备/工控设施,只要依旧采用单因素模式的密码认证,密码扫描就不会被遗忘。以下笔者简单分享总结安全测试中密码扫描与破解的技巧,如有疏漏错误,还望不吝赐教。
0&01 整理一份优秀的字典
想破解密码,要求我们已经&拥有&别人的密码。字典在口令扫描尝试过程中的重要性不言而喻.要整理一份优秀的字典,不妨参考各大网站泄漏数据库,将密码(明文)字段收集后,依出现频率先后生成字典。
一个demo脚本:
#!/bin/bash/python &import&sys &from&collections&import&Counter &file&=&open(sys.argv[1],&'r') &readlist&=&[] &count_times&=&[] &for&line&in&file.readlines(): &line&=&line.strip('\r\n&') &readlist.append(line) &sortlist&=&Counter(readlist).most_common() &for&line&in&sortlist: &print&line[0]&
0&02 一手称心如意的工具集
欲善其事,须利其器。在密码枚举工具中吗,笔者比较推荐的工具List如下:
Hydra :在线各种服务账户密码猜解Medusa : 类似HydraPatator : Python多协议破解工具John the ripper : 离线破解哈希Hashcat : GPU离线哈希破解Burp Suite : 在线密码枚举Rcracki : 离线彩虹表哈希破解Ophcrack : 离线LMHash/NTHash破解Hashid/HashTag : 哈希算法分析Fcrackzip/Truecrack等特定文件密码破解工具Metasploit : 各种辅助测试脚本Cupp.py : 社工字典生成&
当然,根据特定需要(如加入各种伪装绕过检测),可能也需要我们自行编写相应脚本实现枚举账户的过程.
0&03 绕过检测
Web层有WAF,Service有IDS/IPS,很容易打草惊蛇.在测试前,先通过扫描等方式判断是否有相应的防护,并采取相应手段.Web层可能有验证码,可能有每秒IP连接数限制,可能通过Cookie/Header等信息判断行为是Human or Robot.在通过一系列测试后,(如何测试还是要自己探索的),采用最合理的针对方式绕过或尽量避免被检测而导致的阻挡枚举账户密码的脚步.
0&04 Web账户枚举
Web账户枚举是平日遇到较多的情况
EXP无果,某处又没有做严谨的验证码等防护,为枚举账户密码制造了可能性.发现前人留下的backdoor,苦于没有密码.撞库扫号.
常见的绕过验证的可能:
页面无需刷新验证码无限次使用密码输入错误数次弹出验证码,但更换账号不会出现验证码修改Cookie或UA伪装逃避验证码可批量轮询使用代理枚举绕过
在Web枚举中,使用BurpSuite基本可以解决所有常见问题.工具相关文档资料也比较丰富.
开启代理,打开Intercept,登陆网页,输入用户密码,数据包拦截下来,选择Send to Intruder,进入攻击模块.
其中四种模式:
Sniper: 只有一个payload,会将payload分别放在每个Fuzz点测试,默认选项,这也是新手发现Payload只能选择1的原因.Battering Ram: 只有一个payload,会将payload同时放在多个Fuzz点测试.Pitchfork: 多个payload,会将多个payload同一行同时放到相应Fuzz点测试.(适用扫号)Cluster Bomb: 多个payload,payload在其Fuzz点循环测试,直到尝试所有可能.(适用多账户枚举密码)
参考链接: http://www.digininja.org/blog/burp_intruder_types.php
选择好相应模式后,设置payload为runtime file,挂载字典文件.取消Payload Encoding.
如果发现网页有将用户的本地将密码计算MD5后提交,则需要在Payload Processing中添加计算MD5的过程
设置设置好后也可添加正则匹配结果等等.之后可以Start attack了.
这个过程中,如果担心IP地址暴露,可以选择写一个这样一个脚本:
脚本本地监听某端口,并为每次枚举随机抽取代理IP,Burp中设置Proxy为本地脚本所监听端口即可.
0&05 HTTP基础认证
家用路由/Jboss等往往采用HTTP基础认证,认证过程中,用户名密码加密.若无正确的用户名密码则会返回
HTTP/1.1 401 Authorization Required
抓包可以看到,以默认用户名admin,默认密码admin登陆路由,HTTP Header多的部分像是这样
Authorization: Basic YWRtaW46YWRtaW4=
Base64解密即为admin:admin.针对基础认证密码破解,依旧可以使用,但需要对用户名密码先做处理,一个demo脚本如下:
&import&os.path,sys,base64 &userfile&=&raw_input(&input&usr&file:&) &passfile&=&raw_input(&input&pwd&file:&) &outputfile&=&raw_input(&input&out&file:&) &outputfile&=&open(outputfile,&&w&) &userInfile&=&open(userfile) &passInfile&=&open(passfile) &userLines&=&userInfile.readlines() &passLines&=&passInfile.readlines() &for&userLine&in&userLines: &for&passLine&in&passLines: &combinedLine&=&userLine.strip()&+&':'&+&passLine.strip() &print&combinedLine &outputfile.write(base64.b64encode(combinedLine)&+&'\n') &userInfile.close() &passInfile.close() &outputfile.close()&
生成字典后以Burp爆破即可
当然,Hydra给了更简易的解决方式
hydra -L user.txt -P pass.txt -F http://demourl:2048/auth
其中-L和-P大写均为挂载字典,-F表示全局一旦发现合法用户密码即停止破解,亦可加入-t参数指定线程数.
0&06 服务密码破解
密码枚举离不开服务,对常见服务如FTP/SSH/TELNET/POP3/1433等的破解枚举,资料已经很齐备,以下仅简要记录命令
hydra -L user.txt -P pass.txt -F ftp://127.0.0.1:21
hydra -L user.txt -P pass.txt -F ssh://127.0.0.1:22
patator ssh_login host=127.0.0.1 user=
root password=FILE0 0=pass.txt -x ignore:mesg='Authentication failed.'
hydra -L user.txt -P pass.txt -F smb://127.0.0.1
hydra -L user.txt -P pass.txt -F mssql://127.0.0.1:1433
0&07 社工字典生成
密码碰撞出来的情况,大多为两种可能:以admin为代表的弱口令和以*19??0101为代表的社工密码.在弱口令尝试失败的情况下,如果对目标信息有较充分的
掌握,则可尝试社工字典生成. 以cupp.py工具为例,创建新字典使用:
python cupp.py -i
在填写相关信息后生成字典,然后使用上述工具继续枚举吧 ;-)
0&08 哈希破解
win环境下wce等工具直接抓取内存密码,抓取hash后离线破解往往也是难以避免的,尤其是在微软最近几个漏洞补丁之后:( 普通哈希可以使用Ophcrack破解,官网给出了对应的彩虹表下载,当然,也可以直接查询. http://www.objectif-securite.ch/en/ophcrack.php
如情非得已,需要破解其他不常见密码哈希(借助已有web破解服务无法解决),暂时便只有三个相对高效的方法:
分布式 (如今已经有越来越多的工具开始尝试分布式破解,也可说是,云计算?)
GPU (或DSP/FPGA搞的专业密码破解硬件)
彩虹表 (没硬盘的就别想了)
而如果我们在密码的一定规则后,亦可按照规则破解密码. 如创建一个密码为hahaharoot的账户,用John暴力模式密码,普通计算机一天时间是很难跑出来的,但假设发现管理员其他密码如web/sql等均为hahaha开头,则可考虑定义密码规则,如
hashcat -m1800 -a3 hashdumpedfile --pw-min=7 --pw-max=11 &hahaha?l?l?l?l&
几秒钟的时间,得到了密码明文
其中-m指定哈希算法,-a3指定暴力破解方式.亦可通过脚本生成指定前缀的密码字典使用工具挂载字典加以破解
john -w:gen_wordlist.txt hash
0&09 文件密码
最后补充一点对文件密码的破解,对于zip文件,由于加密方式没有rar强势,故被解密的可能性很大,一个kali下的破解工具命令如下:
fcrackzip -b -v -c a -l 1-4 -u 1.zip
其中,-b指定暴力破解,-v显示详细信息,-c a指定密码为纯字母,-l 1-4指定密码长度位1-4位,-u指使用可能的密码进行解压缩测试(加上,否则会出现很多干扰密码)
关于其他文件密码的破解,各位看官如有高效的工具,还望拿出来分享之. ;)
【编辑推荐】
【责任编辑: TEL:(010)】
大家都在看猜你喜欢
头条热点热点头条头条
24H热文一周话题本月最赞
讲师:20026人学习过
讲师:19178人学习过
讲师:1047人学习过
精选博文论坛热帖下载排行
本书分为4个部分共24章,以插件开发为中心,围绕插件开发主要介绍SWT/JFace的应用、插件扩展点的实现,以及GEF、EMF和RCP的相关知识。本书...
订阅51CTO邮刊&nbsp>&nbsp
&nbsp>&nbsp
&nbsp>&nbsp
密码爆破程序技术讲解
摘要:这个程序已经写了很长时间了,一直没有时间来进行总结归纳。最近在清理自己写过的文件和程序,为了避免自己以后找不到了,就将写的程序上传到brutepwdbyflow、brutepwdbyhtml上面了,同时也借这个机会对自己的程序进行一个比较详细的说明和总结。概述这2个程序的作用都是用来爆破web程序的用户名和密码的,可以认为是姊妹软件,大部分的代码都是完全相同的,区别仅仅只有少部分,就是在分析和获取提交的参数的方式上存在不同。相比目前常见的密码爆破的软件,如burpsuite和
这个程序已经写了很长时间了,一直没有时间来进行总结归纳。最近在清理自己写过的文件和程序,为了避免自己以后找不到了,就将写的程序上传到 brutepwdbyflow 、 brutepwdbyhtml 上面了,同时也借这个机会对自己的程序进行一个比较详细的说明和总结。
这2个程序的作用都是用来爆破web程序的用户名和密码的,可以认为是姊妹软件,大部分的代码都是完全相同的,区别仅仅只有少部分,就是在分析和获取提交的参数的方式上存在不同。相比目前常见的密码爆破的软件,如burpsuite和pkav,这2款软件最大的特点就是自动化的程度较高,用户仅仅只是需要输入登录页面的URL,然后选择用户名字典和密码字典就结束了,不需要像burpsuite和pkav那样繁杂的操作,可以说这2个程序完全是为小白设计的,很容易上手。 技术说明
这2个程序都是使用Python写的,后台的发送网络请求,分析html网页结构都是使用的Python。界面是使用的Qt来制作的。所以整个项目完全是一个Python的程序,没有使用其他的语言或者是软件。虽然使用的Python,但是在整个软件的架构中还是使用了很多的Python库以及一些多线程的技术。 界面
当时在写这个软件的时候,综合了几种Python写界面的技术。常见的技术有Tkinter,wxPython,pyGTK,PyQt,PySide。由于Python自带的Tkinter自带的功能较弱,最后综合考虑之下就选择了PyQt4。使用了PyQt4,那么就需要考虑到界面的问题了。对于界面的编写,仅仅考虑到实用,就直接使用了Qt Desinger来画界面。但是使用Qt Desinger画出来的界面,最后得到的是*.ui文件(此ui文件其实就是使用xml来定义界面的文件,有点类似于Android中的xml文件一样),Python无法使用这种文件。但是stackoverflow是无敌的,很多人也遇到了这样的问题。最后通过Python中pyuic.py可以将ui文件变为Python可用的文件。命令如下:
python C:/Python34/Lib/site-packages/PyQt4/uic/pyuic.py python.ui -o window.py -x
这样得到的window.py就是界面文件,window.py中会存在一个Ui_MainWindow类。运行这个Python文件就会直接得到UI界面。
但是如果直接在window.py中编写逻辑代码,整个window.py文件就会十分地混乱。stackoverflow上面就建议新创建一个python类,叫myForm类,myForm就会添加逻辑代码,如按钮点击事件。最后只需要运行myForm.py即可。至此就完成了界面的创建工作。下图就显示了两者之间的关系。
UI_MainWindow负责界面的显示,myForm则负责逻辑。当需要修改界面时,仅仅修改UI_MainWindow中的代码即可。 参数解析
这也是整个软件中的核心部分,也是这2个软件最大的区别。在brutepwdbyhtml中,使用的是分析网页结构的方式,就是获取到页面代码之后,通过分析form表单中的结构来获取form表单中提交的参数。在整个识别的过程中,使用了Python中的requests和beautifulsoup两个库。使用beautifulsoup库很方便地就提取出其中的页面元素。整个参数识别的过程如下。
步骤一:通过发送请求获得页面的源代码。
步骤二:找出其中的form元素节点。这个节点是通过beautifulsoup来获得的。
步骤三:对form元素进行预处理,去掉其中的submit和reet的input元素和隐藏的input属性。
步骤四:通过inout中的type=password的属性找出其中的是密码的input标签获取name值,确定此name值为提交的密码参数。
步骤五:找出pwd元素上一个的input元素,确定此input属性为用户名的input,获取name值,确定此name值为提交的用户名参数。
步骤六:确定其中的验证码参数。虽然验证码参数识别的使用到的技术还行,这个由于识别功能比较鸡肋,所以就不进行详细地说明了。大家有兴趣,可以去看源代码。
以上就是所有的参数识别的步骤了。 模拟提交
之前说过本软件是无状态情况下的提交,每一次都会重新去请求页面获取参数。这样做的好处是在于,有的像v2ex,zhihu都会在页面中含有一个token_nonce,这个时候每次请求的时候,都能够获取到这个token,那么请求就是有效的。坏处是在于,整个过程就是无状态的提交,每一次都是新的cookie和session,无法进行类似于重放攻击的这种爆破。其次,由于整个软件是使用Python编写而成的,加上python的GI机制,导致在整个爆破的过程中,程序运行得十分地缓慢。
传统的爆破软件是无法对爆破的结果进行识别的。本软件在其他的软件的基础上增加了爆破结果的识别功能。整个识别是基于以下三种标准:1.时候含有识别字符,如“重试”,“错误”等;2.页面是否跳转;3.长度是否在错误列表中。在我进行测试的过程中,基于这3个标准,基本上能够找出争取的用户名和密码。 其他
最后发现整片文章变成了这个软件的说明文章,其中的技术还是有很多讲到。还有很多的技术,包括如何使用QtDesinger生成的界面文件,Beautifulsoup的实际使用,如何使用Python写一个代理,Qt中的信号槽的用法,Qthread的用法。这些大家都可以通过查看我的源代码来了解。
感谢开源,感谢写出了requestes的kennethreitz和Beautifulsoup的作者,才使得Python才变得如此的好用。
以上是的内容,更多
的内容,请您使用右上方搜索功能获取相关信息。
若你要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内给你回复。
云服务器 ECS
可弹性伸缩、安全稳定、简单易用
&40.8元/月起
预测未发生的攻击
&24元/月起
为您提供0门槛上云实践机会
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供
密码爆破程序技术讲解相关信息,包括
的信息,所有密码爆破程序技术讲解相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
支持与服务
资源和社区
关注阿里云
International页面已拦截
无锡网警提示您:
该网址被大量用户举报,可能含有恶意信息。没有更多推荐了,
不良信息举报
举报内容:
burpsuite爆破密码(含验证码)
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!

我要回帖

更多关于 burpsuite拦截验证码 的文章

 

随机推荐