深度技术系统
深度技术在中国大陆是使用率非常高的VIP修改版Windows操作系统,装机方便。通过先进的互联网多媒体通讯技术,服务工程师在被许可的情况下连接到用户电脑,远程接管用户电脑,解决用户使用电脑过程中产生的各种问题,包括:软件安装、系统优化、数据备份、查毒杀毒、 系统修复、系统重装等服务 !提供常用的9大类50余款应用软件的帮教下载、安装、升级、卸载等服务,实现用户电脑畅快使用。
win10系统口令登录过程调试的操作方法
很多win10用户在使用电脑的时候,会发现win10系统口令登录过程调试的的现象,根据小编的调查并不是所有的朋友都知道win10系统口令登录过程调试的的问题怎么解决,不会的朋友也不用担心,下面我就给大家讲解一下win10系统口令登录过程调试的的少许解决办法,其实步骤很简单,只需要 1、!process 0 0 查看目标进程的基本情况,主要是 Cid。 2、bp nt!KiFastCallEntry "j poi(@$teb+20) = 0x1a0'';'gc'" 把 1a0 替换成实际的 Cid 即可。这样的方式进行电脑操作,的步骤就可以搞定了,还有不知道win10系统口令登录过程调试怎么解决的朋友赶快来学习一下吧!
首先介绍windows10系统基本原理
windows10 以后 winlogon 进程是动态的,有用户登录就会创建一个 winlogon 进程,因此系统中完全 可能存在多个登录进程,注销后 winlogon 进程也会随之结束。
windbg 断点 ntCreateUserprocess 观察 windows10 启动流程:
我整理的基本进程树如下:
smss.exe autochk.exe
smss.exe 00000000 0000003c //session 0
Csrss.exe
wininit.exe
services.exe
开机自启动服务进程
Lsass.exe
Lsm.exe
smss.exe 00000001 0000003c //session 1
Csrss.exe
winlogon.exe
LogonUi.exe
LogonUi.exe 负责用户认证界面,windows10 以后不再使用 msgina.dll,而是使用多个进程配合,完成用户 认证过程,大致过程为 1、winlogon 启动 LogonUi 等待用户输入凭证 2、winlogon 通过 ALpC 通知 Lsass用户登录 3、Lsass 依次查询认证模块【本地认证 MsV1_0.dll】4、Lsass 返回认证结果。框图如下
windows10调试过程
必须要吐槽下,windows10 下 windbg 内核调试应用程序经常断不下了,害我浪费了很多功夫~~现总结 了一个稳当可靠的办法:
1、!process 0 0 查看目标进程的基本情况,主要是 Cid。
2、bp nt!KiFastCallEntry "j poi(@$teb+20) = 0x1a0'';'gc'" 把 1a0 替换成实际的 Cid 即可。
3、等断点命中后,bp winlogon!xxxxx
4、.reload /user 下,bl 看一下,确保函数解析成地址。
首先看 winlogon 和 LogonUi 之间的交互,LogonUi.exe 就是一个壳,类似 svchost,真正的功能是通 过 authui.dll模块完成的,从《windows internals5》介绍,winlogon 是通过 ALpC 的东西同 Lsass 通信的,但是 LogonUi 没怎么讲,我估计八成也是一样的,应该就是 RpC 调用。
RpC 调用分服务端和客户端,客户端最终 RpCRT4!ndrClientCall2 执行调用,而服务端最终会执行
RpCRT4!invoke执行具体的函数。
我们断点 winlogon!ndrClientCall2观察下【这里不 bp RpCRT4!ndrClientCall2主要是避免其他进程干 扰,因为 RpC 在系统中调用很频繁】,随便输入个密码,命中:
这里我们发现 winlogon 的确使用了 RpC 调用来执行进程交互,注意这个函数名是 wluidisplaystatus,其 实很明确的告诉我们 winlogonUidisplaystatus,那么该 RpC 最终在哪里被执行呢?很显然是在 authui.dll 下断点 RpCRT4!invoke 命中,而后单步跑一下,如图:
直接从 idA 里面翻了下 authui.dll注册 RpC 服务
从
直接把所有的 RpC 接口函数 dUMp 出来,如下:
其中 wluirRequestCredentials很惹人关注,对应的 winlogon!wluirRequestCredentials函数如下:
winlogon 同 logonUi 的 authui.dll 中通过一一对应的 RpC 函数完成接口调用,下面是一次错误密码测 试过程时,依次命中的调用情况:
序号函数名描述
1
winlogon!wluiRequestCredentials请求用户输入凭证,注:该函数是阻塞函数,会一直等待直到用户确认登录才返回。
2
winlogon!wluidisplaystatus显示状态?未细究。
3
winlogon!wluiReportResult通报结果。
4
winlogon!wluidisplayRequestCredentialsError显示登录错误提示。
我们发现基本上 LogonUi 进程没干啥活,所以的动作都是 winlogon 的 wluixxxxxx 接口消息驱动的,
idA 里面会发现大量的 directUi 界面代码。
winlogon 使用状态机来维护整个登录过程中的各种情况处理,通过 winlogon!stateMachinesetsignal
来完成状态切换,整个状态定义 dUMp 如下【未截全】:
例如:断点 winlogon!stateMachinesetsignal点击登录界面残障人士按钮,命中如下:
注意其中的参数二对应的是状态,查下状态 9 对应的正是 g_xwinsrv_Accessnotify_signal,winlogon和 LogonUi 的交互基本上流程基本比较清晰了,下面我们重点研究下 winlogon 同 lsass 进程完成密码认证的一些细节。
winlogon 同样使用 RpC 调用完成同 lsass 的交互,不同的是 windows 把这几个 RpC 调用封装成了 dLL形式,分别是 sspiCli 客户端和 sspisrv 服务端,最终还是调用了 RpCRT4 函数,证据如下:
直接从 idA 中 dUMp 出 sspisRV 的 RpC 调用接口如下:
winlogon 调用 sspiCli!LsaLogonUser完成登录,该函数最终通过RpC 调用 Lsass::sspisrv!sspirLogonUser
其中 Authenticationinformation 参数里面包含了登录所需的信息,具体结构如下:
windbg 显示这里密码被加密了,哈哈,下内存写断点,命中堆栈如下:
winlogon!wLGeneric_Request_Logon_Credz_Execute 对应的代码如下:
该函数首先通过 RequestCredentials 函数请求登录凭证,如果是本地登录模式,该函数最终会调用 wluiRequestCredentials函数执行 LogonUi 进程的 RpC 服务函数 authui!wluiRequestCredentials,请求用户输入登录凭证。
最终 authui!CRequestCredentialsCallbackdata::GetCredential获取用户登录凭证,数据结构为_CREd_pRoV_CREdEnTiAL* 可惜没有数据结构定义。
输入“qqqqqqqq”调试显示 dUMp 如下:
下内存断点:Ba w1 0027e5c8+3e,命中堆栈如下:
这里 windbg 函数显示的函数 CRequestCredentialsCallbackdata::GetshutdownChoice+0x63是错误的,实际 是 sub_7483CBE7 函数:
查看一下内存数据,如下:
源地址是 0027e510,长度是 000000b0 :
Ba w1 0027e510+3e,命中 查看源地址 238df78: 继续跟踪内存 Ba w1 238df78+3e
查看内存如下:
函数 KerbinteractiveUnlockLogonpack是一个可以 google 到的函数,很好。
02 024df8fc 024df924 024df928 authui!KerbinteractiveUnlockLogonpack+0x90
断点 ba w1 023888b8 命中堆栈
Credprotect 函数 Msdn 如下:
查看堆栈第二个参数,果然是明文密码:
对应的解密函数 CredUnprotect
这些内容实际在 lsass 进程里面解密,断点 AdVApi32!CredUnprotectw命中堆栈如下:
最终的密码认证还是通过群众喜闻乐见的 msv1_0!LsaApLogonUserEx2来完成,如下:
以上是图片的记录哦!
- 相关推荐
- win8.1系统文件夹没有访问权限的解决方法
- win8.1系统提示应用程序错误0xc0000418.1位置0x004fd589的解决方法
- win10重命名开始屏幕图片的技巧
- win10系统提示“存储空间不足,无法处理此命令”的操作方法
- win10系统打开excel20010界面灰色的操作方法
- win8.1系统网络连接不上一直转圈的解决方法
- 处理win10系统电脑分辨率的办法
- win8.1系统开机一直停留在“windows正在启动”界面的解决方法
- win10系统联想笔记本开机显示“intel Undi,pxE-2.1(build 083)”的操
- 大地Win10企业版手机数据线连接电脑没反应的解决方法
- 系统专栏
- 深度技术 Ghost Win10 32位 国庆专业版 V2018.10月 (免激活)深度技术 Ghost Win10 32位 国庆专业版 V2018.10月 (免激活)
- 深度技术Ghost Win10 x64位 优化装机版2017.11月(永久激活)深度技术Ghost Win10 x64位 优化装机版2017.11月(永久激活)
- 深度技术Ghost Win10 X64位 电脑城装机版2017.03(完美激活)深度技术Ghost Win10 X64位 电脑城装机版2017.03(完美激活)
- 深度技术Ghost Win10 64位稳定企业版2016.10(免激活)深度技术Ghost Win10 64位稳定企业版2016.10(免激活)
- 深度技术Ghost Win10x86 特别专业版 2019.07(绝对激活)深度技术Ghost Win10x86 特别专业版 2019.07(绝对激活)
- 深度技术Ghost Win10 X64 推荐专业版 v2021年04月(免激活)深度技术Ghost Win10 X64 推荐专业版 v2021年04月(免激活)
- 深度技术GHOST WIN7 (64位) 热门旗舰版 2019年07月(绝对激活)深度技术GHOST WIN7 (64位) 热门旗舰版 2019年07月(绝对激活)
- 深度技术GHOST WIN7 32位 装机优化版V2018.03月(无需激活)深度技术GHOST WIN7 32位 装机优化版V2018.03月(无需激活)
- 深度技术GHOST WIN7 (64位) 官方装机版2017V08(绝对激活)深度技术GHOST WIN7 (64位) 官方装机版2017V08(绝对激活)
- 深度技术GHOST WIN7 x64 旗舰稳定版v2017年09月(自动激活)深度技术GHOST WIN7 x64 旗舰稳定版v2017年09月(自动激活)
- 深度技术GHOST WIN7 X64 全新装机版V2018年08月(免激活)深度技术GHOST WIN7 X64 全新装机版V2018年08月(免激活)
- 深度技术Windows7 v2020.02 32位 老机装机版深度技术Windows7 v2020.02 32位 老机装机版
- 系统安装教程
- win8.1系统文字显示乱码错乱的解决方法
- win8.1系统无法使用网银的解决方法
- win10电脑显示桌面图片不见了如何办?
- win8.1系统修改UG8.0背景颜色的解决方法
- xp系统没有摄像头的修复方案
- win10系统玩骑马与砍杀提示runtime error错误的操作方法
- win10系统打印机中office document image writer不见了的解决办法
- 自由天空W10专业版 10074任意更改开始菜单大小的方法
- win8.1系统桌面上禁止创建文件夹的解决方法
- win10系统设置谷歌浏览器打开特定网页的操作方法
- win8.1系统使用iE浏览器提示“浏览器cookie功能被禁用,请开启此功能
- win10系统百度浏览器打开网页很慢的操作方法
- win10系统重装后不能上网的操作方法
- win8.1系统访问win8共享文件夹提示没有权限的解决方法
- win10系统iE地址栏输入网址后总自动转到114页面的操作方法