GTFOBins 是一个开源的权限提升辅助项目,专注于收集和整理 Unix 系统中可被滥用的二进制文件及其利用方式,用于绕过配置错误的系统中的本地安全限制。
本教程将指导你如何在本地搭建 GTFOBins 项目,包括环境配置、依赖管理和问题排查,最终成功运行本地服务。
1. 下载项目
首先,将 GTFOBins 项目代码克隆到本地环境:
git clone https://github.com/GTFOBins/GTFOBins.github.io.git
2. 理解 Ruby 生态
在搭建环境前,先了解 Ruby 生态中几个核心组件的关系:
-
Ruby
Ruby 是一门开源的面向对象脚本编程语言,由 Yukihiro Matsumoto 创建,适用于各种类型的软件开发,尤其是 Web 开发。 -
gem
RubyGems(简称 gem)是 Ruby 的官方包管理器,用于发布和管理 Ruby 库(称为“gems”)。通过 gem 命令,开发者可以轻松地搜索、安装、升级和卸载第三方 Ruby 组件。 -
Bundler
Bundler 是 Ruby 项目的依赖管理工具,帮助管理和锁定 gem 版本,确保不同环境中的依赖一致性。开发者通过Gemfile指定所需的 gem 及其版本,再用bundle install安装依赖。 -
Jekyll
Jekyll 是一个基于 Ruby 开发的静态站点生成器。它将 Markdown 等格式的内容转化为静态网页。Jekyll 是一个 gem,可以通过 Bundler 进行版本管理。
总结:
- Ruby 是编程语言。
- gem 是 Ruby 库的封装形式。
- Bundler 管理项目依赖。
- Jekyll 是一个基于 Ruby 和 gem 的静态站点生成器。
3. 替换 Gem 源
为了加速依赖安装,将默认 Gem 源替换为清华大学镜像源:
3.1 配置 Gem 源
gem sources --add https://mirrors.tuna.tsinghua.edu.cn/rubygems/ --remove https://rubygems.org/
gem sources -l
# 确保输出中只有 TUNA 源
3.2 配置 Bundler 源
bundle config mirror.https://rubygems.org https://mirrors.tuna.tsinghua.edu.cn/rubygems
4. 安装依赖
4.1 解决版本冲突
如果遇到以下错误:
Your Ruby version is 3.1.2, but the gem 'listen' requires Ruby < 3.1.0.
需要手动解决冲突:
- 打开
Gemfile.lock文件:nano Gemfile.lock - 修改
listen的版本号为支持当前 Ruby 版本的版本(如3.7.1):
改为:listen (3.2.1)listen (3.7.1)
4.2 安装 Webrick
从 Ruby 3.0 开始,webrick 已不再是标准库的一部分,需要手动安装:
sudo gem install webrick
同时在 Gemfile 中添加依赖:
echo "gem 'webrick', '~> 1.8'" >> Gemfile
4.3 安装项目依赖
完成以上修改后,运行以下命令安装依赖:
bundle install
5. 运行项目
依赖安装完成后,启动本地服务:
bundle exec jekyll serve

如果服务启动成功,终端会显示类似以下的信息:
Configuration file: /path/to/_config.yml
Source: /path/to/project
Destination: /path/to/project/_site
Incremental build: disabled. Enable with --incremental
Generating...
访问 http://localhost:4000,即可浏览 GTFOBins 项目。
附成功截图:

原文 https://blog.csdn.net/2301_79518550/article/details/145346200