目录

一、应急响应流程

1 准备阶段

2 检测阶段

3 抑制阶段

4 根除阶段

5 恢复阶段

6 总结阶段

现场处置流程

二、系统排查

1、系统信息

2、用户信息

3 启动项

4 任务计划

5 其他:Windows防火墙规则

三、进程排查

1 windows

1.1 任务管理器

1.2 cmd > tasklist

1.3 查看正在进行网络连接的进程cmd > netstat -ano | findstr 'ESTABLISHED'

2 Linux

2.1 netstat -ap

2.2 特定pid对应的执行程序:ls -alt /proc/PID

2.3查看进程打开的文件 lsof -p PID

2.4 kill -9 PID 杀死进程

2.5 查看隐藏进程

2.6 查看占用资源较多的进程top

四、服务排查

1 windows服务

2 Linux 服务

五、文件痕迹排查

1 windows

1.1敏感目录

1.2时间点查找

1.3 webshell文件

2 linux

2.1敏感目录

2.2时间点查找

六、日志分析

1 windows日志

1.1 系统日志

1.2安全性日志

1.3应用程序日志

1.4 应急响应中常见的事件id

1.5日志分析

2 Linux日志

1 查看日志

2 日志分析

3 其他日志

七、内存分析

1 内存的获取

1.1 基于内核模式程序的内存获取

1.2 基于系统崩溃转储的内存获取

1.3 基于虚拟机快照

2 内存的分析

2.1 Redline

2.2 Volatility

八、流量分析

筛选器

1 特定目的地址:ip.addr==ip

2特定源地址:ip.src==ip

3特定协议:直接输入http、http2、arp(小写)等

4特定端口:tcp.port==port / udp.port==port

5关键字:tcp contains 关键字

九、威胁情报

威胁情报金字塔

常用的威胁情报库/社区


一、应急响应流程

应急响应分为六个阶段,分别是

准备 —— 检测 —— 抑制 —— 根除 —— 恢复 —— 总结

这种划分方法也称PDCERF方法

实际上,应急响应并不是严格遵从这个方法的,大多数情况都要具体问题具体分析

1 准备阶段

以预防为主,主要是要进行风险评估等工作,包括建立信息安全管理体系、部署安全设备和安装防护软件、建立应急响应和演练制度等等。

2 检测阶段

这个阶段是在安全事件发生后的,主要是判断安全事件是否还在发生,安全事件产生的原因,对业务的危害程度以及预计如何处理。

常见的安全事件有:

  • 中病毒(勒索、挖矿等)
  • 信息泄露(账号信息、敏感资料)
  • 业务服务被破坏(网页篡改、破坏,数据被删等)
  • 系统崩溃、网络瘫痪(ddos、批量请求)

3 抑制阶段

抑制阶段主要是尽可能降低安全事件带来的损失,限制安全事件发生的范围和时长

一些抑制手段有:

  • 断开网络
  • 关闭受影响的系统
  • 暂停受影响账号的使用
  • 修改ACL
  • 关闭未受到影响的其他业务
  • 蜜罐

4 根除阶段

这个阶段是找出安全事件的根源,并完成清除掉隐患,避免安全事件二次发生,

5 恢复阶段

这个阶段是系统恢复到安全事件发生前的正常运行状态,并把备份数据恢复过来

6 总结阶段

这个阶段是总结这个安全事件的发生过程,并以此对涉事单位的安全技术配置、安全管理制度等进行分析评审,并以此为基础确定是否还会有新的风险,最后输出整改建议,包括安全设备采购、安全管理制度修订等

这个阶段可以输出

  • 应急响应报告,包括安全事件发生流程、造成的危害、处置的方法
  • 企业问题清单

现场处置流程

在现场中,首先通过访谈和现场确认,大概确认事件类型,再以此作针对性访谈和检查,然后制定应急方案,再逐步排查系统、进程、服务、文件痕迹、日志等

二、系统排查

1、系统信息

1.1 windows

系统信息工具:msinfo32.exe

命令行msinfo即可打开

展开软件环境:

此工具可进行以下信息的排查

  • 系统驱动(描述、文件、开启状态等)
  • 正在运行的任务(名称、路径、进程ID)
  • 加载的模块
  • 服务(名称、路径、状态等)
  • 启动程序(命令、用户名、位置等)

查看系统信息

cmd > systeminfo

1.2 linux

OS信息 uname -a

OS版本信息 :cat proc/version

 已载入模块信息:lsmod

 CPU信息:lscpu

2、用户信息

2.1 windows用户信息

cmd > net user

cmd > net user username

