0%

玄机应急响应-第九章-blueteam 的小心思2

做了半天多 水平有限 修复类的 不会修复 可只看前5个带flag的WP

题目

ssh 端口 2222

  1. nacos 的 key 为多少 flag{base64decodekey} flag{xjnacos2023penguinedisecflagflagflag}
  2. nacos配置文件的 flag flag{9d7ffcef-bcd1-4f4b-9a2d-d51862484168}
  3. File Management System的 flag flag{d6c578d4a41a141d731fe7c36c8c0f77}
  4. root 密码多少 flag{password} flag{imArGcj9}
  5. 黑客留下的 backdoor 后门的绝对路径 flag{/etc/systemd/system/evilfms.service}
  6. 修复 4000-6000 端口漏洞
  7. 修复File Management System漏洞
  8. 清理黑客留下的backdoor

解题过程

这个题需要先渗透 后应急

扫描器扫下IP 发现存在3个WEB服务 5000(未知)、8082(FMS)、8848(Nacos)

image-20240607150424444
image-20240607150412632

1. nacos 的 key 为多少 flag{base64decodekey}.

http://43.192.63.251:5000/ 访问为空白页面 dirsearch扫下目录

image-20240607150459841
image-20240607150553591

根据特征网上发现为Docker Registry API未授权访问漏洞.

Docker Remote API 是一个取代远程命令行界面(rcli)的REST API。存在问题的版本分别为 1.3 和 1.6因为权限控制等问题导致可以通过 docker client 或者 http 直接请求就可以访问这个 API,通过这个接口,我们可以新建 container,删除已有 container,甚至是获取宿主机的 shell。

获取指定仓库中镜像的tag列表

image-20240607150614083

利用工具下载容器 https://github.com/NotSoSecure/docker_fetch/

python docker_image_fetch.py -u http://43.192.63.251:5000

image-20240607150632918

下载后 将 .tar.gz 文件 解压可看到目录结构

1
for i in *.tar.gz; do tar -xzvf $i; done

解压后如下

image-20240607150645891

翻文件 查找nacos敏感文件 find . -name conf

image-20240607150720121

在home目录下发现 nacos 在 applicantion.properties中找到key

image-20240607150802463
image-20240607150848515

解密得到 flag{xjnacos2023penguinedisecflagflagflag}

2. nacos配置文件的 flag

在nacos的 conf目录下 发现数据库密码 奈何无法解密 无法利用

image-20240607150958932

去拉下私有仓库

image-20240607151020319

试了好几种方法 最终解决方案参考 https://www.cnblogs.com/programmer-tlh/p/10996443.html

image-20240607151037999

启动docker 进入容器

image-20240607151059502

好像没啥用 接着在网上找nacos相关漏洞,在github发现了这个 nacos Default token

image-20240607151139077

那么 如果在本地部署一个nacos 然后将配置文件改为和 容器相同的环境 , 通过默认账号登录获取到 accesstoken。

可不可以用这个 AccessToken去登录到靶机的后台中呢???

翻到这篇文章 https://blog.csdn.net/y995zq/article/details/137668381 文章提到可以去修改登录后的响应包

于是想在本地docker中试一下能不能按文章的思路去获取AccessToken 然后在靶机上利用【因为都是利用的同一个靶机,他们的nacos配置文件(key)都是同一个。】

在本地docker登录 但是由于不知道账号密码 无法直接登录。

然后在docker中的nacos中进行配置关闭鉴权

image-20240607151458400

关闭后发现没有任何有效数据可以利用,然后又在 applicantion. 中恢复了鉴权。恢复鉴权后nacos的密码将会被重置为nacos,因此成功登录到了nacos的后台。

image-20240607151704577

F12 拿到 accessToken

1
{"accessToken":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTcxNzc0MTkyNn0.3j_90EB5peq10xsqMYSwapYDEKa3iCujD7o19hmTaek","tokenTtl":18000,"globalAdmin":true,"username":"nacos"}
image-20240607151727920

在nacos中进行登录时,如果账号密码不正确 将会返回403

image-20240607151833009

回到互联网上的靶机nacos ,参考https://blog.csdn.net/y995zq/article/details/137668381 的拦截返回包,我们拦截后进行修改,

image-20240607152144161

将403改成200 然后将 返回内容设置为 acessToken

image-20240607152011644
image-20240607152029700

然后放包 成功登录到nacos的后台

image-20240607152107469

在ADMIN_CONFIG中找到flag 及 file-managerpassword

image-20240607152223432

flag{9d7ffcef-bcd1-4f4b-9a2d-d51862484168}

file-managerpassword

1
2
3
4
5
file-manager:
name: admin
password: xj2023@1578921@123
jwtkey: 123456
#flag{9d7ffcef-bcd1-4f4b-9a2d-d51862484168}

还有 mysql 配置【但是在docker里面好像没有mysql...,后续登录到ssh中也未发现存在mysql】

image-20240607152343544

3.File Management System的 flag

在Nacos中翻到FMS的账号密码 访问8082端口

image-20240607152431126

提示权限不够 要求用sysadmin123456进行登录

抓包看到是jwt认证,将name从admin改成sysadmin123456 在签名中使用jwtkey 123456

image-20240607152517662

生成 eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJob3N0IiwibmFtZSI6InN5c2FkbWluMTIzNDU2IiwiZXhwIjoxNzE3NzMyNDU3LCJpYXQiOjE3MTc3MjUyNTd9.cUzyE8BizVxrRwVk1J_YFIUr2ED272TTGb_6ki0vvOc

去替换burp请求包中的token去创建目录,发现创建成功,说明方法可行,执行时成功为sysadmin123456用户。

image-20240607152609216

然后重新把请求包的 token改成修改后的 jwt 刷新成功为高权限的 sysadmin123456,看到里面包含一个运维账号、图片及一个txt

image-20240607152625661

下载运维账号表 保护大量IP及 root密码 但是不知道那个密码是有效的 去爆破下ssh 2222

image-20240607152651482

翻完了三个文件 但是还没有找到flag ...

传个文件试试. 在hae插件里面 设置了个 flag关键字 翻下History

在上传成功后 找到flag

image-20240607152811728

flag{d6c578d4a41a141d731fe7c36c8c0f77}

4.root 密码多少 flag{password}

FMS 里面给了 root 密码 但是 有很多ip的

把密码提取出来作为字典去爆破

本来用超级弱口令工具的 把ssh端口改成2222 但是扫描还是扫不出来 恼!

换hydra试试

└─$ hydra -l root -P 2222.txt -t 4 ssh://52.83.41.206 -s 2222

image-20240607152851297

找到root 密码 imArGcj9

flag{imArGcj9}

5.黑客留下的 backdoor 后门的绝对路径

登录ssh 注意ssh端口是2222! 密码为 imArGcj9

image-20240607152939260

查看账号和相关文件备份,没发现啥有用信息。找了下计划任务 启动项 没找到东西【在/etc/shadow 和 shadow/.bak中 看到一个_apt账号感觉有点可疑】

image-20240607153007705
image-20240607153059757

找下 nacos fms相关,发现一个 evilfms.service

其路径为 ./etc/systemd/system/multi-user.target.wants/evilfms.service【但是此题的问题描述有问题,应该是让提交恶意后面的绝对路径 尝试了好几次 最终确定 flag{/etc/systemd/system/svilfms.service}

image-20240607153115444

flag{/etc/systemd/system/svilfms.service}

6.修复 4000-6000 端口漏洞

5000端口 存在 Docker Register API未授权

在防火墙上 配置 禁止外网访问 5000 端口

iptables -F 清除原来的【不然不起作用】

sudo iptables -A INPUT -p tcp --dport 5000 -j DROP

7.修复File Management System漏洞

FMS中存在 JWT绕过,找到对应服务使用的jar包在 home目录下 名为 fms.jar

jadx-gui 打开 fms.jar

检索关键词 sysadmin

image-20240607154232266
image-20240607160249508

jwt这块 需要加校验

【不会修】o.0

8.清理黑客留下的backdoor

后门被清了??? o.0 还是没设置后门呢

cat /etc/systemed/system/evilfms.service

image-20240607153442790

公网访问 这个url http://:8082/assets/images/fti/txt.png

下载下来 010editor看了下 就是个png 并不是elf文件

在靶机上运行 也自然不是那个 ”后门“

image-20240607155014549
image-20240607155305869

在jadx中找到该路径下 也是正常文件 o.0?!! 【不知是没有后门 还是没找到 弄了很久先不弄这个了】

image-20240607155722861

References

https://www.cnblogs.com/programmer-tlh/p/10996443.html

https://blog.csdn.net/y995zq/article/details/137668381

https://www.cnblogs.com/f-carey/p/18055849#tid-nzXisP

欢迎关注我的其它发布渠道

------------- 💖 🌞 本 文 结 束 😚 感 谢 您 的 阅 读 🌞 💖 -------------