假设我以以下身份登录鲍勃举办服务器.然后我这样做:
export MYSEC='secret'
假设 Alice 可以访问同一主机并且还具有 sudo 权限。
Alice如何看到MYSEC的值?
注意:假设 Bob 从未关闭会话,因此值保留在那里,我们允许 Alice 工作
答案1
Alice 转储 Bob 正在运行的 shell 进程的内存,在十六进制编辑器中打开转储,查找 MYSEC,然后查看值。
使用过和未使用没有关系。
答案2
抓取内存是哇哇哇事情变得过于复杂。只需在 中查找/proc/<pid>/environ
任何<pid>
由他设置了感兴趣的环境变量的所有者bob
,它就会被删除。该文件中的条目默认以 NULL 分隔;出于显示目的,cat /proc/<pid>/environ | tr '\0' '\n'
建议使用 。
答案3
好吧,对于那些对如何做到这一点感兴趣的人来说:
Alice 登录并搜索 Bob 的 Bash 会话的 PID。
假设是 34232。
然后 Alice 将其内存转储如下:
gdb -p 34232
gcore memory_dump.bin
quit
现在使用以下方式打开文件vim并搜索变量的名称。该操作会重复多次。只需点击n直到找到它。