// 红队渗透 · 2025-01-27

【详细】本地运行 GTFOBins 教程

GTFOBins 是一个开源的权限提升辅助项目,专注于收集和整理 Unix 系统中可被滥用的二进制文件及其利用方式,用于绕过配置错误的系统中的本地安全限制。

本教程将指导你如何在本地搭建 GTFOBins 项目,包括环境配置、依赖管理和问题排查,最终成功运行本地服务。


1. 下载项目

首先,将 GTFOBins 项目代码克隆到本地环境:

git clone https://github.com/GTFOBins/GTFOBins.github.io.git

2. 理解 Ruby 生态

在搭建环境前,先了解 Ruby 生态中几个核心组件的关系:

  1. Ruby
    Ruby 是一门开源的面向对象脚本编程语言,由 Yukihiro Matsumoto 创建,适用于各种类型的软件开发,尤其是 Web 开发。

  2. gem
    RubyGems(简称 gem)是 Ruby 的官方包管理器,用于发布和管理 Ruby 库(称为“gems”)。通过 gem 命令,开发者可以轻松地搜索、安装、升级和卸载第三方 Ruby 组件。

  3. Bundler
    Bundler 是 Ruby 项目的依赖管理工具,帮助管理和锁定 gem 版本,确保不同环境中的依赖一致性。开发者通过 Gemfile 指定所需的 gem 及其版本,再用 bundle install 安装依赖。

  4. 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.

需要手动解决冲突:

  1. 打开 Gemfile.lock 文件:
    nano Gemfile.lock
  2. 修改 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