杀死那个名为360安全的软件

ops/2024/10/21 19:57:33/

动图

背景

2023年底,闲来没事想起了xjun师傅2021年发的procexp驱动利用帖子时在群里讨论的,通过procexp驱动突破PPL后注入到csrss进程中,再通过csrss来结束那些个安全防护软件。于是在当时就有了如下成果:

这些弄完之后,觉得通过hook csrss中的CsrCreateProcess来达到主动kill 指定进程并不优雅。于是对360的360FsFlt和360Hvm64进行了分析,并从中找到了他的防护缺陷。导致可以用简单的办法结束ZhuDongFangYu.exe和360try.exe等进程。

ObjectCallback的降权突破

在360FsFlt的回调中,存在一个白名单,而这个白名单为360安装目录下的exe,每当运行后都会记录对应的pid。

但是,当你想当然的去启动它的exe以此获得白名单时,你会发现启动的exe不能注入,不能写。所以他仍然还有手段禁止白名单被利用。不要灰心,在这个阶段我们知道了白名单可以不被降权。那么接下来的目的就是想办法获得一个内存修改的权限。

内存修改的康庄大道

在上面的启动白名单的exe获得的句柄权限是最高权限,但并没有操作的空间。显然是对api做了手脚,于是目光转到了晶核上,在360Hvm64中发现了这么个表

从下图可以发现,在调用NtWriteVirtualMemory会有校验


到这里可以确定,通过下图的部分exe中可以对白名单进行读写注入。

123456可以用来创建白名单进程的系统进程\\SystemRoot\\System32\\Lsass.exe\\SystemRoot\\System32\\Svchost.exe\\SystemRoot\\System32\\Services.exe\\SystemRoot\\System32\\Csrss.exe\\SystemRoot\\System32\\Consent.exe

冲锋前的总结

通过分析,我们得到如下几个点

123Obj的降权可以通过白名单绕过白名单进程可以随便创建但不能做其他操作在晶核的防护中允许了部分系统进程可以对白名单进程操作

那么我们的利用链就可以是

1234启动并注入晶核中的白名单(Lsass.exe、Svchost.exe、Services.exe、Csrss.exe、Consent.exe)程序,比如svchost。通过svchost去启动并注入360安装目录下的exe,如360ShellPro.exe再通过360ShellPro.exe对ZhuDongFangYu.exe或360try.exe之类的进程进行关闭最后完成冲锋。

开冲

根据上面的一顿操作,得到下图的中的一坨

动图展示

动图封面


http://www.ppmy.cn/ops/7450.html

相关文章

flutter 实现表单的封装包含下拉框和输入框

一、表单封装组件实现效果 //表单组件 Widget buildFormWidget(List<InputModel> formList,{required GlobalKey<FormState> formKey}) {return Form(key: formKey,child: Column(children: formList.map((item) {return Column(crossAxisAlignment: CrossAxisAlig…

AttributeError: module ‘backend_interagg‘ has no attribute ‘FigureCanvas‘.

问题1&#xff1a; AttributeError: module backend_interagg has no attribute FigureCanvas. 解决方案&#xff1a; import matplotlib matplotlib.use(Agg) # 选择合适的后端&#xff0c;如Aggimport matplotlib.pyplot as plt在你的代码开头加上这两行代码&#xff0c;…

Redis 逻辑过期策略设计思路

引言&#xff1a; 当我们平常使用Redis缓存的时候&#xff0c;会出现一种场景&#xff0c; redis的key到过期时间了&#xff0c;总是需要到数据库里面去查一遍数据再set回redis&#xff0c;这个时候如果数据库响应比较慢&#xff0c;那么就会造成用户等待&#xff0c;如果刚好…

Ant Design中Tree使用defaultExpandAll属性后不会默认展开所有节点怎么办?

最近做前端项目时&#xff0c;使用到了 tree 组件&#xff0c;选择使用 Ant Design 中的 tree 组件&#xff0c;默认所有节点初始时全部展开&#xff0c;使用 defaultExpandAll 属性。但是显示的时候&#xff0c;一个节点都没展开。于是调研了一下这个问题。发现有以下问题&…

深入解析Tomcat的工作流程

tomcat解析 Tomcat是一个广泛使用的开源Servlet容器&#xff0c;用于托管Java Web应用程序。理解Tomcat的工作流程对于开发人员和系统管理员来说是非常重要的。本文将深入探讨Tomcat的工作原理&#xff0c;包括请求处理、线程池管理、类加载、以及与Web服务器之间的通信。 ###…

安全访问服务边缘(SASE):网络新时代的安全与连接解决方案

随着信息技术的飞速发展&#xff0c;在企业纷纷拥抱数字业务的过程中&#xff0c;由于边缘计算、云服务、混合网络的逐渐兴起&#xff0c;使得本就漏洞百出的传统网络安全架构更加岌岌可危&#xff0c;企业和组织面临着日益复杂且多变的网络安全挑战。传统的网络安全解决方案往…

Flutter - iOS 开发者速成篇

首先 安装FLutter开发环境&#xff1a;M1 Flutter SDK的安装和环境配置 然后了解Flutter和Dart 开源电子书&#xff1a;Flutter实战 将第一章初略看一下&#xff0c;你就大概了解一下Flutter和Dart这门语言 开始学习Dart语言 作为有iOS经验的兄弟们&#xff0c;学习Dart最快…

每日一题(4.17)

目录 Leecode-16-最接近的三数之和题目示例解题思路代码实现 Leecode-面试题01.07-旋转矩阵题目示例解题思路代码实现 Leecode-16-最接近的三数之和 题目 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数&#xff0c;使它们的和与 targe…