开启辅助访问 切换到窄版

打印 上一主题 下一主题

Linux服务器被攻破?7条指令锁定背后的“他”!

[复制链接]
作者:达益IPHONE 
版块:
嵌入式操作系统 linux 发布时间:2020-5-1 23:59:28
8550
楼主
跳转到指定楼层
| 只看该作者 回帖奖励 |倒序浏览 |阅读模式
引言
大多数受攻击的服务器是由程序执行的,这些攻击者会滥用服务器,只要能正常访问,他们几乎不采取任何预防措施隐藏他们正在做的事。


服务器被攻破的迹象
当一个服务器被一个缺乏经验的,或者程序攻击者破坏时,他们通常会做一些事情来消耗100%的资源。
这种资源通常是用于加密货币挖掘,或发送垃圾邮件,或用于发起DDOS攻击。
这意味着出现问题的第一个迹象是服务器“运行缓慢”。这可能表现在网站服务页面的速度比平时慢得多,或电子邮件需要花费很久才能发送。
那么应该怎么排查呢?
检查清单1 -谁正在登录?
首先要查找的是当前登录到服务器的用户。
发现攻击者实际登录到了服务器,还堂而皇之在上面工作的,并不少见。
可以使用w指令检查。
whois命令可以在IP地址上运行,它会告诉你有关该IP注册到的所在地的所有信息。
检查清单2 -谁已经登录过?
Linux服务器会记录哪些用户登录,从哪个IP登录,登录时间和登录时间。使用最last命令打印此信息。
登录历史记录记录在一个~/.bash_history文件内,因此很容易删除。
通常,攻击者会简单地删除这个文件,以试图掩盖他们的踪迹。
所以,如果你运行last指令,却只看到你的当前登录,这就是一个不太妙了。
如果没有登录历史,就非常非常可疑了,需要继续寻找攻击的迹象。
检查清单3 -命令历史记录
这种级别的攻击者通常不采取任何预防措施,不留下任何命令历史记录,因此运行history命令将向你展示他们所做的一切。
特别留意wget或curl命令,可能会有系统库以外的软件被下载,如spam bots 或 crypto miners。
检查清单4 -CPU
攻击者通常很没有截止,肆无忌惮地耗费着服务资源。这通常很容易发现,只需运行top查看所有的进程。这会显示在没有登录的情况下使用你的服务器。
如果有陌生的进程,可以在网上搜索一下,也可以使用 losf 或 strace 追踪。确定可以PID后这样做:
strace -p PID
这会显示进程正在进行的所有系统调用。有很多信息,但是浏览这些信息会让你对正在发生的事情有一个很全面的了解。
lsof -p PID
这个程序将列出进程已打开的文件。
检查清单5 - 系统进程
如果一个未经授权的进程消耗了CPU资源,仍然可以在 ps 所显示的完整的进程列表中查找到,使用 ps auxf,它可以打印最清晰的信息。
寻找任何您不认识的进程。在服务器上运行ps的次数越多,非法进程就越明显。
检查清单6 - 按进程查看网络使用情况
命令iftop的功能与top类似,用于显示正在发送和接收网络数据,及其源和目标的进程的排序列表。
像DOS攻击或垃圾邮件机器人这样的进程,会立即出现在列表的顶部。
检查清单7 - 哪些进程正在监听网络连接?
通常,攻击者会安装一个除了监听网络端口以获取指令外,什么也不做的程序。这并不消耗CPU或带宽,因为它只是监听状态,所以top指令很难发现。
lsof 和 netstat 命令都将列出所有网络进程。我使用以下选项:
lsof -i
或者
netstat -plunt
你应该排查在 LISTEN 或 ESTABLISHED 中列出的任何进程,因为这些进程要么正在等待连接(LISTEN),要么正在打开连接(ESTABLISHED)。
如果你不认识这些进程,请使用 strace 或 lsof 查看它们在做什么。
挽回:发现被攻击后,该怎么办?
首先要做的是不要惊慌,特别是在攻击者当前登录的情况下。你需要能够在攻击者意识到你来了之前,收回对计算机的控制。
如果他们知道行踪败露,很可能会先把你踢出去,并开始恶意破坏任何资源。
如果你不是很专业,那么只需关闭服务器。
shutdown -h now
或者
systemctl poweroff
如果是云服务器,到控制面板关闭服务器就行了。一旦它被关闭,你就可以根据需要设置的防火墙规则。
如果你觉得更有信心,主机提供商有一个上游防火墙,然后按这个顺序创建和启用以下两个规则:

  • 只允许你的IP地址可以通过SSH访问;
  • 关闭一切网络服务东西,不仅仅是SSH,而是每个端口上的每个协议。
这将立即终止攻击者们的SSH会话,只允许你访问服务器。
如果你不能访问上游防火墙,则必须在服务器本身上创建并启用这些防火墙规则,然后,当这些规则起作用时,使用 kill 命令杀掉攻击者的ssh会话。
最后,如果有别的连接方式,可以登录到服务器,就能用 systemctl stop network.service 停止连网。
这将完全停止任何网络访问,你有大量的时间配置和启用防火墙规则。
写在最后
纵使重新控制了服务器,还没完呢。
不要试图修复问题,继续使用服务器。你永远无法确定攻击者做了什么,因此也无法保证服务器是安全的。
唯一明智的做法是复制所有需要的数据,然后重新安装。
Happy coding :)
我是@程序员小助手,持续分享编程知识,欢迎关注。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表