关于抓取明文密码的探究

基础知识

SSP(Security Support Provider)是windows操作系统安全机制的提供者。简单的说,SSP就是DLL文件,主要用于windows操作系统的身份认证功能,例如NTLM、Kerberos、Negotiate、Secure Channel(Schannel)、Digest、Credential(CredSSP)。

SSPI(Security Support Provider Interface,安全支持提供程序接口)是windows操作系统在执行认证操作时使用的API接口。可以说SSPI就是SSP的API接口。

在微软官方中对于Security Support Provider的解释如下所示

SSP

我们知道lsass.exewinlogin.exe进程是用来管理登录的两个进程,都包含在LSA(Local Security Authority)里面,它主要是负责运行windows系统安全策略。SSP在windows启动之后,会被加载到lsass.exe进程中,那么就衍生出了两种思路:

第一种思路就是删除一个任意的SSP DLL以便于与lsass进程进行交互,第二种思路则是直接伪造一个SSP的dll来提取用户登录时的明文密码

我们首先尝试对注册表进行修改,这里对应需要修改的注册表为HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Security Packages,在mimikatz里面根据不同的系统位数提供了对应的dll,这里我们直接修改注册表里面的值即可

首先我们尝试一下任意位置直接加载dll,写一个修改注册表的代码,主要是使用RegOpenKeyWRegSetValueExW这两个api来实现

 

这里我把mimilib.dll放到C盘根目录下

注意一下这里需要用管理员权限启动否则会添加失败

可以看到这里我们已经修改成功

这里新建一个test用户来进行测试

当用户再次通过系统进行身份验证时,将创建一个名为 kiwissp 的新文件,该文件将记录帐户的凭据。默认情况下在以下路径

但是这里没有成功,可能是路径的问题

这里把mimilib.dll放到C:\Windows\System32文件目录下

修改注册表为mimilib.dll

在重新登录用户之后,就能够在System32目录下找到kiwissp.txt的明文文件

因为是登录就加载,所以如果想要删除只能清除注册表之后进行删除

另外mimikatz提供了一种更方便的方法,直接使用misc::memssp命令来直接注入,但是有一个缺点就是在重新启动之后不会持续存在

当用户再次通过系统进行身份验证时,会在C:\Windows\System32\mimilsa.log里面记录下明文密码

Hook PasswordChangeNotify

在上面的两种方法里面,都有或多或少的优缺点,在第一种方法中需要放置dll到system32目录下且需要修改注册表,但重启之后仍然有效,第二种方法虽然不需要直接修改注册表和放置dll,但是重启之后就会失效,而且使用mimikatz也需要考虑对抗杀软的问题。在这里有一种更方便且更隐蔽的方法就是hook PasswordChangeNotify这个api。

在修改密码时,用户输入新密码后,LSA 会调用 PasswordFileter 来检查该密码是否符合复杂性要求,如果密码符合要求,LSA 会调用 PasswordChangeNotify,在系统中同步密码。这个过程中会有明文形式的密码经行传参,只需要改变PasswordChangeNotify的执行流,获取到传入的参数,也就能够获取到明文密码。

还需要了解的相关背景知识如下:

  1. 函数PasswordChangeNotify存在于rassfm.dll

  2. rassfm.dll可理解为Remote Access Subauthentication dll,只存在于在Server系统下,xp、win7、win8等均不存在

我们知道了在LSA调用PasswordChangeNotify的过程中密码是以明文的形式传输的,这里我们就可以通过Inline Hook的方式使用jmp跳转到我们自己的处理函数中,读取密码之后再还原到原地址继续传参。

这里已经有前辈写好了Inline Hook的代码:https://github.com/clymb3r/Misc-Windows-Hacking/blob/master/HookPasswordChange/HookPasswordChange/HookPasswordChange.cpp

我们简单的分析一下写的代码,首先创建一个vector容器,修改硬编码指向PasswordChangeNotifyHook函数的地址

首先保留rbx、rbp、rsi三个寄存器的值到堆栈里面,然后将字节码写入内存并还原被覆盖的指令,再跳转回原函数

然后再看下读取密码的这个函数,如果获取到密码,则在C:\windows\temp目录下创建一个passwords.txt来储存密码

