3.2 Windows入侵溯源分析
溯源分析的目的如下:
·确定入侵时间和途径。
·定位病毒/木马位置。
·确定攻击轨迹和危害。
·取样分析。
·病毒/木马清除。
围绕着上述目的,可从系统、服务、文件、网络四个部分进行,每部分相互重叠、相互关联。
首先从系统层面确定大概的入侵时间,然后从服务角度确定入侵途径和入侵类型:攻击者通常利用系统或服务的缺陷入侵系统,实施进一步的攻击。
最后从文件和网络层面,确定影响范围和危害:攻击者的最终目的是收集信息,破坏系统,例如,篡改配置文件、留下后门维持权限等,在此过程中需要与远程服务器通信,将收集的信息发送给远程服务器,或者接受远程服务器的进一步攻击指示等。Windows入侵溯源的分析思路如图3-9所示。
图3-9 Windows溯源分析流程
注意:请务必牢记,所有操作在执行前尽量请先备份,避免破坏现场。
3.2.1 系统
对于Windows系统层,最重要的问题就是补丁问题,很多入侵事件都是因为系统补丁没有及时更新。其次,便是对系统用户进行相关检查,例如弱口令或是否存在恶意用户,最后,针对日志进行分析,找出原因。下面针对以上步骤逐一介绍。
1.补丁检测
理由 如果系统存在未打的重要补丁,攻击者便可以利用漏洞进行攻击。
目的 确保系统补丁已经全部更新。
可以使用systeminfo命令确定补丁情况,更多相关内容,可以参考第4章。
2.恶意用户排查
理由 攻击者为了保持对目标机器的控制权,在受害者服务器中添加新的用户。
目的 若新增了用户,根据新增时间推测出大致的入侵时间。
对于Windows用户,需要进行如下检查:
·检测所有启用账户是否有弱口令,远程管理功能是否对外网开放。
·可用工具:nmap、hydr、xscan等。
·检查是否有可疑账号、新增账号,管理员组成员是否正确。
检查方法:打开cmd窗口,输入lusrmgr.msc命令,查看是否有新增/可疑的账号,检查管理员群组(Administrator)里的账户,如果有异常,则立即禁用或删除,并从日志中查找异常账号创建的时间。
·查看服务器是否存在隐藏账号、克隆账号。检查方法:
1)打开注册表,查看管理员对应键值及HKEY_LOCAL_MACHINE\SAM\SAM是否异常。
2)使用D盾_web查杀工具,集成了对克隆账号检测的功能,如图3-10所示。
图3-10 使用D盾查看异常账号
·结合日志,查看管理员登录时间、用户名是否存在异常。检查方法:
1)按Win+R键打开运行窗口,输入eventvwr.msc,按Enter键运行,打开“事件查看器”。
2)利用之前介绍的Windows日志分析工具进行分析。
3.系统日志检查
理由 攻击事件都会在日志中留下记录。
目的 根据日志分析入侵时间、入侵轨迹。
通过事件查看器查看安全日志、系统日志和应用程序日志,可以通过第6章介绍的Windows日志分析工具对日志进行分析。
3.2.2 服务
理由 若对外开放的某个服务存在漏洞,攻击者利用该漏洞获得服务器的部分权限,进而控制整个系统。因此需要仔细查看该机器上运行的服务。
目的 根据运行的服务,推测入侵途径。
根据服务日志,推测入侵时间、攻击轨迹和危害。
操作系统都会提供各种服务,而提供服务就存在被入侵的可能,恶意的服务会开启进程,并且利用自动启动功能保障程序可以在开机后运行,因此需要对服务、进程及自启动内容进行检测。
1.IIS或其他Web服务漏洞检查
若仅对外开放Web服务(Apache、Nginx等),基本可以确定是通过WebShell入侵,需要找到相应的WebShell、木马等文件,查看创建时间,确定入侵事件。关于Web服务日志分析,可以参考第6章。
2.其他服务漏洞检查
如果机器上还运行着其他服务,检查服务软件版本确定是否存在漏洞,查看相关日志文件找到入侵的蛛丝马迹。
3.恶意进程排查
理由 只有新开一个进程才能实施攻击。
目的 根据恶意进程,定位病毒/木马的位置。
下载样本到本地,取样分析,确定攻击轨迹和危害。
杀死进程清理病毒。
需要对Windows中当前运行的进程进行检测,以便找出可疑进程。
检查方法如下:
1)单击“开始→运行→输入msinfo32”,依次单击“软件环境→正在运行任务”就可以查看到进程的详细信息,比如进程路径、进程ID、文件创建日期、启动时间等。
2)打开D盾_web查杀,单击“工具”,选择进程,关注没有签名信息的进程。
3)通过微软官方提供的Process Explorer等工具进行排查。
4)查看可疑的进程及其子进程。可以观察以下内容:
·没有签名验证信息的进程。
·没有描述信息的进程。
·进程的属主。
·进程的路径是否合法。
·CPU或内存资源占用时间过长的进程。
小技巧:
1)查看端口对应的PID:netstat-ano|findstr"port"。
2)查看进程对应的PID:单击“任务管理器→查看→选择列→PID”,或者使用tasklist|findstr"PID"命令。
3)查看进程对应的程序位置:任务管理器→选择对应进程→右击打开文件的位置,或打开“运行”界面(按Win+R键)→输入wmic→在弹出的cmd界面输入process,配合findstr参数查看对应进程的文件位置。
4)tasklist/svc进程→PID→服务。
5)查看Windows服务所对应的端口:%system%/system32/drivers/etc/services(一般%system%就是C:\Windows)。
4.检查启动项、计划任务、服务
(1)检查服务器是否有异常的启动项
检查步骤如下:
1)登录服务器,单击“开始→所有程序→启动”,默认情况下此目录是一个空目录,确认是否有非业务程序在该目录下。
2)单击“开始→运行”,输入msconfig,查看是否存在命名异常的启动项目,是则取消勾选命名异常的启动项目,并到命令中显示的路径删除该文件。
3)单击“开始→运行”,输入regedit,打开注册表,查看开机启动项是否正常,特别注意如下几个注册表项:
HKEY_CURRENT_USER\software\micorsoft\windows\currentversion\run HKEY_CURRENT_USER\software\micorsoft\windows\currentversion\runOnce HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce HKEY_CURRENT_USER\ Environment\
检查右侧是否有启动异常的项目,如果有则删除,并建议安装杀毒软件进行病毒查杀,清除残留病毒或木马。
4)查看组策略中的“启动/关机”脚本:单击“开始→运行”,输入gpedit.msc,找到如图3-11所示的位置。
图3-11 组策略启动关机脚本
(2)检查计划任务
检查方法如下:
1)单击“开始→设置→控制面板→任务计划”,查看计划任务属性,便可以发现木马文件的路径。
2)单击“开始→运行”,输入cmd,右击cmd.exe,以管理员身份运行,启动cmd后输入at,检查计算机与网络上的其他计算机之间的会话或计划任务,如果有内容,需要确认是否正常。
(3)服务自启动
检查方法:单击“开始→运行”,输入services.msc,注意服务状态和启动类型,检查是否有异常服务。
(4)Autoruns for Windows(https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns)
可以使用微软出品的检测所有自动启动相关的工具进行检查,如图3-12所示。
图3-12 Autoruns for Windows界面
3.2.3 文件
黑客入侵服务器后为了维持权限,都会留下后门文件以便再次入侵,而后门文件一般会比较隐蔽难以查找,因此需要排查敏感目录,找到可疑文件进行分析。
1.敏感目录排查
理由 黑客有可能将后门文件保存在隐蔽位置,病毒木马也可能临时释放一些文件在系统文件下,等等。
目的 定位病毒、木马、后门样本。
敏感目录包括系统目录、回收站、环境变量等。需要依次检查以下内容:
·检测windows、system32、users、回收站、浏览器下载、浏览器历史等文件。
·检测环境变量中是否有可疑内容。
·检测服务运行目录是否有可疑文件。
·查找最近建立、修改或时间异常的文件。
2.后门文件排查
理由 黑客为了保持权限,有可能会留下各种后门文件。
目的 查找后门文件。
黑客可能利用一种甚至多种后门技术,例如shift后门、ldk劫持、IFEO劫持等,因此需要进行如下检查:
·检测system32下sethc.exe文件的创建、修改时间是否正常。
·检测是否有路径不正常的lpk.dll文件(默认情况下在system32下)。
·检测注册表。
例如,检查HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\Image File Execution Options下是否有异常键值。
3.病毒/木马检测
(1)木马危害
木马是指从网络中下载的应用程序中,包含了可以控制用户计算机系统的程序,这些程序可以破坏计算机系统,甚至导致系统瘫痪。木马的危害如下:
·窃取数据。以窃取数据为目的,本身不破坏计算机的文件和数据,不妨碍系统的正常工作,以系统使用者很难察觉的方式向外传送数据(只能从网络角度分析)。
·篡改文件和数据。对系统文件和数据有选择地进行篡改,使计算机处理的数据出错,导致做出错误的决策,有时也对数据进行加密。
·删除文件和数据。
·释放病毒。将原先埋伏在系统中处于休眠状态的病毒激活,或从外界将病毒导入计算机系统,使其感染并实施破坏。
·使系统自毁。如改变时钟频率、使芯片热崩坏而损坏。
(2)病毒危害
计算机病毒是一段附着在其他程序上、可以自我繁殖的程序代码,复制后生成的新病毒同样具有感染其他程序的能力。病毒的最大特点是其传染性,病毒的危害也包括毁坏数据和程序、改变数据、封锁系统、模拟或制造硬件错误等。[1]
(3)样本分析
根据定时任务和进程可定位出病毒/样本位置,下载到本地保留样本。
查看文件类型,如果是shell脚本,则查看文件内容。如果是可执行文件,如前文所述,使用在线病毒分析软件得出大概的攻击轨迹和危害。更多信息可参考如下网站:
[1] 更多关于病毒的问题,请参考傅建明、彭国军、张焕国等编著的《计算机病毒分析与对抗》。
3.2.4 网络
黑客在攻击服务器或使用后门连接服务器时,会产生网络流量,因此通过分析网络流量便可以发现黑客的行踪。
1.异常网络连接排查
理由 通常情况下,病毒、木马发送本机信息到远程服务器,或者从远程服务器下载其他病毒或木马进一步感染主机。
目的 查看网络连接,溯源分析攻击轨迹和危害。
检查端口连接情况,如是否有远程连接、可疑连接。检查方法:
1)使用netstat-ano命令,查看目前的网络连接,定位可疑的established。
2)根据netstat定位出pid,再通过tasklist命令tasklist|findstr"PID"进行进程定位。也可以通过“任务管理器→查看”选择列PID。
3)通过火绒剑等工具查看网络连接情况,如图3-13所示。
2.异常流量分析
理由 病毒/木马发送本机信息到远程服务器,或者从远程服务器下载其他病毒或木马进一步感染主机。
目的 根据实时流量分析攻击轨迹和危害。
图3-13 使用火绒剑查看网络连接
可以使用Wireshark等工具对流量进行抓取并分析,关于Wireshark的使用,请参考官方文档。