Kali中密码暴力破解工具hydra的使用
前言
hydra是著名黑客组织thc的一款开源的暴力破解密码工具,功能非常强大,kali下是默认安装的,几乎支持所有协议的在线破解。密码能否破解,在于字典是否强大。本文仅从安全角度去讲解工具的使用,请勿用于非法用途。
hydra参数讲解
hydra是区分大小写的
-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 #指定服务名
OPT #可选项
使用方法:hydra <参数> <IP地址> <服务名>
操作演示
这里我为了演示写了两个弱口令文本,在真实环境中需要用到强大得字典。
破解ssh
hydra -L user.txt -P pass.txt -t 2 -vV -e ns 192.168.124.10 ssh
破解ftp
hydra ip ftp -l 用户名 -P 密码字典 -e ns -vV
破解teamspeak
hydra -l 用户名 -P 密码字典 -s 端口号 -vV ip teamspeak
破解pop3 hydra -l muts -P pass.txt my.pop3.mail pop3
这里就不依次说明了。
上文说到,破解的关键在于密码字典得强大与否。所以我们在破解过程中就需要思考,如何获取强大的字典呢。在Kali中内置了很多字典,路径如下:
cd /usr/share/wordlists/
输入ls
查看所有字典,这里详细举例两个目录的
dirb
big.txt #大的字典
small.txt #小的字典
catala.txt #项目配置字典
common.txt #公共字典
euskera.txt #数据目录字典
extensions_common.txt #常用文件扩展名字典
indexes.txt #首页字典
mutations_common.txt #备份扩展名
spanish.txt #方法名或库目录
others #扩展目录,默认用户名、默认密码等
stress #压力测试
vulns #漏洞测试
dirbuster
apache-user-enum-** #apache用户枚举
directories.jbrofuzz #目录枚举
directory-list-1.0.txt #目录列表
需要破解什么就使用什么字典。 光有这些还不够,有时候我们需要特定的字典,比如发现可以暴力破解四位数验证码,这就需要我们生成特定的字典。这样我们就要需要kali下的另一款工具了。
字典生成工具crunch
基本指令
crunch 最小位数 最大位数 指定生成范围
例如,我要生成由三位数和四位数生成的字典,且都有6789组成,如下图
我们还可以将生成的字典输出到特定文件中,格式如下
crunch 3 4 6789 >>/home/kali/Desktop/pass.txt
就分享到这里了。大家有什么小技巧可以留言。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android webveiw 出现栈错误解决办法
- Android开发之实现手势滑动的功能
- Android编程实现带有单选按钮和复选按钮的dialog功能示例
- Android中Retrofit 2.0直接使用JSON进行数据交互
- Android自定义Drawable实现圆形和圆角
- Android jni调试打印char阵列的实例详解
- 写JavaScript函数不得不知的高级技巧
- Android编程视频播放API之MediaPlayer用法示例
- Android实现点击缩略图放大效果
- Android 应用签名的两种方法
- Android 关闭多个Activity的实现方法
- 我从Vue源码中学到的一些JS编程技巧
- 组复制升级 | 全方位认识 MySQL 8.0 Group Replication
- 浅谈关于Android WebView上传文件的解决方案
- Android对图片Drawable实现变色示例代码