记录一次紫狐Rootkit应急响应过程

article/2025/8/14 2:59:52

前言:​

​ ​受保密协议影响,此次仅介绍发现过程、思路、以及该Rootkit行为,以便大家后续的参考,此文章篇幅较长,建议大家穿好纸尿裤观看!

​ 紫狐(Purple Fox)Rootkit概述

紫狐(Purple Fox)恶意软件,主要是通过网络钓鱼和漏洞利用工具包进行攻击,其攻击带有蠕虫特性,可在内网通过SMB协议,进行帐号、密码的暴力破解(体现于大量的NTLMSSP爆破),之后将恶意程序植入这些电脑(远程下载恶意文件,已随机命名为结尾的png格式,实际为MSI安装文件);紧接着,这个恶意的MSI安装文件在安装的过程中,可以看到它会伪装成微软更新套件,并会显示为含有随机字母及简体中文介面的视窗,由于hash不同,很难进行关联排查,有较好的隐蔽性。而紫狐部署的最后一步,是载入MSI档里面的rootkit,执行目的是要隐藏多个登录秘钥、数值及文件等(会更改大量的DLL文件,用于后续的权限维持),因此具有良好的隐蔽性和达到长期权限维持的一个效果。一旦系统载入MSI档中的rootkit,安装程序随即就会命令受害者电脑进行重新开机的程序,目的是将恶意软件提供的DLL改为Windows操作系统的提供的DLL,然后在系统开机的过程中执行这些DLL,恶意软件也将跟着启动,随后开始散播,在此同时,恶意软件也会自动产生IP位址范围,并开始针对这些IP位址的445端口进行扫描,恶意软件会通过SMB暴力破解使用者的身份验证。一旦身份验证成功,将会建立新服务,就如同受害者电脑初期感染的状况(即安装恶意的MSI文件、重启电脑、继续向其他内网机器进行蔓延)。

标题 紫狐Rootkit分析过程​

某天,客户现场反馈,某服务器出现异常用户登录行为,由于该客户现场地处偏远地区不方便现场排查,便先以访谈的形式进行信息收集,主要收集了服务器的系统日志、开放的端口、正在运行的进程、用户组策略表、一些包括启动项、用户在内的注册表信息等等,当然了必不可少的就是网络拓扑图、服务器提供了哪些服务,但是客户不方便给,于是笔者在两眼一抹黑,也不知道这个服务器是干啥的,不知道有哪些安全设备的情况下就干了~

​ ​首先客户反馈了一张截图,该用户名为"qianye",首先需要我们去看的其实就是在找这个用户的创建时间、他在这个时间段做了什么,但是不幸的是,运维人员第一时间就将该用户所有的相关信息全部删除了,包括用户文件夹~我只能说做得漂亮!

下图为客户反馈的截图,时间节点打厚码了,别问我为什么这么糊,因为我怀疑他们是用座机拍的
在这里插入图片描述

第一步当然是通过这个用户的创建时间往前推,笔者往前推了一天,但是发现实际上所有的动作都发生在50分钟之内;笔者首先是查看用户创建日志,4720事件ID,但是很不幸的是,并没有这个事件日志,后来发现人家在爆破成功后就把事件日志给关了

在这里插入图片描述

而后笔者查看了登录失败的事件日志,这回终于是发现了问题所在,在短短50分钟内爆破次数高达数万次!
在这里插入图片描述

笔者水平有限,只能一点点的看,最后分析出,NTLM爆破主要集中在两个时间点,实际上攻击者只用了不到20分钟便爆破成功了,但是爆破并没有停止,所以可以看出该行为并非是人为控制的

在这里插入图片描述

​​该完整日志信息如下,已脱敏

已成功登录帐户。

使用者:
安全 ID: NULL SID
帐户名: -
帐户域: -
登录 ID: 0x0

登录类型: 3

新登录:
安全 ID: S-1-5-21-xxxxxxxxxxx
帐户名: Administrator
帐户域: xxxxxx
登录 ID: 0xxxxxx
登录 GUID: {00000000-0000-0000-0000-000000000000}

进程信息:
进程 ID: 0x0
进程名: -

网络信息:
工作站名: xxxxxx
源网络地址: xx.xx.xx.xx
源端口: xxxxx

详细身份验证信息:
登录进程: NtLmSsp
身份验证数据包: NTLM
传递的服务: -
数据包名(仅限 NTLM): NTLM V2
密钥长度: 128

从这里,笔者捕获到了第一个登录成功的IP地址,该IP地址为内网地址,为什么说是第一个呢?因为笔者通过日志审计发现对该服务器进行爆破的IP地址并非这一个IP甚至并非这一个网段!此时事件已经变味儿了,该服务器并非是首要目标,他是被横向的!

而后事件日志就出现了登录日志,事件日志也被关闭了,时间节点与客户给的图也比较吻合,笔者猜测就是在这个时间段qianye用户被创建,但是可惜的是用户被删了

