云主机提供给不同的用户,对外开放服务具有多样性,风险点较多。而且用户的安全水平参差不齐,往往出现一些漏洞,比如弱口令。同时,多数用户在使用一些开源产品,比如cms时,不能正确使用,导致很容易被攻击者利用。下面就是这周美团云的工程师帮助用户和入侵者斗智斗勇的事件回顾。
事件概况:
2015年6月29日 ,美团云接到用户反馈,有主机对外做大量的ssh爆破的行为,疑似被入侵。我们迅速对该情况做了分析并还原了整个入侵过程。
取证过程:
我们对遭入侵的主机分别做了白盒和黑盒的测试。在用户的协助下,我们登陆该主机收集了该主机存在所有的日志;然后简单对该服务器做了个黑盒下的测试,服务器出了开放ssh之外还开放了redis nginx,不过nginx没有放任何程序,这点来讲应用层就不存在常见攻击者利用的漏洞了。对于redis来说如果运维不当很容易出现安全问题,这里尝试下容易出现的问题。
目前存在匿名访问的问题。因为不知道网站路径,所以这只能算是个鸡肋漏洞,攻击者无法利用该问题直接入侵该服务器然后对外进行ssh暴力破解。如果可以找网站网站路径就可以顺利getshell。
对该服务器开放6080端口扫描,发现存在一个test1.php phpinfo文件,这里可以清晰的看到整个配置信息,得到路径一枚,下面就可以利用以上两个信息进行getshell操作了。
利用redis控制台的config set命令获得网站shell权限,至此通过两个问题就可以获得网站的权限了,攻击者是否通过这些问题入侵的服务器呢,白盒下通过日志来证明我的猜想。
#p#
白盒测试:
通过secure日志可以看到发现最近一段时间内每天有大量的ssh爆破日志,但并未发现root账号有暴力破解成功的迹象
统计了下登陆失败的日志次数,可以清晰的看到数以千计的失败次数。
可以成功登陆该服务器,
过了一会发现入侵者又登陆上来了,所以可以确定入侵者就是通过这种方式入侵主机。将该登陆的session踢下去,iptables封禁了该IP,然后设置nagios nologin。
确定原因(反渗透取证)
在可以做取证的情况下,我们来判断这一次定点攻击还是批量扫描的结果,攻击者是哪一类人群。日志中发现攻击者留下的IP地址存在bash的shellshock漏洞,访问网站时在user_agent中注入恶意代码即可执行任意命令。
获得服务器权限后,查看该服务器上有大量的扫描工具,并使用saltstack控制了很多肉鸡。。我们挑了一台精壮的服务器以后跑密码用,然后删除了他所有程序。。没错,我们的工程师就是这么好的一个人,一个红领巾。
通过Google该程序发现早期被人写成了蠕虫感染程序做自动化抓取肉鸡,攻击者在获得该服务器控制权后,利用该服务器作为跳板进行二次攻击。
#p#
结论:
攻击者成功入侵了该云主机,并且利用该主机对外做了二次攻击,暴力破解ssh。
确定了被入侵的原因,美团云向客户提交了加固方案:
1. 如果没有重要数据的话,建议重置系统,这样即便有内核级别的rootkit可清除。
2. 删除或加强nagios账号口令。
3. 加强redis口令,设置访问ip。
4. 删除6080端口的test1.php文件。
用户在应用加固方案后,成功阻止了入侵者。