CentOS下利用systemtap抓取ssh登录的用户名和密码

分类:CentOS教程 阅读:94358 次

systemtap是一款非常强大内核调试工具,可以debug很多关于kernel层的问题。Linux是通过PAM模块检测用户信息和认证信息的,从而确定一个用户是否可以登录系统,利用这个知识点,使用systemtap捕获一下pam_unix.so该动态库文件的函数调用,获得用户在ssh远程登录时的用户名和密码吧。

测试环境:CentOS6.432bit

内核版本:2.6.32-358.el6.i686

首先安装以下rpm包
yum--releasever=6.4update

yuminstall-ysystemtap

debuginfo-install$(rpm-qf/lib/security/pam_unix.so)

创建文件,写入以下代码
touch/root/capture_pass.stp


赋予可执行权限
chmod+xcapture_pass.stp
创建一个记录密码的文件
touchpassword.txt
执行systemstap脚本
stapcapture_pass.stp-opassword.txt

CentOS下利用systemtap抓取ssh登录的用户名和密码

本地执行capture_pass.stp脚本,同时ssh远程登录系统,即使第一次登录失败也没有问题,不会记录尝试输入的错误密码。登录成功后ctl+C终止脚本运行,查看password.txt,成功捕获。systemstap很强大的利器,所以只有超户可以使用。
CentOS下利用systemtap抓取ssh登录的用户名和密码