事件到此本应结束,此时的结论定向为横向攻击,笔者本以为这仅仅是一次平凡无奇的漏洞攻击引起的横向事件,直至笔者查看服务器的应用程序日志,才发现了端倪

笔者在查看应用程序日志的过程中,重点关注了​MsiInstaller事件,该事件为服务器安装服务事件

在这里插入图片描述

下图为捕获到的恶意地址、样本信息
在这里插入图片描述

而后计算机就被重启了

在这里插入图片描述

笔者发现,安装日志出现了数百条乃至数千条恶意地址,服务器不停地从不同的恶意地址下载恶意文件进行安装,以确保能安装成功,其中恶意地址进行开源情报平台查看,指向​皆为紫狐Rootkit

在这里插入图片描述

笔者将该样本下载至本地进行分析,但是很遗憾的是该样本进行了加密,笔者水平有限,并没有从ida、windbg、xdbg中看到什么端倪,只能说是安装一遍查看注册表、查看各种启动项,但是都没看出什么,只是能筛选出来一些被篡改的dll文件

在这里插入图片描述

最后笔者在vt上看到了人家的分析

在这里插入图片描述

在这里插入图片描述

可以发现,已经是接近一年前的了,但是我这个发现的时候也蛮早的,嘻嘻嘻​

应急响应总结

在这里插入图片描述

处置建议

说实话,笔者这么菜的人当然是没办法处置这么高难度的东西的,要知道落下一个dll文件的话,可能重启后就全出来了,更何况很多东西是删不了的,所以笔者建议把关键数据备份后重做系统,抓紧排查其他的机器,最好是找到是从哪个入口进来的,该改密码改密码,该打补丁打补丁,又是一场大仗啊!

安装反Rootkit安全软件,缺点是无法匹配最新的rootkit

对下载的文件进行完整性监测,该方法计算关键的、不变的操作系统文件的哈希,并将其与存储在数据库中的已知值进行比较。

使用安全设备基于网络的检测,理论上,rootkit可能会试图隐藏其网络通信,以逃避操作系统或用户的检测,但是从系统外部还是能看到流量的,这方面成了C2隐藏通信和网络检测的较量。


http://chatgpt.dhexx.cn/article/ZY3aXyrX.shtml

相关文章

基于AD Event日志检测哈希传递攻击

01、简介 哈希传递攻击是基于NTLM认证的一种攻击方式,当我们获得某个管理员用户的密码哈希值,就可以利用密码哈希值进行横向渗透。 在域环境中,只有域管理员的哈希值才能进行哈希传递攻击,攻击成功后,可以访问域内任何…

linux学习笔记-RH135(六):网络文件系统

网络文件系统 一.samba服务1.samba基本信息2.samba的安装与启用3.samba用户的建立4.samba用户访问家目录6.samba访问控制7.samba的常用配置参数8.samba多用户挂载9.samba自动挂载 二.NFS1.nfs的启用2.nfs配置3.nfs配置参数4.nfs自动挂载5.自动挂载参数更改挂载版本更改挂载超时…

工作组与域环境下NTLM协议数据包分析

NTLM协议由来 早起SMB协议以明文口令形式在网络上传输,存在安全问题为了解决这个问题出现了LM协议, 因为LM协议过于简单很容易被破解,于是微软又提出了NTLM协议,以及更新的NTLM第2版。 发展过程:SMB -> LM -> NTLM -> NTLM v2 NTLM的作用:用于工作组…

基于NTLM认证的中间人攻击(含实战)

文章目录 中间人攻击0x01 域和工作组0x02 NTLM认证(Windows)本地认证NTLM Hash的生成 网络认证工作组环境NTLM认证流程域环境NTLM认证 0x03 域名解析协议LLMNR解析过程 NetBIOSWindows系统域名解析顺序 0x04 WPAD工作原理WPAD劫持 0x05 NTLM中继0x06 Responder介绍 攻击演示0x0…

批次更新失败服务器返回的信息,服务器出现大批量登录审核失败/NtLmSsp攻击

问题:服务器出现大批量登录审核失败 详细信息:---重点红色标注 日志名称: Security 来源: Microsoft-Windows-Security-Auditing 日期: 2020/7/28 16:47:37 事件 ID: 4625 任务类别: 登录 级别: 信息 关键字: 审核失败 用户: 暂缺 计算机: VM82 描述: 帐…

NtLmSsp 登录爆破防御办法踩的坑-网络安全:LAN管理器身份验证级别设置还原

windows系统日志看到很多相同NtlmSsp报错 于是在找了一些解决方法,按照下面这张图设置踩了一些坑 按照图上设置2008系统没问题,2019系统远程桌面就怎么设置都连不上了。 暂时正确的解决办法: 1、实际操作折腾一番发现上面那个LAN可以不用设…

