在 hashcat 中随时间输出进度

Output progress over time in hashcat

我正在分析一段时间内破解的哈希值。 我希望每 10 秒保存一次破解的当前状态。

'''

回收........:132659/296112 (44.80%) 摘要,0/1 (0.00%) 盐 Recovered/Time...: CUR:3636,N/A,N/A AVG:141703,8502198,204052756(分、时、日) 进度…………:15287255040/768199139595 (1.99%)

'''

我希望这 3 行状态每 10 秒左右保存一次。 是否可以在 hashcat 中执行此操作,或者我需要在 python 中制作一个单独的脚本?

每 10 秒获取一次状态

您可以使用 --status 启用打印状态,您可以使用 --status-timer X 将状态设置为每 X 秒打印一次。您可以在 hashcat options wiki 页面或 hashcat --help.

上查看这些命令行参数

示例:hashcat -a 0 -m 0 example.hash example.dict --status --status-timer 10


保存所有状态

我假设您只想保存 hashcat 在 运行 时打印的所有内容。一个简单的方法就是将所有内容从 stdout 复制到一个文件中。这是一个很受欢迎的 s/o 问题,所以我们只使用 this answer.

为了安全起见,让我们使用附加到文件的 -a,这样我们就不会不小心覆盖以前的运行。我们需要做的就是在 hashcat 调用之后放置 | tee -a file.txt


解决方案

试一试,它应该将所有状态(以及来自标准输出的所有其他内容)保存到 output.txt:

hashcat -a A -m M hashes.txt dictionary.txt --status --status-timer 10 | tee -a output.txt

只需将 A、M、hashes.txt 和 dictionary.txt 替换为您正在使用的参数即可。

如果您需要帮助从这个输出文件中获取 "Recovered" 行,或者如果这在您的计算机上不起作用(我在 OSX),请通过评论。

除了 Andrew Zick 的回答之外,请注意对于机器可读 status,hashcat 具有对机器可读输出的本机支持 - 请参阅 --machine-readable 选项。这会产生制表符分隔的输出,如下所示:

STATUS  5       SPEED   111792  1000    EXEC_RUNTIME    0.007486        CURKU   1       PROGRESS        62      62     RECHASH  0       1       RECSALT 0       1       REJECTED        0       UTIL    -1
STATUS  5       SPEED   14247323        1000    EXEC_RUNTIME    0.038953        CURKU   36      PROGRESS        2232   2232     RECHASH 0       1       RECSALT 0       1       REJECTED        0       UTIL    -1
STATUS  5       SPEED   36929864        1000    EXEC_RUNTIME    1.661804        CURKU   1296    PROGRESS        80352  80352    RECHASH 0       1       RECSALT 0       1       REJECTED        0       UTIL    -1
STATUS  5       SPEED   66538858        1000    EXEC_RUNTIME    3.237319        CURKU   46656   PROGRESS        28926722892672  RECHASH 0       1       RECSALT 0       1       REJECTED        0       UTIL    -1
STATUS  5       SPEED   63562975        1000    EXEC_RUNTIME    3.480536        CURKU   1679616 PROGRESS        104136192       104136192       RECHASH 0       1       RECSALT 0       1       REJECTED        0       UTIL    -1

...这正是像 Hashtopolis 这样的工具用来为 hashcat 输出提供前端的工具。

对于机器可读的输出,选项--outfile--outfile-format可用。有关 --outfile-format:

的选项,请参阅 hashcat --help 输出的 Format 部分
- [ Outfile Formats ] -

  # | Format
 ===+========
  1 | hash[:salt]
  2 | plain
  3 | hex_plain
  4 | crack_pos
  5 | timestamp absolute
  6 | timestamp relative