Page cover

🧘‍♂️Week 2 - Intuition

信息收集

Nmap 端口探测

获取开放端口 22/ssh 80/http.

WEB服务相关信息收集

获取域名

首先域名访问web服务,获取域名为 comprezzor.htb

子域名爆破

HTB都是虚拟环境,虚假的域名,自能用爆破的形式获取子域名.

其中子域名列表来自 GitHub.

共探测到三个子域名:

  • auth.comprezzor.htb

  • report.comprezzor.htb

  • dashboard.comprezzor.htb

目录扫描

  1. comprezzor.htb

  2. auth.comprezzor.htb [17:54:00] 200 - 3KB - /login [17:54:01] 500 - 265B - /logout [17:54:21] 200 - 3KB - /register

  3. report.comprezzor.htb

  4. dashboard.comprezzor.htb

探索WEB服务可能的漏洞点

comprezzor.htb 下的压缩服务可能存在xz后门

最近大名鼎鼎的xz后门事件,但是据了解,这个后门没有披露具体用法,所以可以知道这应该是个兔子洞.

report.comprezzor.htb/report_bug 下的漏洞报告服务可能存在XSS漏洞

auth.comprezzor.htb 登录与注册服务可能存在SQL注入

尝试无果.

获取第一个 user flag

首先, 注册一个账号!!!! 进入 report 页面.

开启监听:

payload:

成功获得cookie!!!

浏览器中添加 cookie , 这里使用的插件是 modheader

拿到 cookie 我们能做什么 ? 当然是去 dashboard 一探究竟 !

可以看到我们提交的漏洞报告, 检查了一遍, webdev没啥用.

尝试把权重提高, 看能不能提交给上层更高权限的用户. 记得开nc的监听.

等一等,如果没收到就重启一下机子.

获得Cookie:

更换这个cookie,再次访问dashboard, 就多出来了好多功能.

Create PDF Report 存在本地/远程文件包含等漏洞

这个页面大概率是漏洞点, 但是存在黑名单或者白名单的规则限制 ,尝试下只能访问http协议.

使用nc监听, 看看能收集到什么信息.

可以看到发来的包, 用的是Python-urllib/3.11, 大概率可以确定该服务是 flask.

Google一下这个包,发现存在解析漏洞.

在访问的链接最前面添加一个空格,就可以绕过urlparse()函数对协议的检查.

构造payload (不要漏了前面的空格):

然后挺奇怪的,真正的用户只有一个 root ,这个时候其实怀疑这个是在容器内, 访问根目录下的.dockerenv, 确实能够成功下载,可以证明确实是在 docekr 容器内.

在容器内,能够获取的有效的信息就比较有限, 特别实在这种盲盒的形式下, 现在就把希望放在了源代码上了.

根据 linux man5 手册下, /proc/self/cmdline 为存放在执行当前进程的命令的只读文件,.

构造payload (不要漏了前面的空格):

可以知道启动web项目时,使用的指令为

也就知道了 flask 的入口py文件.

继续构造payload获取app.py的源码:

整理后的代码:

从 flask 的蓝图可以知道, 三个子域名以及主域名下代码的路径:

  • /app/code/blueprints/index/index.py

  • /app/code/blueprints/report/report.py

  • /app/code/blueprints/auth/auth.py

  • /app/code/blueprints/dashboard/dashboard.py

同样的方式,构造payload获取这些源码:

这里重点在 dashboard.py 下的 backup 函数, 暴露了 ftp 服务的账号和密码.

继续利用本地文件包含, 构造payload如下, 查看ftp内有啥文件:

可以看到, 有私钥!!! 但是还不知道username!! 利用同样的方式,把私钥和welcome_note.txt都down下来看看.

私钥

这里可以看到,他还把私钥加密了, passphrase 为 Y27SH19HDIWD , 可以用 ssh-add 加入key, 获取用户名.

得到用户名为 dev_acc.

激动人心, ssh 连接上主机, 获取 user flag

后渗透信息收集

Linpeas 获取信息

二话不说, 先上 linpeas .

把比较有用的信息截了个图.

user 用户:

除了登录的用户, 还有几个用户.

用户组:

用户组中也有些有意思的, adam 和 lopez 用户都在 sys-adm 用户组中, 大概率权限比较高.

/opt 目录下:

有些东西, 其中有的是sys-adm组的权限

.db 文件

user.db 是 web 服务用的, 在前面的代码里也有出现, 值得关注.

查看 usesr.db 破解获得 adam 密码

到 /var/www/app/blueprints/auth/, 使用 sqlite3 读取数据库.

用hashcat跑一下:

成功跑出密码adam gray.

最后更新于