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

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

好文

热门回答:

这里简单介绍一下吧。主要从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 会输出如下结果:

12:32:00 up 12 days, 5:43, 2 users, load average: 0.05, 0.03, 0.00

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

root pts/0 110.174.161.11 12:26 0.00s 0.03s 0.02s ssh root@test

root pts/1 178.31.109.12 12:26 0.00s 0.01s 0.00s w

2.检查历史登录用户

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

输出类似这样:

root pts/1 178.31.109.12 Thu Nov 30 12:26 still logged in

root pts/0 110.174.161.11 Thu Nov 30 12:26 still logged in

检查历史运行命令

运行 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命令查看。

#科技新星创作营#

其他观点:

检查服务器是否被入侵。如果有资金投入。可以上专业的入侵检测设备IDS。但题主既然拿到这里问。应该是不想投入资金来解决。事实上。不花钱也可以有两种办法来检查。

1、用人工+纯技术(不推荐)

这种方法说白了还是靠技术工程师。技术工程师对安全理解有多深就能检查到多深。如果技术工程师。只是照搬照抄网络上几个命令去检查。基本没有什么用。因为现在的入侵已经不是10年前的入侵了。轻易留下痕迹的入侵是失败的入侵。

大量的服务器入侵都是隐藏在正常的访问当中。或者病毒、木马、甚至黑客攻击当中。它们隐藏的更深。它们入侵的目的很多都不是为了破坏机器。而是为了获取重要数据。所以。人工是很难发现它的。就算你是高手。等你发现时。入侵基本已经完成。数据已经被盗走。你说还有什么意义吗?所以。强烈不推荐这种方法。

2、免费开源IDS自动检测

如今的入侵行为要想被第一时间发现。必须在服务器的入口。也就是网络上部署一套IDS自动化进行入侵检测。它会自动分析所有通过网络的数据包。自动进行协议分析。一旦。发现可疑的数据行为。立即报警。哪些人工无法快速完成的繁杂的分析。对它来说瞬间即可完成。这才对现在有效入侵的检测方式。

如今。不用花钱的开源IDS系统。互联网上非常多。比如:Snort、Prelude IDS、Firestorm等等。这里我就以“snort”来简单介绍一下如何来部署一套开源IDS。

①、Snort入侵检测原理

从技术上原理上讲。Snort是一个基于特征检测的网络入侵检测系统。检测原理如下:

首先。要定义不符合安全策略的事件的特征。这些定义特征值的合集就成为一个安全特征库。sonrt自带有广大安全开发者定义的规则库。专业人士。也可以自己定义规则库。

其次。网络收集所有进入网络的数据包。然后对数据包进行分析。并和安全特征库进行比对。如果出现相应的特征值。则该数据包被认为是可疑入侵。

随后。然后对可疑入侵行为进行集中报警。同时记录下日志。我们就可以第一时间发现入侵行为。接下来。我们就可以去阻断入侵。

Snort 入侵检测的功能非常强大。而且是一个轻量级的检测引擎。

②、Snort安装步骤

第一步:环境准备(以windows为例)

我们得准备一台服务器。安装上windows操作系统。

到互联网下载Snort的最新windows 安装包。

第二步:开始安装程序

按照setup程序向导。一步一步往下安装即可。安装位置我们可以自由选择。默认安装在c:\snort\下。安装到末尾。要求我们安装抓包工具winpcap。这个必须安装上去。

第三步:安装规则库

首先。我们先去snort官方网站下载规则库。这里必须先注册成为会员才能下载规则库。

下载完成后。将下载的最新规则库。进行解压。并将解压后都文件替换掉安装文件夹内的旧规则库。这样规则库就安装成功了

③、配置snort

配置snort主要通过编辑配置文件

snort.conf

。改文件在安装目录下的etc\

snort.conf

。编辑工具尽量用notepad++。比较方便。

在文件中修改配置如下:

var rule_path---c:\snort\rulesvar so_rule_path---c:\snort\so_rulesvar preproc_rule_path---c:\snort\preproc_rules。dynamicpreprocessor file c:\snort\lib\snort_dynamicpreprocessor\

sf_dcerpc.dll

dynamicpreprocessor file c:\snort\lib\snort_dynamicpreprocessor\sf_dns.dll dynamicpreprocessor file c:\snort\lib\snort_dynamicpreprocessor\

sf_ftptelnet.dll

dynamicpreprocessor file c:\snort\lib\snort_dynamicpreprocessor\sf_smtp.dll dynamicpreprocessor file c:\snort\lib\snort_dynamicpreprocessor\sf_ssh.dlldynamicengine c:\snort\lib\snort_dynamicengine\sf_engine.dlloutput alert_syslog: host=127.0.0.1:514, LOG_AUTH LOG_ALERT 

配置完这些。系统就可以运行了。

④、运行snort

系统运行需要在windows的命令行来启动。我们通过cmd命令打开cmd命令窗口。通过CD命令切换到c:\snort\bin\目录下。在该目录下执行

snort -v -i1

总结

在安全发展飞快的今天。我们需要通过自动化安全工具来帮助检测服务器是否被入侵。

以上推荐的snort就是一款非常好用的开源网络入侵检测工具。如果对你有所帮助。希望实际使用参考文档。可以登录snort官网去仔细查看。以上是我的粗浅认识。希望能够帮到你。

我是数智风。用经验回答问题。欢迎关注评论

您还感兴趣的文章推荐

以上就是由互联网推广工程师 网创网 整理编辑的,如果觉得有帮助欢迎收藏转发~

分享到 :
相关推荐

发表回复

登录... 后才能评论

评论(2)

  • 几度无言 永久VIP 2022年12月27日 15:05:49

    服务器,命令,进程,系统,网络,规则,消耗,很可能,用户,异常

  • 心太野╮ 永久VIP 2022年12月27日 15:05:49

    没想到大家都对如何检查服务器是否被入侵?感兴趣,不过这这篇解答确实也是太好了

  • 眼泪、说拜拜 永久VIP 2022年12月27日 15:05:49

    这里简单介绍一下吧。主要从5个方面来判断服务器是否被入侵。感兴趣的朋友可以尝试一下:01查看当前登录用户这种方式最简