这里使用session0注入来将dll注入lsass.exe,使用到ZwCreateThread这个内核函数,因为用一般的注入方式是不能够往系统进程中注入dll的。这里可以看到已经将我们的这个dll注入了lsass.exe进程

这里去更改一下密码

这里进行Inline hook之后应该是会把在传输中的明文密码保存到password.txt文件里面的,但是这里在目录下却没有找到,删除dll的时候也显示已经被打开,即已经注入到了进程空间里面,这里去搜索引擎里面看了一下,师傅们基本上都是使用的ps反射加载的方法来把dll注入到进程空间里面,而使用直接加载dll的师傅都没有成功抓取密码,这里研究半天也没搞出个所以然来,还是才疏学浅了。

那么这里我们再使用反射加载的方式进行尝试,利用Powershell tricks中的Process Injection将dll注入到lsass进程,项目地址如下

https://github.com/clymb3r/PowerShell/blob/master/Invoke-ReflectivePEInjection/Invoke-ReflectivePEInjection.ps1

这里首先更改powershell的执行策略为可加载脚本,再执行命令

1、Set-ExecutionPolicy bypass

2、Import-Module .\Invoke-ReflectivePEInjection.ps1

3、Invoke-ReflectivePEInjection -PEPath HookPasswordChange.dll -procname lsass     

修改密码过后即可在目录下看到抓取的明文密码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/212495.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【源码篇】基于SpringBoot+thymeleaf实现的大学生自习室座位预定系统

文章目录 系统介绍管理员学生 技术选型成果展示账号地址及其他说明 系统介绍 基于SpringBootthymeleaf实现的大学生自习室座位预定系统是为座位管理打造的一款在线管理平台,它可以实时完成信息处理,使其系统化和规范化。 系统功能说明 管理员 1、用户…

C++17中的结构化绑定

C17中的结构化绑定(structured binding):将指定名称绑定到初始化程序的子对象或元素。简而言之,它们使我们能够从元组或结构中声明多个变量。与引用一样,结构化绑定是现有对象的别名;与引用不同,结构化绑定不必是引用类型(referen…

微信小程序组件与插件有啥区别?怎么用?

目录 一、微信小程序介绍 二、微信小程序组件 三、微信小程序插件 四、微信小程序组件与插件有啥区别 一、微信小程序介绍 微信小程序是一种基于微信平台的应用程序,它可以在微信客户端内直接运行,无需下载和安装。微信小程序具有轻量、便捷、跨平台…

C语言——指针(四)

📝前言: 上篇文章C语言——指针(三)对指针和数组进行了讲解,今天主要更深入的讲解一下不同类型指针变量的特点: 1,字符指针变量 2,数组指针变量 3,函数指针变量 &#x1…

职位招聘管理与推荐系统Python+Django网页界面+协同过滤推荐算法

一、介绍 职位招聘管理与推荐系统。本系统使用Python作为主要开发语言,以WEB网页平台的方式进行呈现。前端使用HTML、CSS、Ajax、BootStrap等技术,后端使用Django框架处理用户请求。 系统创新点:相对于传统的管理系统,本系统使用…

轻量封装WebGPU渲染系统示例<42>- vsm阴影实现过程(源码)

前向实时渲染vsm阴影实现的主要步骤: 1. 编码深度数据,存到一个rtt中。 2. 纵向和横向执行遮挡信息blur filter sampling, 存到对应的rtt中。 3. 将上一步的结果(rtt)应用到可接收阴影的材质中。 具体代码情况文章最后附上的实现源码。 当前示例源码github地址: …

优化你的计算机性能:如何根据 CPU 占用率决定硬件升级

优化你的计算机性能:如何根据 CPU 占用率决定硬件升级 一、引言二、CPU 占用率的意义与影响三、监测和评估 CPU 占用率四、判断硬件升级需求的依据五、硬件升级方案和建议六、总结 一、引言 计算机性能优化是提升计算机系统整体效能的过程,它对于用户和…

2023版本idea插件开发踩坑记录(一)

在进行idea开发的时候,开始仿照着写第一个插件hello world的时候,运行的时候一直运行不成功。参考了很多博客都是如此 后面对官方文档读了一遍,就发现其中的原委,这个的话估计会有很多人跟我一样踩坑 具体原因是,idea插…

Docker安装Oracle18c 坑已排完,放心食用

Docker安装Oracle18c 坑已排完,放心食用 0、有问题可邮件我1、拉取 oracle18c 镜像, 推荐使用 zhengqing版本的镜像2、启动容器3、等待容器启动完成, 这一步很慢很慢, 别着急4、进入容器5、修改管理员密码6、查看并设置环境变量7、设置监听模式支持以SID方式连接PDB数据库8、使…

Redis中的数据结构

文章目录 第1关:Redis中的数据结构 第1关:Redis中的数据结构 这是上篇文章的第一关,只不过本篇是代码按行做的,方便一下大家使用。 代码如下: redis-cliset hello redislpush educoder-list hellorpush educoder-lis…

HCIP-十六、IGMPPIM-SM 组播

十六、IGMP&PIM-SM 组播 IGMP实验拓扑实验需求及解法1. 配置各设备IP地址2. R1启用组播功能,并在g0/0/0和g0/0/1上开启pim dm3. R1的g0/0/1开启igmp协议 PIM-SM实验拓扑实验需求及解法1.配置各设备IP地址。2.运行IGP3.R1/2/3/4运行PIM-SM IGMP 实验拓扑 实验需…

国际语音通知是什么?国际语音通知系统有哪些功能?

一、国际语音通知是什么? 如同国际短信通知,国际语音通知也在多种生活场景中扮演着重要的角色,如会议通知、商品发货通知、物流更新通知、快递取件通知、外卖取餐通知等。那么什么是语音通知呢? 国际语音通知可将通知的文本信息使…

PT读spef报PARA-006如何解决?

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 There are multiple causes that can trigger PARA-006 errors. Here is a checklist. 1) SPEF reading order Functionally, the parasitic files can be read in any order. For best stitching…

