如何检查服务器是否被入侵?

錒謠


如何检查服务器是否被入侵,这个不是一句两句能够说得清楚的,因为入侵包括的范围是相当的大的。单靠自己对服务器的一些手动上的基本分析是有一定难度的。基本上大的服务器服务提供运营商一般都会有自己的防御体系和完善的日志,这些系统监控和安全日志即使作为安全人员来说全部看懂,也是非常海量的,因此很多时候都是有着自己的防御系统会进行定期分析,并且会有各种风险操作的评估和提示,但是作为网络运维人员和安全管理人员一般的检查思维是通过如下步骤进行的。

一、检查系统的密码文件

查看一下passwd文件,尤其是查看passwd当中是否有一些特权用户,一般系统中Uid为0的用户特权权限较高,可能会存在拿到控制权的可能性,但是能到这一步,我觉得这个入侵的黑客也太傻了,居然还给你留个你能看到的账户。另外还有查看空口令账号,一把这些账号都是用来提升权限用的。

二、就是查看一下进程,看看有没有特殊的进程,最好用进程分析工具来协助分析

一般网络运维人员不论是win系统还是linux运维,系统进程是必须要分析的,因为有些木马工具和病毒都会有自己的进程,隐藏比较深的病毒和木马会将自己的线程挂到正常的进程下面,因此要善于应用进程分析工具。比如inetd进程,需要重点查看,看看是否有用这个进程去启动一些奇怪的程序,一旦有基本上都是被入侵了。

三、检查网络连接和监听端口

检查网络连接和对各个监听端口的分析,也是必须要走的程序。比如:

  • 输入netstat -an,列出本机所有的连接和监听的端口,查看有没有非法连接。

  • 输入netstat –rn,查看本机的路由、网关设置是否正确。

  • 输入 ifconfig –a,查看网卡设置。

通过查询访问的端口和异常IP地址进行异常分析也是常用的一种手段。

四、检查系统日志

查看在正常情况下登录到本机的所有用户的历史记录,通过登录账户的时间和登录用户名可以判断是由于系统自身因鉴权或者其他操作登录,还是人为性质的登录,虽然登录日志比较多,但是也会为入侵分析带来一些辅助性的判断依据。一般情况下linux系统下输入在linux下输入ls –al /var/log,既可以看到登录操作日志,对了还要看下系统的syslog进程是否被停用了,因为如果但凡有点技术的黑客都会停止这个进程,来防止log记录。

五、.rhosts和

.forward

这是两种比较著名的后门文件,如果想检查你的系统是否被入侵者安装了后门,不妨全局查找这两个文件,分别进行这两个文件和正常内容的对比。一般要是于异常,说明你的系统已经被攻破。

六、检查系统文件完整性

检查文件的完整性有多种方法,通常我们通过输入ls –l 文件名来查询和比较文件。另外还有很多工具可以帮助你检查系统文件的完整性。另外网上也有很多运维网管写的shell脚本,直接运行脚本就可以很方便的检查系统文件的完整性的,大家可以去找找进行尝试。主要是通过检查读取每个文件的checksum值来判定。

七、内核级后门的检查

对于内核级后门的检查,一般情况下是比较麻烦的,除非你有着很好的技术手段,否则还不如我重新把系统干了重新安装呢。因为需要模块一个个的分析,非常麻烦,而且其关键文件隐藏的也比较深。

总之入侵分析是一个经验工作,只有你不断提升攻防技术和分析各种攻防实际案例,你才能更好的做好服务器入侵检测以及服务器安全防御,因此这既是一个枯燥的工作,还需要你长期不断学习,很多时候技术经验是非常有用的。


程序小崔


这里简单介绍一下吧,主要从5个方面来判断服务器是否被入侵,感兴趣的朋友可以尝试一下:

01

查看当前登录用户

这种方式最简单也最基本,查看当前登录服务器的用户,如果有异常用户或IP地址正在登录,则说明服务器很可能被入侵,命令的话,使用w,who,users等都可以:

02

查看历史登录记录

服务器会记录曾经登录过的用户和IP,以及登录时间和使用时长,如果有异常用户或IP地址曾经登录过,就要注意了,服务器很可能被入侵,当然,对方为了掩盖登录,会清空/var/log/wtmp日志文件,要是你运行了last命令,只有你一个人登录,而你又从来没清空过记录,说明被入侵了:

03

查看特别消耗CPU进程

