Windows7 口令登录过程调试

2016-04-01 02:32 68 1 收藏

图老师电脑网络栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享Windows7 口令登录过程调试的教程,热爱iphone的朋友们快点看过来吧!

【 tulaoshi.com - windows 7 】

Windows7 口令登录过程调试

基本原理

Windows7 以后 Winlogon 进程是动态的,有用户登录就会创建一个 Winlogon 进程,因此系统中完全 可能存在多个登录进程,注销后 Winlogon 进程也会随之结束。

Windbg 断点 NtCreateUserProcess 观察 Windows7 启动流程:

我整理的基本进程树如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

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 负责用户认证界面,Windows7 以后不再使用 msgina.dll,而是使用多个进程配合,完成用户 认证过程,大致过程为 1、Winlogon 启动 LogonUI 等待用户输入凭证 2、Winlogon 通过 ALPC 通知 Lsass用户登录 3、Lsass 依次查询认证模块4、Lsass 返回认证结果。框图如下

调试过程

必须要吐槽下,windows7 下 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观察下,随便输入个密码,命中:

这里我们发现 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 使Tulaoshi.com用状态机来维护整个登录过程中的各种情况处理,通过 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 调用接口如下:

根据《windows internals 5》一文,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来完成,如下:

在双系统下轻松删除Windows7

  随着Windows7的发布,不少用户都用上了这款全新的操作系统,而其中配备双系统的用户居多。构建双系统很简单,那么如何卸载双系统下的Windows7却难住了不少用户。下面则是我们整理的技巧,希望对于需要卸载Windows7的用户能够有所帮助。

  1. 插入刻好的 Windows7 安装光盘(或者用虚拟光驱加载Windows7镜像)。

  2. 依次点击"开始"-"运行",弹出命令行窗口。

  3. 在命令行窗口中输入 X:bootbootsect.exe /nt52 all /force ,然后按 Enter.(注:X:代表你的光驱盘符,或者虚拟光驱盘符。例如,如果 DVD 驱动器号是 F,则键入 F:bootbootsect.exe /nt52 Tulaoshi.comALL /force.)

  4. 弹出 Windows7 安装光盘(或者在虚拟光驱中卸载ISO镜像文件)。

  5. 重新启动计算机,计算机将使用已安装的以前版本的 Windows 启动。Windows7系统的启动项不见了,Early Version windows也不见了,只剩下Windows xp的启动项了,基本成功。

  6. 手动删除 Windows7 文件和文件夹,如程序文件、用户和 Windows 文件夹。或者没有其它重要文件的话,可以直接格式化Windows7所在分区,省时省事。

Windows7下将grub4dos加入开机菜单

世界上最快而又最慢,最长而又最短,最通俗而又最名贵,最轻易忽视而又最令人懊悔的就是时候。grub4dos官方网站:http://grub4dos.sourceforge.net/
后解压,把grub4dos目次下的grldr、grldr.mbr、menu.lst这3个文件放到体系根目次下如:C:
以经管员模式运行

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)
科学家必须在错杂的经验事实中抓住某些可用紧密公式来默示的广泛特点,由此寻找天然界的广泛道理。bcdedit /create /d "Grub4DOS" /application bootsector

成功后显示

Windows7下将grub4dos加入开机菜单 图老师

记下{9861ede3-8496-11e1-a57e-f07a45f050c3}这一串,然后持续履tulaoShi.com行

bcdedit /set {9861ede3-8496-11e1-a57e-f07a45f050c3} device partition=C:  // {9861ede3-8496-11e1-a57e-f07a45f050c3}这一串就由上一句生成bcdedit /set {9861ede3-8496-11e1-a57e-f07a45f050c3} path grldr.mbrbcdedit /displayorder {9861ede3-8496-11e1-a57e-f07a45f050c3} /addlast   // 添加到菜单

一切都顺利的话显示

02.jpg

重启后开机菜单会多出一个Grub4DOS高尔基

Windows7是有什么含义?

Windows7是有什么含义? 图老师

