!
也想出现在这里? 联系我们
广告位
当前位置:首页>教程分享>服务器教程>Linux检测系统是否被入侵

Linux检测系统是否被入侵

入侵者在入侵成功后,往往会留下后门以便再次访问被入侵的系统,而创建系统账号是一种比较常见的后门方式。在做入侵排查的时候,用户配置文件/etc/passwd和密码配置文件/etc/shadow是需要去重点关注的地方。

检测系统是否被入侵

查询特权用户特权用户(uid 为0)

awk -F: \'$3==0{print $1}\' /etc/passwd

查找远程可以登录的账户

awk \'/\\$1|\\$5|\\$6/{print $1}\' /etc/shadow

  • $1:MD5(长度 22个字符)
  • $5:SHA-256(长度 43 个字符)
  • $6:SHA-512(长度86 个字符)

检查sudo权限

cat /etc/sudoers | grep -v \"^#\\|^$\" | grep \"ALL=(ALL\"
删除或锁定账号
通过上面的步骤可以找到可疑的账号

usermod -L rooot #禁用帐号,帐号无法登录,/etc/shadow第二栏为!开头
userdel rooot #删除user用户
userdel -r rooot #将删除root用户,并且将/home目录下的root目录一并删除

查看当前登录系统的信息

who #查看当前登录用户(tty本地登陆 pts远程登录)
w #查看系统信息,想知道某一时刻用户的行为
uptime #查看登陆多久、多少用户,负载

检查异常端口

使用netstat 网络连接命令,分析可疑端口、IP、PID等信息。

netstat -tunlp | less

抓包分析

tcpdump -c 10 -q //精简模式显示 10个包

使用ps命令检查可疑的进程

ps -ef

查超系统中占用资源最高的资源

top

发现异常进一步检查

ps eho command -p $PID #查看该进程启动的完整命令行
readlink /proc/$PID/cwd #查看该进程启动时候所在的目录
ls -l /proc/$PID/exe #查看下pid所对应的进程文件路径
strings -f /proc/$PID/environ | cut -f2 -d #查看该进程启动时的完整环境变量:
lsof -p $PID #列出该进程所打开的所有文件

检查系统服务

Linux系统服务管理,CentOS7使用systemd控制 CentOS6之前使用chkconfig控制。

检查开机自启的服务

//对于systemd服务管理器来说,可以通过下述方式查看开机自启的服务
systemctl list-unit-files --type=service | grep \"enabled\"
//chkconfig就是CentOS6以前用来控制系统服务的工具,查看服务自启动状态
chkconfig --list | grep \"3:on\\|5:on\"

检查启动项脚本

命令查看下开机启动项中是否有异常的启动服务。

cat /etc/rc.local

检查计划任务

利用计划任务进行权限维持,可作为一种持久性机制被入侵者利用。检查异常的计划任务,需要重点关注以下目录中是否存在恶意脚本。

/var/spool/cron/* 
/etc/crontab/etc/cron.d/*
/etc/cron.daily/* 
/etc/cron.hourly/* 
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*

检查系统的异常文件

查看敏感目录,如/tmp目录下的文件,同时注意隐藏文件夹,以.为名的文件夹具有隐藏属性

ls -al
查找1天以内被访问过的文件

find /opt -iname \"*\" -atime 1 -type f
-iname不区分大小写,-atime最近一次被访问的时间,-type文件类型

检查历史命令

查看被入侵后,在系统上执行过哪些命令,使用root用户登录系统,检查/home目录下的用户主目录的.bash_history文件

默认情况下,系统可以保存1000条的历史命令,并不记录命令执行的时间,根据需要进行安全加固。

设置保存1万条命令
sed -i \'s/HISTSIZE=1000/HISTSIZE=10000/g\' /etc/profile
history加固
vim /etc/profile

USER_IP=`who -u am i 2>/dev/null | awk \'{print $NF}\' | sed -e \'s/[()]//g\'`if [ \"$USER_IP\"==\"\" ]
then
   USER_IP=`hostname`
fiexport HISTTIMEFORMAT=\"%F %T $USER_IP `whoami`\"

给TA打赏
共{{data.count}}人
人已打赏
服务器教程

Linux下使用grep命令查找文件中的特定文本

2021-4-17 19:24:24

服务器教程

Linux下修改DNS方法:临时修改和永久修改

2021-4-17 19:24:29

声明 本站上的部份代码及教程来源于互联网,仅供网友学习交流,若您喜欢本文可附上原文链接随意转载。无意侵害您的权益,请发送邮件至 [email protected] 或点击右侧 私信:吉吉国王 反馈,我们将尽快处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
OneEase