• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

★Windows NT/2000应急响应不完全指南

发布: 2007-5-25 23:52 | 作者: 未知 | 来源: Blog.ChinaUnix.net | 查看: 30次 | 进入软件测试论坛讨论

领测软件测试网 ★Windows NT/2000应急响应不完全指南

*******************************
*author:ayazero               *
*mail:drdos@163.com           *
*homepage:overflow.nease.net  *
*team:www.ph4nt0m.net         *
*******************************

$MS每出一个大漏洞,什么webdav,rpc-dcom,搞机器一族就会马上出动,在人们尚未反应过来之前,把尽可能多的机器占为己有。
即使是一般程度安全加固的系统也没有对抗未知或潜在漏洞的能力,被搞定也是没办法的事。本文主要介绍如何应付此类突发事件。
应急响应有一半是非技术的内容,制定一个合理的响应策略是至关重要的!记住:现在开始对受害系统的每一部操作都可能改变
已存在的证据或是导致敏感信息的丢失!

★Windows NT/2000应急响应不完全指南

*******************************
*author:ayazero               *	
*mail:drdos@163.com           *
*homepage:overflow.nease.net  *
*team:www.ph4nt0m.net         *
*******************************

$MS每出一个大漏洞,什么webdav,rpc-dcom,搞机器一族就会马上出动,在人们尚未反应过来之前,把尽可能多的机器占为己有。
即使是一般程度安全加固的系统也没有对抗未知或潜在漏洞的能力,被搞定也是没办法的事。本文主要介绍如何应付此类突发事件。
应急响应有一半是非技术的内容,制定一个合理的响应策略是至关重要的!记住:现在开始对受害系统的每一部操作都可能改变
已存在的证据或是导致敏感信息的丢失!

==============
创建响应工具包
==============
如果API,DLL都被入侵者修改替换了,那么系统的输出是不可信的。我们进行响应必须以高度可信赖的程序执行命令,
为了防止执行木马命令,并且不改变受害系统上的重要信息,比如cmd.exe的最后访问时间,我们应该用自己的工具集。
因为图形界面[GUI]控制台的操作往往会发生不可预料的结果,所以我们更偏向于使用命令行的工具。相对于UNIX而言,
因为不涉及不同体系结构及程序编译的兼容性问题,所以这个过程是相对简单的。
建议包括如下工具:
cmd.exe 	NT/2000命令解释器
loggedon 	显示远程和本地连接的用户
rasusers	显示哪些用户具有权限访问NT工具箱命令(NTRK)
netstat		列出监听端口
fport		端口进程关联工具
pslist		列出运行进程列表
listdll		列出运行进程依赖的动态连接库
nbtstat		列出最近10分钟NetBIOS的连接
arp		显示最后一分钟连接的系统MAC地址
kill		中止进程,NTRK包含
md5sum		md5校验和工具
rmtshare	显示可访问共享区的NTRK命令
nc/cryptcat	再熟悉不过的东西了:)
doskey		显示cmd命令历史工具
cca.exe		检验克隆管理员账号的工具
auditpol	审核策略命令行工具
reg		注册表转储工具
regdump		将注册表转换成文本的工具
pwdump		转储SAM数据库工具
ntlast		监视登陆成功和失败的工具
sfind		检测NTFS文件流隐藏文件的工具
dumpel		日志转储工具
......把你认为需要的都添加进去

======================
保存初始响应获得的信息
======================
把现场信息保存在不易改变的介质上。比如用nc.exe将要保存的信息传输的另一个系统。在我们自己的系统上执行:
C:\>nc -l -p 666 > pslist.txt
在受害系统上执行:
D:\>pslist | nc 192.168.0.12 666
确认I/O完成时,用Ctrl+C中断连接。如果需要非常严格的完整性确认,则需要用md5sum对这些数据校验一次.

注意:响应期间不能随意插拔网线,关闭或重启系统,因为某些信息将在这些动作之后全部丢失,采取什么措施是
应该在响应之前就想好的,不至于在误操作后后悔莫及!

