=Start=
缘由:
在学习screen命令的使用的时候,看到了下面的几个命令/功能:
- Ctrl + a x :锁屏(需要你有该Linux登录用户的登录密码才能解锁,否则,当前的会话终端算是废了,你需要重新打开一个终端才行)(锁屏后,重新登录一个设置过密码的screen会话,你需要输入2次密码,第一次是输入Linux系统的登录密码,第二次是输入该screen会话的密码)
- Ctrl + a :password :设置screen会话的密码(如果你不将加密后的密码串放入「~/.screenrc」文件中,那screen只会加密当前会话;如果将加密后的密码串放入「~/.screenrc」中,则默认都是需要该密码进行访问控制的)
- Ctrl + a ] :粘贴screen剪贴板中的内容
觉得挺好的,所以自己实际测试了一下,整理之后便有了本文。
参考解答:
默认情况下,screen会话的密码是该Linux用户的登录密码,但是,你懂的,在一个共享的多用户主机上这样不太安全,所以,会有以下几种情况出现:
1.没有screen会话密码;
2.忘记screen会话密码;
3.想换screen会话密码;
针对第1种情况,再开一个终端然后「screen -r $screen_id」重新载入就行;
针对第2种情况,那还是算了吧(最后要么想起来密码,要么kill掉该会话吧);
针对第3种情况,按照下面的操作进行:
====
按下 Ctrl-a 然后再输入 :password 命令,连续输入2次新密码,这时就会产生加密后的密码串了,不过存放在screen的剪贴板中,你可以通过按键「Ctrl-a ]」将screen剪贴板中的内容粘贴出来(这里假设加密后的内容为 HGEmTnrfDQsqM),然后编辑或新建screen的配置文件 ~/.screenrc 添加如下内容:
password HGEmTnrfDQsqM
重启screen然后进行载入会话测试:
screen -r $screen_id
就会提示你输入session的密码了。
参考链接:
http://damien.krotkine.com/2011/09/01/protect-a-screen-session-with-a-password.html
说明:
上面的操作是针对于——已知/存在Linux用户登录密码的情况下进行的,如果你的Linux系统是「密钥登录」或「免密码登录」的情况,好像还真不行……除非你知道Linux用户的登录密码。
并且,即便这样做了之后,root用户想要获取你screen会话的内容还是有很多方法的,最多也只是麻烦一点而已,因为在Linux系统下「root can do anything」。
=END=
《“用密码保护你的screen会话”》 有 1 条评论
GNU Screen 4.5.0 – Privilege Escalation
https://www.exploit-db.com/exploits/41154/
GNU Screen 4.5.0 – Privilege Escalation (PoC)
https://www.exploit-db.com/exploits/41152/