【问题标题】:Bash script for automating cntlm proxy password generation用于自动生成 cntlm 代理密码的 Bash 脚本
【发布时间】:2016-08-24 15:06:16
【问题描述】:

我想使用工具 cntlm 通过对我们公司代理服务器的基本身份验证进行身份验证,该代理服务器使用 ntlm 协议。

CNTLM 使用 cntlm.conf 文件来获取您的代理身份验证凭据。 如果您不想以纯文本形式使用密码,可以使用该命令生成哈希。 (这就是我想要的!)

cntlm -u <user> -d <domain> -f -H

这里的问题是,我们在这里使用滚动密码策略,我想编写一个 bash 脚本来自动生成哈希、插入配置文件并重新启动 cntlm 服务。

不幸的是,上面显示的命令以交互方式生成密码哈希,我找不到将其包装在 bash 脚本中的方法。

我是一个 bash 脚本新手,可以在这里使用一些建议;)

【问题讨论】:

  • 你知道shell脚本应该传递给cntlm吗?我的意思是它取决于用户,或者您可以自动检索这些值。
  • 我必须插入密码,所以这取决于用户......但我想我可以将它包装起来并将它作为参数传递给cntlm,但这不起作用,或者我没有'不知道怎么做
  • 当然你可以把它包起来。将输入传递给交互式程序也不是问题。我只是不太明白这个问题。
  • 问题如下:如果我从用户那里得到一个交互式输入,我如何以交互方式将它传递给 cntlm 命令? cntlm 需要以交互方式获取密码信息以生成哈希。如果我只是运行 cntlm 并像 cntlm -u <user> -d <domain> -f -H > hashes 那样通过管道传输它,它不会等待交互式输入。
  • 我还是不明白。要将某些内容传递给交互式程序,您可以使用此处的文档tldp.org/LDP/abs/html/here-docs.html

标签: bash shell scripting interactive


【解决方案1】:

对于我的 cntlm 版本 (0.92.3),一个简单的回声管道就像魅力一样工作:

回显“密码”| cntlm -u 用户 -d 域 -f -H

【讨论】:

  • 在 Windows(尤其是 cmd.exe)上,在管道生成之前跳过引号和空格 echo PASSWORD| cntlm -u USER -d DOMAIN -f -H
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-03
  • 2014-10-28
  • 2013-04-14
  • 2016-04-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多