网络通信 频道

John the Ripper使用说明

John the Ripper 是什么东西? 如果直译其名字的话就是: JOHN 的撕裂者(工 具)。翻译的很难听吧。 实际上它是一个工具软件, 用于在已知密文的情况下尝试破解出明文的破解密码软件。目前的最新版本是 JOHN 1.4 版, 主要支持对 DES、 MD5 两种加密方式的密文进行破解工作。 它可以工作于多中不同 的机 型 以及多种不同的操作系统之下, 目前已经测试过能够正常运行的操作系统 有: Linux x86, FreeBSD x86, Solaris 2.x SPARC, OSF/1 Alpha, DOS, WinNT/Win95。 在 1998 年年初,JOHN1.4 已经针对 INTEL 的 MMX 处理器进行了针对性的优化, 速度可快 30% 左右。如果你想了解最新的动态,请访问: http://www.false.com/security/john, 这里是 JOHN 的窝点。

-----------------------------
使 用 预 览
------------------------------

以下快速入门针对 PC 用户。
假设你已经取得了某个 SHADOW 文件,并且被存为 SHADOW.TXT 文 件。 在你的硬盘中建一个新的目录, 如 HACK 进入这个目录,将 JOHN1.4 在 此目录中解开,将 SHADOW.TXT 同样拷入此目录,这样我们就完成了解密的准备工作。

现在开始进行解密步骤:

  1. 先 消 灭 FOOL USER, 就是 “笨蛋用户”:
    john -single shadow.txt
  2. 再消灭稍微聪明一点的用户:
    john -wordfile:password.lst -rules shadow.txt
  3. 最 后 进 行 大 屠 杀:
    john -i:all shadow.txt
    当然了, 第三步可能要你的电脑跑上 10000 年。

解 释:

  1. 第一步主要针对笨蛋而进行的,原理是根据用户的名 称, 加上常见的变 化 而猜测密码。 一般所谓的笨蛋是这样的, 比如此用户叫 fool, 而他 的密码是 fool123、 fool1、 loof、 loof123、 lofo...。 这样的用户一般在一分钟内会被全部消灭。
  2. 第 二 部 是 使 用 字 典 文 件 来 进 行 解 密, 不 为 什 么, 只 是 因 为 设 置 密 码 的是 人 而 不 是 机 器, 如 人 们 常 用 hello、 superman、 cooler、 asdfgh、 123456 等 作 为 自 己 的 密 码。 而 -rules 参 数 则 在 此 基 础 上 再 加 上 些 变 化, 如 字 典 中 有 单 词 cool, 则 JOHN 还 会 尝 试 使 用 cooler、 CoOl、 Cool 等 单 词 变 化 进 行 解 密。 一 般 视 SHADOW 中 的 用 户 多 少 及 你 的 字 典 大 小、 你 的 机 器 速 度, 解 密 时 间 从 几 小 时 到 几 天 不 等。
  3. 第 三 步 是 纯 粹 的 碰 运 气 解 法, 主 要 原 理 是 遍 历 所 有 可 能 的 密 匙 空 间。 JOHN 会 尝 试 以 95 个 字 母 (因 为 从 键 盘 上 只 能 输 入 95 种 可 能 的 键 值) 进 行 1-8 (8 个 字 母 是 密 码 的 最 长 值, 所 有 密 码 中 8 位 以 后 的 部 分 均 不 会 被 使 用, 目 前 的 DES 加 密 体 系 就 是 这 样 的) 个 长 度 的 所 有 组 合, 这 是 很 漫 长 的 过 程, 我 们 计 算 一 下: 以 仅 攻 击 一 个 用 户 为 例, MMX200 微 机 一 台 (攻 击 速 度 18000 次/秒), 假 设 遍 历 50% 的 密 码 空 间, 需 要 的 时 间 为:

(95^8+95^7+95^6+95^7+95^6+.....+95^1)/2/18000
=6.7047809E15/18000
=3.7248783E11秒
=10346884.19小时
=4311201.745天
=11811.5年


