-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 中 起 头 为 # 的 行 为 注 释 行, 程序 在 遇 到 此 行 时 自 动 跳 过。
“:[:cl]” 此 行 表 示 使 用 用 户 名 自 身 作 为 密 码 进 行 尝 试, 即 fool, 而 “[:cl]” 在 保 持 原 字 母 不 变 的 前 提 下, 首 先 强 制 第 一 个字 母 大 写 “c”, 其 余 字 母 均 变 为 小 写 “l”, 即: Fool, 也 就 是 说 此 行 导 致 john 尝 试 使 用 fool 和 Fool 两 个 单 词 进 行 解 密。 “>6x06” 表 示 当 用 户 名 大 于 6 个 字 符 的 时 候, 从 第 0 个 算 起, 截 断 至 第 5 个, 则 共 保 留 下 6 个 字 母, 其 余 丢 弃 不 用。 如: 用 户 名 为 foolers, 则 会 产 生 如 下 被 尝 试 的 密 码: 即 fooler。 “>7lx07” 和 上 面 相 同, 此 行 对 于 >7 的 用 户 名, 截 断 至 7 个 字 母, 而 且 使 用 “l” 强 制 使 用 小 写 字 母。 “>6/?ulx06” 表 示 对 于 长 度 >6 的 用 户 名, 截 断 至 6 个, 强 制 小 写, “/?u” 则 表 示 只 有 在 用 户 名 中包 含 小 写 字 母 “u” 才 有 效, 否 则 跳 过 整 条 规 则,不 进 行 尝 试。 例 如 对 于 “foolers” 此 规 则 不 起 作 用, 因 为 “foolers” 中 不 包 含 小 写 字 母 “u”。 “>5x05” 和 上 几 个 例 子 相 同, 不 用 解 释 了。 其 余 部 分 自 己 参 考 john.ini, 具 体 参 数解 释 如 下: john.ini中的每一行均由“条件指令”+“规则指令”组成。
位 于 起 始 部 分 的 “条 件 指 令”: : 表示保持字母不变。 >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 个 的 单 词。 具 体 的 例 子 就 不 列 举 了, 上 面 已 经 谈 过 了。以 下 是 一 些 用 于 字 母 变 化 的 命 令: 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 开 始 计。 “字 母 组” 的 定 义 如 下: ?? 等 于 字 母 “?”。 ?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 就 表 示“所 有 非 数 字 的”。 以 下 是 一 些 附 加 的 指 令: { 单 词 循 环 左 移 一 位: “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”。 针 对 “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”。 批 处 理 规 则: 你 可 以 使 用 “[]” 来 使 用 一 批 字 符, 如 “[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, 尝 试 进 行 解 密。
复制本页网址和标题,发送给你QQ/Msn的好友一起分享
上一篇:101款精典黑客小工具
下一篇:UNIX的Shell命令详解