==============
一些易失的数据
==============
系统日期和时间,用time;date获取;
最近运行的进程列表,用pslist获取;
最近打开的套接字列表,用netstat获取;
与已打开套接字关联的应用程序,用fport工具获取;
当前登陆用户列表,用loggeden工具获取;
当前或最近与系统建立连接系统列表,用arp,nbtstat获取;
可以制作如下批处理文件:
time /t
date /t
loggedon
netstat –an
fport
pslist
nbtstat –c
time /t
date /t
不排除你响应期间那个家伙还在活动。
确保自己正在使用安全的命令获取数据,使用开始菜单?运行:我们自己的cmd.

如果需要建立司法鉴定副本,可以使用Safeback,EnCase等流行工具创建该副本。
EnCase:http://www.guidancesoftware.com

============
获取现场日志
============
使用NTRK的auditpol查询系统中存在什么样的审核策略。如果没有就不必浪费时间了。
如果打开了系统的登陆和注销审核,ntlast工具可以监视系统中所有成功和失败的登陆。
NTRK的dumpel工具用于获取日志。例:
确定日志系统	A:\>auditpol
  	列出远程系统的成功登陆	A:\>ntlast -r
  	转储安全日志 A:\>dumpel -l security -t 

==========
注册表操作
==========
以下操作的项目包括需要获取的系统重要信息,攻击者可能修改的地方,以及为后续操作的所作的查询等。
可以把以下内容保存为脚本使用。
reg query"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"
reg query"HKLM\SAM\SAM\Domains\Account\Users\Names"
reg query"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
reg query"HKLM\Software\SYSTEM\ControlSet001\Control\ComputerName\ComputerName"
reg query"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CSDVersion"
reg query"HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\WinlogonLegalNoticeText"
reg query"HKLM\System\CurrentControlSet\Control\Session Manager\Memory
Management\ClearPageFileAtShutdown"
reg query"HKlM\System\CurrentControlSet\Service\LanmanServer\Shares"
reg query"HKCU\Software\Microsoft\Office.0\PowerPoint\RecentFileList"
reg query"HKCU\Software\Mircosoft\Windows\CurrentVersion\Explorer\RecentDocs"
reg query"HKLM\Software\Microsoft\Windows\CurrentVersion\Run"
reg query"HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce"
reg query"HKLM\Software\Microsoft\Windows\CurrentVersion\RunService"
reg query"HKLM\Software\Microsoft\Windows\CurrentVersion\RunServiceOnce"
reg query"HKLM\Software\Microsoft\Windows\CurrentVersion\Windows\load"
reg query"HKLM\Software\Microsoft\Windows\CurrentVersion\Windows\Run"
reg query"HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit"
reg query"HKCU\Software\Microsoft\Windows\CurrentVersion\Run"
reg query"HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce"
reg query"HKCU\Software\Microsoft\Windows\CurrentVersion\RunService"
reg query"HKCU\Software\Microsoft\Windows\CurrentVersion\RunServiceOnce"
reg query"HKCU\Software\Microsoft\Telent\LastMachine"
reg query"HKCU\Software\Microsoft\Telent\Machine1"
reg query"HKCU\Software\Microsoft\Telent\Machine2"
reg query"HKCU\Software\Microsoft\Telent\Machine3"
reg query"HKLM\Software\Mircosoft\Windows NT\CurrentVersion\CSDVersion"

================================
获得所有文件修改,访问,创建时间
================================
例:
dir /t:a /a /s /o:d c 	C盘所有文件访问时间的递归列表
dir /t:w /a /s /o:d d 	D盘所有文件修改时间的递归列表
dir /t:c /a /s /o:d e 	E盘所有文件创建时间的递归列表
以上列表在后期分析中会非常有用。

===================
确保获取admin的密码
===================
现场响应可能遇到令你尴尬的事情,必要时用pwdump转储SAM后用LC4破解,
或者用chntpw离线密码编辑器直接修改密码。Chntpw是个linux程序,允许浏览和改变
NT/2K的SAM数据库的密码。
Chntpw:http://home.eunet.no/~pnordahl/ntpasswd/

