vianic/kali-cyberpunk-setup
GitHub: vianic/kali-cyberpunk-setup
一套 Kali Linux 的安装后配置工具,通过自动化脚本将系统转变为统一赛博朋克主题且预装渗透测试工具的即用型工作站。
Stars: 1 | Forks: 0
# Kali Cyberpunk 配置
**版本 1.0.0** · [更新日志](CHANGELOG.md) · [许可证]( )
一个用于 Kali Linux 的双脚本安装后套件,能将全新安装的系统转变为配置好主题、即开即用的 offensive-security(攻击性安全)工作站:
- **`kali-ui-setup.sh`** — 一键桌面/shell 定制(赛博朋克 dark-teal 主题、shells、字体、图标、光标、GTK 主题、面板、编辑器、快捷键)。
- **`tool-installer.sh`** — 一个基于 `fzf` 的菜单,用于在 `/opt/tools` 下安装和跟踪渗透测试工具,处理 PEP 668、`pipx`、`uv`、Go modules 和针对 Windows 目标二进制文件的繁杂情况。
这两个脚本是独立的,但设计为协同工作:`kali-ui-setup.sh` 会将 `tool-installer.sh` 部署到 `~/.local/bin`,并在运行结束时启动它。
## 主题
所有内容共享同一个赛博朋克 dark-teal 调色板:
| 角色 | 十六进制 |
|------|-----|
| 背景 (深色) | `#0d1a16` |
| 主 teal 色 | `#1F6F6B` |
| 亮 teal-green 色 | `#50c896` |
| 柔和 teal 色 | `#4a9e8a` |
| 柔和 teal-grey 色 | `#8ab8a8` |
| 红色点缀 | `#cc4444` |
| 琥珀色点缀 | `#c09060` |
## 仓库结构
```
.
├── kali-ui-setup.sh # desktop + shell customization (run as root)
├── tool-installer.sh # fzf tool installer for /opt/tools
├── wallpaper.png # optional — applied as desktop wallpaper
├── avatar.png # optional — applied as login/lock avatar
└── README.md
```
`wallpaper.png` 和 `avatar.png` 是可选的。如果在脚本旁边找不到它们,运行将继续并直接跳过壁纸/头像设置步骤。
## 要求
- **OS:** Kali Linux (滚动版)。主要目标是 **XFCE** 桌面;部分支持 GNOME(在存在 GNOME 路径的地方会应用快捷键和图标/主题名称)。
- **权限:** `kali-ui-setup.sh` 必须以 **root** (`sudo`) 身份运行。它会从 `SUDO_USER` 获取真正的目标用户,因此它定制的是*你的*账户,而不是 root 的。
- **网络:** 必需——需要在线获取包、字体、主题和工具。
- **Python:** 工具安装器需要带有 `venv`/`pip` 的 Python 3(由设置脚本安装)。Kali 目前自带 Python 3.13。
- 没有任何内容被硬编码到特定的用户名。设计上唯一的固定路径是快捷键*映射*和 `/opt/tools` 安装根目录。
## 快速开始
```
# 使两个脚本均可执行
chmod +x kali-ui-setup.sh tool-installer.sh
# (可选)将 wallpaper.png 和 avatar.png 放置在脚本旁边
# 以 root 身份运行 UI 设置
sudo ./kali-ui-setup.sh
# 注销并重新登录(默认 shell 变为 zsh;主题完全应用)
```
工具安装器也可以随时单独运行:
```
./tool-installer.sh # or ~/.local/bin/tool-installer.sh after setup
```
## `kali-ui-setup.sh`
以 root 身份运行一次。它在很大程度上是**幂等**的——重新运行会跳过已完成的工作,只重新应用设置。
### 配置内容
1. **素材** — 将 `wallpaper.png`/`avatar.png` 复制到位并应用(通过 live session 总线上的 xfconf 设置桌面壁纸;通过 AccountsService 设置头像,使其在登录/锁屏界面显示)。
2. **系统包** — `bash-completion`、`zsh` + 自动建议 + 语法高亮、`fzf`、`bat`、`eza`、`tmux`、`neovim`、`fastfetch`、`xclip`、`xfce4-terminal`、`python3-venv`/`python3-pip`、构建工具等。
3. **ble.sh** — 为 **bash** 提供 Fish 风格的自动建议和语法高亮。
4. **`~/.shell_common`** — 共享的别名、环境和 FZF 配置,由 bash 和 zsh 共同引用。
5. **`~/.bashrc`** — 两行 Kali 提示符重新着色为调色板颜色,完整的 `LS_COLORS`/`EZA_COLORS` 覆盖、受保护的别名、键盘绑定。
6. **`~/.zshrc`** — Oh My Zsh + Powerlevel10k,带有匹配的语法高亮。
7. **`~/.p10k.zsh`** — 赛博朋克 Powerlevel10k 预设。
8. **字体** — MesloLGS Nerd Font(加上 Cantarell/FiraCode,可用但不强制应用)。
9. **桌面主题**
- 图标:**Papirus-Dark**,通过 `papirus-folders` 将文件夹重新着色为 **teal**。
- 光标:**Bibata-Modern-Ice**(从 GitHub releases 获取)。
- GTK 主题:**Fluent-round-teal-Dark-compact**(从源码构建)。
- 终端:纯不透明背景,匹配调色板的颜色。
10. **XFCE 面板** — 自定义的 `panel-stats.sh` generic-monitor 插件(网络接口 / IP / CPU% / RAM%),面板图标大小标准化,并移除默认的 CPU 图形插件。
11. **编辑器** — `~/.config/nvim/init.lua`,带有 OSC52 剪贴板修复。
12. **快捷键** — 在桌面级别注册(见下文)。
13. **工具安装器** — 将 `tool-installer.sh` 部署到 `~/.local/bin` 并在新的终端中打开它。
### 快捷键
| 快捷键 | 操作 |
|----------|--------|
| `Alt+B` | 启动 Burp Suite (`$HOME/BurpSuitePro/BurpSuite`) |
| `Alt+T` | 新终端 |
| `Super+E` | 文件管理器(仅限桌面级别) |
Burp 路径会自动解析为正在运行用户的家目录;如果未在那里安装 Burp,快捷键将不起任何作用。
### 安全提示
- **无 DPI / 全局缩放更改。** 以前的 DPI 覆盖造成了实际的损坏,因此脚本现在故意不触碰 DPI、`Gtk/FontName` 或任何 GTK 全局的缩放比例。对于面板图标大小设置,最坏的情况是出现一行太大/太小的面板,只需编辑 `PANEL_ICON_SIZE`/`PANEL_ROW_SIZE` 并重新运行即可轻松修复。
- **感知 live-session。** 桌面设置通过用户真实的、正在运行的 session D-Bus 总线写入,因此更改会立即应用,而不是落在磁盘上未显示。
### 运行后
注销并重新登录。首次启动 zsh 时,Powerlevel10k 预设会自动加载(或运行 `p10k configure`)。将你的终端字体设置为 `MesloLGS NF`。新着色的文件夹可能需要重启文件管理器(`thunar -q`,然后重新打开)或重新登录以刷新图标缓存。
## `tool-installer.sh`
一个用于安装和跟踪 offensive-security 工具的 `fzf` 菜单。工具安装在 `/opt/tools` 下(git/二进制工具)或隔离的 `pipx`/`uv` 环境中(CLI 工具)。它可以独立运行,也可以由设置脚本自动启动。
### 菜单
- `TAB` 多选,`ENTER` 安装所选内容,`ESC` 退出。
- 每行显示一个安装状态标记(`[installed]` / `[ - ]`),括号内的安装**类型**,工具名称和简短描述。
- 顶部有三个操作条目:**添加新工具**、**下载 Burp Suite** 以及常规的工具行。
选择工具并按 `ENTER` 后,系统会询问你**如何**安装它们:
```
Install method for the selected tool(s):
1) standard (pipx for CLI tools, python venv + pip for repos)
2) uv (uv tool / uv venv + uv pip -- much faster; installs uv if missing)
Choice [1/2, default 1]:
```
该选择仅影响基于 Python 的工具;`apt`、`go`、`winbin`、`rawfile` 和 `special` 工具始终使用其专有的处理程序。每批处理后,它会重置为 `standard`。
### 配置与 schema 版本控制
工具列表位于:
```
~/.config/kali-tools/tools.conf
```
它是**基于 schema 版本控制的**。第一行带有一个 `schema vN` 标记。启动时,安装器会:
- 如果不存在配置,则植入内置的默认列表,或者
- 如果磁盘上的配置早于当前的 schema 版本,**将其备份**(`tools.conf.bak-`)并重新生成。
这就是保证你始终能汇聚到最新捆绑工具列表的机制。你手动添加的任何工具都将保存在 `.bak` 文件中,以便在 schema 升级后手动重新添加。
### 配置格式
管道符分隔,七个字段,`-` 表示“不适用”:
```
name|type|check_cmd|apt_pkg|git_url|install_cmd|description
```
| 字段 | 含义 |
|-------|---------|
| `name` | 菜单名称;也是 repo/binary 工具的 `/opt/tools/` 目录 |
| `type` | 以下安装类型之一 |
| `check_cmd` | 用于检测现有安装的二进制文件(如果没有则为 `-`) |
| `apt_pkg` | apt 包名(仅由 `type=apt` 使用) |
| `git_url` | git 仓库 URL、go module 路径或原始文件 URL,具体取决于类型 |
| `install_cmd` | 安装步骤(`pip install ...`、`make`、脚本等) |
| `description` | 菜单中显示的简短单行描述 |
示例:
```
certipy|git+pip|certipy-ad|-|https://github.com/ly4k/Certipy.git|pip install -e .|ADCS enumeration & abuse (ESC1-ESC16)
```
### 安装类型
| 类型 | 行为 |
|------|----------|
| `apt` | `sudo apt-get install ` |
| `pip` | 通过 **pipx**(如果使用 uv backend/`--python` pin,则为 **uv tool**)进行隔离 CLI 安装;绝不触碰系统解释器 |
| `git+pip` | 克隆到 `/opt/tools/`,创建 `.venv`,在其中运行 `install_cmd` |
| `git+bash` | 仅克隆,可选直接运行 `install_cmd`(无 venv) |
| `go` | `go install `(如果不在 PATH 中,自动探测 `/usr/local/go` 处的 Go) |
| `winbin` | 克隆源码**并**获取最新的 GitHub release 二进制文件——用于打算在 Windows 目标上运行的工具,而不是在 Kali 上 |
| `rawfile` | 直接下载单个脚本(带有用于其依赖项的可选 venv) |
| `special` | 按名称分发的定制安装器(例如 Sysinternals suite、Eisvogel 报告模板) |
### 添加你自己的工具
选择 **“+ Add a new tool to this menu”** 并回答提示。你的条目将追加到 `tools.conf`。请注意,schema 升级将重新生成默认列表;你的添加项会保留在带时间戳的 `.bak` 文件中,以便你可以重新添加它们。
### Burp Suite 下载器
**“Download Burp Suite”** 会查询 PortSwigger 自己的发布源,选择与你的**版本**(Community/Professional)和架构匹配的 Stable 构建,并**强制执行**完整性检查:除非其 SHA-256 与 `portswigger.net` 上发布的校验和匹配,否则它会删除下载文件并中止。成功后,它会将安装程序放入 `~/Downloads`。特意设计为**仅下载**——它从不安装或运行任何东西。
### 安装状态检测
如果满足以下任何条件,工具将显示为 `[installed]`:
1. 其 `check_cmd` 二进制文件在 `PATH` 中;
2. `/opt/tools/` 存在且非空;
3. 存在以该工具命名的 `pipx`/`uv` 工具 venv(捕获那些二进制名称不同的 CLI 工具,例如 `corscanner` → `cors`);
4. 存在已知的 special-installer 产物(例如 Eisvogel 模板、Sysinternals 目录)。
### 内置工具
默认列表附带跨类别的 **89 个工具**,包括 Active Directory / Windows 枚举与滥用、ADCS、Kerberos、强制认证、隧道和文件传输、web 应用程序测试以及报告。按安装类型:
| 类型 | 数量 |
|------|-------|
| `git+pip` | 26 |
| `git+bash` | 13 |
| `apt` | 13 |
| `winbin` | 12 |
| `pip` | 11 |
| `go` | 8 |
| `rawfile` | 4 |
| `special` | 2 |
## 关于 `uv` 的说明
`uv` 是一个单一的快速二进制文件(来自 Astral),可替代 `pip`、`venv`、`virtualenv` 和 `pipx`,还可以管理 Python 版本:
- `uv tool install ` — 相当于 `pipx`(PATH 上的隔离 CLI 应用)。
- `uv venv` / `uv pip install` — 快得多的 venv + pip。
- `uv python install 3.12` — 获取并管理独立的 Python 构建。
安装在两处使用了它:
- 作为整个选项的快速可选 backend(`2) uv` 提示选项)。
- 对于任何锁定特定 Python 版本的工具**自动**使用。例如,`spraycharles` 锁定了 `numpy<2.0`,它没有 Python 3.13 wheel;在 Kali 的 3.13 上,这将强制进行注定失败源码构建。安装器将其锁定到 Python 3.12,并通过 `uv` 进行路由,`uv` 会根据需要下载独立的 3.12 解释器,从而使用预构建的 numpy wheel。`uv` 会在第一次需要时自动安装。
## 自定义
- **文件夹图标颜色:** 编辑 `kali-ui-setup.sh` 中的 `FOLDER_COLOR="teal"`(运行 `papirus-folders -l` 列出可用颜色)。
- **面板图标大小:** `kali-ui-setup.sh` 中的 `PANEL_ICON_SIZE` / `PANEL_ROW_SIZE`。
- **安装根目录:** `tool-installer.sh` 中的 `TOOLS_DIR="/opt/tools"`。
- **配置位置:** `~/.config/kali-tools/tools.conf`。
- **快捷键:** 映射在 `kali-ui-setup.sh` 的快捷键部分被故意固定;可在那里进行编辑。
## 故障排除
| 症状 | 原因 / 修复 |
|---------|-------------|
| 菜单仅显示少数工具 | 磁盘上有旧的 `tools.conf`。安装器现在会在 schema 升级时自动重新生成;你也可以删除 `~/.config/kali-tools/tools.conf` 并重新运行。 |
| 在 `pip` 安装时出现 `externally-managed-environment` | PEP 668。`pip` 类型现在通过 `pipx`/`uv` 安装,绝不使用系统解释器。 |
| 对于 `go` 类型的工具出现 `Go toolchain not found` | Go 不在此 shell 的 PATH 中。安装器探测 `/usr/local/go`;如果 Go 确实不存在,请重新运行 `kali-ui-setup.sh` 或 `sudo apt install golang-go`。 |
| `Could not open requirements file: requirements.txt` | 某些仓库不提供此文件。`git+pip` 处理程序现在会回退到 `pip install .`(如果存在打包元数据)、备用的 `requirements*.txt`,或仅克隆。 |
| 工具克隆提示输入 GitHub 用户名/密码 | 通常是 URL 错误/私有。`GIT_TERMINAL_PROMPT=0` 会使此类克隆快速失败而不是挂起。 |
| `spraycharles` 构建 `numpy` 失败 | Python 3.13 没有 `numpy<2.0` wheel;它会自动通过 `uv` 锁定到 3.12。 |
| pipx/uv 工具显示为未安装 | 已修复——检测现在会检查 pipx/uv 工具 venv 和 special-installer 产物,而不仅仅是 PATH。 |
| 重新着色的文件夹仍然看起来是蓝色的 | 文件管理器缓存了旧图标。运行 `thunar -q` 并重新打开,或者注销/登录。 |
### 日志
各工具的安装日志写入私有的、按用户的目录(`$XDG_RUNTIME_DIR/kali-tools-/`,模式 0700,回退到 `$TMPDIR`/`/tmp`),而不是所有人可读的 `/tmp/*.log`,因此其他本地用户无法读取你的用户名或你安装的工具。Burp 下载、uv 和 pipx 设置步骤将其日志写入同一个私有目录。
## 免责声明
本项目仅供**教育目的和授权安全测试使用**。不得将其用于任何非法或恶意活动,或修改以用于此类活动。**仅**对你拥有的系统或你有明确书面许可测试的系统使用安装的工具;你需自行负责遵守所有适用法律、法规和交战规则。
本软件按“原样”提供,不提供任何形式的担保。作者对任何滥用或因其使用而产生的任何损害概不负责。其下载的第三方工具是其各自作者的作品和责任。
## 许可证
本项目中的代码(两个脚本和此 README)在 **MIT License** 下发布——参见 [`LICENSE`](LICENSE)。此许可证仅涵盖本仓库中的代码。它**不**适用于脚本下载的第三方工具、主题或字体,其中每一项仍保留其自己单独的许可证。
标签:Blue Team, Cutter, Shell脚本, 桌面环境, 环境配置, 系统美化, 逆向工具