一、排查思路
在攻防演练保障期间,一线工程师在实施主机入侵痕迹排查服务时可能面临时间紧、任务急、需要排查的主机数量众多情况。为了确保实施人员在有限的时间范围内,可以高效且保证质量的前提下完成主机入侵痕迹排查工作,本人总结了自己的一些经验,下面的内容特此分享主机入侵痕迹排查服务中重点、关键的排查项,仅作为参考使用。
1.1初步筛选排查资产
一般情况下,客户资产都比较多,想要对所有的资产主机进行入侵痕迹排查基本不太现实,等你全部都排查完了,攻击者该做的事早就做完了,想要的目的也早就达到了。那么针对客户资产量大的情况,我们应该怎么处理? 首先,在排查前,作为项目经理,应该与客户沟通好,取得授权,确认排查范围和排查方案和办法,客户若是没有授意或者同意,那么下面的操作都是违规操作,甚至有的还违法。 取得客户同意后,我们再从资产面临的风险等级、资产的重要程度、攻击者的攻击思路、手法及目标选择倾向几个方面去初步筛选出排查资产。这里建议从以下资产范围选取: ①曾失陷资产:在以前的红蓝对抗、攻防演练、或者真实的黑客攻击事件中被攻陷的主机,曾失陷资产应作为排查的重点对象。 ②互联网暴露脆弱资产:从互联网暴露资产中筛选出使用了高危漏洞频发的组件/应用(组件如Weblogic、JBoss、Fastjson、Shiro、Struts2等)。还有一个点需要注意,就是客户是否具有有效的资产管理,是否能够清晰明确识别出哪些资产用了什么组件,如果不能的话,只能通过之前的渗透测试结果来筛选出脆弱资产。 ③关键资产:如域控等可以导致大量主机失陷的集权类资产。
1.2确定排查资产
主机入侵痕迹排查工作建议在一周内对数量控制在20台以内的主机进行排查。经过初步筛选的资产数量如果远远大于20台主机,需要从资产里面进行二次筛选,如果存在曾失陷资产,排查主机范围可以定为曾失陷资产;如果不存在曾失陷资产,排查主机范围可以定为脆弱资产,具体可以根据客户自身实际情况调整。 需要注意是,如果排查资产中包含曾失陷资产的话,需要向客户索要历史攻防演练/应急等报告,在排查时需结合历史报告和指导手册内容一起进行排查,需要特别留意历史报告中攻击者的入侵痕迹是否已经完全清理。
1.3入侵痕迹排查
在实际情况下,攻击者在进行攻击时使用的攻击手法、攻击思路、行为等各有差异,无论是考虑实现成本还是效率问题,都难以通过很精细很全面的排查项去实施主机入侵痕迹排查,但是我们可以从攻击中可能会产生的一些比较共性的行为特征、关键的项进行排查。 对于主机的入侵痕迹排查,主要从网络连接、进程信息、后门账号、计划任务、登录日志、自启动项、文件等方面进行排查。比如,如果存在存活后门,主机可能会向C2发起网络连接,因此可以从网络连接排查入手,如果存在异常的网络连接,则必然说明存在恶意的进程正在运行,则可以通过网络连接定位到对应进程,再根据进程定位到恶意文件。如果攻击者企图维持主机控制权限的话,则可能会通过添加后门账号、修改自启动项,或者添加计划任务等方式来维持权限,对应的我们可以通过排查账号、自启动项、计划任务来发现相应的入侵痕迹。
二、排查内容
2.1windows主机
攻击者一般使用 attrib <程序> +s +h 命令隐藏恶意程序,故在排查痕迹前需打开“工具—文件夹选项—查看”。按照下图中的设置,即可显示所有文件。
2.1.1网络连接排查步骤: 在CMD中执行 netstat -ano 查看目前的网络连接。
这种情况一般都比较正常,只有80和443端口,一般都是正常业务开放端口。分析方法:如果网络连接出现以下情况,则当前主机可能已经失陷: 1、主机存在对内网网段大量主机的某些端口(常见如22,445,3389,6379等端口)或者全端口发起网络连接尝试,这种情况一般是当前主机被攻击者当作跳板机对内网实施端口扫描或者口令暴力破解等攻击。
2、主机和外网IP已经建立连接(ESTABLISHED状态)或者尝试建立连接(SYN_SENT状态),可以先查询IP所属地,如果IP为国外IP或者归属各种云厂商,则需要重点关注。进一步可以通过威胁情报(https://x.threatbook.cn/等)查询IP是否已经被标注为恶意IP。
3、如果无法直接从网络连接情况判断是否为异常连接,可以根据网络连接找到对应的进程ID,判断进程是否异常。如果不能从进程判断,可以进一步找到进程对应文件,将对应文件上传至virustotal(https://www.virustotal.com)进行检测。如上面截图中对内网扫描的进程ID是2144,在任务管理器中发现对应的文件是svchost.exe。
上传至virustotal检测的结果为恶意文件。
若在排查网络连接中,任务管理器只能看到有命令行工具(如powershell、cmd)powershell进程与外联IP建立会话,无法看到进程对应的运行参数。此时可借助Process Explorer进一步观察powershell的运行参数。如下在Process Explorer中发现powershell执行了cobalt strike脚本的痕迹。
2.1.2敏感目录排查步骤:查看攻击方常喜欢上传的目录是否有可疑文件。分析方法:1、各个盘符下的临时目录,如C:TEMP、C:WindowsTemp等。
2、%APPDATA%,在文件夹窗口地址栏输入%APPDATA%,回车即可打开当前用户的appdata目录。
如Administrator用户对应的%APPDATA%目录C:UsersAdministratorAppDataRoaming。可以按照修改日期排序筛选出比较临近时间有变更的文件。
3、浏览器的下载目录
4、用户最近文件%UserProfile%Recent,如Administrator对应的目录为C:UsersAdministratorRecent
5、回收站,如C盘下回收站C:$Recycle.Bin 对于脚本文件可直接查看内容判定是否为恶意,若是遇到exe可执行文件,可将对应文件上传至virustotal(https://www.virustotal.com)进行检测。
2.1.3后门文件排查步骤:
查看粘滞键exe; 查看注册表中映像的键值。
分析方法:1、查看粘滞键exe 查看C:WindowsSystem32下的sethc.exe文件的创建、修改时间是否正常,如下图,一般情况下,系统文件的创建时间与修改时间应相同,sethc的创建时间与修改时间不同,可确定sethc已被替换成后门文件。由于攻击者可修改文件时间,上述简单粗暴的判断方式可能不靠谱,可将sethc拷贝出来、上传至VT检测危害。
2、查看注册表中映像的键值 检查注册表“HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options”下所有exe项中是否有debugger键,若有debugger键,将其键值对应的程序上传至VT检测。如下图,攻击者利用该映像劫持的攻击者方式,在sethc.exe项中新建debugger键值指向artifact.exe,攻击效果为当连续按5下shift键后,不会执行sethc.exe,而是转而执行劫持后的artifact.exe文件。于是在排查中发现有debugger键值,均可认为指定的文件为后门文件,待上传VT后确认其危害。
这里没有debugger键,下面的图是有的:
2.1.4后门账号排查步骤:
打开regedit查看注册表中的账号; 查看administrators组中是否存在赋权异常的账号。
分析方法:查看注册表中HKLMSAMSAMDomainsAccountUsersNames中是否有多余的账号(可询问客户运维人员以确定账号存在的必要性)。正常情况下,上述路径的SAM权限仅system用户可查看,需要给administrator用户授权才能打开完整路径。对SAM右键、给administator用户添加完全控制权限(下图的权限操作方法适用于win7及以上操作系统):
win2003、XP等低版本系统的操作方法请使用下图的流程给administrators组添加权限。
带有$符号的账号特指隐藏账号(如aaaa$),正常业务中不需要创建隐藏账号,可判断带有$符号的均为后门账号。然后在客户运维的协助下排查其他的异常账号。 如下图中,除了aaaa$可直接判断外,root账号为高度关注对象。(注:aaaa$中的键值0x3ea表示该账号与Users表中相应数值的表相对应,在删除账号时需一起删除)
注:异常账号删除后需要将之前授权的administrator移除SAM权限。 查看administrators组中是否存在赋权异常的账号。比如正常情况下guest用户处于禁用状态、普通应用账户(weblogic、apache、mysql)不需要在administrators组中。如下图,执行命令net user guest查看guest账号的信息,如果guest账号被启用,且在管理员组成员中有guest用户,需要询问客户运维人员该guest账户启用的必要性以及加入管理组是否有必要,否则可认为攻击者将系统自带用户guest启用并提权至管理员组后作为后门账号使用。
执行net localgroup Administrators关注管理员组别是否存在异常账号:
2.1.5自启动项排查步骤:
使用Autoruns工具查看自启动项 查看组策略中的脚本 查看注册表中的脚本、程序等 查看各账号自启目录下的脚本、程序等 查看Windows服务中的可执行文件路径
分析方法:1、使用Autoruns: 使用工具能较全面地查看系统中的自启动项。在得到客户授权,能够在可能失陷的主机上传排查工具时,可使用Autoruns工具进行详细的自启动项排查。排查中主要关注粉色条目,建议与客户运维人员一同查看,以及时排除业务所需的正常自启项。如下图,在Everything栏中,查看粉色的条目中发现常见的sethc被劫持为cmd,Command Processor键值(默认为空)关联到名为windowsupdate.exe(效果为启动cmd时,被关联的程序会静默运行)。sethc的劫持可确认为入侵痕迹,Command Processor键值的关联程序需要找客户进一步确认是否业务所需,或将windowsupdate.exe上传VT检测。
另外,这个工具很好用 ,特别小,可以直接上传文件到VT进行检测。 2、查看组策略: 在无法使用工具、只能手工排查的情况下,可查看常见的自启项是否有异常文件。打开gpedit.msc—计算机配置/用户配置—Windows设置—脚本,在此处可设置服务器启动/关机或者用户登录/注销时执行的脚本。下图1、2两处的脚本均需要查看是否添加有脚本。
我这里没有脚本。2.1.6日志工程师基本都会看日志,windows日志也就那些内容,比较简单,我就不细述,主要写一下几个比较重要的点,基本上就可以排查出是否有异常登录了。排查步骤:
查看登录日志中暴力破解痕迹; 查看账号管理日志中账号的新增、修改痕迹; 查看远程桌面登录日志中的登录痕迹。
三、总结一下
技能都是需要动手的,然后思路需要清晰,操作要细致,跟客户要保持沟通,切记不能闷着擅自操作! 作者:白衣不再少年,文章来源:FreeBuf
-End-
审核编辑 :李倩
全部0条评论
快来发表一下你的评论吧 !