还 好 在 JOHN 可 以 进 行 自 动 预设 取 值。 所 以 这 样 破 解 密 码 还 是 可 能的, 一 般 的 经 验 是 20 个 小 时 可 能 破 解 一个, 可 能 什 么 都 没 有。


本 文 后 面 介 绍 的 经 验 可 以 帮 助 你 尽快 地 进 行 破 解。


--------------------------
详 细 功 能 说 明
--------------------------


John the Ripper 1.4 是 目 前比 较 好 的 破 解 密 码 工 具, 在 解 密 过 程中 会 自 动 定 时 存 盘, 你 也 可 以 强 迫 中 断解 密 过 程 (用 ctrl+c), 下 次 还 可 以 从 中 断的 地 方 继 续 进 行 下 去 (john -restore), 任 何时 候 敲 击 键 盘, 你 就 可 以 看 到 整 个 解密 的 进 行 情 况, 所 有 已 经 被 破 解 的 密码 会 被 保 存 在 当 前 目 录 下 的 JOHN.POT 文 件中, SHADOW 中 所 有 密 文 相 同 的 用 户 会 被 归成 一 类, 这 样 JOHN 就 不 会 进 行 无 谓 的 重复 劳 动 了。 在 程 序 的 设 计 中, 关 键 的 密码 生 成 的 条 件 被 放 在 JOHN.INI 文 件 中, 你可 以 自 行 修 改 设 置, 不 仅 支 持 单 词 类型 的 变 化, 而 且 支 持 自 己 编 写 C 的 小 程序 限 制 密 码 的 取 值 方 式。 唯 一 的 遗 憾是: 在 自 动 产 生 密 码 的 遍 历 解 密 方 法中 不 支 持 -rules 选 项。 不 过 还 好 有 方 法 可以 克 服。


命令行的参数功能解释
-----------------------


命令行方式: john [-功能选项] [密码文件名]


功 能 选 项 (所 有 的 选 项 均 对 大 小 写 不敏 感, 而 且 也 不 需 要 全 部 输 入, 只 要 在保 证 不 与 其 他 参 数 冲 突 的 前 提 下 输 入即 可, 如 -restore 参 数 只 要 输 入 -res 即 可):



-pwfile:[,..] 用 于 指 定 存 放 密 文 所 在 的 文 件 名,(可 以 输 入 多 个, 文 件 名 一 我 “,” 分 隔, 也 可 以 使 用 * 或 者 ? 这 两 个 通 配 符 引 用 一 批 文 件)。 也 可 以 不 使 用 此 参 数, 将 文 件 名 放 在 命 令 行 的 最 后 即 可。


-wordfile:<字典文件名> -stdin 指 定 的 用 于 解 密 用 的 字 典 文 件 名。 你 也 可 以 使 用 STDIO 来 输 入, 就 是 在 键 盘 中 输 入。


-rules 在 解 密 过 程 中 使 用 单 词 规 则 变 化 功 能。 如 将 尝 试 cool 单 词 的 其 他 可 能, 如 COOLER、 Cool 等, 详 细 规 则 可 以 在 JOHN.INI 文 件 中 的 [List.Rules:Wordlist] 部 分 查 到, 我 们 在 下 面 详 细 解 释。


-incremental[:<模式名称>] 使 用 遍 历 模 式, 就 是 组 合 密 码 的 所 有 可 能 情 况, 同 样 可 以 在 JOHN.INI 文 件 中 的 [Incremental:*****] 部 分 查 到, 我 们 在 下 面 详 细 解 释。


-single 使 用 单 一 模 式 进 行 解 密, 主 要 是 根 据 用 户 名 产 生变 化 来 猜 测 解 密, 可 以 消 灭 笨 蛋 用 户。 其 组 合 规 则 可 以 在 JOHN.INI 文 件 中 的 [List.Rules:Single] 部 分 查 到, 我 们 在 下 面 详 细 解 释。


