目录
Linux应急
Linux日志分析
MySQL应急:
Windows应急
介绍:
网络安全应急响应是指针对已经发生或可能发生的安全事件进行监控、分析、协调、处理,以保护资产安全的过程。它主要是为了让人们对网络安全有所认识、有所准备,以便在遇到突发网络安全事件时能够有序应对、妥善处理。网络安全应急响应不仅涉及入侵检测、事件诊断、攻击隔离、快速恢复、网络追踪、计算机取证、自动响应等关键技术,还对安全管理提出更高的要求
网络安全应急响应的对象是指针对计算机或网络所存储、传输、处理的信息的安全事件。这些事件的主体可能来自自然界、系统自身故障、组织内部或外部的人、计算机病毒或蠕虫等。按照计算机信息系统安全的三个目标,可以把安全事件定义为破坏信息或信息处理系统CIA(保密性、完整性、可用性)的行为。
网络安全应急响应通常分为几个阶段进行:
- 准备阶段:这是网络安全事件响应的第一个阶段,也属于一个过渡阶段,横跨在网络安全事件真正发生前和有迹象将要发生的时间段上。这一阶段的主要工作包括对网络系统进行初始化快照,准备应急响应工具包等,以确保在事件发生时能够迅速做出反应。
- 检测阶段:在这个阶段,应急响应团队会利用各种检测工具和技术,对网络进行监控,及时发现并确认安全事件的发生。
- 抑制阶段:一旦检测到安全事件,应急响应团队会立即采取措施,限制事件的扩散和影响的范围,防止潜在的损失与破坏。
- 根除阶段:在抑制阶段之后,应急响应团队会进一步采取措施,彻底根除安全事件的根源,确保系统恢复正常运行。
- 恢复阶段:在系统恢复正常运行后,应急响应团队还需要对系统进行全面的检查和测试,确保所有受影响的系统都已经得到妥善处理,并恢复到安全状态。
- 跟进阶段:这是应急响应的最后一个阶段,主要是对整个应急响应过程进行总结和评估,分析应急响应的效果和存在的问题,提出改进措施和建议,为未来的应急响应工作提供参
Linux应急
通过危险函数,查找webshell
find ./ type f -name "*.jsp" | xargs grep "exec("find ./ type f -name "*.php" | xargs grep "eval("find ./ type f -name "*.asp" | xargs grep "execute("find ./ type f -name "*.aspx" | xargs grep "eval("
对于免杀webshell,查看是否使用编码
find ./ type f -name "*.php" | xargs grep "base64_decode"
查看是否添加有可疑用户:
cat /etc/passwd cat /etc/sudoers
查找系统上设置了SUID的文件:
find / -perm -u=s -type f 2>/dev/null
查找系统中以 root 用户身份拥有并设置了 SUID权限的文件:
find / -user root -perm -4000 2>/dev/null
查看/opt目录是否存在恶意工具:
cd /opt
ls
查看是否被添加恶意公钥:
cat /root/.ssh/authorized_keyscat ~/.ssh/authorized_keys
检查 sudoers 文件,查看是否被过度授权:
cat /etc/sudoers cat /etc/sudoers.d
查看网络连接:
netstat -anlpt
查看是否被建立内网代理隧道:
\var\tmp\proc\”目录下的文件“my.conf
查看网站的异常连接:
grep -rni 'href=' /var/www/html/
查看网站的JS动态加载的连接:
grep -rni 'http' /var/www/html/
查看计划任务
crontab -ltop / ps -antp / ps -aux / crontab -l ls -la /etc/cron.*
查看历史命令:
history
检查系统服务:
systemctl list-unit-files --type=service
检查启动项:
ls /etc/init.d/ ls /etc/rc*.d/ ls /etc/systemd/system/
检查用户启动项:
ls ~/.config/autostart/ ls ~/.config/systemd/user/
持久化设置,导致任意用户登录就会触发:
1、”~/.bashrc“:用于 Bash Shell,会在每次打开新的终端或登录 Shell 时执行。
2、”/.bash_profile“或”/.profile“:这些文件在用户登录时执行。
3、”~/.zshrc“:用于Zsh Shell,与”~/.bashrc“类似。
4、”/etc/profile“:为所有用户提供的系统级别的配置文件,
5、”/etc/bash.bashrc“:为所有用户提供的系统级别的配置文件,Bash Shell 专用。
持久化设置,导致root用户登录就会触发:
1、“/root/.bashrc”:在root用户登录Bash Shell时执行;
2、“/root/.bash_profile”:在root用户登录时执行。
3、“/root/.profile”:在root用户登录时执行。
4、“/etc/profile”:所有用户登录时执行,但可以通过特定的条件使其仅在root用户登录时触发。
5、“/etc/rc.local”:系统启动时执行,可以包含条件逻辑
Linux日志分析
Linux日志位置:
/var/log
Redis日志位置:
logfile /var/log/redis/redis.log
查找Redis日志的恶意函数:
sudo grep ‘CONFIG SET’ /var/log/redis.logsudo grep ‘SLAVEOF’ /var/log/redis.logsudo grep ‘MODULE LOAD’ /var/log/redis.log
恶意脚本一般会在Redis 的数据目录或临时目录中生成
grep "Module 'system' loaded from" /var/log/redis/redis.log
查看 Apache 访问日志
less /var/log/apache2/access.log
查看 Nginx 访问日志
less /var/log/nginx/access.log
查看ssh登录信息:
grep 'sshd' /var/log/auth.log.1
查看当前认证日志
less /var/log/auth.log
搜索失败的登录尝试
grep 'Failed password' /var/log/auth.log
搜索成功的登录尝试
grep 'Accepted password' /var/log/auth.log
查看ssh到服务器的IP:
grep "Accepted " /var/log/secure | awk '{print $11}'
查看指纹:
cat access.log.1 |grep IP |more
查看index.php页面被访问次数:
cat access.log.1 | grep "/index.php" | wc -l
定位所有扫描IP:
awk '{print $1}' access.log | sort | uniq -c | sort -nr
查看某个IP访问了多少次
cat access.log.1 | grep IP | cut -d' ' -f1 | sort | uniq -c
查看IP扫描次数:日志位置(nginx_access_2023-12-22.log)根据实际情况替换
cut -d- -f 1 nginx_access_2023-12-22.log |uniq -c | sort -rn | head -20
MySQL应急:
MySQL常见提权函数:INTO OUTFILE 写入文件、利用 LOAD_FILE 读取文件,以及利用 UDF
SELECT '' INTO OUTFILE '/var/www/html/shell.php';
读取敏感文件:
SELECT LOAD_FILE('/etc/passwd');
MySQL的默认插件目录:
/usr/lib/mysql/plugin/
MySQL的配置文件: config.inc.php
find / -name config.inc.php
一般看数据库信息:
cd /var/log/mysql/cat error.log
进入数据库,查看数据库配置:
show global variables like '%secure%';
查询异常函数:
SELECT * FROM mysql.func;
Windows应急
Windows日志事件ID(事件查看器):
1074-记录由用户、进程或系统管理员启动的系统重启、关闭或注销事件
4624:用户成功登录
4625:用户失败登录
4634 - 用户注销事件
4647-用户通过ctrl+alt+del注销
4648-凭据登录
4670-对一个对象的权限被修改
4672 - 特权账户登录事件
4674-针对受保护对象执行特权操作
4688 - 新进程创建事件
4719 - 审计策略更改事件
4720-新建账户
4722-用户账户被启用
4725-用户账户被禁用
4726-用户账户被删除
4728-已将用户添加到安全组中
4732-添加进安全组
4733-用户账户被从安全组中移除
4735-本地组的安全属性被修改
4738-用户账户更改
4776 - NTLM 认证失败事件
4902-系统审计策略更改尝试
4907-针对某个对象的审核策略被修改
5058-查看秘钥事件
5061-打开秘钥事件
系统日志关键ID:
6005 - 事件日志服务启动(系统启动),
6006 - 事件日志服务停止(系统关闭),
6008 - 非正常关机事件,
7045 - 服务安装事件
应用程序日志相关事件ID:
1000 - 应用程序崩溃事件,
4621 - 应用程序挂起事件
防火墙规则ID
4946-防火墙添加策略
4947-防火墙修改
5156-防火墙允许连接
5157-防火墙阻止连接
4663-对对象的访问尝试
安全策略ID
4670-权限服务状态变更
4719-系统审计策略已更改
文件访问ID
4663-访问对象
计划任务相关事件ID
4698-已创建计划任务
4699-已删除计划任务
4700-已启用计划任务
4701-已禁用计划任务
查看所有用户:
第一种筛选4720事件ID
CMD命令:查看所有本地账户信息)
lusrmgr
CMD命令直接查看所有账户名称:
wmic useraccount get Name
查看影子账户(注册表查看)regedit:
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names
注册表查看计划任务情况:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
查看网络连接情况:
netstat -ano
CMD查看用户创建的时间:
net user 用户
任务管理器查看恶意的进程或者用火绒剑监控进程