应急响应中的常用命令

应急响应

应急响应流程

事件判断:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、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 auxftop


查看网络连接
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

登录成功的IP
grep "Accepted" /var/log/secure | awk '{print $11}' |sort |uniq -c |sort -nr | more

定位有爆破行为的IP
grep "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
2
3
4
5
Linux日志类型大致可以分为三类,内核和系统日志,用户日志,应用日志

内核和系统日志:这种日志主要由syslog管理、根据其配置文件/etc/syslog.conf中的设置决定内核消息和各种系统程序信息记录到哪个位置
用户日志:用户日志主要记录系统用户登录或者退出的信息,包括用户名账号、登录时间、源IP等
应用日志:记录应用程序运行过程中的各种事件信息

可以使用系统自带的awk,find,grep去分析前面提到的各种日志(建议使用busybox,以防命令被篡改)
也可以使用第三方的分析工具,比如LogForensics,星图等等

应急工具

busybox

集成了很多linux常用命令的工具集,当命令被劫持或篡改时使用

官网:https://busybox.net/

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

根据应用程序查找PID
wmic process where name="cmd.exe" get processid,executablepath,name

根据PID查找应用程序
wmic process where processid="9096" get executablepath,name

获取系统进程信息
tasklist

对于要查询特定dll的调用情况,可以使用
tasklist /d dll名称

计算样本MD5
certutil -hashfile %样本exe% md5


应急响应中的常用命令
https://www.dr0n.top/posts/4dcb61d1/
作者
dr0n
发布于
2023年7月18日
更新于
2024年3月21日
许可协议