第一个暗桩 – 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登陆其他机器的时候,其登陆其他机器时输入的密码、地址就会被我们记录下来。如下图
此时我们使用grep,查找密码以及用户登陆的地址:
可以看到成功捕获了用户名、地址、密码
第二个暗桩 – 窃取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 | auth optional looter.so |
保存并退出后,任何使用su命令的普通用户的用户名和密码都将会被捕获
如果想窃取所有ssh到此机器上的用户名/密码,那么就修改/etc/pam.d/
下的sshd文件,同样在最后加上同样的两句语句
保存并退出后,任何使用ssh命令连接到此机器的用户的用户名和密码都将会被捕获
结语
手法要骚,想法要淫荡(笑)