针对常见的攻击事件,结合工作中应急响应事件分析和解决的方法,总结了一些 Linux 服务器入侵排查的思路。
入侵排查思路
一、账号安全
基操:
1、用户信息文件 /etc/passwd
root:x:0:0:root:/root:/bin/bash
account:password:UID:GID:GECOS:directory:shell
用户名:密码:用户ID:组ID:用户说明:家目录:登陆之后的 shell
注意:无密码只允许本机登陆,远程不允许登陆
2、影子文件 /etc/shadow
root:$6$oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7:::
用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到的警告天数:密码过期之后的宽限天数:账号失效时间:保留
who 查看当前登录用户(tty 本地登陆 pts 远程登录)
w 查看系统信息,想知道某一时刻用户的行为
uptime 查看登陆多久、多少用户,负载状态
入侵排查
1、查询特权用户特权用户(uid 为0)
awk -F: '$3==0{print $1}' /etc/passwd
这里只有root一个特权用户是正常的
2、查询可以远程登录的用户信息
awk '/\$1|\$6/{print $1}' /etc/shadow
这里只有root用户可以远程登录
3、除root帐号外,其他帐号是否存在sudo权限。如非管理需要,普通帐号应删除sudo权限
wheel:建立用来归纳一些特殊的系统用户用的
4、禁用或删除多余及可疑的帐号
usermod -L user
禁用帐号,帐号无法登录,/etc/shadow 第二栏为 ! 开头
可以看到lemonlove7为禁用用户,切换到改用户下无法使用,权限被拒绝
在etc/shadow里是!被禁用
userdel user
删除 user 用户
可以看到该用户虽然被删除了,但是在home家目录下还是有该用户目录
这时候userdel -r user
将删除 user 用户,并且将 /home 目录下的 user 目录一并删除
二、历史命令
记录执行过的命令,可以查看到一些被人入侵后,一些蠢蛋不删除历史命令留下的历史命令
基操:
通过 .bash_history 文件查看帐号执行过的系统命令
1、查看root用户历史命令:history
2、打开 /home 各帐号目录下的 .bash_history
,查看普通帐号执行的历史命令。cat .bash_history
。
查看xp家目录下的历史记录
小技巧
为历史的命令增加登录的 IP 地址、执行命令时间等信息:
(1)保存1万条命令(一般默认保存是1000条,改为10000条)
可以临时修改最大保留条数: HISTSIZE=10000
这样就修改成了10000条啦,如果想一直保留10000条,我们需要修改他的环境变量,命令如下
sed -i 's/HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile
source /etc/profile
source 让配置生效后,history就可以查看保存的10000条记录
(2)为历史的命令增加登录的 IP 地址、执行命令时间等信息
在/etc/profile
的文件尾部添加如下行数配置信息:
###### lemonlove7 #########
USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
export HISTTIMEFORMAT="%F %T $USER_IP `whoami` "
shopt -s histappend
export PROMPT_COMMAND="history -a"
######### lemonlove7 ##########
source /etc/profile
让配置生效
可以看到已经生效看得到是哪个时间、哪个ip、哪个用户进行执行的
3、 历史操作命令的清除:history -c
成功清除了历史命令