sam初识+sam详解

2023-11-19

SAM是什么?
也许大家在网上看了许多的关于sam的传奇的故事吧!那么今天就让我----偏执狂带你们进入sam的所有吧!
 
第一节:初级认识sam
 
微软做了两个不同的系统骨架,一个叫Win32,我们用的Win9x/Me系统就附在它上面;另一个叫NT(New Technology),也就是WinNT/2000/XP/2003的骨架。不过很不幸,微软有点“偏心”,Win32的骨架做得明显有点过小,所以它成了瘦子,而NT则是典型的美国壮汉。更不幸的是,微软给Win32配备的PWL(PWL是Windows的登录密码文件,文件名即用户名,储存了加密的用户密码,类似Unix的password文件。)门卫是个花瓶,不仅连个家门都看不住,而且嘴巴也守不住秘密;而NT呢,又捞了个好处,SAM门卫尽心尽责,嘴巴也难撬开。NT内核Windows操作系统的密码安全性较Win32内核Windows操作系统的密码安全性高出很多跟SAM不无关系,在这篇文章里,我们就一起来认识一下NT内核Windows操作系统的看门神——SAM。
它只听本地安全认证(Local Security Authority)程序——LSASS.EXE的差遣,就连进门时的审查也是LSASS的指示。如果你把LSASS杀了,你就等着被赶出门吧——当然,对于普通用户来说,如果你试图用普通的进程管理工具或者Windows系统的进程管理杀掉“LSASS.EXE”进程的话,只会得到“该进程为关键系统进程,任务管理器无法结束进程。”的提示,本地安全认证(Local Security Authority)在Windows系统中主要负责以下任务:1.重新找回本地组的SID和用户权限;2.创建用户的访问令牌;3.管理本地安装的服务所使用的服务账号;4. 存储和映射用户权限;5.管理审核的策略和设置;6.管理信任关系。
由于一些设计上的失误,在WinNT/2000里,如果你忘记了密码,那么你要做的不是呼天喊地,只需要在非NT环境里把SAM驱逐出硬盘就可以了。但是在XP以后的Windows操作系统里,这个情况得以改善,如果你把sam踢了,NT也躲着死活不肯出来了。 当然,这也并不是说XP以后的Windows的操作系统密码都无法破解,要知道:经典的LC4和NtPassword都专门拿SAM开刀.
windows NT及win2000中对用户帐户的安全管理使用了安全帐号管理器(security account manager)的机制,安全帐号管理器对帐号的管理是通过安全标识进行的,安全标识在帐号创建时就同时创建,一旦帐号被删除,安全标识也同时被删除。安全标识是唯一的,即使是相同的用户名,在每次创建时获得的安全标识都时完全不同的。因此,一旦某个帐号被删除,它的安全标识就不再存在了,即使用相同的用户名重建帐号,也会被赋予不同的安全标识,不会保留原来的权限。
第二节: 帐号信息在SAM文件中是如何存储
 