上面的方法查看不了隐藏账户,解决:计算机管理—本地用户和组

 注册表-HKEY_LOCAL_MACHINE-SAM-SAM-Domains-Account-Users-Names

这种方法可排查windows是否利用隐藏账户进行提取(导出F值查看是否有一样的)

2.2 linux

查看所有用户信息:cat etc/passwd

用户名:x(代表密码加密):用户ID:用户组:注释:用户主目录:默认登录shell

bin/bash 可登录    sbin/nologin 不可登录

查看超级权限账户:awk-F: '{if($3==0)print $1}'/etc/passwd

-F fs 指定描绘一行中数据字段的文件分隔符 默认为空格,这里为:

以:分隔字符,分割所有行,形成二维的字符矩阵,如果矩阵中第三列的值为0(即超级权限账户),打印出第一列字符(即账户名)

查看可登录账户:cat etc/passwd | grep 'bin/bash'

查看错误的用户登录信息:lastb

查看所有用户最后一次登录信息:lastlog

 查看用户最近登录信息:/$  last

 数据源:

  • /var/log/wtmp   wtmp存储登录成功的信息
  • /var/log/btmp    btmp存储登录失败的信息
  • /var/log/utmp)utmp存储当前正在登录的信息

3 启动项

3.1 windows系统

任务管理器 - 启动项

 注册表

  • HKEY_CLASSES_ROOT  确保在Windows资源管理器中执行时打开正确的程序
  • HKEY_CURRENT_USER 登录用户的配置、有用户的文件夹、屏幕颜色、控制面板设置
  • HKEY_LOCAL_MACHINE 计算机硬件信息、驱动
  • HKEY_USERS 所有用户配置文件的配置信息
  • HKEY_CURRENT_CONFIG 系统当前配置

3.2 Linux

rc.local 启动加载文件

Linux中有两个,分别在etc/re.local和etc/init.d/rc.local,修改这两个文件可修改启动项

查看init.d下的文件

4 任务计划

攻击者可利用任务计划实现病毒的长期驻留

 4.1 windows

计算机管理 — 任务计划程序 — 任务计划程序库 — 

powershell > Get-ScheduledTask 

 cmd > schtasks

 4.2 Linux

terminal /$ crontab -l 

terminal /$ crontab -u username -l 

 查看所有任务计划文件 cat etc/cron*

5 其他

Windows防火墙规则

三、进程排查

进程:系统资源分配和调度的基本单位

1 windows

1.1 任务管理器

1.2 cmd > tasklist

进程和服务对应 cmd > tasklist /svc 

加载dll进程 tasklist /m

加载特定dll tasklist /m name.dll

1.3 查看正在进行网络连接的进程cmd > netstat -ano | findstr 'ESTABLISHED'

-a 显示所有连接

-n数字形式显示地址和端口

-o显示进程id

LISTENING:侦听状态。ESTABLISHED:建立连接。CLOSE_WAIT:对方主动关闭连接或网络异常导致连接中断。

此外,还可以利用powershell和vmic命令进行查询

2 Linux

2.1 netstat -ap 

-p 显示进程ID和名字

-a 所有

2.2 特定pid对应的执行程序:ls -alt /proc/PID

 2.3查看进程打开的文件 lsof -p PID

2.4 kill -9 PID 杀死进程

rm -rf filename 删除文件,如root用户也无法删除,则先去掉i属性 chattr -i filename

2.5 查看隐藏进程

ps-ef|awk '{print}'|sort-n|uniq >1
ls/proc|sort-n |uniq >2
diff 1 2

sort -n 按整体数字大小排序:2 < 10,而不是 10 <2 (这种情况在以文件名排序时经常遇到)

>1  >2 写入文件1 2中

uniq 删除重复出现的行列

awk '{print}' =awk '{print $0}'  每一行由空格隔开 多行组成矩阵,取所有列,应该改为$2

同样,第二各命令应该改为 ls/proc|sort-n | grep -E '[0-9]+' | uniq >2

diff 1 2 对比1 2这两个文件

ps -ef 标准格式显示进程

ps-ef | awk '{print$2}' | sort-n | uniq > 1
ls/proc | sort-n | grep -E '[0-9]+' | uniq > 2
diff 1 2

2.6 查看占用资源较多的进程top

四、服务排查

服务可以看作是长时间运行在后台,不影响其他用户的进程,服务可以在计算机启动时启动,也可以暂停、重新启动。

phpstudy的apache是服务,AWVS14,Nessus也是以服务形式运行

1 windows服务

运行对话框 — services.msc

另外,也可以直接在对话框中搜索,或者在任务管理员中打开

