应急响应笔记
一,windows
1,排查账号情况
1.1 弱口令情况
机器所有账号以及账号密码情况需要与机器所属人/管理员进行沟通
1.2 账号情况
lusrmgr.msc 查看是否有异常用户存在或存在于管理员组中
1.3 影子账号
当没有修改注册表时
可以通过lusrmgr.msc查看到影子用户
当修改了注册表
通过对比注册表和lusrmgr.msc的用户 判断是否有影子用户
清理影子用户
将Names和对应Users的文件夹删除
2,异常进程,端口
2.1 检查可疑链接
netstat -ano
排查状态为ESTABLISHED状态的进程
1 | TCP xx.xx.xx.xx:1139 47.102.130.247:2117 ESTABLISHED 8980 |
在通过pid 8980确定是什么进程
2.2 检查可疑的进程
运行-msinfo32 点击 软件环境-正在运行任务
tasklist pid对应的文件名
2.3 查看进程对应的文件位置
cmd输入 wmic process
可以用 wmic process >> 123.txt 将结果输出到txt 格式会整齐很多
通过powershell判断pid文件的路径
1 | wmic process get name,executablepath,processid|findstr 2696 |
通过powershell 通过文件名获取文件路径
1 | wmic process where caption= "powershell.exe" get caption,commandline /value |
3,检查启动项,计划任务,服务自启动,共享文件
3.1 检查启动项
3.1.1 msconfig
运行-输入msconfig
判断启动项是否有问题
3.1.2 注册表
通过注册表排查
HKEY_CURRENT_USER\software\micorsoft\windows\currentversion\run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce
3.1.3 组策略
运行-gpedit.msc
排查是否添加了异常脚本
3.2 检查计划任务
3.2.1 控制面板
控制面板-任务计划程序
右键属性 可以看到具体文件位置
3.2.2 schtasks.exe
cmd 输入 schtasks.exe
3.3 服务自启动
运行-输入services.msc
注意服务状态和启动类型 判断是否是正常服务
3.4 共享文件夹
我的电脑 右键 -管理-共享文件夹-共享 判断是否非管理员操作的共享文件夹的操作
二,linux
1,账号安全
who 查看当前登录用户。tty本地登录 pts远程登录
uptime 账户登录多久
查看特权用户
1 | awk -F: '$3==0{print $1}' /etc/passwd |
查看可以远程登录的账号
1 | awk '/\$1|\$6/{print $1}' /etc/shadow |
2,历史操作
history
3,异常端口和进程
3.1 异常端口
netstat -antlp
查看pid对应的文件路径
ls -l /proc/$pid/exe
查看pid对应的执行程序
ls -alt /proc/pid
查看进程打开的文件
lsof -p pid
3.2 异常进程
ps aux |grep pid
3.3 异常服务
service --status-all
4,定时任务
crontab -l
重点排查一下目录
1 2 3 4 5 6 7 8 9 | / var /spool/cron/* /etc/crontab /etc/cron.d/* /etc/cron.daily/* /etc/cron.hourly/* /etc/cron.monthly/* /etc/cron.weekly/ /etc/anacrontab / var /spool/anacron/* |
5,系统日志
日志文件 | 说明 |
---|---|
/var/log/cron | 记录了系统定时任务相关的日志 |
/var/log/cups | 记录打印信息的日志 |
/var/log/dmesg | 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息 |
/var/log/mailog | 记录邮件信息 |
/var/log/message | 记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件 |
/var/log/btmp | 记录错误登录日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看 |
/var/log/lastlog | 记录系统中所有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接vi,而要使用lastlog命令查看 |
/var/log/wtmp | 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令来查看 |
/var/log/utmp | 记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息。同样这个文件不能直接vi,而要使用w,who,users等命令来查询 |
/var/log/secure | 记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 1、定位有多少IP在爆破主机的root帐号: grep "Failed password for root" / var /log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more 定位有哪些IP在爆破: grep "Failed password" / var /log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" |uniq -c 爆破用户名字典是什么? grep "Failed password" / var /log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}' |uniq -c|sort -nr 2、登录成功的IP有哪些: grep "Accepted " / var /log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more 登录成功的日期、用户名、IP: grep "Accepted " / var /log/secure | awk '{print $1,$2,$3,$9,$11}' |
5.1 ssh登录成功
last
5.2 ssh登录失败
lastb
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下