应急响应基础技能
windows
任务计划列表
1. 计算机管理窗口,选择 系统工具 中 任务计划程序 中的 任务计划程序库选项 可以查看任务计划的名称,状态,触发器等详细信息
2.powershell中输入get-scheduledtask 可以查看当前系统所有任务计划信息
任务路径,名称,状态等详细信息
3.命令行中输入schtasks命令,获取任务计划信息
进程排查
对于windows系统排查中,找到恶意进程的pid,程序路径,还需要找到ppid以及程序加载的DLL
1. 通过任务管理器排查
win+r taskmgr 右键name 添加命令行
2.通过tasklist排查
#tasklist 可以查看 每个进程提供的服务 tasklist /svc #显示每个进程和服务的对应情况
#tasklist可以查看每个进程加载了什么模块
tasklist /m
#如果确定了某个模块是恶意模块可以查找启动了这个模块的服务的情况
tasklist /m ntdll.dll
3.通过netstat命令进行排查
一般来说都是通过netstat定位出pid后再通过task list定位程序
服务排查
1. service.msc命令打开服务窗口 查看所有服务项 名称,秒速,状态等
文件痕迹排查
通常情况下可以对以下方面对文件痕迹进行排查
1. 恶意软件常用的敏感路径进行排查
2.确定了应急响应时间点后,对时间点前后的文件进行排查
3.对带有特征的恶意软件进行排查,包含代码关键字或关键字函数,文件权限特征等
1.敏感目录
恶意程序一般会在程序中写好投放的路径,临时文件的路径相对统一,一般来说查看临时目录下是否有异常文件.
c:\windwos\tmp
2.预读取文件查看
Prefetch是预读取文件夹,用来存放系统已经访问过的文件的预读取信息,扩展名为pf.自动创建 prefetch文件夹是为了快系统启动进程
文件位置 c:\windows\Prefetch
根据应急响应时间进行查看
1.根据时间点来查看forfiles命令
forfiles /p /m /s /c /d /p Path : D:\xx|xx /m searchmask 默认的searchmask是 *.* 例如 *.rar文件 /s forfiels 再子目录中搜索 /c command 在每个匹配的文件上运行指定的command,带有空格的命令字符串必须用双引号括起来默认的command是 "cmd /c echo @file"
/d +/-mm/dd/yyyy|dd
对2022/2/12日以后的exe文件暴露出来
forfiels /p c:\ /m *.exe /s /d +2022/2/12 /c "cmd /c echo @path @fdate @ftime " 2>null
2.webshell查找
可以通过D盾等
日志排查
系统日志
主要是windows各个组件在运行中产生的各种事件
系统中各种驱动程序在运行中出现的重大问题.操作系统的多种组件出现重大问题,应用软件出现重大问题
重大问题包括重要数据丢失,错误,以及系统产生的崩溃行为
安全性日志
安全日志记录了各种与安全相关的事件.包括登录与退出系统的成功不成功信息
对系统中各种重要资源进行操作,例如:系统文件的创建,删除,更改操作
应用程序日志
记录了各种应用程序产生的各类事件.
系统中sqlserver数据库被暴力破解时,会有相关的记录.包含对应时间相关的详细信息.
事件级别
- 错误:重大问题,包括数据丢失,功能损失,例如服务启动期间无法加载
- 警告:潜在问题,例如 磁盘空间低,记录一个警告
- 信息:程序和服务是否操作成功的事件 例如 网络驱动成功加载
日志被清除相关日志事件ID对应的描述
事件日志服务关闭 1100 信息 安全
事件日志被清除 104 信息 系统
事件日志被清除 1102 信息 安全
linux
查看用户信息
1. 查看系统所有用户信息
cat /etc/passwd
2.分析超级用户权限
awk -F:'{if($3=0)print $1}' /etc/passwd
3.查看可登录账户
cat /etc/passwd | grep /bin/bash
4.查看用户错误的登陆状态
lastb #查看用户错误的登陆列表,错误的登录方法,IP地址,以及时间等等
5.查看所有用户的最后登陆状态
lastlog
6.查看当前用户登录系统状态
who
7.查看空口令账户
awk -F : ' length($2)==0 {print $1}' /etc/shadow
启动项
#/etc/ini.d文件时自启动的内容 cat /etc/ini.d/rc.local #查看init.d文件夹下的rc.local文件内容 cat /etc/rc.local #查看rc.local文件内容 ls -alt /etc/init.d #查看init.d文件夹下所有文件的详细信息
任务计划列表
1. crontab -l 命令查看当前的任务计划,指定用户进行查看
crontab -u root -l 查看root用户的任务计划
2.查看etcl下的任务计划文件
linux系统中的任务计划文件以cron开头,利用正则表达式的* 筛选所有以cron开头的文件
ls /etc/cron*
通常还包含任务计划的文件夹,* 代表文件夹下所有文件
/etc/crontab /etc/cron.d/*
/etc/cron.daily/* /etc/cron.hourly/*
/etc/cron.monthly/* /etc/cron.weekly/
/etc/anacrontab
进程排查
netstat 查看网络连接
netstat -ano or netstat -pantl
#分析可疑端口可疑ip,可疑pid以及程序进程.
根据pid的值利用
#ls -alt /proc/pid命令查看其对应的可执行程序
ls -alt /proc/2963
利用lsof -p pid命令查看进程打开的文件
lsof -p 2963 #查看pid为1963进程打开的文件
查杀文件
1. 恶意进程使用kill命令结束 kill -9 pid 2.使用rm命令删除木马文件 rm -rf filename 3.如果root用户无法删除,可能是该文件加上了i属性 lsattr filename #查看文件属性 chattr -i filename #移除i属性 4.如果存在守护进程而无法删除,通过先把进程挂起,查杀守护进程后,再将进程删除
服务排查
1.chkconfig --list
chkconfig --list atd 0:off 1:off 2:on 3:on 4:on 5:off 6:off 1单用户模式 2无网络连接的多用户命令行模式 3.有网络连接的多用户命令行模式 4.不可用 5.带图形界面的多用户模式 6.重新启动
2.service --status-all
查看所有服务的状态
文件痕迹排查
1. 敏感目录
/tmp 和~/.ssh和/etc/ssh的authorized_keys 存放黑客的公钥
2.时间点查找
find命令
find :指定目录下查找文件
-type b/d/c/p/l/f 设备,目录 字符设备 管道 符号链接 普通文件
-mtime -n +n 文件更改时间查找 units:day
-atime -n +n 文件访问时间
-ctime -n +n 创建时间查找
stat命令
stat 命令能够详细查看文件的创建时间,修改时间和访问时间,修改时间距离应急响应时间日期接近,线性关联说明可能被篡改
stat /var/www/html/q.php查看这个文件的相关时间属性
3.对系统命令进行查询 ls 和ps命令等可能会被攻击者篡改
ls -alt /bin #查看命令目录中相关系统命令的修改时间
ls -alh /bin # 查看相关文件大小,如果明显i安达,则文件很可能被鹈鹕按
4.linux后门查杀
利用第三方查杀工具chkrootkit,rkhunter等检测rootkit是否被安装到当前系统中.
5.排查suid程序/查找suid程序
find / -type f -perm 04000 -ls -uid 0 2>/dev/null