当前位置:   article > 正文

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

hydra没有exe

前言

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

密码生成器:

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

3 例子走一波

基本使用都是这个套路:

  1. 单点:hydra 各类参数(如:-I -f -vV) -l 账号 -P 密码字典  -o 结果存储文件  服务名://地址
  2. 批量: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

结果:

  1. 192.168.27.46
  2. 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

待续......

 

 

 

 


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

 

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号