应急响应中的常用命令
应急响应
应急响应流程
事件判断:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、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.localls -alt /etc/profile.d/*.sh

查看所有用户的定时任务cat /etc/passwd | cut -f 1 -d : | xargs -I {} crontab -l -u {}ls -altr /var/spool/cron/*

查看历史命令historycat ~/.bash_history

校验软件包rpm -Vadpkg --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.pls /proc |sort -n |uniq > proc.pdiff 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