电脑常识

  一、Windows7是什么意思?

  Windows 7 是由微软公司(Microsoft)开发的操作系统,核心版本号为Windows NT 6.1。Windows 7 可供家庭及商业工作环境、笔记本电脑、平板电脑、多媒体中心等使用。2009年7月14日Windows 7 RTM (Build 7600.16385)正式上线,2009年10月22日微软于美国正式发布 Windows 7 。Windows 7 同时也发布了服务器版本Windows Server 2008 R2。2011年2月23日凌晨,微软面向大众用户正式发布了windows7升级补丁Windows 7 SP1 (Build7601.17514.101119-1850),另外还包括Windows Server 2008 R2 SP1升级补丁。

  二、Windows版本

  在市场中,Windows7又有很多版本,其中分为:Windows7简易版、Windows7家庭普通版、Windows7家庭高级版、Windows7专业版、Windows7企业版、Windows7旗舰版、Windows7鲍尔默签名版。这几个版本具有不一样的风格以及不一样的价格,具体可以参考Windows的官方网站进行查询。

将Windows7电脑改造成无线路由器

  在平常上网过程中,难免会遇到一些网络方面的问题,这时候我们就需要查看网络连接的状态,查找问题根源。

将Windows7电脑改造成无线路由器 图老师

  在Windows XP中,大家这时候都会从开始菜单或控制面板打开网络连接窗口来检查网络问题,但对于一个 Windows7 新手来说,找到这个窗口似乎有点困难,在控制面板中搜索网络连接也找不到它。这时候,大家应该想到的就是上次介绍过的网络和共享中心,因为这里集中了网络相关的常规配置,在这里能不能找到线索呢?

  试试点击左上方的更改适配器设置任务吧,瞧,网络连接窗口原来藏在这里,这时候我们就可以和XP中一样查看到计算机中网卡的设置和状态了:

  但有的同学可能会发现,在这些网卡当中多了一个叫Microsoft Virtual WiFi Miniport Adapter的东西,按名字来看似乎是微软的虚拟Wifi网卡。电脑中怎么会无缘无故多了这么一个东西呢?难道又一个Windows7的隐藏功能被发现啦?

  没错,这的确是 Windows7 中深藏不漏的新功能虚拟 Wifi,不好意思在前面给大家卖了很大一个关子。简单来说,Windows7能在现有无线网卡的基础上再虚拟出一块无线网卡,支持网络共享,让我们的电脑变成无线路由器哦!看来如今虚拟真是无处不在啊。

  有的同学可能知道,在此之前,其实也可以建立临时网络向其他Wifi设备共享互联网啊,虚拟 Wifi 网卡有什么新的优势呢?

  传统的临时无线网(即Ad Hoc模式)是一种点对点网络,类似于有线网中的双机互联,虽然也能实现互联网共享,但主要用于两个设备临时互联,并且有的设备(如采用Android系统的设备)并不支持连接到临时无线网。还有一个很严重的问题,由于一块无线网卡只能连接到一个无线网络,因此如果通过无线网卡连接到 Internet,就不能再使用这个无线网卡建立临时网络,共享 Internet 了。

  而Windows7 中的虚拟 Wifi 功能可以在一块真实无线网卡基础上再虚拟出一块网卡,实现无线路由器的 AP功能,解决了临时网络的所有问题。

  这么诱人的功能,现在赶紧教给大家:

  1. 以管理员身份运行命令提示符

  因为下面的步骤必须在管理员权限下运行,因此我们从开始菜单找到命令提示符,或直接键入cmd快速搜索,右键单击它,选择以管理员身份运行,在弹出的用户控制窗口中单击是。还有一种方法就是按住Ctrl和Shift键直接单击该快捷方式,更简单哦。

  2. 启用并设定虚拟Wifi网卡模式

  运行以下命令启用虚拟无线网卡(相当于打开路由器):

  netsh wlan set hostednetwork mode=allow ssid=Win7 AP WOW! key=wifimima

  这个命令中有三个参数:

  Mode:是否启用虚拟Wifi网卡,改为disallow则为禁用,虚拟网卡即会消失。

  Ssid:指定无线网络的名称,最好为英文。

  Key:指定无线网络的密码。该密码用于对无线网进行安全的WPA2加密,能够很好的防止被蹭网。

  以上三个参数其实可以单独使用,例如只使用 mode=disallow 可以直接禁用虚拟Wifi网卡。

  3. 启用Internet连接共享(ICS)

  为了与其他计算机或设备共享已连接的互联网,我们需要启用Internet连接共享功能。打开网络连接窗口,右键单击已连接到Internet的网络连接,选择属性,切换到共享选项卡,选中其中的复选框,并选择允许其共享Internet的网络连接在这里即我们的虚拟Wifi网卡:

  确定之后,提供共享的网卡图标旁会出现已共享标志,表示Internet连接共享向虚拟无线网卡开通了:

  4. 开启无线网络

  继续在命令提示符中运行以下命令:

  netsh wlan start hostednetwork

  即可开启我们之前设置好的无线网络(相当于打开路由器的无线功能。同理,将start改为stop即可关闭该无线网)。

  可以看到,虚拟无线网卡已经开启了我们所指定的无线网络,其IP地址等属性是由Internet连接共享服务分配的,因此比较特别:

  一切准备就绪,最后只要在需要联网的的电脑或手机上连接该无线网络,就可以直接畅游互联网了:

  需要多说一点的是,虚拟Wifi网卡,需要真实网卡的驱动程序专门针对Windows7设计开发。所幸只要通过Windows7 徽标认证的无线网卡驱动程序都支持该模式,我们在选购无线网卡时直接寻找是否带有该标志即可。如果在运行mode=allow命令后,网络连接中没有出现虚拟无线网卡,就说明真实网卡不支持该功能。大家可以将网卡驱动升级到最新的Windows7版本试试看。

  除了使用命令设置虚拟WIFI功能,微软还将其编程接口公开了出来,为开发图形化设置程序提供了可能,例如免费小软件Connectify就能直观的设置虚拟Wifi功能,同学们可以在其官方网站下载使用:www.connectify.me

  总之,今天介绍这个功能非常适合家庭或学生宿舍使用,只要提供共享的电脑不休眠不关机,就可以和路由器一样提供网络共享。使用Windows7还能省掉购买的无线路由器的开销,想一想,很很划算吧?

