johntheripper:John the Ripper使用介绍说明

=
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 同 样 拷入 此 目 录 这 样 我 们 就 完 成 了 解 密 准 备 工 作



现 在 开 始 进 行 解 密 步 骤:





先 消 灭 FOOL USER 就 是 “笨 蛋 用 户”:
john -single shadow.txt

再 消 灭 稍 微 聪 明 用 户:
john -wordfile:password.lst -rules shadow.txt

最 后 进 行 大 屠 杀:
john -i:all shadow.txt
当 然 了 第 3 步 可 能 要 你 电 脑 跑 上 10000 年


解 释:





步 主 要 针 对 笨 蛋 而 进 行 原 理 是 根 据 用 户 名 称 加 上 常 见 变 化 而 猜 测 密 码 般 所 谓 笨 蛋 是 这 样 比 如 此 用 户 叫 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 d in crackers I've seen, but are pretty efficient
# so I 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 根 据 键 盘 排 列 规 则 转 换 为 “sht 键” + “对 应 键” 所 得 到 单 词 如 “12345” -> “!@#$%”
~I 进 行 字 母 大 小 写 转 换 不 影 响 数 字 及 非 字 母 其 他 值 如 “Fool123” -> “fOOL123”
~v 将 单 词 中 所 有 元 音 字 母 转 为 小 写 如 “Crack96” -> “CRaCK96”
~> 根 据 键 盘 排 列 方 式 将 所 有 字 母 右 移 例 如 我 们 可 以 看 到 键 盘 字 母 “c” 键 右 边 是 “v” 键 则 “Crack96” -> “Vtsvl07”
~< 和 上 不 过 是 左 移 如 “Crack96” > “Xeaxj85”

针 对 “single crack” 模 式 专 用 指令

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

1 对 第 个 单 词 规 则
2 对 第 2 个 单 词 规 则
+ 对 于 完 成 以 上 1、 2 规 则 变 换 后 所 得 到 单 词 再 进 行 其 他 变 换
(要 求 “+” 必 需 只 用 在 “1” 或 “2” 的 後, 也 就 是 1+2 或 2+1)
(Chinaroot 备 注: 以 下 段 我 不 太 明 白 所 以 英 文 照 抄 天 晓 得 “GECOS” 是 什 么 东 西 !@$#$%&%$)
If you use some of the above commands in a rule, it will _disibledevent=>


  • 篇文章: 浅析黑客工具包构成和使用

  • 篇文章: 黑客法宝SSS应用指南
  • Tags:  johnthewhistler johnoftheglen jacktheripper johntheripper

    延伸阅读

    最新评论

    发表评论