应急响应中的常用命令
应急响应
应急响应流程
事件判断:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DDos等等
临时处置:给出客户临时处置建议,断网隔离,保护现场环境
信息收集分析:收集客户信息和中毒主机信息,包括样本,日志分析、进程分析、启动项分析
清理处置:直接杀掉进程,删除文件,打补丁,抑或是修复文件
产出报告:整理并输出完整的安全事件报告
linux
重要文件和目录
文件名 | 说明 |
---|---|
/etc/passwd | 用户信息文件 |
/etc/crontab | 定时任务文件 |
/etc/anacrontab | 异步定时任务 |
/etc/rc.d/rc.local | 开机启动项 |
/etc/hosts | 本地IP地址域名解析文件 |
/var/log/btmp | 登录失败日志 |
/var/log/wtmp | 包含用户登录日志 |
/var/log/utmp | 当前登陆系统的用户信息 |
/var/log/cron | 定时任务执行日志 |
/var/log/lastlog | 所有用户最近登录信息 |
/var/log/secure | 验证,授权等日志 |
目录 | 说明 |
---|---|
/root/.ssh | root用户ssh公钥和私钥 |
/tmp | 系统或用户临时文件的目录 |
/etc/init.d | 开机启动项 |
/var/log | 日志默认存放目录 |
常用命令
查看当前目录下所有文件并排序ls -alt
查看系统内存使用情况free -h
查看系统进程及子进程ps auxf
、top
查看网络连接netstat -antpl
根据pid使用ls -alh /proc/pid
命令查看对应的可执行程序
查询端口打开的文件lsof -i:port
查询进程打开的文件lsof -p pid
查询用户打开的文件lsof -u root
修改文件属性chattr
显示文件属性lsattr
排查启动项cat /etc/rc.local
ls -alt /etc/profile.d/*.sh
查看所有用户的定时任务cat /etc/passwd | cut -f 1 -d : | xargs -I {} crontab -l -u {}
ls -altr /var/spool/cron/*
查看历史命令history
cat ~/.bash_history
校验软件包rpm -Va
dpkg --verify
值 | 说明 |
---|---|
S | 表示对应文件的大小不一致 |
M | 表示对应文件权限和所有权不一样 |
5 | 表示对应文件的MD5不一致 |
D | 表示文件的设备号和驱动程序不一致 |
L | 表示文件的符号连接内容不一致 |
U | 表示文件所有者不一致 |
G | 表示文件群组不一致 |
T | 表示文件的修改时间不一致 |
软件更新会导致大小或MD5不一致,同时出现SM5需要注意
查看文件(目录)详细信息stat
查找当前目录下,指定天数内修改的指定类型文件find / -mtime 0 -name *.jsp
查找当前目录下,指定天数内新增的指定类型文件find / -ctime 0 -name *.jsp
比较文件差异diff -c
查找隐藏进程ps -ef | awk '{print $2}' |sort -n |uniq > ps.p
ls /proc |sort -n |uniq > proc.p
diff ps.p proc.p
查看用户登录历史记录last
查看用户登录失败记录lastb
查看用户最近一次登录信息lastlog
登录成功的IPgrep "Accepted" /var/log/secure | awk '{print $11}' |sort |uniq -c |sort -nr | more
定位有爆破行为的IPgrep "Failed" /var/log/secure | awk '{print $11}' |sort |uniq -c |sort -nr | more
查找每个IP地址的失败登录次数:awk '/sshd.*Failed/ {print $(NF-3)}' /var/log/secure | sort | uniq -c |sort -nr
查找特定IP地址的失败登录:grep "sshd.*Failed.*from <IP_ADDRESS>" /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
查找特定IP地址的成功登录:grep "sshd.*Accepted.*from <IP_ADDRESS>" /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
日志分析
1 |
|
可以使用系统自带的awk,find,grep去分析前面提到的各种日志(建议使用busybox,以防命令被篡改)
也可以使用第三方的分析工具,比如LogForensics,星图等等
应急工具
busybox
集成了很多linux常用命令的工具集,当命令被劫持或篡改时使用
unhide
检测发现借助rootkit及其他技术隐藏的进程和TCP/UDP端口的命令行工具
yum -y install unhide
安装或者在官网下载
chkrootkit
linux下检测rootkit的脚本
ubuntu系列安装命令:apt install chkrootkit
centos系列:由于chkrootkit没有包含在官方的Centos源中,因此要采取手动编译的方法来安装,官网
直接运行后查找infected关键字即可
clamav
检测木马、病毒、恶意软件和其他恶意威胁的开源防病毒引擎
windows
常用命令
命令 | 说明 |
---|---|
regedit | 注册表 |
taskmgr | 任务管理器 |
msconfig | 系统配置 |
eventvwr | 事件查看器 |
compmgmt.msc | 计算机管理 |
gpedit.msc | 本地组策略 |
taskschd.msc | 计划任务 |
lusrmgr.msc | 本地用户和组 |
查看网络连接netstat -ano
操作系统的详细配置信息systeminfo
获取系统进程信息wmic process
根据应用程序查找PIDwmic process where name="cmd.exe" get processid,executablepath,name
根据PID查找应用程序wmic process where processid="9096" get executablepath,name
获取系统进程信息tasklist
对于要查询特定dll的调用情况,可以使用tasklist /d dll名称
计算样本MD5certutil -hashfile %样本exe% md5