美文网首页DevOps
跳板机MFA自动登录 (Mac环境)

跳板机MFA自动登录 (Mac环境)

作者: 国服最坑开发 | 来源:发表于2022-03-01 16:22 被阅读0次
naruto

0x01 痛点

跳板机一般以ssh 方法登录, 但我们一般都会给跳板机再安排一个 2FA/MFA 动态认证码.
那么普通的 expect 大法, 就不满足我们的一键登录了.
好在这个痛点早就有人解决了, 这里记录一下使用方法.

0x02 目标

最终的代码如下:

#!/usr/bin/expect
spawn ssh -p 22 USER@1.2.3.4
expect "*password*" {send "PWD\r"}
expect "*auth*" {
        set code [exec oathtool --totp -b SECKEY ]
        send "$code\r"}
interact

其中, USER, PWD 就是跳板机的固定登录信息.
SECKEY 是 MFA 的 密钥, 后面会讲到如何提取.

0x03 依赖安装

  • 第一个需要安装的工具: oath-toolkit , 可以实现动态提取 MFA 码.
    brew install oath-toolkit

  • SECKEY的提取工具.
    这里用到另外一个 python 开源工具: https://github.com/scito/extract_otp_secret_keys/
    git clone https://github.com/scito/extract_otp_secret_keys.git --depth=1
    下载完成后, 记得先下载各种依赖:

cd extract_otp_secret_keys
python -m venv venv
. venv/bin/activate
pip install -r requirements-buildenv.txt
pip install -r requirements.txt
  • 重点来了: 提取 MFA secret key
    我们可以从 google authenticator 中的已经导入的账号进行二维码分享, 提取二维码信息后保存到文本文件 a.txt
    接下来就可以通过上面的 python 脚本提取 sec key:
    python3.8 extract_otp_secret_keys.py -p a.txt
    正常执行后, 就可以得到 SECKEY 信息:
    SECKEY提取

0x04 使用

将上述得到的 SECKEY代入 第二步代码中, 就完成了一键登录功能.

PS. 我们还可以这样使用 , 在需要网页登录的时候, 不需要去查手机APP啦~

alias smCode="echo `oathtool --totp -b SECKEY `| pbcopy"

命令行输入 : smCode
然后到网页上去 Cmd+V

hf ~

相关文章

网友评论

    本文标题:跳板机MFA自动登录 (Mac环境)

    本文链接:https://www.haomeiwen.com/subject/bsadrrtx.html