========
内存转储
========
RAM中可能存在非常重要的证据,关于内存转储的具体内容,请访问以下URL:
NT-->http://support.microsoft.com/support/kb/articles/Q235/4/96.ASP
2000-->http://support.microsoft.com/support/kb/article/Q254/6/49.ASP

==================
线索可能存在的地方
==================
通常需要注意以下几个方面:
核心结构的中不稳定数据
零碎空间;可以从先前删除且不能恢复的文件中获得信息 
空闲或未分配的空间,可以从中找到被删除的文件
被损坏或难以访问的簇
逻辑文件系统
事件日志
注册文件
不是由Windows Event Log Service管理的应用程序日志
交换文件:pagefile.sys
特殊应用程序文件,比如浏览器缓存
应用程序临时文件
回收站
打印机缓存
收发的邮件

================
鉴定受害系统映像
================
如果有条件,尽量不要在原介质上直接操作,原因就是尽量不破坏原始数据。
可以选择在Win9x中用NTFSDOS查看,或者在Linux中装入原映像,并且以只读方式安装:
[root@ay4z3ro foo]# mount -t ntfs -r /dev/hdb /mnt/checkdevice
用Samba建立共享后再用客户端连接做查询分析。

================
检查所有相关日志
================
NT/2K维护三个独立日志文件:系统日志,应用程序日志,安全日志。
检查这些日志获得以下信息:
访问特定文件的用户,
成功登陆系统的用户,
试图登陆系统但没有成功的用户,
特定应用程序的使用,
审核策略的变更,
用户权限的变化.
安全日志事件ID:
NT-->http://www.microsoft.com/technet/support/kb.asp?ID=174074
2000-->http://www.microsoft.com/windows2000/library/resources/reskit/ErrorandEventMessages/default.asp
NT/2000默认没有配置安全事件的日志审核,如果系统管理员没有自行添加策略,真的只能说是一大遗憾? 
检查IIS日志,例如:\winnt\system32\logfiles\w3svc1
除此以外还要查看诸如以.log结尾的其他日志。
大多数入侵者都会修改或删除日志,理论上也能做得很干净,但是说起来简单的事往往真正动手时就会有各种各样的问题,懒惰,
疏忽或者是由于用了跳板来攻击而自觉清高,多多少少就给我们留下了抓他们尾巴的证据。尤其是在某个家伙在趁热打铁的作
“批量生产”时,这种问题就更加明显。

==========
关键字搜索
==========
针对某个具体事件,可能会有一些ID,phrase与此事件密切相关,执行关键字搜索可以找到更多的信息。
关键字可以是很长的ASCII字符串,包括攻击者后门密码,用户名,MAC地址或IP.Encase软件提供一种物理层次的字符串搜索功能。

============
检查相关文件
============
例如:临时文件,高速缓存文件,跟踪最近使用文件的注册文件,回收站和许多存储运行时期数据的其他位置

====================
确定关键性事件的日期
====================

首先确定事件发生的时间范围,然后根据重要文件的改动,日志中的扫描和攻击行为时间受害者的报告等确定事件发生的最小时间范围。
使用ntfsflst工具可以列出目标驱动器所有的目录和文件,以及它们的最近访问时间,修改时间和创建时间。同时还提供md5校验功能。
如果前端还有IDS,Firewall记录,调整IDS系统时间与受害系统时间一致,然后可以做同步分析。
找出突发事件前后创建和被修改的文件可能会有惊喜地发现哦!

================
恢复被删除的文件
================
使用修复工具:
NTFS文件系统上使用的恢复工具是:
File Scavenger:http://www.quetek.com/prod01.htm

还原回收站:
检查回收站X:\RECYCLER\目录下有个以SID(安全标识符)为目录名的隐藏子目录下的内容该文件夹下有个隐藏文件info是个二进制文件,
保存了被删文件的真实文件名,时间/日期到RECYCLER目录的映射,可以使用EnCase,Internet Explorer History Viewer等软件查看该文件。

