工具获取与环境搭建
本页是红队知识库的环境入口。渗透测试不依赖任何特定的安全发行版——任何主流 Linux 发行版都可以搭建完整的工作环境。工具来源也不局限于某一种渠道:包管理器、GitHub、语言包管理器、容器镜像,甚至自己写。本文给出通用方法与常用工具清单。
一、工作环境的四种形态
| 形态 | 优点 | 缺点 | 适用 |
|---|---|---|---|
| 物理机 | 无线网卡直通、SDR、USB 串口等硬件操作必需 | 环境重、误操作影响主机 | 无线、硬件、SDR 方向 |
| 虚拟机 | 快照回滚、隔离好、随时重置 | USB 直通与无线支持较差 | 大多数 Web/内网练习 |
| 容器 | 启动快、环境干净 | 需要内核权限的操作受限 | 靶场、工具试用、CI |
| 云主机 | 公网 IP、带宽好、随时随地 | 无硬件直通、有成本 | 互联网目标、长期在线服务 |
建议:主机保持干净的日常环境,渗透练习放在虚拟机或容器里;需要无线/硬件时再上物理机。任何主流 Linux 发行版都能满足上述需求,选你熟悉的那一个即可。
二、工具的四种获取渠道
2.1 发行版包管理器
最省事的方式。不同发行版命令不同,但逻辑一致:
# 用你所用发行版的包管理器安装,例如:
sudo apt install nmap # Debian/Ubuntu 系
sudo dnf install nmap # Fedora/RHEL 系
sudo pacman -S nmap # Arch 系包管理器的优点是自动处理依赖与更新;缺点是版本可能偏旧、收录不全。
2.2 GitHub Releases(官方二进制)
安全工具的更新速度往往快于发行版仓库,直接从项目 Releases 下载二进制是最常见的做法:
# 通用流程:下载 → 校验 → 解压 → 放入 PATH
mkdir -p ~/tools && cd ~/tools
# 以 ffuf 为例(版本号以 Releases 页面为准)
curl -LO https://github.com/ffuf/ffuf/releases/latest/download/ffuf_2.1.0_linux_amd64.tar.gz
tar xzf ffuf_*_linux_amd64.tar.gz
sudo mv ffuf /usr/local/bin/
ffuf -V# 加入 PATH 的另一种做法:工具目录统一管理
echo 'export PATH="$HOME/tools:$PATH"' >> ~/.bashrc
source ~/.bashrc安全提醒:从 GitHub 下载的二进制建议核对发布页的 SHA256 校验和;生产/红队环境不要运行来历不明的预编译文件,必要时从源码编译。
2.3 语言包管理器
很多工具是用 Python/Go/Rust 写的,用对应语言生态安装最方便:
# Python 工具(推荐 pipx,隔离环境不污染系统)
pipx install sqlmap
pipx install impacket
# Go 工具
go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
# Rust 工具
cargo install rustscan
# Node 工具
npm install -g http-proxy-to-socks2.4 源码编译
版本需要定制、或没有现成二进制时,从源码编译:
git clone https://github.com/项目/仓库.git
cd 仓库
# 按 README 执行,常见流程:
make && sudo make install
# 或
cmake -B build && cmake --build build缺少依赖时,用包管理器安装开发库(如 openssl-dev / libssl-dev / zlib-devel,名称随发行版而异),或查看项目 README 的依赖清单。
2.5 自己写工具
真实红队工作中,现成工具经常不满足需求——目标环境千奇百怪,脚本能力才是核心竞争力。本知识库有三条自研路线:
| 路线 | 教程 | 适合场景 |
|---|---|---|
| Bash 脚本 | Bash 红队专题 | 内网侦察、提权检查、反弹 shell |
| Python 脚本 | Python 黑客脚本基础 | 协议交互、自动化利用、数据处理 |
| Rust 工具 | Rust 红队脚本编程 | 高性能扫描、免杀、稳定分发 |
三、常用工具清单与获取方式
下表按模块列出核心工具。获取方式一栏给出推荐渠道:包管理器(系统仓库)、GitHub(官方 Releases/源码)、语言生态(pipx/go/cargo/npm)。
3.1 信息收集
| 工具 | 用途 | 获取方式 |
|---|---|---|
| nmap | 端口与服务扫描 | 包管理器 |
| masscan | 高速全网段扫描 | 包管理器 / GitHub |
| subfinder | 被动子域名枚举 | go install |
| amass | 资产发现与图谱 | 包管理器 / GitHub |
| theHarvester | 邮箱与子域收集 | 包管理器 / pipx |
| dnsrecon / dnsenum | DNS 枚举与区域传送 | 包管理器 / pipx |
| whois / dig | 基础查询 | 包管理器(多数系统自带) |
3.2 扫描与漏洞发现
| 工具 | 用途 | 获取方式 |
|---|---|---|
| nuclei | 模板化漏洞扫描 | go install / GitHub |
| nikto | Web 服务器扫描 | 包管理器 / GitHub |
| gobuster / ffuf | 目录与参数爆破 | 包管理器 / go install |
| whatweb / wpscan | 指纹与 CMS 识别 | 包管理器 / GitHub |
| sqlmap | SQL 注入检测与利用 | pipx / GitHub |
| metasploit | 漏洞利用框架 | 官方安装脚本 / 包管理器 |
| searchsploit | 本地漏洞库搜索 | 包管理器(exploitdb) |
3.3 密码攻击
| 工具 | 用途 | 获取方式 |
|---|---|---|
| hydra / medusa | 在线口令爆破 | 包管理器 |
| john | 离线哈希破解 | 包管理器 / GitHub |
| hashcat | GPU 哈希破解 | 包管理器 / GitHub |
| crunch / cupp | 字典生成 | 包管理器 / GitHub |
| hashid | 哈希类型识别 | pipx |
3.4 代理与隧道
| 工具 | 用途 | 获取方式 |
|---|---|---|
| proxychains-ng | 代理链 | 包管理器 / GitHub |
| chisel | HTTP 隧道 | GitHub Releases |
| frp | 内网穿透 | GitHub Releases |
| Tor | 匿名网络 | 包管理器 |
| ssh / socat | 端口转发 | 包管理器(通常自带) |
3.5 Web 安全
| 工具 | 用途 | 获取方式 |
|---|---|---|
| Burp Suite | 拦截代理与手工测试 | 官方下载(社区版免费) |
| OWASP ZAP | 开源 Web 扫描器 | 包管理器 / GitHub |
| commix | 命令注入利用 | GitHub |
| XSStrike | XSS 检测 | GitHub |
| wafw00f | WAF 识别 | pipx |
| dirsearch | 目录扫描 | GitHub |
3.6 无线与硬件
| 工具 | 用途 | 获取方式 |
|---|---|---|
| aircrack-ng 套件 | 无线审计 | 包管理器 |
| hcxtools / hcxdumptool | WPA 握手包处理 | 包管理器 / GitHub |
| bettercap | 中间人攻击框架 | 包管理器 / GitHub |
| kismet | 无线侦测 | 包管理器 |
| rtl-sdr / gnuradio | SDR 信号处理 | 包管理器 |
| flashrom | 固件读写 | 包管理器 |
3.7 取证与逆向
| 工具 | 用途 | 获取方式 |
|---|---|---|
| sleuthkit / autopsy | 磁盘取证 | 包管理器 |
| volatility3 | 内存取证 | GitHub / pipx |
| foremost / testdisk | 数据恢复 | 包管理器 |
| Ghidra / IDA Free | 反汇编 | 官方下载 |
| gdb + pwndbg | 二进制调试 | 包管理器 + GitHub |
| YARA | 恶意样本规则 | 包管理器 / GitHub |
工具更新与更替很快(例如 w3af、arachni、skipfish 已停止维护,建议用 ZAP/Nuclei/ffuf 替代)。重要的不是记住工具清单,而是理解每类工具解决的问题——工具随时可以换,思路不会过时。
四、字典与词表
爆破与模糊测试的质量高度依赖字典。推荐统一放在 ~/wordlists 或 /usr/share/wordlists:
# SecLists:最全的通用字典集合(GitHub)
git clone --depth 1 https://github.com/danielmiessler/SecLists.git ~/wordlists/SecLists
# rockyou.txt:经典密码字典
curl -LO https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
sudo mkdir -p /usr/share/wordlists && sudo mv rockyou.txt /usr/share/wordlists/
# PayloadsAllTheThings:各类漏洞 payload 大全(GitHub)
git clone --depth 1 https://github.com/swisskyrepo/PayloadsAllTheThings.git ~/wordlists/PayloadsAllTheThings# 使用示例(路径按你实际存放位置调整)
gobuster dir -u http://target -w ~/wordlists/SecLists/Discovery/Web-Content/common.txt五、靶场环境
练习必须在授权环境中进行。推荐从这些靶场开始:
| 靶场 | 类型 | 获取方式 |
|---|---|---|
| PortSwigger Web Security Academy | 在线 Web 实验 | 官网注册,免费 |
| DVWA | 本地 Web 漏洞靶场 | docker run -d -p 80:80 vulnerables/web-dvwa |
| OWASP Juice Shop | 本地现代 Web 靶场 | docker run -d -p 3000:3000 bkimminich/juice-shop |
| WebGoat | 本地教学靶场 | docker run -d -p 8080:8080 webgoat/goatandwolf |
| Metasploitable2/3 | 本地虚拟机靶机 | 官方下载,导入虚拟机 |
| VulnHub | 靶机镜像合集 | 官网下载 |
| Hack The Box / TryHackMe | 在线靶场 | 官网注册 |
# Docker 靶场示例(需要先安装 Docker)
docker run -d -p 80:80 vulnerables/web-dvwa
# 浏览器访问 http://localhost注意:本地靶场默认只监听
localhost是安全的;不要用-p 0.0.0.0:80:80把漏洞靶场暴露到公网。
六、环境自检清单
# 基础工具可用性检查
for t in nmap curl git python3 go cargo docker; do
command -v $t >/dev/null && echo "OK $t" || echo "MISS $t"
done
# 关键工具抽查
nmap --version | head -1
sqlmap --version 2>/dev/null || echo "sqlmap 未安装"
ffuf -V 2>/dev/null || echo "ffuf 未安装"| 检查项 | 期望 |
|---|---|
| 网络与 DNS | curl -I https://example.com 正常 |
| 包管理器可用 | 能安装/更新软件 |
| PATH | 自装工具目录已加入 PATH |
| 字典 | ls ~/wordlists 有内容 |
| 靶场 | 本地靶场容器能启动并访问 |
| 隔离 | 练习在虚拟机/容器/授权环境中进行 |
七、常见问题
| 问题 | 解决 |
|---|---|
| 工具下载慢 / GitHub 无法访问 | 配置代理,或使用镜像站;见 科学上网 |
command not found | 检查 PATH;确认二进制架构(x86_64/arm64)与可执行权限 |
缺少动态库 error while loading shared libraries | 用包管理器安装对应运行库,或改用静态编译版本 |
| pip 提示 externally-managed-environment | 使用 pipx 或虚拟环境,不要直接装进系统 Python |
| 编译缺少头文件 | 安装 -dev/-devel 开发包 |
| 无线网卡无法监听/注入 | 确认芯片支持 monitor mode + injection,安装对应驱动与固件 |
八、法律与安全声明
- 所有工具与教程内容仅限获得明确授权的安全测试使用
- 未经授权对他人系统进行扫描、渗透、破解均属违法行为
- 练习请使用本地靶场、自有设备或授权目标
- 下载第三方工具时注意供应链安全:优先官方 Releases、核对校验和、警惕投毒仓库