centos7.4安装配置弱密码审计工具hydra详解

2018年11月18日 8970点热度 1人点赞

一、说明

   最近工作中需要实现一个需求:检查下公司网络中所有服务器及虚拟机,是否有使用默认账号和弱密码来登录管理的。于是先网上搜了下密码审计类的开源工具,发现hydra这个工具用的人蛮多的,功能也很强大,于是拿来安装测试一下!



Hydra 可以根据使用者指定的用户字名典文件、密码字典文件、目标IP列表来暴力破解目标系统登录用户名和密码。并且其支持多种协议以及并发连接!
GitHub项目地址:


经过官方测试,其可以在以下系统中安装使用:
   Linux, Windows/Cygwin, Solaris, FreeBSD/OpenBSD, QNX (Blackberry 10) and MacOS。


本文使用的版本 (Hydra v8.7) 目前支持的协议有:
   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 and v2), SSHKEY, Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC and XMPP.






二、安装hydra

本机环境:



2.1 下载hydra安装包




2.2 安装依赖包

可以根据自己的需求来安装依赖包,需要使用到哪些模块就安装哪些模块需要的包!

2.2.1 以下是官方文档依赖包相关说明:


2.2.2 我这里因为只测试ssh、smb、rdp、telnet这几个模块。所以只安装如下所示包




2.3 编译安装






三、hydra语法格式及常用选项

语法:

常用选项:

选项 说明 示例
-h 查看所有可用的命令行选项 hydra -h
-U 检查模块是否具有可选参数 hydra -U smb
-l 指定用户名 -l zhangsan
-p 指定密码 -p 123456
-C 使用冒号分隔的user:passwd格式,而不是-l/-p -C zhangsan:123456
-L 指定用户名字典文件 -L /root/user.dict
-P 指定密码字典文件 -P /root/passwd.dict
-M 指定目标IP列表文件 -M /root/ip.dict
-e 尝试“尝试登录为密码”和“空密码” -e ns
-s 指定对应模块使用的端口,例如:如果ssh端口不是默认22,这里可以指定 -s 2222
-t 指定线程数,默认16 -t 1
-vV 显示详细破解过程 -vV
-o 指定将结果输出到文件 -o /root/result.txt
-b 指定-o选项输出的结果信息的类型,默认为文本信息,可以自定为jsonv1和json格式。 -b json
-R 恢复先前中止/崩溃的会话(当hydra被Control-C中止,被杀死或崩溃时,它会留下一个“hydra.restore”文件,其中包含恢复会话所需的所有信息。此会话文件每5分钟写入一次。注意:hydra.restore文件不能复制到不同的平台(例如从小端到大端,或从Solaris到AIX)) -R
-I 忽略现有的恢复文件(不要等待10秒) -I
-S 执行SSL连接 -S
-f 在使用-M参数后,找到第一对登录用户和密码的时候终止破解 -f
-W 设置最大超时时间,单位秒,默认30秒 -W 60
-q 不要打印有关连接错误的消息 -q






四、使用ssh模块暴力破解linux服务器用户密码

4.1 指定正确的用户名、密码、目标IP、模块信息,查看一次破解的过程




4.2、指定用户名、密码字典及IP列表破解
   如下所示命令各选项含义:-L指定用户名字典文件、-P指定密码字典文件、-M指定ip列表文件(非标准端口的主机可以加冒号分隔指定端口)、-o指定计算结果以文本格式输出到results.txt文件中、-vV显示详细计算过程信息、-t指定线程为20、-e ns尝试使用空密码和单密码登录、指定使用模块为ssh。







五、使用smb模块暴力破解windows服务器登录密码

windows破解和linux使用选项基本一致,只是使用的模块不同而已,这里就不多做介绍了。但是需要注意的是windows远程桌面rdp模块和文件共享smb模块都只能使用单线程。







六、补充安装模块需要的依赖包

假如有个模块我们因为之前不需要用到或则忘记安装导致没有其需要的依赖包,那么使用这个模块的时候就会报依赖包错误:[ERROR] Compiled without OPENSSL support, module not available!



这个时候,我们只需要安装好这个依赖包,然后重新编译一下hydra就行了。(在之前编译过的包里面,需要执行以下make clean清除下之前的缓存。重新下载的新的hydra安装包,就不需要执行make clean了。直接编译配置完编译安装即可!)



本文参考hydra项目文档:




Chen

健康 · 开心 · 做自己