-external:<模式名称> 使 用 自 定 义 的 扩 展 解 密 模 式, 你 可 以 在 john.ini 中 定 义 自 己 需 要 的 密 码 组 合 方 式。 JOHN 也 在 INI 文 件 中 给 出 了几 个 示 例, 在 INI 文 件 的 [List.External:******] 中 所 定 义 的 自 订 破 解 功 能。


-restore[:<文件名>] 继 续 上 次 的 破 解 工 作, JOHN 被 中 断 后, 当 前 的 解 密 进 度 情 况 被 存 放 在 RESTORE 文 件 中, 你 可 以 拷 贝 这 个 文 件 到 一 个 新 的 文 件 中。 如 果 参 数 后 不 带 文 件 名, J O H N 默 认 使 用 RESTORE 文 件。


-makechars:<文件名> 制 作 一 个 字 符 表, 你 所 指 定 的 文 件 如 果 存 在, 则 将 会 被 覆 盖。 JOHN 尝 试 使 用 内 在 规 则 在 相 应 密 匙 空 间 中 生 成 一 个 最 有 可 能 击 中 的 密 码 组 合, 它 会 参 考 在 JOHN.POT 文 件 中 已 经 存 在 的 密 匙。


-show 显 示 已 经 破 解 出 的 密 码, 因 为 JOHN.POT 文 件 中 并 不 包 含 用 户 名, 同 时 你 应 该 输 入 相 应 的 包 含 密 码 的 文 件 名, JOHN 会 输 出 已 经 被 解 密 的 用 户 连 同 密 码 的 详 细 表 格。


-test 测试当前机器运行 JOHN 的解密速度, 需要1分钟, 它会得出在当前的情况下解密的各种可能情况下相应的解密速度, 如同时解密 100 个用户时的平均速度, 使用遍历法解密模式时解密的速度。 salts 指用户个数, 如果给出的对于 100 个用户解密的平均 速 度 为 18000 次/秒, 那么表明同时对 100 个用户解密, 解密的速度为每个 180 次/秒。 因为绝大多数的时间被用于密匙比较过程中了。 所以应该对用户进行挑选。


-users:[,..] 只 破 解 某 类 型 的 用 户 或 者 属 于 某 个 组 的 用 户。 如 果 得 到 的 PASSWD 文 件 没 有 包 含 密 文, 那 么 在 得 到 SHADOW 后 应 该 进 行 组 合, JOHN 的 附 带 程 序 UNSHADOW.EXE 可 以 完 成 这 一 过 程, 当 然 了, 你 也 可 以 手 工 做。 一 般 的 能 够 进 入 CSH 的 用 户 都 是 解 密 的 首 选 对 象。 也 可 以 要 UID=0 的 ROOT 级 别 的 用 户。


-shells:[!][,..] 和 上 面 的 参 数 一 样, 这 一 选 项 可 以 选 择 对 所 有 可 以 使 用 shell 的 用 户 进 行 解 密, 对 其 他 用 户 不 予 理 睬。 “!” 就 是 表 示 不 要 某 些 类 型 的 用 户。 例 如: “ -shells:csh”。


-salts:[!] 只 选 择 解 密 用 户 大 于 的 帐 号, 可 以 使 你 得 到 选 择 的 权 利, 尽 快 的 得 到 所 需 要 的 用 户 的 PASS。


-lamesalts 指 定 用 户 中 密 码 所 使 用 的 cleartext。 (我 不 大 清 楚 此 功 能 的 作 用)。


-timeout:<几分钟> 指 定 解 密 持 续 的 时 间 是 几 分 钟, 到 时 间 JOHN 自 动 停 止 运 行。


-list 在 解 密 过 程 中 在 屏 幕 上 列 出 所 有 正 在 尝 试 使 用 的 密 码, 建 议 不 要 使 用, 它 会 将 大 部 分 时 间 浪 费 在 显 示 上, 极 大 地 拖 慢 解 密 速 度。 一 般 只 是 适 用 于 重 定 向 输 出 到 文 件 后, 检 验 你 所 设 定 的 某 些 模 式 是 否 正 常。


-beep -quiet 当 解 密 出 密 码 时 是 否 要 让 PC 喇 叭 叫 一 下, 以 提 醒 你。


