Linux系统入侵检查

对于在线运行的业务系统,安全性是一个至关重要的问题。服务器被入侵最常见的表现有:由内向外发送大量数据包(被DDOS肉鸡)、服务器资源被耗尽(被挖矿)、不正常的端口连接(反向shell)、服务器日志被恶意删除等..排除Linux系统管理员操作不当的情况,如何检测自己的系统是否被入侵呢?下面跟大家简单分享实用的几个小技巧~

 

对于在线运行的业务系统,安全性是一个至关重要的问题。服务器被入侵最常见的表现有:由内向外发送大量数据包(被DDOS肉鸡)、服务器资源被耗尽(被挖矿)、不正常的端口连接(反向shell)、服务器日志被恶意删除等..排除Linux系统管理员操作不当的情况,如何检测自己的系统是否被入侵呢?下面跟大家简单分享实用的几个小技巧~

 

一、检查系统日志

 

1.1 检查系统登陆日志,统计IP重试登陆的次数。

 

对于恶意登陆的系统行为,在日志中会留下蛛丝马迹,通过检查系统登陆日志,统计重试登陆的次数,能看到哪些IP及哪些用户在恶意登陆系统。

 

# lastb root | awk '{print $3}' | sort | uniq -c | sort -nr| more

 

说明:

 

lastb命令,该命令需要root权限,可以显示所有登陆信息,也可以显示指定用户的信息,后面直接跟相关的用户即可。

 

二、检查系统用户

 

​对于入侵行为,往往通过检查系统用户,可以发现一些蛛丝马迹,比如有没有异常新增用户及提权用户。通过对系统用户的检查,是入侵检测的重要方面。

 

2.1 查看是否有异常的系统用户

 

cat /etc/passwd

 

 

2.2 检查是否有新用户尤其是UID和GID为0的用户

 

awk -F":" '{if($3 == 0){print $1}}' /etc/passwd

 

 

2.3 检查是否存在空口令账户

 

awk -F: '{if(length($2)==0) {print $1}}' /etc/passwd

 

 

三、检查系统异常进程

 

​对于被入侵的系统,可以通过查看进程,确认有哪些异常非系统及非业务的进程在运行,通过对这些异样进程的检查,查找恶意程序的来源。

 

3.1 使用ps -ef命令查看进程

 

ps -ef

 

 

尤其注意UID为root的进程

 

3.2 查看该进程所打开的端口和文件

 

lsof -p pid

 

 

3.3 检查隐藏进程

 

ps -ef | awk '{print $2}'| sort -n | uniq >1; ls /proc |sort -n|uniq >2;diff -y -W 40 1 2

 

 

说明:

 

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 {} ()

 

五、检查系统文件的完整性

 

 

​系统文件的完整性是入侵检测的重要方面,尤其通过对一些常用系统命令的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: 端口号

 

 

七、检查系统计划任务

 

​系统的定时任务也是入侵检测的重要方面,有些恶意的程序通过系统的计划任务,定时调度任务,通过对定时任务的检查,可以发现一些被入侵的重要信息。

 

# crontab –u root –l

# cat /etc/crontab

# ls /etc/cron.*

 

注意:

 

root和UID是0的schedule

 

八、检查系统服务

 

8.1 centos 6版本

 

查看系统启动的服务

 

# chkconfig —list

 

8.2 centos 7版本

 

​这个主要检测的是启动服务,目前在centos7以上都采用systemd 来管理相应的服务。Systemd是一个系统管理守护进程、工具和库的集合,用于取代System V初始进程。Systemd的功能是用于集中管理和配置类UNIX系统。

 

查看所有的可用单元# systemctl list-unit-files

 

 

九、检查rootkit

 

9.1 通过rkhunter检查

 

通过rkhunter输出的信息提示,是判断系统是否被rootkit的要重要手段,除OK之外的提示是重点关注的对象。

 

# rkhunter -c

 

 

参数说明:

 

-c:检查本地文件系统

 

9.2通过chkrootkit 检查

 

# chkrootkit -q

 

9.3 通过Tripwire检查

 

具体使用方法详见官方文档资料https://www.tripwire.com/,这里就不作详细介绍。

================================chkrootkit.sh=================================
#!/usr/bin/bash
echo '======================================================='
echo '统计重试登陆的次数,能看到哪些IP及哪些用户在恶意登陆系统'
lastb root | awk '{print $3}' | sort | uniq -c | sort -nr| more
echo '======================================================='
echo '检查是否有新用户尤其是UID和GID为0的用户' 
awk -F":" '{if($3 == 0){print $1}}' /etc/passwd 
echo '======================================================='
echo '检查是否存在空口令账户'
awk -F: '{if(length($2)==0) {print $1}}' /etc/passwd 
echo '======================================================='
echo ' 检查一下 SUID的文件'
find / -uid 0 -perm 4000 -print
echo '======================================================='
echo ' 检查空格文件'
 find / -name "..." -print 
 find / -name ".. " -print 
 find / -name "." -print 
 find / -name " " -print 
echo '======================================================='
echo '检查隐藏进程'
ps -ef | awk '{print $2}'| sort -n | uniq >1; ls /proc |sort -n|uniq >2;diff -y -W 40 1 2
echo '======================================================='
echo '检查恶意程序开放的端口及打开的文件'
netstat -ntulp
echo '======================================================='
echo '检查系统计划任务'
crontab -u root -l 
cat /etc/crontab 
ls /etc/cron.* 
echo '======================================================='
echo '查看所有的可用单元'
systemctl list-unit-files|grep enabled
echo '======================================================='
echo '检查rootkit'
if [ `yum list installed|grep rkhunter|wc -l` -eq 0 ];then
yum install rkhunter -y >/dev/null
echo 'install rkhunter success' 
fi
rkhunter --check --skip-keypress|grep 'Warning'
echo '======================================================='

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bill165313109

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值