本文给大家收集整理了一些审查Linux系统是否被入侵的方法,这些方法可以添加到你运维例行巡检中。
- 检查帐户
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(查看是否存在空口令帐户)
- 检查日志
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
- 检查文件
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 文件名
- 检查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
- 检查计划任务
注意root和UID是0的schedule
crontab –u root –l
cat /etc/crontab
ls /etc/cron.*
- 检查后门
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
- 检查内核模块
lsmod
- 检查系统服务
chkconfig
rpcinfo -p(查看RPC服务)
- 检查rootkit