一般情况下,服务器被入侵后,对方通常会执行一些非常消耗CPU任务或程序,这时你就可以运行top命令,查看进程使用CPU的情况,如果有异常进程非常消耗CPU,而你又从来没有执行过这个任务,说明服务器很可能被入侵了:

04

检查所有系统进程

消耗CPU不严重或者未经授权的进程,一般不会在top命令中显示出来,这时你就需要运行“ps auxf”命令检查所有系统进程,如果有异常进程在后台悄悄运行,而你又从来没有执行过,这时就要注意了,服务器很可能被入侵了:

05

查看端口进程网络连接

通常攻击者会安装一个后门程序(进程)专门用于监听网络端口收取指令,该进程在等待期间不会消耗CPU和带宽,top命令也难以发现,这时你就可以运行“netstat -plunt”命令,查看当前系统端口、进程的网络连接情况,如果有异常端口开放,就需要注意了,服务器很可能被入侵:

目前,就分享这5个方面来判断服务器是否被入侵,当然,服务器如果已经被入侵,你就需要赶在对方发现你之前夺回服务器的控制权,然后修改密码、设定权限、限定IP登录等,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。


小小猿爱嘻嘻


首先判断服务器是什么操作系统,不同操作系统检查方法不一样。

一、windows server 服务器入侵检查

1.检测不正常账号

查找被新增的账号,特别是管理员群组的(Administrators group)里的新增账户:

C:\\lusrmgr.msc

C:\\>net localgroup administrators

C:\\>net localgroup administrateurs

2.检查注册表启动项

在Windoows 注册表里查看开机启动项是否正常,特别一下注册表项:

HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Run

HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Runonce

HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\RunonceEx

3.检查不正常的服务

检查所有运行的服务,是否存在伪装系统服务和未知服务,查看可执行文件的路径。

4.检查账户启动文件夹

C:\\Users\\Administrator\\AppData\\Roaming\\Microsoft\\Windows\\StartMenu\\Programs\\Startup

5.查看正在连接的会话

C:\\net use

6.检查系统不正常网络连接

C:\\netstat –nao 5

7.检查自动化任务

C:\\schtasks

8.检查windows日志中的异常

检查防火墙、杀毒软件的事件,或任何可疑的记录。检查大量的登入尝试错误或是被封锁的账户。www服务器导入Web访问日志,并查看分析Web访问日志是否完整有攻击痕迹。检查www目录是否存在webshell网页木马,重点检查类似upload目录。


二、linux服务器入侵检查

1.检查谁在登录

运行 w 会输出如下结果:

  1. 12:32:00 up 12 days, 5:43, 2 users, load average: 0.05, 0.03, 0.00
  2. USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
  3. root pts/0 110.174.161.11 12:26 0.00s 0.03s 0.02s ssh root@test
  4. root pts/1 178.31.109.12 12:26 0.00s 0.01s 0.00s w

2.检查历史登录用户

使用 last 命令可以查看这些信息。

输出类似这样:

  1. root pts/1 178.31.109.12 Thu Nov 30 12:26 still logged in
  2. root pts/0 110.174.161.11 Thu Nov 30 12:26 still logged in
  3. 检查历史运行命令

运行 history 命令会显示他们曾经执行的命令。留意有没有用 wget 或 curl 命令来下载类似垃圾邮件机器人或者挖矿程序之类的非常规软件。

4.检查哪些进程在消耗CPU

只需要运行 top ,系统会显示最消耗cpu的前面几个进程。

5.检查哪些进程在监听网络连接

执行 lsof -i 、netstat -plunt命令,需要留意那些处于 LISTEN 和 ESTABLISHED 状态的进程,这些进程要么正在等待连接(LISTEN),要么已经连接(ESTABLISHED)。如果遇到不认识的进程,使用 strace 和 lsof 来看看它们在做什么东西。

6.检查系统登录日志

Linux用户登录信息放在三个文件中:

/var/run/utmp:记录当前正在登录系统的用户信息,默认由who和w记录当前登录用户的信息,uptime记录系统启动时间;

/var/log/wtmp:记录当前正在登录和历史登录系统的用户信息,默认由last命令查看;

/var/log/btmp:记录失败的登录尝试信息,默认由lastb命令查看。

#科技新星创作营#


老徐聊IT互联网


大家说的方式都不错,我也来分享一下我的服务器被入侵的真实案例。