在SAM文件中保存了两个不同的口令信息:LanManager(LM)口令散列算法和更加强大的加密NT版。LM就是NT口令文件的弱点。我们来看看LM口令算法是如何加密口令的,考虑这样一个口令:Ba01cK28tr,这样的口令已经可以称的上是一个安全的口令了,虽然没有!#等特殊字符,但是已经包含大写字母,小写字母和数字,并且具有无规律性。可以认为是符合安全的要求的一个口令。 LM对口令的处理方法是:如果口令不足14位,就用0把口令补足14位,并把所有的字母转称大写字母。之后将处理后的口令分成两组数字,每组是7位。刚才我们所提到的口令经处理后就变成BA01CK2和8TR0000部分。然后由这两个7位的数字分别生成8位的DES KEY,每一个8位的DES KEY都使用一个魔法数字(将0x4B47532140232425用全是1的一个KEY进行加密获得的)再进行一次加密,将两组加密完后的字符串连在一起,这就是最终的口令散列。这个字符传看起来是个整体,但是象L0phtcrack这样的破解软件,他能将口令字符串的两部分独立的破解,因此,破解上面所提到口令(10位),由于口令已经被分解为两部分破解,而后面的那部分口令由于只有3位,破解难度可想而知并不困难。实际的难度就在前面的七位口令上了。因此就NT而言,一个10位的口令与一个7位的口令相比并没有太高的安全意义。由此还可以了解:1234567*$#这样的口令可能还不如SHic6这样的口令安全。(关于如何设置安全口令的问题不是本文的范围,有兴趣的可以参考相关文章) 而正式的口令(加密NT版)是将用户的口令转换成unicode编码,然后使用MD4算法将口令加密。
NT之所以保留两种不同版本的口令是由于历史原因造成的,在一个纯NT的环境中应该将LAN manager口令关闭。因为LAN manager口令使用了较弱的DES密钥和算法,比较容易破解。相比较之下,使用较强加密算法的NT正式口令要安全些。 但是这两种口令的加密方法从总体上来说强度还是不足,因此,微软在win NT4的SP3之和以后的补丁中,提供了一个syskey.exe的小工具来进一步加强NT的口令。这个软件是可以选择使用的,管理员只要运行一下这个程序并回答一些设置问题就可以添加这项增强功能。(windows2000已经作为缺省安装设置了) syskey被设计用来防止轻易获得SAM口令,它是如何工作的呢? 当syskey被激活,口令信息在存入注册表之前还进行了一次加密处理。然而,在机器启动后,一个旧的格式的信息还是会保存在内存中,,因为这个旧格式的口令信息是进行网络验证的所需要的。 可以这样认为:syskey使用了一种方法将口令信息搞乱。或者说使用了一个密钥,这个密钥是激活syskey由用户选择保存位置的。这个密钥可以保存在软盘,或者在启动时由用户生成(通过用户输入的口令生成),又或者直接保存在注册表中。由于没有官方的正式技术说明如何关闭syskey,所以syskey一旦启用就无非关闭,除非用启用syskey之前的注册表备份恢复注册表。(关于将syskey激活后系统有什么发生了什么,如何关掉syskey呢? 见: [url]http://blog.csdn.net/suspension/archive/2004/11/08/172185.aspx[/url] )
 
第三节:解决“不小心删除SAM文件”的方法
解决问题:  忘了XP的登陆密码,是不能通过删除sam文件来解决的,那些“网上的办法”害了很多人。  若碰到此问题,可以进行下述操作: 将%windir%\Repair文件夹的sam文件复制到%windir%\system32\config文件夹。 故障恢复控制台下执行下述命令(示例):   copy c:\windows\repair\sam c:\windows\system32\config\sam   如果是双系统,可以在另外一个系统上执行这个复制/粘贴操作  或:将硬盘做从盘挂到其他的2K或XP系统下进行这个操作。   注意:Repair下的sam文件是当初安装XP时产生的,这样操作后会丢失安装系统后你自己在系统中创建的用户和用户组。这样操作成功登陆后,如果系统打开了系统还原,可以还原到最新的还原点。当然,如果你的系统做过ASR备份,可以直接使用ASR备份恢复sam文件。  
(ASR:Security Accounts Manager,但home版不支持ASR
 
第四节: 关于SAM数据库分析的结论:
 
SAM HACK是非常有危险性的。不正确的修改会将系统的安全数据管理器破坏,造成系统启动问题,虽然可以通过删除SAM文件来让启动恢复。如果能够熟悉SAM的结构,你将发现,可以对用户名与用户名之间、用户组与用户组之间进行调换,以及帐户和帐户组伪造,完全打破微软的帐户格局。并且非常隐蔽,让帐户相关的API函数摸不着头脑。虽然微软处理帐号信息中犯了不少逻辑问题,但是安全帐号数据库并非不安全,所有操作都必须能完全拥有管理员权限。

转载于:https://blog.51cto.com/ping2008/97846

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sam初识+sam详解 的相关文章

  • Java课程设计之学习成绩管理系统

    package System import java awt import java awt event import java io import javax swing import javax swing table Abstract
  • plsql更改用户登录密码

    ORACLE数据库系统是美国ORACLE公司 甲骨文 提供的以分布式数据库为核心的一组软件产品 是目前最流行的客户 服务器 CLIENT SERVER 或B S体系结构的数据库之一 比如SilverStream就是基于数据库的一种中间件 O
  • 计算机网路基础 - 一些基本概念与网络结构

    1 基本概念 计算机网络 通信技术 计算机技术 是两项技术紧密结合的产物 通信系统的基础模型 计算机网络 是指将地理位置不同 具有独立功能的多台计算机及其外部设备 通过通信线路连接 在网络操作系统 网络管理软件及网络通信协议的管理和协调下
  • Tomcat7安装及配置教程

    Apache Tomcat7 0安装及配置教程 Apache Tomcat7 0官方网站链接 http tomcat apache org apache tomcat 7 0 73 windows x64 先解压下载的压缩包 然后在bin目
  • java调优总结

    JVM调优总结 序 几年前写过一篇关于JVM调优的文章 前段时间拿出来看了看 又添加了一些东西 突然发现 基础真的很重要 学习的过程是一个由表及里 再由里及表的过程 呵呵 所谓的 温故而知新 而真正能走完这个轮回的人 也就能称为大牛或专家了
  • Linux系统的安装(在VM虚拟机上安装CentOS 7)

    工具准备 物理计算机一台 配置要求 操作系统 win10 64位 大家基本上都是 硬盘可用容量 20G以上 内存容量 4G以上 虚拟机安装包 VMware workstation full 12 5 下载链接 点我下载 提取码 9gha C
  • windows下命令行修改系统时间;修改系统时间的软件

    找了很久 都没有找到 还找了关键词 dos下修改系统时间 因为看到linux下修改系统时间是用hwclock 命令写入主板芯片 而我由于某些原因想自动化修改系统时间 所以找windows下修改系统时间的软件 没有找到 有一个 意天禁止修改系
  • 计算机领域中随处可见的抽象

    想要管理多种具体的东西 那么需要遵守每种东西的规范 如果想要提供一种通用模式来对这些具体的东西统一管理 需要使用一种古老的技术 抽象 抽象是将多种具体的东西 管理时需要遵守的规范 的共同点抽取出来 放入到更高一层的抽象层 在抽象层不定义或少
  • Ubuntu 10.10下安装TFTP的步骤 tftp-hpa版本

    背景 由于想要在tq2440板子上用tftp下载kernel 所以要在自己的PC机的Ubuntu 10 10上安装tftp服务 所以就去网上找了些教程 但是很悲剧 按照那些教程去操作 结果还都是无法正常运行tftp服务 最后还是从一个外国人
  • win10 Enable developer Mode

    经过漫长的安装过程 win10终于装上了vs2015 rc 写个小程序试试 结果提示 根据提示打开 设置 更新 for developer 据说应该有这么个界面 但是这个界面根本出不来 直接闪退的说 翻 MSDN 终于翻出了解决方法 htt
  • 安装黑苹果双系统专辑贴(持续更新...)

    最近终于开始研究黑苹果 然后浏览了几篇文章贴收集一下 以便需要时随时阅览 和同学们互相学习 零基础篇 1 https blog csdn net a792396951 article details 80230946 2 https zhu
  • Linux,Network manager 导致节点异常重启

    推断是Network manager 导致的 原因待查今天在VmWare的虚拟机上装了个测试RAC 又遇到了一个摸不到头绪的问题CRS装好后 一旦登陆图形界面 节点就重启 事情就有这么巧不登陆图形界面 观察了1个小时没问题 一旦登陆后 立刻
  • 程序员的自我修养——链接、装载与库

    1 温故而知新 操作系统概念 北桥 连接高速芯片 系统调用接口 以软件中断的方式提供 如Linux使用0x80号中断作为系统调用接口 多任务系统 进程隔离 设备驱动 直接使用物理内存的弊端 地址空间不隔离 内存使用效率低 程序运行的地址不确
  • 操作系统 段页式存储管理

    一 引入 分页系统是以页面作为内存分配的基本单位 能有效地提高内存利用率 但信息共享等不方便 分段系统是以段作为内存分配的基本单位 它能够更好地满足用户多方面的需要 信息共享 动态链接等 但采用分区方式管理物理内存 仍然存在碎片问题 段页式
  • 自己动手写操作系统(一)

    本系列文章将一步步实现一个简单的操作系统 实验环境是在Linux系统下通过Bochs虚拟机运行我们自己写的操作系统 一 实验环境搭建 1 Ubuntu的安装 Windows用户可以选择在虚拟机中安装Ubuntu 具体安装教程可自行搜索 2
  • linux 使用systemctl 启动服务报错: Error: No space left on device

    By default Linux only allocates 8192 watches for inotify which is ridiculously low And when it runs out the error is als
  • 如何快速构建CMBD系统-glpi

    脚本后续更新及迭代将由kkitDeploy项目代替 https github com luckman666 kkitdeploy server 请大家持续关注kkitDeploy 一 CMBD系统构建步骤 起初 开发这套CMBD系统是为了帮
  • 《OSPF和IS-IS详解》一1.7 独立且平等

    本节书摘来自异步社区 OSPF和IS IS详解 一书中的第1章 第1 7节 作者 美 Jeff Doyle 更多章节内容可以访问云栖社区 异步社区 公众号查看 1 7 独立且平等 OSPF和IS IS详解与TCP IP相比 OSI协议对各国
  • 【操作系统xv6】学习记录4-一级页表与二级页表

    占位
  • 【操作系统xv6】学习记录4-一级页表与二级页表

    占位

随机推荐

  • DenyHosts安装与部署

    DenyHosts是Python语言写的一个程序软件 运行于Linux上预防SSH暴力破解的 它会分析sshd的日志文件 var log secure 当发现重复的攻击时就会记录IP到 etc hosts deny文件 从而达到自动屏IP的
  • Http协议详解

    引入 超文本传输协议 HTTP HyperText Transfer Protocol 是互联网上应用最为广泛的一种网络协议 所有的WWW文件都必须遵守这个标准 设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法 1960年美
  • 日赚4.12亿,腾讯最新员工薪酬公布:均薪破100万!!!

    近日 腾讯发布2023年第二季度财报 有一项数据冲上热搜 引起热议 据计算 腾讯人均年薪破100万 网友直呼 酸了酸了 这是认真的吗 跟随播妞一起来看看吧 腾讯员工平均年薪达100万 从大厂财报看互联网行业回暖之势 近日 腾讯发布截至6月3
  • [Python]保姆级win11环境安装Python

    1 下载安装包 https www python org downloads 选择自己的系统对应的安装包 我的是Windows系统 我就直接选择它了 选择64位安装包 根据自己系统对应的安装包 2 开始安装 去下载路径下 双击源文件 开始安
  • LeetCode第321场周赛题解

    这周周赛没有什么过多难的 也是可以自己写完的 芜湖 第一道题 6245 找出中枢整数 给你一个正整数 n 找出满足下述条件的 中枢整数 x 1 和 x 之间的所有元素之和等于 x 和 n 之间所有元素之和 返回中枢整数 x 如果不存在中枢整
  • Android之RecyclerView多布局

    做一个项目的主页面的时候 想要它呈现出来的效果 不单一 更丰富那就要使用多布局来展现出来 那么就要思考一个问题 他呈现的是多个布局 怎么才能展现出来不同的布局 逻辑很简单 通过设置几个flag 来表示这些布局当前显示的是哪个布局 接下来 和
  • 使用python对光谱数据进行lorentz峰值拟合(bounds限定拟合参数范围)

    1 lorentz峰值拟合 发光光谱是一种用于表征二维半导体材料光学性质的重要技术 它可以反映出材料中的载流子密度 缺陷态 激子束缚能等信息 由于二维半导体材料的厚度极其薄 其发光信号往往很弱 且受到基底 环境和测量设备等因素的干扰 因此需
  • MySQL怎么实现行转列SQL

    问题 关于Mysql 的分级输出问题 情景 学校里面记录成绩 每个人的选课不一样 而且以后会添加课程 所以不需要把所有课程当作列 数据表里面数据如下图 使用姓名 课程作为联合主键 有些需求可能不需要联合主键 本文以MySQL为基础 其他数据
  • 在JSP中弹出信息框

    下面我以登录界面的代码为例子 在LoginServlet中 判断验证码是否正确 忽略大小写 if attribute equalsIgnoreCase user getCheckCode User login new UserDao log
  • python元组

    第026讲 元组 小甲鱼python第26讲 课堂笔记 rhyme 1 2 3 4 5 上山打老虎 rhyme 1 2 3 4 5 上山打老虎 rhyme 1 2 3 4 5 上山打老虎 rhyme 1 2 3 4 5 上山打老虎 rhym
  • 今天一次性给你讲清楚:File、Blob、FileReader、ArrayBuffer、Base64

    Blob Blob 全称为 binary large object 即二进制大对象 blob对象本质上是js中的一个对象 里面可以储存大量的二进制编码格式的数据 Blob 对象一个不可修改 从Blob中读取内容的唯一方法是使用 FileRe
  • 如何搭建Python开发环境

    目录 一 要求及注意 可选 二 安装Anaconda 三 设置环境变量 四 Pycharm的安装及配置及conda虚拟环境的创建 一 要求及注意 1 要求 操作为 Windows 10 及以上 推荐 64 位 2 注意 系统登录名 非显示名
  • 交通部809协议服务器代码,部标平台检测(三).交通部部标809协议测试和运行测试

    本身交通部在制定jt t 809协议文档时 过度设计 采用双链路的复杂的通信架构 文档中文字抽象 而且歧义是很多的 开发者很容易疑惑 产生各种不确定和疑惑 又没有人答疑 全靠摸索 在加上交通部部表809的测试相对比较困难 因为你在开发的时候
  • Python字符串替换方法replace

    字符串替换方法replace str1 replace old str new str count 字符串的替换 将str1中的 old str 替换成new str old str 将要被替换的字符串 new str 新的字符串 替换成的
  • 认识shell

    Shell俗称 壳 他提供了用户和内核进行交互操作的一种接口 它接收用户输入的命令并把它送入到内核中去执行 Shell实际上是一个命令解释器 它通过解释用户输入的命令并把它传输到系统内核中去执行 Shell有自己的编程语言用于对命令的编辑
  • 贪心算法解汽车加油问题——算法解题报告

    一辆汽车加满油后可行驶n公里 旅途中有若干个加油站 设计一个有效算法 指出应在哪些加油站停靠加油 使沿途加油次数最少 对于给定的n n lt 5000 和k k lt 1000 个加油站位置 编程计算最少加油次数 并证明算法能产生一个最优解
  • 多线程(六):多线程案例

    多线程最最经典案例就是上一章的单例设计模式 当然除了单例设计模式 还有其他的案例 本章就 一一 来介绍 阻塞队列 这里是第一次提到阻塞队列这个东西 简单介绍一下 什么是阻塞队列 阻塞队列 BlockingQueue 是一个支持两个附加操作的
  • 连续和离散傅立叶变换总结及推导

    连续时间复指数信号 e j w 0 t e jw 0t ejw0 t 是否为周期信号 x t x t T x t x t T x t x t T 现假设 x t e j w 0 t x t e jw 0t x t ejw0 t e j w
  • C++反汇编 利用反汇编分析常见C/C++语句的底层实现(硬核)

    文章目录 赋值操作 if条件判断 指针和引用的实质 跳转函数 两个数字的交换操作 数组的赋值及 858993460数字的由来 总结 本节我们利用反汇编技术来对我们最常见的C语言语句进行解析 C 反汇编技术可以让你更好的理解C C语言的底层含
  • sam初识+sam详解

    SAM是什么 也许大家在网上看了许多的关于sam的传奇的故事吧 那么今天就让我 偏执狂带你们进入sam的所有吧 第一节 初级认识sam 微软做了两个不同的系统骨架 一个叫Win32 我们用的Win9x Me系统就附在它上面 另一个叫NT N