【小技巧】如何判断Linux系统是否被入侵?
一、检查系统日志
1.1 检查系统登陆日志,统计IP重试登陆的次数。
对于恶意登陆的系统行为,在日志中会留下蛛丝马迹,通过检查系统登陆日志,统计重试登陆的次数,能看到哪些IP及哪些用户在恶意登陆系统。
lastb root | awk '{print $3}' | sort | uniq -c | sort -nr| more
判断Linux系统是否被入侵,你需要几步?9个小技巧分享!
说明:
lastb命令,该命令需要root权限,可以显示所有登陆信息,也可以显示指定用户的信息,后面直接跟相关的用户即可。
二、检查系统用户
对于入侵行为,往往通过检查系统用户,可以发现一些蛛丝马迹,比如有没有异常新增用户及提权用户。通过对系统用户的检查,是入侵检测的重要方面。
2.1 查看是否有异常的系统用户
cat /etc/passwd
判断Linux系统是否被入侵,你需要几步?9个小技巧分享!
2.2 检查是否有新用户尤其是UID和GID为0的用户
awk -F":" '{if($3 == 0){print $1}}' /etc/passwd
判断Linux系统是否被入侵,你需要几步?9个小技巧分享!
2.3 检查是否存在空口令账户
awk -F: '{if(length($2)==0) {print $1}}' /etc/passwd
判断Linux系统是否被入侵,你需要几步?9个小技巧分享!
三、检查系统异常进程
对于被入侵的系统,可以通过查看进程,确认有哪些异常非系统及非业务的进程在运行,通过对这些异样进程的检查,查找恶意程序的来源。
3.1 使用ps -ef命令查看进程
ps -ef
判断Linux系统是否被入侵,你需要几步?9个小技巧分享!
尤其注意UID为root的进程
3.2 查看该进程所打开的端口和文件
lsof -p pid
判断Linux系统是否被入侵,你需要几步?9个小技巧分享!
3.3 检查隐藏进程
ps -ef | awk '{print $2}'| sort -n | uniq >1; ls /proc |sort -n|uniq >2;diff -y -W 40 1 2
判断Linux系统是否被入侵,你需要几步?9个小技巧分享!
说明:
lunux所有的进程在/proc均有记录,需要注意,这里的信息是最详细。
四、检查系统异常文件
对于被入侵的系统,通过检查系统异常文件,可以追踪入侵的信息,比如检查一下SUID的文件,一些空格文件等。
4.1 检查一下 SUID的文件
find / -uid 0 -perm 4000 -print
4.2 检查大于10M的文件
find / -size +10000k –print
4.3 检查空格文件
find / -name “…” –print
find / -name “.. ” –print
find / -name “. ” –print
find / -name ” ” –print
4.4 检查系统中的core文件
find / -name core -exec ls -l {} ()
五、检查系统文件的完整性
判断Linux系统是否被入侵,你需要几步?9个小技巧分享!
系统文件的完整性是入侵检测的重要方面,尤其通过对一些常用系统命令的md5值的检查,可以判断系统是否被入侵,比如ls,ping等 这些常用 的命令被恶意程序篡改后,我们在执行这些系统命令的时候,实际上在执行恶意程序。
5.1 检查linux系统文件的完整性
尤其注意以下几个目录 /sbin,/bin,/usr/bin
例如:
whereis ls
md5sum /usr/bin/ls
当然也可以写成脚本的形式,对批量生成系统文件md5值与正常系统做比对,如果md5值与正常系统不一样。那说明你的系统可能被入侵了。
5.2 利用工具AIDE检查系统文件的完整性
通过手动检查系统文件的md5方面,效率不是很高,可以通过AIDE软件来辅助检查系统文件的完整性,该软件的具体使用方法详见官方文档
六、检查网络
网络方面通过检查网卡的是不是处于混杂模式,检查系统中网络监听的端口,对于一些非系统,非业务的端口尤其是要重点关注。
6.1 检查网卡模式
ip link | grep PROMISC(正常网卡不该在promisc混杂模式,可能存在sniffer)
网卡处于混杂模式,这样通过网卡的流量都会被监听
6.2 检查恶意程序开放的端口及打开的文件
netstat -ntlup
lsof -i: 端口号
判断Linux系统是否被入侵,你需要几步?9个小技巧分享!
七、检查系统计划任务
系统的定时任务也是入侵检测的重要方面,有些恶意的程序通过系统的计划任务,定时调度任务,通过对定时任务的检查,可以发现一些被入侵的重要信息。
crontab –u root –l
cat /etc/crontab
ls /etc/cron.*
注意:
root和UID是0的schedule
八、检查系统服务
8.1 centos 6版本
查看系统启动的服务
chkconfig —list
判断Linux系统是否被入侵,你需要几步?9个小技巧分享!
8.2 centos 7版本
这个主要检测的是启动服务,目前在centos7以上都采用systemd 来管理相应的服务。Systemd是一个系统管理守护进程、工具和库的集合,用于取代System V初始进程。Systemd的功能是用于集中管理和配置类UNIX系统。
查看所有的可用单元
systemctl list-unit-files
判断Linux系统是否被入侵,你需要几步?9个小技巧分享!
九、检查rootkit
9.1 通过rkhunter检查
通过rkhunter输出的信息提示,是判断系统是否被rootkit的要重要手段,除OK之外的提示是重点关注的对象。
rkhunter -c
判断Linux系统是否被入侵,你需要几步?9个小技巧分享!
参数说明:
-c:检查本地文件系统
9.2通过chkrootkit 检查
chkrootkit -q
9.3 通过Tripwire检查
- 上一篇: 帝国CMS系统目录结构介绍
- 下一篇: Nginx禁止IP直接访问网站
评论已关闭