首先先用iptraf查下,如果没装的运行yum install iptraf装下,看里面是不是UDP包发的很多,如果是,基本都被人装了后门
1. 检查帐户
# less /etc/passwd
# grep :0: /etc/passwd(检查是否产生了新用户,和UID、GID是0的用户)
# ls -l /etc/passwd(查看文件修改日期)
# awk -F: ‘$3= =0 {print $1}’ /etc/passwd(查看是否存在特权用户)
# awk -F: ‘length($2)= =0 {print $1}’ /etc/shadow(查看是否存在空口令帐户)
2. 检查日志
# last(查看正常情况下登录到本机的所有用户的历史记录)
注意”entered promiscuous mode”
注意错误信息
注 意Remote Procedure Call (rpc) programs with a log entry that includes a large number (>20) strange characters(-^PM-^PM-^PM-^PM-^PM-^PM-^PM-^PM)
3. 检查进程
# ps -aux(注意UID是0的)
# lsof -p pid(察看该进程所打开端口和文件)
# cat /etc/inetd.conf | grep -v “^#”(检查守护进程)
检查隐藏进程
# ps -ef|awk ‘{print }’|sort -n|uniq >1
# ls /porc |sort -n|uniq >2
# diff 1 2
4. 检查文件
# find / -uid 0 –perm -4000 –print
# find / -size +10000k –print
# find / -name “…” –print
# find / -name “.. ” –print
# find / -name “. ” –print
# find / -name ” ” –print
注意SUID文件,可疑大于10M和空格文件
# find / -name core -exec ls -l {} (检查系统中的core文件)
检查系统文件完整性
# rpm –qf /bin/ls
# rpm -qf /bin/login
# md5sum –b 文件名
# md5sum –t 文件名
5. 检查RPM
# rpm –Va
输出格式:
S – File size differs
M – Mode differs (permissions)
5 – MD5 sum differs
D – Device number mismatch
L – readLink path mismatch
U – user ownership differs
G – group ownership differs
T – modification time differs
注意相关的 /sbin, /bin, /usr/sbin, and /usr/bin
6. 检查网络
# ip link | grep PROMISC(正常网卡不该在promisc模式,可能存在sniffer)
# lsof –i
# netstat –nap(察看不正常打开的TCP/UDP端口)
# arp –a
7. 检查计划任务
注意root和UID是0的schedule
# crontab –u root –l
# cat /etc/crontab
# ls /etc/cron.*
8. 检查后门
# cat /etc/crontab
# ls /var/spool/cron/
# cat /etc/rc.d/rc.local
# ls /etc/rc.d
# ls /etc/rc3.d
# find / -type f -perm 4000
9. 检查内核模块
# lsmod
10. 检查系统服务
# chkconfig
# rpcinfo -p(查看RPC服务)
11. 检查rootkit
# rkhunter -c
# chkrootkit -q
通过检查机器被黑的症状即可.一般来说, 被黑的机器都会被黑客用于发包或者挖矿, 发包通过监控网卡流量数据即可检测, 挖矿可以使用top命令检测CPU占用率, 发现异常后建议及时备份数据并重装系统.
以下几种方法检测linux服务器是否被攻击:\x0d\x0a1、检查系统密码文件 \x0d\x0a首先从明显的入手,查看一下passwd文件,ls _l /etc/passwd查看文件修改的日期。 \x0d\x0a2、查看一下进程,看看有没有奇怪的进程 \x0d\x0a\x0d\x0a重点查看进程:ps _aef | grep inetd inetd是UNIX系统的守护进程,正常的inetd的pid都比较靠前,如果看到输出了一个类似inetd _s \x0d\x0a/tmp/.xxx之类的进程,着重看inetd \x0d\x0a_s后面的内容。在正常情况下,LINUX系统中的inetd服务后面是没有-s参数的,当然也没有用inetd去启动某个文件;而solaris系统中\x0d\x0a也仅仅是inetd \x0d\x0a_s,同样没有用inetd去启动某个特定的文件;如果使用ps命令看到inetd启动了某个文件,而自己又没有用inetd启动这个文件,那就说明已经有人入侵了系统,并且以root权限起了一个简单的后门。\x0d\x0a3、检查系统守护进程 \x0d\x0a检查/etc/inetd.conf文件,输入:cat /etc/inetd.conf | grep _v “^#”,输出的信息就是这台机器所开启的远程服务。 \x0d\x0a一般入侵者可以通过直接替换in.xxx程序来创建一个后门,比如用/bin/sh 替换掉in.telnetd,然后重新启动inetd服务,那么telnet到服务器上的所有用户将不用输入用户名和密码而直接获得一个rootshell。\x0d\x0a4、检查网络连接和监听端口 \x0d\x0a输入netstat -an,列出本机所有的连接和监听的端口,查看有没有非法连接。 \x0d\x0a输入netstat _rn,查看本机的路由、网关设置是否正确。 \x0d\x0a输入 ifconfig _a,查看网卡设置。 \x0d\x0a5、检查系统日志 \x0d\x0a命令last | \x0d\x0amore查看在正常情况下登录到本机的所有用户的历史记录。但last命令依赖于syslog进程,这已经成为入侵者攻击的重要目标。入侵者通常会停止系\x0d\x0a统的syslog,查看系统syslog进程的情况,判断syslog上次启动的时间是否正常,因为syslog是以root身份执行的,如果发现\x0d\x0asyslog被非法动过,那说明有重大的入侵事件。 \x0d\x0a在linux下输入ls _al /var/log \x0d\x0a检查wtmp utmp,包括messgae等文件的完整性和修改时间是否正常,这也是手工擦除入侵痕迹的一种方法。 \x0d\x0a6、检查系统中的core文件 \x0d\x0a通过发送畸形请求来攻击服务器的某一服务来入侵系统是一种常规的入侵方法,典型的RPC攻击就是通过这种方式。这种方式有一定的成功率,也就是说并不能\x0d\x0a100%保证成功入侵系统,而且通常会在服务器相应目录下产生core文件,全局查找系统中的core文件,输入find / -name core \x0d\x0a_exec ls _l {} \依据core所在的目录、查询core文件来判断是否有入侵行为。\x0d\x0a7、检查系统文件完整性 \x0d\x0a检查文件的完整性有多种方法,通常通过输入ls _l \x0d\x0a文件名来查询和比较文件,这种方法虽然简单,但还是有一定的实用性。但是如果ls文件都已经被替换了就比较麻烦。在LINUX下可以用rpm _V \x0d\x0a`rpm _qf 文件名` \x0d\x0a来查询,查询的结果是否正常来判断文件是否完整。在LINUX下使用rpm来检查文件的完整性的方法也很多,这里不一一赘述,可以man \x0d\x0arpm来获得更多的格式。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)