Linux应急响应一般思路(一)
用户信息排查
在服务器被入侵后,攻击者可能会建立相关账户(有时是隐藏或克隆账户),方便进行远程控制
攻击者会采用的方法主要有如下几种
- 直接建立一个新的账户(有时是为了混淆视听,账户名称与系统常用名称相似)
- 激活一个系统中的默认账户,但这个账户是不经常使用的
- 建立一个隐藏账户(在Windows系统中,一般在账户名称最后加$)
无论攻击者采用哪种方法,都会在获取账户后,使用工具或是利用相关漏洞将这个账户提升到管理员权限(提权),然后通过这个账户任意控制计算机
Linux账户排查
可疑账户
cat /etc/passwd
查看所有用户awk -F: 'length($2)==0 {print $1}' /etc/shadow
查看空口令账户
异常权限
awk -F: '{if($3==0) print $1}' /etc/passwd
查看有root权限的用户more /etc/sudoers | grep -v "^#|^$" | grep "ALL=(ALL)"
查询出root账户外,其他账号是否存在sudo权限
可登录账号
cat /etc/passwd | grep '/bin/bash'
查看可登录账号awk -F: '/\$1|\$6/{print $1}' /etc/shadow
查看可以远程登陆的账户信息
登录情况
grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}'
查看用户最近登录情况grep "Accepted" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
查看登录成功的IPgrep "Failed password" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
查看有爆破行为的IPcat /var/log/secure* | grep Failed
查看登陆失败的信息lastb
查看用户错误登录信息lastlog
查看所有用户的最后登录信息last
查看最近用户登录记录who
查看当前登录到系统中的所有用户
计划任务与启动项排查
由于很多计算机都会自动加载“任务计划”,“任务计划”也是恶意病毒实现持久化驻留的一种常用手段,因此在应急响应事件排查时需要进行排查
Linux计划任务排查
在Linux系统中,任务计划也是维持权限和远程下载恶意软件的一种手段
一般有以下几种方法可以查看任务计划
- crontab -l,可查看当前的任务计划
- crontab -u root -l,可查看root用户的任务计划,以确认是否有后门木马程序启动相关信息
- 查看etc目录下的任务计划文件,一般在Linux系统中的任务计划文件是以cron开头的,可以利用正则表达式的*筛选出etc目录下的所有以cron开头的文件,具体表达式为
/etc/cron*
定时任务需要关注的目录和文件还有:
/var/spool/cron/*
存放每个用户包括root的crontab任务/var/spool/anacron/*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/*
/etc/anacrontab
Linux启动项排查
排查启动项
cat /etc/rc.local
ls -alt /etc/profile.d/*.sh