Nibbles-Writeup

概述 (Overview)

1682525.png

  • MACHINE TAGS
    • Web
    • File Misconfiguration

攻击链 (Kiillchain)

79372532.png

TTPs (Tactics, Techniques & Procedures)

  • nmap
  • gobuster
  • hydra

阶段1:枚举

首先通过 nmap 对其进行开放端口枚举:

77516030.png

从结果中看开放的端口很少,解题的顺序应该是从Web获取到用户名及密钥或者上传Webshell,或者SSH。

77532191.png
这里给的信息很很少,但是在页面源代码中提示了一个博客的路径:/nibbleblog/

77546849.png
打开后如图所示,查看了一下超链接全是一些html锚点,没有新页面了。

77749714.png

从页尾处看到了署名就是 Nibble Blog ,但是并没有版本信息。这里使用之前从IPPSEC那学习的技巧,下载 .ico 文件查看文件时间,然后反推系统版本发布时间。

wget "http://10.10.10.75/nibbleblog/themes/simpler/css/img/favicon.ico"

77977095.png
接着去找这套系统的CVE漏洞,这套系统早已经不更新了,最后的版本为 4.0.5
78082142.png

CVE-2018-16604 - 使用管理员的用户名和口令,攻击者可以通过更改用户名来执行任意PHP代码。

从这里这个CVE编号中来看,需要找用户名和口令。

然后在其他平台找到一个新的 CVE 描述,里面描述了 install.php 的用户名参数。

78720625.png
install.php 存在,内容含有另一个脚本的指向
78733985.png
78762180.png

获得两个新的xml文件路径,以及系统对应版本号 4.0.3

http://10.10.10.75/nibbleblog/content/private/config.xml
http://10.10.10.75/nibbleblog/content/private/comments.xml

config.xml 获取到两个疑似用户名的内容:admin、noreply

78861786.png
comments.xml 暂时未知,从标签和参数来推测应该是一个黑名单的东西。
83646823.png

阶段2:工具及利用

阶段2.1:Fuzzing密码

找到管理员登录页面 admin.php,尝试口令枚举(sqlmap试过了,失败)。

79121926.png

当登录失败次数过多时会返回该错误:
79352076.png

尝试利用 hydra 加字典枚举下口令:

hydra -l admin -P /usr/share/wordlists/rockyou.txt 10.10.10.75 -V http-form-post '/nibbleblog/admin.php:username=^USER^&password=^PASS^:Incorrect username or password'

82413569.png
显示很多组口令都可以登录,但实际尝试下来都是失败的,将其导出让后用burp代理下看看详情。
83316541.png

83475691.png

明显看到,工具提示成功是因为安全机制生效了。

在 Hackthebox 的论坛社区里搜了一圈,按照出题的尿性,如果口令不在字典中那就可以是没有枚举出正确的路径文件,或者口令就是题目名称。所以我尝试了一下 nibbles,发现进行了302的页面跳转。

84327640.png

成功进入管理员后台。

84563274.png

阶段2.2:文件上传

根据在枚举阶段找到的文件上传 exploit,找到对应功能路径。

https://github.com/TheRealHetfield/exploits/blob/master/nibbleBlog_fileUpload.py

84616758.png

路径可以在 exploit.py 文件中获得。

84978865.png
从发送的请求看来,就是一个任意文件上传。
85011733.png

阶段2.3:命令执行

85097897.png
直接通过webshell执行命令,反连NC
85355201.png

阶段3:权限提升

在 nibbler 用户文件夹下发现有个压缩文件,通过nc传回本地在分析。
86065434.png
压缩包解压后发现,它与 sudo 配置中已 root 身份执行特定文件的目录存在相似性。
86126208.png
查看下该文件的权限(注意时间为2015,并非当前kali用户root下创建的,也就是说这个脚本具备root身份运行的权限):
56223.png
会到服务器,发现该目录并不存在,所以直接解压这个压缩包。
42153.png
在服务上查看下权限,OK与kali里的一致的,直接将 python reverse 写入该文件即可。
90013.png

1430502.png

参考


版权声明

除非另有说明,本网站上的内容均根据 Creative Commons Attribution-ShareAlike License 4.0 International (CC BY-SA 4.0) 获得许可。