当前位置: 首页 > news >正文

关于sysdiag的利用

背景

因为之前装了某绒,某绒又有一个比较好用的ark工具某绒🗡,想着应该有机会利用一下它的驱动。

接着在driver下面找到了它的驱动,简单分析了一下,发现有可以利用的ioctl。这里有duphandle,操作和之前的procexp利用一样复制system的物理内存句柄就行了。

 问题

好歹是安全公司写的代码怎么可能没有校验呢,直接打开\\\\.\\Sysxxxx::SysUtils返回失败。接着继续看一看是哪里返回的失败,动态调试之后发现是这里返回的失败,其中sub_FFFFF807117C9060函数通过pid返回的是它自己记录的进程的相关结构体,+0x538标志的是当前进程有没有操作驱动的权限,为0调用返回才会成功。

 

 那对应的进程数据又是在哪里填写的呢,这里利用ida的search Immediate查找0x538,只有sub_FFFFF807117B3CF0赋值的eax,才有可能是0,下面的赋值为-1明显不符合要求。

这里的值是CheckProcess_FFFFF807117D61B0传出来的

 这里在进入看看函数的内部情况,很明显读取文件,目测是检验签名以及其他东西

 

 

 比如对比了pe的某段数据是否包含HRBR,其中sub_FFFFF807117A72E0中对比的是一段加密的数据,里面函数很多,具体对比的加密在哪我也不想找(有懒人!)。

 

利用

既然对比了pe文件的内容,那我用你自己的进程不就行了,这里测试注入到对应的进程,很明显安全软件都不会让你那么任意的注入。

 接着尝试傀儡进程(这里利用的是CrashDump.exe有签名并且没有dll依赖比较好操作),会发现在调用SetThreadContext失败。

 那怎么解决呢,其实也很简单,既然你不让我修改入口的,就把入口点设置到和你进程一样就行了,之前的代码用nop填充。

然后你会发现这里+538之后返回的值居然还是1,那他是什么时候被赋值的呢?

 经过简单的调试之后发现,sub_FFFFF807117A72E0的调用不通过,但是计数器+1了。

 后来点了点它的相关进程,发现只有HRSword.exe和sysdiagPoc.exe(x64)才会和驱动通信,所以这里选择HRSword在试试看,由于入口点在11A64d,所以一开始我也不想选它,写个nop文件都要写100多万行,vs编辑还任意崩溃,这里还是用notepad++编辑比较给力。

 最后成功复制到了物理内存的句柄,接下来就和procexp的利用一样了。

相关文章:

  • 【推送位置苹果群发iMessage推】如果Windows和Linux实现不同的传输层协议,那末因为数据格式的不同
  • 12.6、后渗透测试--Windows系统下信息收集模块
  • 含参PDE(偏微分方程)的神经网络并行编程mpi4py
  • C/C++程序的断点调试 - Visual Studio Code
  • 墨家在中国为什么消失得这么彻底?
  • 面试必备:分库分表经典15连问
  • 微信支付-全面详解(学习总结---从入门到深化)
  • 【MySQL】数据库基础知识汇总和增删改查操作
  • 【云计算与大数据技术】文件存储格式行式、列式、GFS、HDFS的讲解(图文解释 超详细)
  • 股票l2接口的委托数据有什么作用?
  • 人工智能:智能语音技术应用场景介绍
  • JSP ssh流量充值系统myeclipse开发oracle数据库MVC模式java编程计算机网页设计
  • [附源码]Python计算机毕业设计非处方药的查询与推荐系统Django(程序+LW)
  • 简洁而优美的结构 - 并查集 | 一文吃透 “带权并查集” 不同应用场景 | “手撕” 蓝桥杯A组J题 - 推导部分和
  • 12月13日(第11天)
  • javascript 总结(常用工具类的封装)
  • java正则表式的使用
  • js算法-归并排序(merge_sort)
  • Laravel5.4 Queues队列学习
  • SQL 难点解决:记录的引用
  • SwizzleMethod 黑魔法
  • v-if和v-for连用出现的问题
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 解析 Webpack中import、require、按需加载的执行过程
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 算法系列——算法入门之递归分而治之思想的实现
  • 网页视频流m3u8/ts视频下载
  • 一些关于Rust在2019年的思考
  • AI算硅基生命吗,为什么?
  • k8s使用glusterfs实现动态持久化存储
  • ​520就是要宠粉,你的心头书我买单
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • #NOIP 2014# day.2 T2 寻找道路
  • #每日一题合集#牛客JZ23-JZ33
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (二)WCF的Binding模型
  • (二)学习JVM —— 垃圾回收机制
  • (数据结构)顺序表的定义
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET CORE Aws S3 使用
  • .NET Core跨平台微服务学习资源
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .NET 中 GetProcess 相关方法的性能
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .NET使用存储过程实现对数据库的增删改查
  • .Net小白的大学四年,内含面经
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • [Android Pro] AndroidX重构和映射
  • [AX]AX2012 SSRS报表Drill through action
  • [BUG] Authentication Error