针对ntlmssp攻击的本机安全攻防记(第一回)

一、写在前面 这个问题说来也是恼火,切入正题之前先谈谈最近的一段狗血的经历,如果比较着急,就直接跳到第二部分吧!! 新去的一家政府支持的号称做互联网的单位(据后来观察几个部门都是凑吧的)。…

NtLmSsp 登录爆破防御办法 附修改RDP远程桌面3389端口方法

NtLmSsp 登录爆破防御办法 附修改RDP远程桌面3389端口方法 https://www.bnxb.com/winserver/27745.html 今天在系统日志中看到一堆尝试登录远程桌面失败的提示,内容类似下方 - EventData SubjectUserSid S-1-0-0 SubjectUserName - SubjectDomainName - Su…

java 打包exe_Java项目打包成exe的详细教程

Java项目打包成exe的详细教程 把Java项目打包成exe共分为以下两步: 1、 利用Eclipse先把Java项目先打成jar包 2、 利用exe4j工具把jar包转成exe 这里以Java项目(ExeDemo)为例进行讲解 随便在一个位置新建一个文件夹,文件夹的名称也可以随便起&#xff0c…

java项目如何打包?

导航 步骤 1 编写编译的脚本步骤 2 打包脚本步骤 3 jar包里面是什么 D盘下面的tool文件夹已经有三个工具类了(其实是两个,CustNode是为了TuziLinkedList服务的),我们这一节来进行打包,这样的好处就是不用每次编译都把t…

Java打包exe文件

launch4j下载地址:launch4j 虽然很多人都说没什么公司会使用Java编辑Swing界面程序,但有空余时间时总会想编写一些自己的小程序,经常这样乐此不彼。开发之前首先得会怎么将Java程序打包生成exe文件,要不然每次使用软件时都要使用…

JAVA程序打包为EXE

把Java项目打包成exe共分为以下两步: 1、 利用Eclipse先把Java项目先打成jar包 2、 利用exe4j工具把jar包转成exe 这里以Java项目(ExeDemo)为例进行讲解 随便在一个位置新建一个文件夹,文件夹的名称也可以随便起,这里我们在桌面上新建一个…

java打包为可执行的exe文件,并在无环境的电脑上运行

上一篇文章将讲完关于摸鱼时间工具的代码部分,具体参考一个好玩的java摸鱼时间计算悬浮工具_峰哥爱写小代码01的博客-CSDN博客,下面我们来对程序进行打包,首先是idea打包为可执行的jar程序,具体步骤如下: 点击File-&g…

java文件如何打包_java文件如何打包?

java文件打包的方法如下: 1、首先要确认自己写的程序有没有报错。 2、第一次我写的是Web Project到现在,我一直没有执行成功,所以最好创建的是java Project 打包步骤: 1.在项目上,右键,选择Export。 2.进入…

java打包成jar对其进行加密处理防止反编译

Xjar工具实现 1:创建一个maven项目(无需启动类) 1> pom依赖 <dependencies><dependency><groupId>com.github.core-lib</groupId><

java打包----“Artifacts”

打包流程 1. 打开菜单栏File-Project Structure 2. 点击Artifacts 3. 点击 "" - JAR - From module with depenencies 注意选择主类--运行的类 二.阶段编译jar包 2.1. 点击Build-Artifacts 上述完成后&#xff0c;就是生成了*.jar包,去下面的截图中找寻*.jar包的…

Java命令行编译打包

文章目录 一、简介1、介绍2、Jar简介3、Java命令行3.1 jar相关命令3.2 Java相关命令 二、简单编译打包实战1、简单编译执行2、Jar包方式运行2.1 普通方式执行2.2 可执行的 jar 包 一、简介 1、介绍 本文主要记录jar与java相关命令介绍以及Java 命令行编译、执行、打包等操作 …

java打包_java工程打包(方式一)

1、新建工程myproject package cn.zj; public class TestMain { public static void main(String[] args) { System.out.println("Hello World!"); } } 2、右击Java工程选择Export—>选择JAR file—>Next 3、选择要打包的文件&#xff0c;不需要的文件不必打包…

IDEA java打包方法(转载)

1、打包时尽可能选择将依赖的jar包独立存储&#xff0c;而不是将所有依赖打入同一个jar包的方式。后者会导致出现一些莫名的错误。 2、maven工程 有main函数的类&#xff0c;要放在src/main包中&#xff0c;而不是src/test包中。 3、如果使用jar包时显示no main manifest attr…

vscode中java打包exe

1、创建一个清单文件&#xff1a;manifest.txt,这个文件尤为重要,是要写入jar包内的。 在项目文件夹下&#xff0c;和.classpath同一个路径 例如&#xff1a; Manifest-version: 1.0 Class-Path: Created-By: LYF Main-Class: app.App 每个冒号后面都要有空格 最后一行需要有一…