2 Linux 服务

chkconfig --list 这个命令在centOS和redhat可以用,但是Ubuntu和kali中不可用(使用sudo service --status-all)

五、文件痕迹排查

大部分攻击都会留下文件痕迹的,可以试图从以下几个思路查找文件痕迹

  • 常见的敏感路径
  • 具有关键字特征的文件
  • 安全事件发生时间

1 windows

1.1敏感目录

a)不同版本的系统的临时文件相对来说比较统一,所以攻击者准备好的存放路径往往会选择在临时文件目录temp(tmp),例如

b)浏览器下载文件

c)用户recent文件,这个文件主要是存储最近运行文件的快捷方式

d)预读取文件Prefetch

1.2时间点查找

a)安全事件发生日新增文件

forfiles命令

forfiles  /m *.exe   /d +2020/2/12   /s   /p c:\   /c "cmd/ c  echo @path @fdate @ftime"2 > null

/m 搜索文件

/d 大于或等于该日期  /dd小于或等于

/s 递归目录和子目录所有文件

/p 开始搜索的路径,这里是c盘

/c cmd/ c为默认,这里表示,返回路径、创建日期、创建时间

文件查看里搜索栏也可以进行相应操作

b)查看时间发生逻辑错误的文件,如创建2021年,修改是2020年

1.3 webshell文件

使用d盾、webshellkill等工具查找

2 linux

2.1敏感目录

a)/tmp目录和命令目录/usr/bin/usr/sbin

b)~/.ssh及/etc/ssh经常作为一些后门配置的路径

2.2时间点查找

a)攻击日期变动的文件

find ctime -7 -name *.sh

-type b/d/c/p/l/f:查找块设备、目录、字符设备、管道、符号链接、普通文件。

-mtime-n+n:按更改时间来查找,-n指n天以内,+n指n天前。

-atime-n+n:按访问时间来查找,-n指n天以内,+n指n天前。

-ctime-n+n:按创建时间来查找,-n指n天以内,+n指n天前。

b)排查创建、修改、访问时间

stat test.php

c)特殊文件

c1.权限为777的文件

find -tmp -perm 777

c2.webshell文件

使用findWebshell、Scan_Webshell.py扫描

c3.ls-alt/bin查看系统命令修改时间

c4.Linux后门检测

chkrootkit工具用来监测 rootkit 是否被安装到当前系统中。rootkit是攻击者经常使用的后门程序

c5.排查suid权限的程序

suid权限是用户对文件的权限,对象为文件

find/-type f -perm -04000 -ls -uid 0 2>/dev/null

-type f:根据不同的文件类型筛选  d:目录 c:字型装置文件 b:区块装置文件 p:具名贮列 f:一般文件 l:符号连结 s:socket

-perm -/+mode  -04000

-perm按执行权限查找

+mode指部分满足权限 -mode指完全满足权限(还可以比此权限更高) mode指正好满足权限的 /mode指只要有权限就可以

-04000 -4000

-ls -uid 0 2

-ls  详细信息(创建时间、用户、大小等)

-uid 0 2  对于uid为用户id0-2?

六、日志分析

1 windows日志

当然,也可以直接在事件查看器上查看日志

 1.1 系统日志

系统组件运行中产生的事件,包括应用程序、组件、驱动程序等,事件包括数据丢失、错误,系统或应用崩溃等

 1.2安全性日志

安全日志主要记录安全事件有关的日志,包括登录或退出系统成功或失败信息,对重要文件的操作

1.3应用程序日志

应用程序所产生的各类事件

 1.4 应急响应中常见的事件id

528/529

(旧版本)

4624/4625

(旧版本)

登录成功/失败

安全

(类型)

680 4776 账户认证成功/失败 安全
624       4720 创建用户 安全
636 4732 把用户添加到启用安全性的本地组中 安全
632 4728 把用户添加到启用安全性的全局组中 安全
2949/2934 7045/7030 创建服务/创建服务失败 系统
2944 7040        IPSEC服务从禁用变成自启动 系统

登录类型和数字对应表

登录相关日志事件ID对应描述表 

启动事件相关日志事件ID对应描述表

日志被清除相关日志事件ID对应描述表

 1.5日志分析

--事件查看器

--powershell

Get-EventLog Security-InstanceId 4672

Get-WinEvent-FilterHashtable @{LogName='Security';ID='4672'}

--FullEventLogView日志检索工具

2 Linux日志

Linux的日志存储在var/log中

