百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

主机被入侵 痕迹排查(电脑被入侵后的痕迹)

nanshan 2024-10-18 07:25 12 浏览 0 评论

、排查思路

在攻防演练保障期间,一线工程师在实施主机入侵痕迹排查服务时可能面临时间紧、任务急、需要排查的主机数量众多情况。为了确保实施人员在有限的时间范围内,可以高效且保证质量的前提下完成主机入侵痕迹排查工作,本人总结了自己的一些经验,下面的内容特此分享主机入侵痕迹排查服务中重点、关键的排查项,仅作为参考使用。

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:\Windows\Temp等。

2、%APPDATA%,在文件夹窗口地址栏输入%APPDATA%,回车即可打开当前用户的appdata目录。

如Administrator用户对应的%APPDATA%目录C:\Users\Administrator\AppData\Roaming。可以按照修改日期排序筛选出比较临近时间有变更的文件。

3、浏览器的下载目录

4、用户最近文件%UserProfile%\Recent,如Administrator对应的目录为C:\Users\Administrator\Recent

5、回收站,如C盘下回收站C:\$Recycle.Bin

对于脚本文件可直接查看内容判定是否为恶意,若是遇到exe可执行文件,可将对应文件上传至virustotal(https://www.virustotal.com)进行检测。

2.1.3后门文件

排查步骤:

查看粘滞键exe;

查看注册表中映像的键值。

分析方法:

1、查看粘滞键exe

查看C:\Windows\System32\下的sethc.exe文件的创建、修改时间是否正常,如下图,一般情况下,系统文件的创建时间与修改时间应相同,sethc的创建时间与修改时间不同,可确定sethc已被替换成后门文件。由于攻击者可修改文件时间,上述简单粗暴的判断方式可能不靠谱,可将sethc拷贝出来、上传至VT检测危害。

2、查看注册表中映像的键值

检查注册表“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image 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组中是否存在赋权异常的账号。

分析方法:

查看注册表中HKLM\SAM\SAM\Domains\Account\Users\Names中是否有多余的账号(可询问客户运维人员以确定账号存在的必要性)。正常情况下,上述路径的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日志也就那些内容,比较简单,我就不细述,主要写一下几个比较重要的点,基本上就可以排查出是否有异常登录了。

排查步骤:

查看登录日志中暴力破解痕迹;

查看账号管理日志中账号的新增、修改痕迹;

查看远程桌面登录日志中的登录痕迹。

相关推荐

实战派 | Java项目中玩转Redis6.0客户端缓存

铺垫首先介绍一下今天要使用到的工具Lettuce,它是一个可伸缩线程安全的redis客户端。多个线程可以共享同一个RedisConnection,利用nio框架Netty来高效地管理多个连接。放眼望向...

轻松掌握redis缓存穿透、击穿、雪崩问题解决方案(20230529版)

1、缓存穿透所谓缓存穿透就是非法传输了一个在数据库中不存在的条件,导致查询redis和数据库中都没有,并且有大量的请求进来,就会导致对数据库产生压力,解决这一问题的方法如下:1、使用空缓存解决对查询到...

Redis与本地缓存联手:多级缓存架构的奥秘

多级缓存(如Redis+本地缓存)是一种在系统架构中广泛应用的提高系统性能和响应速度的技术手段,它综合利用了不同类型缓存的优势,以下为你详细介绍:基本概念本地缓存:指的是在应用程序所在的服务器内...

腾讯云国际站:腾讯云服务器如何配置Redis缓存?

本文由【云老大】TG@yunlaoda360撰写一、安装Redis使用包管理器安装(推荐)在CentOS系统中,可以通过yum包管理器安装Redis:sudoyumupdate-...

Spring Boot3 整合 Redis 实现数据缓存,你做对了吗?

你是否在开发互联网大厂后端项目时,遇到过系统响应速度慢的问题?当高并发请求涌入,数据库压力剧增,响应时间拉长,用户体验直线下降。相信不少后端开发同行都被这个问题困扰过。其实,通过在SpringBo...

【Redis】Redis应用问题-缓存穿透缓存击穿、缓存雪崩及解决方案

在我们使用redis时,也会存在一些问题,导致请求直接打到数据库上,导致数据库挂掉。下面我们来说说这些问题及解决方案。1、缓存穿透1.1场景一个请求进来后,先去redis进行查找,redis存在,则...

Spring boot 整合Redis缓存你了解多少

在前一篇里面讲到了Redis缓存击穿、缓存穿透、缓存雪崩这三者区别,接下来我们讲解Springboot整合Redis中的一些知识点:之前遇到过,有的了四五年,甚至更长时间的后端Java开发,并且...

揭秘!Redis 缓存与数据库一致性问题的终极解决方案

在现代软件开发中,Redis作为一款高性能的缓存数据库,被广泛应用于提升系统的响应速度和吞吐量。然而,缓存与数据库之间的数据一致性问题,一直是开发者们面临的一大挑战。本文将深入探讨Redis缓存...

高并发下Spring Cache缓存穿透?我用Caffeine+Redis破局

一、什么是缓存穿透?缓存穿透是指查询一个根本不存在的数据,导致请求直接穿透缓存层到达数据库,可能压垮数据库的现象。在高并发场景下,这尤其危险。典型场景:恶意攻击:故意查询不存在的ID(如负数或超大数值...

Redis缓存三剑客:穿透、雪崩、击穿—手把手教你解决

缓存穿透菜小弟:我先问问什么是缓存穿透?我听说是缓存查不到,直接去查数据库了。表哥:没错。缓存穿透是指查询一个缓存中不存在且数据库中也不存在的数据,导致每次请求都直接访问数据库的行为。这种行为会让缓存...

Redis中缓存穿透问题与解决方法

缓存穿透问题概述在Redis作为缓存使用时,缓存穿透是常见问题。正常查询流程是先从Redis缓存获取数据,若有则直接使用;若没有则去数据库查询,查到后存入缓存。但当请求的数据在缓存和数据库中都...

Redis客户端缓存的几种实现方式

前言:Redis作为当今最流行的内存数据库和缓存系统,被广泛应用于各类应用场景。然而,即使Redis本身性能卓越,在高并发场景下,应用于Redis服务器之间的网络通信仍可能成为性能瓶颈。所以客户端缓存...

Nginx合集-常用功能指导

1)启动、重启以及停止nginx进入sbin目录之后,输入以下命令#启动nginx./nginx#指定配置文件启动nginx./nginx-c/usr/local/nginx/conf/n...

腾讯云国际站:腾讯云怎么提升服务器速度?

本文由【云老大】TG@yunlaoda360撰写升级服务器规格选择更高性能的CPU、内存和带宽,以提供更好的处理能力和网络性能。优化网络配置调整网络接口卡(NIC)驱动,优化TCP/IP参数...

雷霆一击服务器管理员教程

本文转载莱卡云游戏服务器雷霆一击管理员教程(搜索莱卡云面版可搜到)首先你需要给服务器设置管理员密码,默认是空的管理员密码在启动页面进行设置设置完成后你需要重启服务器才可生效加入游戏后,点击键盘左上角E...

取消回复欢迎 发表评论: