内网渗透 day19-域基础

域基础

环境:

一台win server 2019作为DC,一台win7作为域用户

根域名为ZJW.com      netBIOS域名为JW-ONE

本地账户和域用户是分开的,域用户是在域控中创建的,并且用于登入域环境;本地账户只能登入到本地。

域主机登入到本地:本地计算机名\用户名 | .\用户名

域主机登入到域:域名\域用户名

1. 域内信息收集

查询域的数量:

net view /domain

wps1

查看主机数量:

net view | net view /domain:域名

wps2

wps3

查看是否在域中:

ipconfig /all

wps4

wps5

解析域控ip:

nslookup 域名

wps6

ping 域名

wps7

查看域用户组:

net group /domain

wps8

高权限:

domain admins:域管理员组

domain controllers:域控组(查看域控主机)

enterprise admins:企业管理员组

domain computers:域计算机组

domain users:域用户组

查看域内时间:

net time /domain

wps9

查询域控的账户信息:

net user /domain

wps10

查看域控:

net group "domain controllers" /domain

wps11

查看域内主机:

net group "domain computers" /domain

wps12

查看域用户:

net group "domain users" /domain

wps13

查看用户的sid:

管理员sid:结尾是500,结尾1000+是普通用户,前面的那串是域id

whoami /user

wps14

2. windows本地认证:

账户密码存放于:c:\windows\system32\config\sam

(1) winlogon.exe -> 接收用户输入 -> lsass.exe -> (认证)

(2) 首先,用户注销、重启、锁屏后,操作系统会让winlogon.exe显示登录界面,也就是输入框,接收 输入后,将密码交给lsass进程,这个进程中会存一份明文密码,将明文密码加密成NTLM Hash, 对SAM数据库比较认证。

(3) Windows Logon Process(即 winlogon.exe):是Windows NT 用户登陆程序,用于管理用户登录 和退出。

(4) LSASS:用于微软Windows系统的安全机制。它用于本地安全和登陆策略

(5) Windows本身是不会存储明文密码的,在SAM文件中所储存的是密码的hash值,在登陆对比的时 候,也是先将用户的输入转换为hash值,才进行对比的

3. NTLM认证

NTLM(NT LAN MANAGER)是一种网络认证协议,它是基于挑战(Challenge)/响应(Response)认证机制的一种认证模式。

NTLM使用在Windows NT和Windows 2000 Server(or later)工作组环境中(Kerberos用在域模 式下)。在AD域环境中,如果需要认证Windows NT系统,也必须采用NTLM。

NTLM协议的认证过程分为三步:

(1) 协商:主要用于确认双方协议版本(NTLM v1/NTLM V2)

(2) 质询:就是挑战(Challenge)/响应(Response)认证机制起作用的范畴

1、客户端向服务器端发送用户信息(用户名)请求

2、服务器接受到请求,判断本地账户列表是否有用户名,如果有,生成一个16位的随机数,被称之为 “Challenge”, 使用登录用户名对应的NTLM Hash加密Challenge(16位随机字符), 生成Challenge1。 生成一个Net-NTLM Hash存在内存中,同时,生成Challenge1后,将Challenge(16位随机 字符)发送 给客户端。

3、客户端接受到Challenge后,使用将要登录到账户对应的NTLM Hash加密Challenge生成Response, 然后将Response发送至服务器端 验证: 服务器端收到客户端的Response后,比对Chanllenge1与Response是否相等,若相等,则认 证通过

注意:

1、Challenge是Server产生的一个16字节的随机数,每次认证随机数都不同

2、Response的表现形式是Net-NTLM Hash,它是由客户端 提供的密码Hash加密Server返回的 Challenge产生的结果。

wps15

原理:两个密码(客户端要发送的密码和服务端sam同用户名中对应的密码)对应的NTLM Hash去加密一个随机数,得出的结果要是相同,就可以证明两个密码相同。

(3) 验证:验证主要是在质询完成后,验证结果,是认证的最后一步

4. NTLM认证方式

交互式认证 :

使用域账号登录到客户端;涉及两部分(客户端、域控)

非交互式认证 :

在已经登陆 的客户端上使用 SSO的方式访问一台服务器;涉及三部分(客户端、域控、服务器)

5. Hash类型

LM HASH

LM Hash是一种较古老的Hash,在LAN Manager协议中使用,非常容易通过暴力破解获取明文凭据。 Vista以前的Windows OS使用它,Vista之后的版本默认禁用了LM协议,但某些情况下还是可以使用。

NTLM HASH

Vista以上现代操作系统使用的Hash。通常意义上的NTLM Hash指存储在SAM数据库及NTDS数据库 中对密码进行摘要计算后的结果,这类Hash可以直接用于PtH,并且通常存在于lsass进程中。

NET-NTLM HASH

Net-NTLM Hash用于网络身份认证(例如ntlm认证中),目前分为两个版本:

Net-NTLMv1 、Net-NTLMv2

!!!:两个版本认证方式相同,但加密方式不同(net-ntlmv1 challenge8位、net-ntlm challenge16位)

6. NTLM Hash产生方式

NTLM HASH产生: 假设我的密码是admin,那么操作系统会将admin转换为十六进制,经过Unicode转换后,再调用MD4 加密算法加密,这个加密结果的十六进制就是NTLM Hash。

admin(密码) -> hex(16进制编码) = 61646d696e

61646d696e -> Unicode(Unicode编码) = 610064006d0069006e00

610064006d0069006e00 -> MD4(MD4算法加密) = 209c6174da490caeb422f3fa5a7ae634(NTLM Hash)

7. NTLM Hash 密码格式

Windows系统下的hash密码格式:

用户名称:SID:LM-HASH值:NT-HASH值

Administrator:500:C8825DB10F2590EAAAD3B435B51404EE:683020925C5D8569C23AA724774CE6CC:::

用户名称为:Administrator

SID为:500 § LM-HASH值为:C8825DB10F2590EAAAD3B435B51404EE

NTLM-HASH值为:683020925C5D8569C23AA724774CE6CC LM Hash是 AAD3B435B51404EEAAD3B435B51404EE 这表示空密码或者是未使用

LM_HASH Hash一般存储在两个地方: 1、SAM文件,存储在本机 对应本地用户 2、NTDS.DIT文件,存储在域控上 对应域用 户

8. 域中NTLM Hash 认证

在域中,NTLM认证多了一个角色 <服务器>

1、首先在client输入username,password和domain,然后client会把password hash后的值先缓存到 本地之后,client把username的明文发送给server(DC)

2、DC会生成一个16字节的随机数,即challenge(挑战码),再传回给client

3、当client收到challenge以后,会先复制一份出来,然后和缓存中的密码hash再一同混合hash一次,混合 后的值称为response,之后client再将challenge,response及username一并都传给server

4、server端在收到client传过来的这三个值以后会把它们都转发给DC

5、当DC接到过来的这三个值的以后,会根据username到域控的账号数据库(ntds.dit)里面找到该 username对应的hash,然后把这个hash拿出来和传过来的challenge值再混合hash

6、将(6)中混合后的hash值跟传来的response进行比较,相同则认证成功,反之,则失败,当然,如果是本地 登录,所有验证肯定也全部都直接在本地进行了

wps16

原理:两个密码(客户端要发送的密码和server上ntds.dit中同用户名中对应的密码)对应的NTLM Hash去加密一个随机数,得出的结果要是相同,就可以证明两个密码相同。

posted @ 2020-11-25 20:36  彩虹猛犸  阅读(285)  评论(0编辑  收藏  举报