-noname -nohash 不 使 用 内 存 来 保 存 “用 户 名” 等 内 容。


-des -md5 指 定 使 用 的 解 密 方 式 是 解 DES 还 是 MD5, 对 于 解 密 DES 密 码 不 用 理 会 这 一 选 项。



---------------------------
john 解 密 模 式 详 解
---------------------------


一、“Single Crack” 模式 --- 即“简单解密模式”


这 一 模 式 是 “john” 的 独 到 的 地 方, 主要 原 理 是 根 据 用 户 名 猜 测 其 可 能 的 密码, 当 然 了, 解 密 者 是 计 算 机 而 不 是人, 所 以 需 要 人 为 定 义 相 应 的 模 式 内容。 其 模 式 的 定 义 在 john.ini 中 的 [List.Rules:Single] 部 分, 我 们 选 取 前 几 行 给大 家 做 一 个 解 释, 假 设 有 一 用 户 名 为 fool:



[List.Rules:Single]
###
# Single crack mode rules, extended Crack syntax
###
# Simple rules come first...
:[:cl]-----------------------------------注释1
# These were not included in crackers I''ve seen, but are pretty efficient
# so I include them near the beginning
>6x06------------------------------------注释2
>7lx07-----------------------------------注释3
>6/?ulx06--------------------------------注释4
>5x05------------------------------------注释5


在 john.ini 中 起 头 为 # 的 行 为 注 释 行, 程序 在 遇 到 此 行 时 自 动 跳 过。



  1. “:[:cl]” 此 行 表 示 使 用 用 户 名 自 身 作 为 密 码 进 行 尝 试, 即 fool, 而 “[:cl]” 在 保 持 原 字 母 不 变 的 前 提 下, 首 先 强 制 第 一 个字 母 大 写 “c”, 其 余 字 母 均 变 为 小 写 “l”, 即: Fool, 也 就 是 说 此 行 导 致 john 尝 试 使 用 fool 和 Fool 两 个 单 词 进 行 解 密。
  2. “>6x06” 表 示 当 用 户 名 大 于 6 个 字 符 的 时 候, 从 第 0 个 算 起, 截 断 至 第 5 个, 则 共 保 留 下 6 个 字 母, 其 余 丢 弃 不 用。 如: 用 户 名 为 foolers, 则 会 产 生 如 下 被 尝 试 的 密 码: 即 fooler。
  3. “>7lx07” 和 上 面 相 同, 此 行 对 于 >7 的 用 户 名, 截 断 至 7 个 字 母, 而 且 使 用 “l” 强 制 使 用 小 写 字 母。
  4. “>6/?ulx06” 表 示 对 于 长 度 >6 的 用 户 名, 截 断 至 6 个, 强 制 小 写, “/?u” 则 表 示 只 有 在 用 户 名 中包 含 小 写 字 母 “u” 才 有 效, 否 则 跳 过 整 条 规 则,不 进 行 尝 试。 例 如 对 于 “foolers” 此 规 则 不 起 作 用, 因 为 “foolers” 中 不 包 含 小 写 字 母 “u”。
  5. “>5x05” 和 上 几 个 例 子 相 同, 不 用 解 释 了。