wtmp   记录登录进入、退出、数据交换、关机和重启
cron     记录与定时任务相关的日志信息
messages    记录系统启动后的信息和错误日志
apache2/access.log    记录Apache的访问日志
auth.log    记录系统授权信息,包括用户登录和使用的权限机制等
userlog     记录所有等级用户信息的日志
xferlog(vsftpd.log)    记录Linux FTP日志
lastlog    记录登录的用户,可以使用命令lastlog查看
secure   记录大多数应用输入的账号与密码,以及登录成功与否
faillog    记录登录系统不成功的账号信息

1 查看日志

cat var/log/logname

 查看邮件相关日志记录文件ls -alt /var/spool/mail

 2 日志分析

tail-n 10 test.log查询最后10行的日志           head-n 10 test.log查询头10行的日志

tail-n+10 test.log查询10行后的所有日志      head-n-10 test.log查询除最后10行的其他所有日志

3 其他日志

3.1 IIS日志的位置

%SystemDrive%\inetpub\logs\LogFiles;
%SystemRoot%\System32\LogFiles\W3SVC1;
%SystemDrive%\inetpub\logs\LogFiles\W3SVC1;
%SystemDrive%\Windows\System32\LogFiles\HTTPERR。

可通过cmd > set查看%SystemDrive%和%SystemRoot%

3.2 apache日志

/var/log/httpd/access.log;
/var/log/apache/access.log;
/var/log/apache2/access.log;
/var/log/httpd-access.log。

 3.3 ngnix日志

默认在/usr/local/nginx/logs目录下,access.log是访问日志,error.log是错误日志。如不在默认目录下,可以在ngnix.conf中查找.

3.4 oracle数据库

select * from v$logfile查询日志路径(默认为$ORACLE/rdbms/log)

select * from v$sql查询之前使用过的SQL

3.5 mysql数据库

show variables like 'log_%'查看是否启用日志

show variables like 'general'查看日志位置(默认为/var/log/mysql/)

七、内存分析

有时候对应急响应服务器进行内存的提取,可以分析处其中的隐藏进程。

1 内存的获取

1.1 基于内核模式程序的内存获取

这种方法一般是使用工具抓取,常用工具有FTK Imager、Dumpit、RAM Capture等

1.2 基于系统崩溃转储的内存获取

所有控制 — 系统 — 高级 — 启动和故障恢复 — 设置 — 启动和故障恢复 — 核心内存转储 — 找到转储文件进行获取

1.3 基于虚拟机快照

VMwareWorkstation在生成快照时会自动生成虚拟内存文件,如图vmen文件

此外,还有基于用户模式程序的、内核模式程序、操作系统注入、系统休眠文件、系统冷启动、硬件的内存获取。

2 内存的分析

2.1 Redline

可通过Redline导入分析,Redline会收集在主机上运行的有关进程信息、内存中的驱动程序,以及其他数据,如元数据、注册表数据、任务、服务、网络信息和Internet历史记录等,最终生成报告

2.2 Volatility

Volatility可以分析入侵攻击痕迹,包括网络连接、进程、服务、驱动模块、DLL、handles、进程注入、cmd历史命令、IE浏览器历史记录、启动项、用户、shimcache、userassist、部分rootkit隐藏文件、cmdliner等

八、流量分析

Wireshark是一个网络封包流量分析软件。其功能是获取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPcap作为接口,直接与网卡进行数据报文交换。

筛选器

1 特定目的地址:ip.addr==ip

2特定源地址:ip.src==ip

3特定协议:直接输入http、http2、arp(小写)等

4特定端口:tcp.port==port / udp.port==port

5关键字:tcp contains 关键字

九、威胁情报

威胁情报的定义是基于证据的知识,包括上下文、机制、指标、隐含和可操作的建议,针对一个现存的或新兴的威胁,可用于做出相应决定的知识。  ——Gartner

结合威胁情报可以了解攻击者的信息

IOC(Indicator of Compromise)通常指在检测或取证中,具有高置信度的威胁对象或特征信息。

威胁情报金字塔

顶端的情报获取成本最高,同时也是价值最大的

IOC(Indicator of Compromise)通常指在检测或取证中,具有高置信度的威胁对象或特征信息。

常用的威胁情报库/社区:

  • 微步在线
  • Venuseye威胁情报中心
  • 奇安信威胁情报中心
  • 360威胁情报中心

参考:电子工业出版社《网络安全应急响应指南》

(侵权请联系本人删除)