前言

前一阵子,阿里云服务器促销,买了一台2G的主机来做测试学习用,搭好环境后基本就没怎么管它,最近发现CPU总是跑满,,于是按CPU消耗排序,排在第一的是一个名为“kdevtmpfsi”的进程,查了一下是一个挖矿木马,于是赶紧采取办法。

1查看CPU占用


Top 命令看了一下,有 1个 99% 的同名进程还在运行

看样子像是服务器被挂马了,首先应该检查服务器是否有可疑的定时任务。使用crontab -l命令来查看当前的服务器的定时任务。经检查后发现并无异常,只能看下这个进程的具体信息了。


2不管你是什么,统统Kill


废话不多说,直接kill这个线程。

ps -ef |grep kdevtmpfsi

直接kill -9 (PID) 把这个线程干掉了 过一阵子又回来了.....

甚至 find / -name kdevtmpfsi

发现再 /tmp/kdevtmpfsi 这个文件

然后我们 rm -rf /tmp/kdevtmpfsi 把这个文件删除了

这么一小段时间会没有问题 可是过了一会儿这个线程就又启动了继续把cpu跑满了。

配图郁闷

经过一番搜索,确定是服务器被当做“肉鸡”,被挖矿了


3“肉鸡”


此肉鸡非彼肉鸡。

电脑肉鸡是一种病毒。感染此病毒的电脑会受别人控制。你的电脑就因此成为别人砧板上的肉,别人想怎么吃就怎么吃,肉鸡(机)一名便由此而来。

肉鸡一般被黑客以0.08、0.1元到30元不等价格出售。


要登陆肉鸡,必须知道3个参数:远程电脑的IP、用户名、密码。说到肉鸡,就要讲到远程控制。远程控制软件例如灰鸽子、上兴等。


肉鸡不是吃的那种,是中了木马,或者留了后门,可以被远程操控的机器,许多人把有WEBSHELL权限的机器也叫肉鸡。谁都不希望自己的电脑被他人远程控制,但是很多人的电脑是几乎不设防的,很容易被远程攻击者完全控制。


4控制肉鸡能什么


看不惯哪个网站?操纵这些傀儡机器不停的请求该网站,让别人没法用,服务瘫痪,这就是传说中的DDoS攻击(分布式拒绝服务攻击)。

想赚点小钱,偷偷挖矿是你不二的选择,这么多肉鸡,虽然每一台计算能力不怎么样,但是联合起来也不容小。这种肉鸡俗称挖掘鸡

肉鸡做代理?这个话题我就不深说了,大陆敏感话题… …

窥探肉鸡主人数据…

这么多肉鸡代表你有这么多IP,有大量IP能干什么?这又是另外一个庞大的话题了


5如何防治


1、更改系统管理员账户的密码,密码长度不小于8位并且使用大写字母/小写字母/数字/特殊字符组合;

2、更改远程登录端口并开启防火墙限制允许登录的IP,防火墙配置只开放特定的服务端口并对FTP、数据库等这些不需要对所有用户开放的服务进行源IP访问控制;

输入命令netstat–anp查看

4、安装专门的查杀病毒防木马软件,对服务器进行全盘病毒扫描和查杀;

5、假删除系统中未知账户,windows系统还需要检查注册表中的SAM键值是否有隐藏账户;

6、假如有WEB服务的,限制web运行账户对文件系统的访问权限,只开放仅读权限。

6解决服务器问题

找到进程后,我们追踪溯源,找到的并kill线程和它的守护线程。

然后直接kill - 9(Pid) 杀死这俩个线程find / -name kdevtmpfsifind / -name kinsing

7后记

相信通过上图的现实,你已经知道木马是怎么进来的呢,是利用Redis端口漏洞进来的,它可以对未授权访问redis的服务器登录,定时下载并执行脚本,脚本下载文件并运行,进行系统监控、远程调用、内网传播等。所以除了执行上述操作,还要把未授权的redis服务设置密码,修改端口号等,防止再次被入侵。做好安全防护,提高信息安全意识。


欢迎关注 侠梦的开发笔记,这里是一个有温度的Java社区,分享经验心得,愿与你砥砺前行

侠梦的开发笔记


1.看进程,是否有CPU,内存使用异常的进程

2.查看有没有多余系统用户

3.查看有没有异常的开机启动程序

4.查看网卡流量有没有异常增加


分享到:


相關文章: