请选择 进入手机版 | 继续访问电脑版
您好,欢迎来到新创意SEO  

新创意SEO

 找回密码
 立即注册

原创展

  • 18威望
  • 154积分
  • 57帖子
    • 等级 2SEO书生
    UID
    34447
    日志
    0
    精华
    0
    在线时间
    24 小时
    个人主页
    发表于 2019-9-25 10:10:35 |显示全部楼层
    马上注册,结交更多好友,享用更多功能,让你轻松玩转新创意SEO。 立即注册  已有账号?点击登录 您也可以直接QQ登录 微博登录关闭

    如何判断 Linux 服务器是否被入侵? [复制链接]

    本文中所谓的服务器被入侵或者说被黑了的意思,是指未经授权的人或程序为了自己的目的登录到服务器上去并使用其计算资源,通常会产生不好的影响。
    免责声明:若你的服务器被类似 NSA 这样的国家机关或者某个犯罪集团入侵,那么你并不会注意到有任何问题,这些技术也无法发觉他们的存在。然而,大多数被攻破的服务器都是被类似自动攻击程序这样的程序或者类似“脚本小子”这样的廉价攻击者,以及罪犯所入侵的。这类攻击者会在访问服务器的同时滥用服务器资源,并且不怎么会采取措施来隐藏他们正在做的事情。

    被入侵服务器的症状
    当服务器被没有经验攻击者或者自动攻击程序入侵了的话,他们往往会消耗 100% 的资源。他们可能消耗 CPU 资源来进行数字货币的采矿或者发送垃圾邮件,也可能消耗带宽来发动 DoS 攻击。
    因此出现问题的第一个表现就是服务器 “变慢了”。这可能表现在网站的页面打开的很慢,或者电子邮件要花很长时间才能发送出去。

    那么你应该查看那些东西呢?
    检查 1 - 当前都有谁在登录?
    你首先要查看当前都有谁登录在服务器上。发现攻击者登录到服务器上进行操作并不复杂。
    其对应的命令是 w。运行 w 会输出如下结果:
    08:32:55 up 98 days, 5:43, 2 users, load average: 0.05, 0.03, 0.00USER TTY FROM LOGIN IDLE JCPU PCPU WHAT
    root pts/0 113.174.161.1 08:26 0.00s 0.03s 0.02s ssh root@coopeaa12root pts/1 78.31.109.1 08:26 0.00s 0.01s 0.00s w
    第一个 IP 是英国 IP,而第二个 IP 是越南 IP。这个不是个好兆头。
    停下来做个深呼吸, 不要恐慌之下只是干掉他们的 SSH 连接。除非你能够防止他们再次进入服务器,否则他们会很快进来并踢掉你,以防你再次回去。
    请参阅本文最后的“被入侵之后怎么办”来看找到了被入侵的证据后应该怎么办。
    whois 命令可以接一个 IP 地址然后告诉你该 IP 所注册的组织的所有信息,当然就包括所在国家的信息。

    检查 2 - 谁曾经登录过?
    Linux 服务器会记录下哪些用户,从哪个 IP,在什么时候登录的以及登录了多长时间这些信息。使用 last 命令可以查看这些信息。
    输出类似这样:
    root pts/1 78.31.109.1 Thu Nov 30 08:26 still logged inroot pts/0 113.174.161.1 Thu Nov 30 08:26 still logged inroot pts/1 78.31.109.1 Thu Nov 30 08:24 - 08:26 (00:01)
    root pts/0 113.174.161.1 Wed Nov 29 12:34 - 12:52 (00:18)
    root pts/0 14.176.196.1 Mon Nov 27 13:32 - 13:53 (00:21)
    这里可以看到英国 IP 和越南 IP 交替出现,而且最上面两个 IP 现在还处于登录状态。如果你看到任何未经授权的 IP,那么请参阅最后章节。
    登录后的历史记录会记录到二进制的 /var/log/wtmp 文件中(LCTT 译注:这里作者应该写错了,根据实际情况修改),因此很容易被删除。通常攻击者会直接把这个文件删掉,以掩盖他们的攻击行为。 因此, 若你运行了 last 命令却只看得见你的当前登录,那么这就是个不妙的信号。
    如果没有登录历史的话,请一定小心,继续留意入侵的其他线索。

    检查 3 - 回顾命令历史
    这个层次的攻击者通常不会注意掩盖命令的历史记录,因此运行 history 命令会显示出他们曾经做过的所有事情。 一定留意有没有用 wget 或 curl 命令来下载类似垃圾邮件机器人或者挖矿程序之类的非常规软件。
    命令历史存储在 ~/.bash_history 文件中,因此有些攻击者会删除该文件以掩盖他们的所作所为。跟登录历史一样,若你运行 history 命令却没有输出任何东西那就表示历史文件被删掉了。这也是个不妙的信号,你需要很小心地检查一下服务器了。(LCTT 译注,如果没有命令历史,也有可能是你的配置错误。)

    检查 4 - 哪些进程在消耗 CPU?
    你常遇到的这类攻击者通常不怎么会去掩盖他们做的事情。他们会运行一些特别消耗 CPU 的进程。这就很容易发现这些进程了。只需要运行 top 然后看最前的那几个进程就行了。
    这也能显示出那些未登录进来的攻击者。比如,可能有人在用未受保护的邮件脚本来发送垃圾邮件。
    如果你最上面的进程对不了解,那么你可以 Google 一下进程名称,或者通过 losf 和 strace 来看看它做的事情是什么。
    使用这些工具,第一步从 top 中拷贝出进程的 PID,然后运行:trace -p PID
    这会显示出该进程调用的所有系统调用。它产生的内容会很多,但这些信息能告诉你这个进程在做什么。
    lsof -p PID
    这个程序会列出该进程打开的文件。通过查看它访问的文件可以很好的理解它在做的事情。

    检查 5 - 检查所有的系统进程
    消耗 CPU 不严重的未授权进程可能不会在 top 中显露出来,不过它依然可以通过 ps 列出来。命令 ps auxf 就能显示足够清晰的信息了。
    你需要检查一下每个不认识的进程。经常运行 ps (这是个好习惯)能帮助你发现奇怪的进程。

    检查 6 - 检查进程的网络使用情况
    iftop 的功能类似 top,它会排列显示收发网络数据的进程以及它们的源地址和目的地址。类似 DoS 攻击或垃圾机器人这样的进程很容易显示在列表的最顶端。
      
    检查 7 - 哪些进程在监听网络连接?
    通常攻击者会安装一个后门程序专门监听网络端口接受指令。该进程等待期间是不会消耗 CPU 和带宽的,因此也就不容易通过 top 之类的命令发现。
    lsof 和 netstat 命令都会列出所有的联网进程。我通常会让它们带上下面这些参数:lsof -i        netstat -plunt
    你需要留意那些处于 LISTEN 和 ESTABLISHED 状态的进程,这些进程要么正在等待连接(LISTEN),要么已经连接(ESTABLISHED)。如果遇到不认识的进程,使用 strace 和 lsof 来看看它们在做什么东西。

    需要香港服务器,咨询我:3002070437

    发表回复

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

    发帖时请遵守我国法律,网站会将有关你发帖内容、发帖时间以及你发帖时的IP地址的记录保留至少60天,并且只要接到合法请求,即会将这类信息提供给有关政府机构。
    回顶部