【安全服务】应急响应1:流程、排查与分析相关推荐

  1. 应急响应-HW之windows 应急响应之入侵排查技巧

    windows 应急响应之入侵排查技巧 文章目录 windows 应急响应之入侵排查技巧 常见的应急响应事件分类: 入侵排查思路 0x01 分析入侵过程 0x02 入侵排查方法 一.检查系统账号安全 ...

  2. 应急响应之系统排查方法

    应急响应之系统排查方法 1.系统基本信息 Windows系统排查 Linux系统排查 2.用户信息 Windows用户排查 Linux用户排查 3.启动项 Windows启动项排查 Linux启动项排 ...

  3. 应急响应之日志排查方法,Windows篇

    应急响应之日志排查方法,Windows篇 1.Windows系统的日志文件位置 2.Windows日志分类 3.日志常用事件 ID 4.日志分析手段 通过内置的日志筛选器进行分析 通过 PowerSh ...

  4. 应急响应-----Windows系统排查(学习笔记)

    ** 1.windows应急响应事件分类 ** Windows 系统的应急事件,按照处理的方式,可分为下面几种类别: 病毒.木马.蠕虫事件 Web 服务器入侵事件或第三方服务入侵事件 系统入侵事件,如 ...

  5. Windows应急响应 -Windows日志排查,系统日志,Web应用日志,

    「作者简介」:CSDN top100.阿里云博客专家.华为云享专家.网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏<网络安全入门到精通> Windows日志分析 ...

  6. 应急响应-window入侵排查

    0x00 前言 当企业发生黑客入侵.系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解决方 ...

  7. 应急响应 - Windows 入侵排查

    windows 入侵排查 前言 当企业发生黑客入侵.系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程 ...

  8. 网络安全——应急响应之入侵排查

    一.windows入侵排查 1.入侵排查思路 1.1 检查系统账号安全 1.查看服务器是否有弱口令.远程管理端口是否对公网开放 (根据实际情况咨询相关服务器管理员) 2.检查服务器是否存在可疑账号.新 ...

  9. Linux应急响应入门--入侵排查(全面)

    账号安全: 1.用户信息文件 /etc/passwd # 格式:account:password:UID:GID:GECOS:directory:shell # 用户名:密码:用户ID:组ID:用户说 ...

  10. mysql数据库回滚日志_Mysql数据库应急响应中日志排查

    常见的数据库攻击包括弱口令.SQL注入.提升权限.窃取备份等.对数据库日志进行分析,可以发现攻击行为,进一步还原攻击场景及追溯攻击源. 0x01 Mysql日志分析 general query log ...

最新文章

  1. 《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——2.8 创建数据库...
  2. datetime 索引_date类型和varchar类型在查询索引效率上比较
  3. python os.removedirs() 和shutil.rmtree()(os.removedirs用于删除非空文件夹和子文件夹、shutil.rmtree用于删除文件夹下所有文件夹和文件)
  4. Win10解决无法访问其他机器共享的问题
  5. 兰州大学C语言程序设计课程作业,兰州大学C语言程序设计课程作业1附答案.doc...
  6. 前端学习(2710):重读vue电商网站30之左侧菜单栏图标设计
  7. mybatis获取表名_mybatis plus 的动态表名的配置详解
  8. ASP.NET多附件上传和附件编辑的实现
  9. 程序员必备简捷开发辅助工具总结
  10. AI人工智能在自动写歌词软件的最新应用,AI机器人小芝
  11. 正弦定理和余弦定理_高中数学,正弦定理和余弦定理的应用举例,含高频考点及详细解析...
  12. 一个屌丝程序猿的人生(五)
  13. Aliyun-OSS海量存储
  14. Android 第三方应用接入微信平台(1)
  15. 了解react-hook以及State Hook
  16. 恢复Excel批注框到默认位置
  17. python if函数用法_python中if条件中的Contains()函数“in”
  18. Nginx中保持长连接的配置
  19. 怎么管理微信?管理微信的软件
  20. 人在美国,刚下飞机,“IP属地”催生下的灰色产业

热门文章

  1. 支持 C++11/14/17 功能(现代 C++
  2. 美通社企业新闻汇总 | 2019.2.1 | 迪士尼推出猪年限定产品;阿联酋航空与南航签订代码共享协议...
  3. 二(1-苯基-异喹啉)(乙酰丙酮)合铱(III)
  4. css实现椭圆、半椭圆
  5. Webpack 打包commonjs 和esmodule 模块的产物对比
  6. IP-GUARD加密文件无法打开或者打开时显示乱码
  7. 计算机网络实验(思科模拟器Cisco Packet Tracer)配置静态路由使三台pc机网络互通
  8. PWM直流马达速度控制
  9. Xilinx公司的Vivado 2022.2版本在Windows和Linux系统上的下载配置教程
  10. 内网穿透工具---frp使用教程