实例操作

登录名和密码

你有很多种方式来指定尝试的登录名和密码,使用 “-l” 选项指定单个登录名,使用 “-p” 选项指定单个密码。使用 “-L” 选项指定一个文件来指定多个登录名,使用 “-P” 选项指定一个文件来指定多个密码。例如:

hydra -l admin -p password ftp://localhost/
hydra -L default_logins.txt -p test ftp://localhost/
hydra -l admin -P common_passwords.txt ftp://localhost/
hydra -L logins.txt -P passwords.txt ftp://localhost/
1234

此外,你可以通过指定 “-e” 选项尝试基础的密码,”-e” 选项有三个参数:

  • s - 使用登录名作为密码
  • n - 使用空密码
  • r - 将登录名倒序作为密码

如果你想使用这个选项,尝试使用组合的方式指定,比如可以使用 “-e sn” 指定使用登录名作为密码和尝试空密码。

除了使用 -p/-P 外,还有一种指定登录名密码的方式,使用 “登录名:密码” 的格式放到文件中指定,例如:

admin:password
test:test
foo:bar
123

这是一种公共的默认的账号列表格式,这种格式也是一开始提到的 “dpl4hydra.sh” 生成的默认账号文件的格式。

你可以使用 “-C” 选项指定该格式的文件,当使用这种账号模式时,就不能再使用 “-l/-L/-p/-P” 选项(不过可以使用 “-e nsr” 选项)。

例子:

hydra -C default_accounts.txt ftp://localhost/
1

最后,还有一种Brute Force模式(暴力模式),使用 “-x” 选项指定(此选项不能和 “-p/-P/-C” 选项一起使用):

-x minimum_length:maximum_length:charset
1

上面的 charset 位置,使用 a 表示小写字母,A 表示大写字母,1 表示数字,and for anything else you supply it is their real representation.

例子:

  • -x 1:1:a 生成一个字符的并且小写字母的密码。也就是说该参数会尝试从a到z共26个密码。
  • -x 1:3:a 生成长度为1到3个字符并且全部小写字母的密码
  • -x 2:5:/ 生成长度为2到5个字符并且只包含斜杠的密码
  • -x 5:8:A1 生成长度为5到8个字符并且有大写字母和数字的密码

例子:

hydra -l ftp -x 3:3:a ftp://localhost/
1

模块的特殊选项

通过第三个命令行参数(目标主机 服务名称 选项)或者使用 “-m” 选项,你可以给模块加一个选项。很多模块可以加,有一些必须加。

查看特定模块的选项,执行:

hydra -U <module>
1

例如:

./hydra -U http-post-form
1

特定的选项可以通过 “-m” 参数指定,作为第三个命令行参数或者直接写在 “service://target/option” 格式中。

例子:(这些都是等价的)

./hydra -l test -p test -m PLAIN 127.0.0.1 imap
./hydra -l test -p test 127.0.0.1 imap PLAIN
./hydra -l test -p test imap://127.0.0.1/PLAIN
123

恢复 中止/崩溃 的会话

当hydra终止后,可能是因为Control-C,进程被杀死,或者崩溃,它会留下一个 “hydra.restore” 文件,这个文件包含了所有的恢复会话所需的必要信息。这个会话文件每隔5分钟写一次。

注意:hydra.restore文件不能复制到不同的平台下(例如:在不同的字符编码的平台间复制,或者不同的操作系统)。

如何 扫描/破解 代理服务器

环境变量 “HYDRA_PROXY_HTTP” 定义了Web代理(这种只能用于http服务)。格式如下:

HYDRA_PROXY_HTTP="http://123.45.67.89:8080/"
HYDRA_PROXY_HTTP="http://login:password@123.45.67.89:8080/"
HYDRA_PROXY_HTTP="proxylist.txt"
123

最后一个示例是一个文本文件包含多达64个代理(格式定义与其他示例相同)。

对于所有其他的服务,使用 “HYDRA_PROXY” 环境变量去扫描/破解。例如:

HYDRA_PROXY=[connect|socks4|socks5]://[login:password@]proxy_addr:proxy_port
1

例子:

HYDRA_PROXY=connect://proxy.anonymizer.com:8000
HYDRA_PROXY=socks4://auth:pw@127.0.0.1:1080
HYDRA_PROXY=socksproxylist.txt
123

附加提示

  • 按可能性对密码文件内容进行排序,并且使用 “-u” 选项查找最快的密码!

  • 去除密码字典中重复的密码! 这将会节省很多时间 :-)

    cat words.txt | sort | uniq > dictionary.txt
    1
  • 如果你知道目标密码的策略(只允许用户使用最少6个字符,包含至少一个字母和一个数字,等等。你可以使用hydra自带的 “pw-inspector” 工具来减少密码列表:

    cat dictionary.txt | pw-inspector -m 6 -c 2 -n > passlist.txt
    1

结果输出

破解结果会和其它信息一起输出到标准输出。通过指定 “-o” 命令行参数,可以将破解结果写入一个文件。使用 “-b” 选项指定输出的格式。目前支持如下几个格式:

  • text - 普通文本。
  • jsonv1 - 1.x版本使用的JSON数据格式(见下)。
  • json - 最后一个版本使用的JSON数据格式,当前最后一个版本就是1.x。

如果使用JSON输出,当hydra启动报错时,结果文件中可能会有非JSON格式的数据,可能会导致解析报错,需要特殊处理。

JSON格式

这里有一个JSON输出的数据格式示例。注意某些字段信息的标记说明:

  • errormessages - 该字段是一个数组,包含有hydra运行结束后的错误输出。输出的内容很随意,没有任何格式。
  • success - 表明hydra是否没有出现任何错误成功执行完成。(注意 不是表示有没有发现弱口令)。根据是否完成取值true或false。
  • quantityfound - 发现的用户名密码对的数量。
  • jsonoutputversion - Schema版本, 1.00, 1.01, 1.11, 2.00, 2.03, 等等。

1.00 版本例子:

{
    "errormessages": [
        "[ERROR] Error Message of Something",
        "[ERROR] Another Message",
        "These are very free form"
    ],
    "generator": {
        "built": "2018-03-01 14:44:22",
        "commandline": "hydra -b jsonv1 -o results.json ... ...",
        "jsonoutputversion": "1.00",
        "server": "127.0.0.1",
        "service": "http-post-form",
        "software": "Hydra",
        "version": "v8.5"
    },
    "quantityfound": 2,
    "results": [
        {
            "host": "127.0.0.1",
            "login": "bill@example.com",
            "password": "bill",
            "port": 9999,
            "service": "http-post-form"
        },
        {
            "host": "127.0.0.1",
            "login": "joe@example.com",
            "password": "joe",
            "port": 9999,
            "service": "http-post-form"
        }
    ],
    "success": false
}
12345678910111213141516171819202122232425262728293031323334

速度

使用并行特性,密码破解速度会非常快,但是,它取决于协议,不同协议速度不同。通常最快的是POP3和FTP。

尝试改变 “-t” 选项的参数去加快速度,参数值越大,速度越快(当然如果过快可能会使服务宕掉,或者会触发服务的登录保护机制)

本文章首发在 网安wangan.com 网站上。

上一篇 下一篇
讨论数量: 0
只看当前版本


暂无话题~