恢复.tmp文件:
很多应用程序都生成临时文件,检查所有扩展名为.tmp的文件。

检查注册表Unistall Registry子键

============
检查交换文件
============
HKLM\System\CurrentControlSet\Session Management\ClearPageFileAtShutdown
0表示关闭系统时交换文件不会被覆盖,
1表示关闭系统时所有非活动页面都会被0覆盖,
交换文件大部分内容为二进制格式,可能没什么大用,对交换文件执行字符窜搜索可能会找到有用信息。

================
检查快捷方式文件
================
使用NTRK的chklnks.exe检查那些曾经安装却找不到的文件。查看"C:\Document and Setting\Username\我最近的文件\"下指向
最近打开文件的快捷方式,该目录为隐藏目录。

如果必要还可以使用低层工具恢复文件系统。

========================
鉴定未授权的用户帐号和组
========================
检查现存账号中的非法用户;
用NTRK中的userstat检查域控制器中所有的域账号,寻找可疑的项目;
检索安全日志中ID为624,626,636,642的项目,分别为:添加新账户,启用账户,改变组,改变用户;
用net user命令可以查看用户最后登陆时间等信息;
用CCA.exe工具检查账号是否被克隆过;
检查\winnt\profile\目录,如果账号存在而以该帐号命名的子目录不存在,则该帐号还没有登陆过系统,
如果用户目录存在而该帐号不在用户列表中,则说明用户ID曾经存在而已被删除,
检查HKLM\SOFTWARE\Mircrosoft\Windows NT\CurrentVersion\ProfileList下的SID值,跟踪被删除的ID。

============
鉴定非法进程
============
使用NTRK的pslist命令列出进程表,listdlls工具将提供运行中进程的完整命令行参数,fport显示端口与进程的关联,
用杀毒软件扫描后门程序,用嗅探器分析异常的通信流量并找出与之对应的进程,以上操作要求对NT/2000的基本进程非常熟悉,
否则识别过程将变得很困难。

==================
找出异常或隐藏文件
==================
NTFS文件流特性可能被用于隐藏恶意文件,示例:
C:\>cp trojan.exe some.jpg:trojan.exe
删除原来的trojan.exe,这样trojan.exe就被隐藏了,cp为NTRK命令。
用sfind或Streams工具可以找出被隐藏的文件,
另外EnCase在打开文件时会自动识别流文件。

================================
检查守护进程,远程控制和远程访问
================================
NT自身不提供远程命令行访问的能力,而2000自带一个telnet服务器(后来还有SSH服务器)。
检查所有外部可访问入口:文件共享和管理共享(安全日志中匿名访问共享的事件ID为528),终端服务,SQL,telnet服务或后门,
第三方ftp守护进程比如Serv-U,web服务,VNC,PCAnywhere和木马端口。

=====================
检查Schedular Service
=====================
如果Schedular服务已经被打开,在cmd下简单执行at命令即可查看计划任务清单。

============
分析信任关系
============
NT支持不可传递或单向的信任,2000提供双向或可传递的信任关系,如果该关系被利用,那么受害范围将扩大,
此时受信任的系统也被认为是不安全的,并将其同时列入响应对象的范围。
勘查系统弱点
	检查各服务,应用程序及补丁的版本,对照bugtraq上已知的漏洞列表,查找系统弱点,从正面挖掘潜在的和可能被忽略漏洞。
这要求响应人员具有一个职业入侵者的相关技能!试图扮演一个入侵者也能从中发掘对方是如何进入系统的。


工具相关链接
loggeden,pslist,listdlls,NTFSDOS,Streams
http://www.sysinternals.com

fport,afind,ntlast,sfind
http://www.foundstone.com

md5sum,cygwin.dll
http://www.cygnus.com

pwdump
http://packetstorm.security.com/Cracker/NT/pwdump2.zip

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网