【STM32】STM32学习笔记-STM32简介(02)

00. 目录 文章目录 00. 目录01. STM32简介1.1 STM32是什么1.2 STM32应用领域1.3 STM32命名规则1.4 STM32选型 02. ARM简介2.1 ARM是什么2.2 ARM系列 03. STM32开发板3.1 MCU简介3.2 STM32开发板3.3 STM32硬件资源 04. STM32系统架构05. STM32引脚定义06. STM32启动配置07. STM3…

基于AI模型实现行政区识别

pytorch环境搭建 下载pytorch与CUDA会快一些,在本地下载好了pytorch的whl文件后,直接在下载目录中打开cmd窗口,使用pip install xxxx.whl安装pytorch即可。 RaNER 模型搭建与运行 进入魔塔官网,找到MGeo模型,首先必…

中国消费电子行业发展趋势及消费者需求洞察|徐礼昭

一、引言 近年来,随着科技的飞速发展,消费电子行业面临着前所未有的挑战与机遇。本文将从行业发展趋势、消费者需求洞察以及企业数字化转型的方向和动作三个方面,对消费电子行业进行深入剖析。 二、消费电子行业发展趋势 5G技术的普及和应…

二叉树的根到叶子几点之和

输入:root [1,2,3] 输出:25 解释: 从根到叶子节点路径 1->2 代表数字 12 从根到叶子节点路径 1->3 代表数字 13 因此,数字总和 12 13 25 输入:root [1,0,1,0,1,0,1] 输出:22 解释:(1…

mac安装解压缩rar后缀文件踩坑

mac默认能够解压缩zip后缀的文件,如果是rar后缀的自己需要下载相关的工具解压 下载地址: https://www.rarlab.com/download.htm mac我是因特尔芯片所以下载 x64 然后解压缩文件进入目录 rar中 将可执行文件 rar、unrar 移动到 /usr/local/bin目录下即…

PAD平板签约投屏软件要如何选

又是一年年底了,年会开始多起来了,许多会务公司或活动公司会接到很多平板签约投屏业务,如年会中的签军令状、业绩保证书等。这时就面临选购一套签约投屏软件了。 目前的签约投屏软件,大多以H5做的网页版的多,但我建议…

数据库管理-第121期 我为什么写文章(202301203)

数据库管理-第121期 我为什么写文章(202301203) 其实呢~大周末我不是太想写文章的,周五HaloDB起了个头还有一堆可以做的事情都计划到下周了,但是昨天发生了一件事情,让我很是不开心:强盗逻辑,白…