来源:http://www.tulaoshi.com/n/20160401/2075617.html

延伸阅读
标签: 电脑入门
问题:我不知道咋回事,一开机就没声音。大家看看怎么回事?能都解决。 回答: 1、检查声卡、连接线,以及音箱等设备是否连接正常;运行杀毒软件进行杀毒; 2、右击我的电脑----属性---硬件----设备管理器,打开声音、视频和游戏控制器有无问题,即看前面有没有出现黄色的 如有,重新安装这个设备的驱动程序进行解决; 3、有声音但不见小喇叭...
标签: 电脑入门
自从腾讯推出了QQ互联平台,于是在很多地方都会直接使用QQ登录,有些网站会获取QQ的一些信息,并且会通过QQ发送一些消息,比如发布帖子后会自动同步到微博什么的,怎么取消某个网站的QQ授权?或者想要查询登录记录和登录时间?想要知道这些就看下面的精彩内容 方法很简单在QQ空间进入空间设置,找到权限设置-QQ登录,就可以很清楚的看到登录的所...
标签: 电脑入门
在使用Win7的时候很多用户对于系统的很多功能并不是很了解,也正是因为这样的不了解导致很多用户在使用Win 之后并不能体验Win7的功能便携和强大功能,导致很多用户对于Win7的认识还是比较模糊,不过为了让更多的网友了解Win7的特点和便携应用,今天就 为大家汇总几个Win7使用中的小技巧,希望大家喜欢。 Windows键 + 空格键Space [作用]:...
标签: 电脑入门
Windows7系统取消开机按CTRL+ALT+DEL登陆的方法: 控制面板→管理工具→本地安全策略→本地策略→安全选项→交互式登陆:无须按 CTRL+ALT+DEL→已启用。 windows7优化设置: 1、开始控制面板键盘速度重复延迟拉到最短。 2、开始控制面板鼠标指针选项移动拉到最快。 3、开始控制面板日期和时间Internet时间修改设...
标签: windows10 windows7
点击图标   首先点击右下角任务栏的图标; 点击设置   在弹出的页面中,点击所有设置选项; 更新安全   在设置中选择更新和安全; 恢复选项   在更新与安全中选择恢复选项; 点击开始   找到会退到win7选项,点击开始; 点击确定   会弹出一个页面问你为啥回退...

经验教程

249

收藏

12
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部