工具获取与环境搭建

本页是红队知识库的环境入口。渗透测试不依赖任何特定的安全发行版——任何主流 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-socks

2.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 / dnsenumDNS 枚举与区域传送包管理器 / pipx
whois / dig基础查询包管理器(多数系统自带)

3.2 扫描与漏洞发现

工具用途获取方式
nuclei模板化漏洞扫描go install / GitHub
niktoWeb 服务器扫描包管理器 / GitHub
gobuster / ffuf目录与参数爆破包管理器 / go install
whatweb / wpscan指纹与 CMS 识别包管理器 / GitHub
sqlmapSQL 注入检测与利用pipx / GitHub
metasploit漏洞利用框架官方安装脚本 / 包管理器
searchsploit本地漏洞库搜索包管理器(exploitdb)

3.3 密码攻击

工具用途获取方式
hydra / medusa在线口令爆破包管理器
john离线哈希破解包管理器 / GitHub
hashcatGPU 哈希破解包管理器 / GitHub
crunch / cupp字典生成包管理器 / GitHub
hashid哈希类型识别pipx

3.4 代理与隧道

工具用途获取方式
proxychains-ng代理链包管理器 / GitHub
chiselHTTP 隧道GitHub Releases
frp内网穿透GitHub Releases
Tor匿名网络包管理器
ssh / socat端口转发包管理器(通常自带)

3.5 Web 安全

工具用途获取方式
Burp Suite拦截代理与手工测试官方下载(社区版免费)
OWASP ZAP开源 Web 扫描器包管理器 / GitHub
commix命令注入利用GitHub
XSStrikeXSS 检测GitHub
wafw00fWAF 识别pipx
dirsearch目录扫描GitHub

3.6 无线与硬件

工具用途获取方式
aircrack-ng 套件无线审计包管理器
hcxtools / hcxdumptoolWPA 握手包处理包管理器 / GitHub
bettercap中间人攻击框架包管理器 / GitHub
kismet无线侦测包管理器
rtl-sdr / gnuradioSDR 信号处理包管理器
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 未安装"
检查项期望
网络与 DNScurl -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,安装对应驱动与固件

八、法律与安全声明

  1. 所有工具与教程内容仅限获得明确授权的安全测试使用
  2. 未经授权对他人系统进行扫描、渗透、破解均属违法行为
  3. 练习请使用本地靶场、自有设备或授权目标
  4. 下载第三方工具时注意供应链安全:优先官方 Releases、核对校验和、警惕投毒仓库

返回 红队知识库总目录;配套实战见 实战教程