其 余 部 分 自 己 参 考 john.ini, 具 体 参 数解 释 如 下:
john.ini中的每一行均由“条件指令”+“规则指令”组成。



  1. 位 于 起 始 部 分 的 “条 件 指 令”:

    : 表示保持字母不变。

    >n 表 示 满 足 条 件 的 是 字 符 长 度 >n 的 单 词, n 的 取 值 范 围 为 0-9。
    ^x 表 示 在 某 单 词 前 部 添 加 字 母 “x”。
    $y 表 示 在 某 单 词 尾 部 加 上 一 个 字 母“y”。
    l 强 制 整 个 单 词 全 为 小 写 字。
    u 强 制 整 个 单 词 全 为 大 写 字。
    c 强 制 单 词 第 一 个 字 为 大 写 (单 词 的 其 余 部 分 不 受 到 影 响)
    r 将 单 词 反 序 排 列: 如 “fool” -> “loof”。
    d 进 行 单 词 加 倍: 如 “fool” -> “foolfool”。
    f 进 行 单 词 加 倍,后 部 单 词 反 向 写: 如 “fool” -> “foolloof”。
    p 以 一 个 字 母 为 限 度, 在 保 持 单 词 不 变 的 前 提 下, 尝 试 单 词 的 所 有 组 成 字 母 的 大 小 写 组 合, 如 (“fool” -> “Fool”、 “fOol”、 “foOl”、 “fooL)”。
    onx 从 某 单 词 的 第 n (由 0 开 始 计 数) 个 字 母 开 始, 将 原 来 的 字 母 取 代 为 字 母 “x”。 例 如: “o1A” 则 对 于 “fool” 则 产 生 “fAol”。
    inx 从 某 单 词 的 第 n (由 0 开 始 计 数) 个 字 母 开 始, 在 字 母 前 插 入 以 字 母 “x”。 例 如: “i1A” 则 对 于 “fool” 则 产 生 “fAool”。备 注:如 果 指 定 的 值 n> 单 词 总 长 度, 则 相 应 的 插 入 字 符 将 会 添 加 到 单 词的 尾 部。
    xnm 从 单 词 的 第 n 位 开 始, 将 单 词 截 成 最 长 度 为 m 个 的 单 词。 具 体 的 例 子 就 不 列 举 了, 上 面 已 经 谈 过 了。
  2. 以 下 是 一 些 用 于 字 母 变 化 的 命 令:

    sxy 字 母 替 换, 将 某 单 词 中 的 所 有 为 “x” 的 字 母 替 换 成 字 母 “y”。
    s?cy 用 字 母 “y” 来 替 换 单 词 中 的 所 有 包 含 于 “c 字 母 组” 中 的 字 母。 关 于“字 母 组” 下 面 讨 论。
    @x 删 除 单 词 中 所 有 “x” 字 母。
    @?c 删 除 单 词 中 所 有 包 含 于 “c 字 母 组” 中 的 字 母。
    !y 跳 过 所 有 包 含 含 有 字 母 “y” 的 单 词。
    !?c 跳 过 所 有 包 含 含 有 “c 字 母 组” 中 字 母 的 单 词。
    /x 包 含 字 母 “x” 的 单 词 有 效。
    /?c 包 含 在 “c 字 母 组” 中 字 母 的 单 词 为 有 效。
    =nx 所 有 指 定 位 置 n 的 字 母 为 “x” 的 单 词 才 有 效。
    =n?c 所 有 指 定 位 置 n 的 字 母 包 含 于 “c 字 母 组” 的 单 词 才 有 效。备 注: 和 上 面 一 样, 起 始 字 母 位 数 从 0 开 始 计。
  3. “字 母 组” 的 定 义 如 下:

    ?? 等 于 字 母 “?”。
    ?v 等 于 所 有 的 元 音 字 母 “aeiouAEIOU”。
    ?c 等 于 所 有 的 辅 音 字 母 “bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ”。
    ?w 等 于 “白 色 空 格” 符 号: “ ”;
    (原 文 的 whitespace 不 晓 得 如 何 解 释 好, 好 象 可 以 解 释 为 “空 格” 或 者 是 “EOF 结 尾 符”。)
    ?p 等 于 所 有 标 点 符 号 “.,:;''"?!`”。
    ?s 等 于 特 殊 符 号 “$%^&*()-_+=|\<>[]{}#@/~”。
    ?l 等 于 所 有 26 个 小 写 字 母 (“a” 到 “z”)。
    ?u 等 于 所 有 26 个 大 写 字 母 (“A” 到 “Z”)。
    ?d 等 于 10 个 阿 拉 伯 数 字 (“0” 到 “9”)。
    ?a 包 括 所 有 26 个 字 母 的 大 小 写 形 式 (“a” 到 “z” + “A” 到 “Z”)。
    ?x 包 括 26 个 字 母 大 小 写 + 10 个 阿 拉 伯 数 字 (“a-z”+“A-Z”+“0-9”)。

    备 注: 组 名 可 以 用 大 小 写 的 区 别 来 表 示 “逻 辑 非” 的 关 系, 小 写 表 示 肯 定, 大 写 表 示 否 定。例 如: 用 ?d 可 以 表 示 “所 有 数 字”, 而 大 写 ?D 就 表 示“所 有 非 数 字 的”。
  4. 以 下 是 一 些 附 加 的 指 令:

    { 单 词 循 环 左 移 一 位: “fool” -> “oolf”, 当 然 要 左 移 动 两 位 就 表 示 为 “{{”, 以 下 同。
    } 单 词 循 环 右 移 一 位: “fool” -> “lfoo”。
    Dn 删 除 n 位 的 字 母 (由 0 开 计), 切 开 的 右 面 的 单 词 部 分 自 动 接 上, 不 会 流 下 空 格。
    P “crack” -> “cracked”, 使 用 单 词 的 过 去 式, 只 针 对 小 写 单 词 有 效。
    G “crack” -> “cracking”, 使 用 单 词 的 现 在 进 行 式, 同 样 只 针 对 小 写 单 词 有 效。
    ~i 根 据 键 盘 的 排 列 规 则, 转 换 为 “shift 键” + “对 应 键” 所 得 到 的 单 词, 如 “12345” -> “!@#$%”。
    ~I 进 行 字 母 大 小 写 转 换, 不 影 响 数 字 及 非 字 母 的 其 他 值, 如 “Fool123” -> “fOOL123”。
    ~v 将 单 词 中 所 有 元 音 字 母 转 为 小 写, 如 “Crack96” -> “CRaCK96”。
    ~> 根 据 键 盘 的 排 列 方 式 将 所 有 的 字 母 右 移 一 格。 例 如 我 们 可 以 看 到 键 盘 字 母 “c” 键 的 右 边 是 “v” 键, 则 “Crack96” -> “Vtsvl07”。
    ~< 和 上 一 个 一 样, 不 过 是 左 移, 如 “Crack96” > “Xeaxj85”。
  5. 针 对 “single crack” 模 式 的 专 用 指令

    专 用 指 令 有 双 字 串 支 援, 控 制 这 些 指 令 要 套 用 指 令 时 需 要 用 到 下 列 的 命 令:

    1 对 第 一 个 单 词 的 规 则
    2 对 第 二 个 单 词 的 规 则
    + 对 于 完 成 以 上 1、 2 规 则 变 换 后 所 得 到 的 单 词 再 进 行 其 他 的 变 换。
    (要 求 “+” 必 需 只 用 在 “1” 或 “2” 之 後, 也 就 是 1+2 或 2+1)
    (Chinaroot 备 注: 以 下 一 段 我 不 太 明 白, 所 以 英 文 照 抄, 天 晓 得 “GECOS” 是 什 么 东 西, !@$#$%&%$)
    If you use some of the above commands in a rule, it will only process word pairs (full names, from the GECOS information), and reject single words.A ''+'' is assumed at the end of any rule that uses some of these commands,unless you specify it manually. For example, ''1l2u'' will convert the first word to lowercase, the second one to uppercase, and use the concatenation of both. The use for a ''+'' might be to apply some more commands: ''1l2u+r''will reverse the concatenation of both words, after applying some commands to them separately.
    (根 据 本 人 开 始 的 猜 测, 估 计 应 该 是 将 规 则 按 你 要 求 的 顺 序 执 行, 后 来 发 现 猜 错 了, 现 在 终 于 明 白 了。 我 们 已 经 知 道 “l” 命 令 将 字 母 转 为 小 写, 而 “u” 命 令 将 字 母 转 为 大 写, “r” 命 令 将 字 母 的 顺 序 颠 倒, 所 以 对 于 以 下 的 shadow, 进 行 尝 试 的 结果 如 下:
    首 先 是 shadow 部 分:
    root:!2dR3.pEo6#Q:0:1:Super-User:/:/bin/csh
    foolers:% dY).p*12Ver:0:1:AppleUser:/:/bin/csh
    abc:QkzL@4%68tGHI:201:200::/home1/ahb:/bin/csh
    最 后 得 到 如 下 两 个 结 果:
    “1l2u” ------------ “superUSE”、 “userSUPE”
    现 在 终 于 明 白 了, 原 来 此 命 令 只 使 用 shadow 中 的 用 户 注 解 名 (GECOS) 而 非 用 户 名, 而 且 只 对 于 可 区 分 的 由 两 个 单 词 组 成 的 词 组 才 有 效, 如 上 例 的 “Super-User”, 由 于 其 中 间 使 用 了 连 词 符 号 “-”, 被 区 分 为 “Super” + “User”, 系 统 自 动 进 行 “左 结 右” 和 “右 接 左” 的 单 词 组 合, 组 合 后 超 过 8 位 的 部 分 被 截 断; 而 “AppleUser”、 “ahb” 却 未 被 使 用。所 以 基 于 同 样 的 原 理, 以 下 命 令 可以 得 到 的 结 果 如 下:
    “1l2u+r” ---------- “RESUrepu”、“REPUSres”。
  6. 批 处 理 规 则:

    你 可 以 使 用 “[]” 来 使 用 一 批 字 符, 如 “[0-9]” 则 表 示 “0-9” 这 10 个 数 字, 你 也 可 以 混 合 使 字 母 列 表 加 批 量 的 格 式, 如 “[aeiou1-9]” 则 表 示 包 括 所 有 的 元 音 字 母 + “0-9” 十 个 数 字。 简 单 的 例 子 还 有 “[A-Z]”、 “[a-z]”、 “[A-Z0-9]”。 比 方 说: 我 们 加 入 一 行 如: “l$[0-9]”, 则 表 示 强 制 使 用 小 写 字 母, 并 且 在 每 个 字 母 后 面 加 入 “0-9” 这 十 个 数 字, 即: 如 果 用户 名 为 fool, 则 john 尝 试 使 用 fool0、 fool1、 fool2、 ...... fool9, 尝 试 进 行 解 密。

二、 “Wordlist Crack” 模式 --- 即“字典解密模式”



  1. 此 解 密 模 式 需 要 用 户 指 定 一 个 字 典 文 件, john 读 取 用 户 给 定 的 字 典 文 件 中 的 单 词 尝 试 进 行 解 密。 原 理 是: 用 户 经 常 使 用 象 hello、 superman、 computer、 ... 之 类 的 有 意 义 单 词 作 为 自 己 的 密 码。 john 中 自 己 带 了 一 个 字 典, 文 件 名 为: password.lst, 里 面 包 含 了 一 些 常 被 用 来 作 为 密 码 的 单 词。 以 下 给 出 几 个:

    12345、abc123、passwd、123456、Hockey、asshole、newpass、internet、Maddock、newuser、12345678、computer
    00、Horses、Internet、duck2、Mickey、Cowboys、fiction



    当 然 了 所 带 的 字 典 比 较 小, 如 果 你 觉 得 不 够 用, 可 以 到 ftp://coast.cs.purdue.edu/pub/dict 里 找, 可 以 找 到 好 几 十 兆 的 大 字 典 文 件。 使 用 方 法 很 简 单, 假 设 字 典 文 件 名 为: password.lst, shadow 为 shadow.txt, 则 命 令 为:
    john -word:password.txt shadow.txt


  2. 和 “single mode” 一 样, 使 用 “字 典 解 密 模 式” 时, 也 可 以 使 用 “规 则”, 具体 规 则 的 定 义 在 john.ini 中 的 [List.Rules:Wordlist] 部 分, 以 下 抽 取 其 中 的 一 小 段:

[List.Rules:Wordlist]
###
# Wordlist mode rules (use -rules to enable)
###
# Try words as they are
:
# Lowercase every pure alphanumeric word
!?Xl
# Capita

文章转载地址:http://www.cnpaf.net/Class/hack/05121820345142624998.htm

0
相关文章