工具的提前配置
by CPPU-ISA,ljnljn.
前置条件
首先,请确保你拥有一台 PC、计算机的基本使用能力、可见互联网的探索能力。
请确保你具有以下账户:
- 一个 Github 账号
如果有能力,建议开通 Pro 版本使用 Copilot 等高级功能(可通过学生认证免费开通,参见 学信网认证 Github 学生包)。
请确保你的设备安装了以下软件: - Git
这将作为你下载开源资源的主要工具,同时使用其附带的 Git Bash,允许你在 Windows 中使用一些简易的 Linux 命令。 - 一个可用的 Linux 虚拟机:在任何网络攻防中,Linux 操作系统是必要的。
Windows 下虚拟机可以选择 WSL/WSL 2.0 或 VMware Workstation 或 Virtual Box,可选的 Linux 发行版为 Ubuntu 或 Kali Linux.
如果你是深度 Linux 用户,可考虑 Arch Linux 裸机. - 一个功能强大的文本编辑器
它将伴随你大部分的时间,强烈推荐 VSCode.
至此,你已经具备了 CTF 入门的条件。
每个方向都要知道的软件和环境
Python
安装
由于 Python 是一门热门的语言,很多操作系统都会默认安装 Python,你可能也会因为一些千奇百怪的原因在你的设备中安装过 Python 但后来又忘掉了。为了验证 Python 是否已经安装在你的设备上,你可以在终端或命令行中输入以下指令:
1 | python3 --version # for macOS and Linux |
如果你看到了类似 Python 3.8.5 的输出,那么恭喜你,你的设备上已经安装了 Python。如果你看到了类似 Python 2.7.18 的输出,那么你的设备上安装的是 Python 2,我们建议你安装 Python 3。如果你看到了 command not found: python 的输出或者没有输出,那么你的设备上没有安装 Python,你需要安装 Python。
macOS
访问 https://www.python.org/downloads/macos/ 下载对应版本的包并安装。
Windows
访问 https://www.python.org/downloads/windows/ 并安装对应版本。在安装时记得勾选 Add To Path,将安装路径保存为系统环境变量。
Linux
使用包管理器安装。例如在 Debian/Ubuntu 上,你可以使用以下指令来安装 Python3。
(Linux的安装后面有)
1 | sudo apt-get update |
Python的安装程序有镜像站:python-release安装包下载_开源镜像站-阿里云,下的慢可以直接在镜像站下载,注意要选择amd64的exe安装包,其他的多多少少会有不兼容。并且可以选择早期一点的版本,有很多库都不兼容最新版本,推荐下载3.9.x版本
介绍和基本操作
(这篇写的很好,我就不在此赘述了)
课程讲义 - 酒井科协暑培 2025
各方向需要的库
安装是pip3 install xxx,需要换源才能加速下载,请根据pypi | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror进行操作换源
Web:dirsearch、sqlmap
Crypto:pycryptodome
Pwn:pwntools
后期会有更多库需要安装,到时候看着装就行啦
VScode
安装
首先访问官网下载安装包
Visual Studio Code - Code Editing. Redefined
进入后一直下一步到这里,可以选择创建桌面快捷方式
进入后是英文的,切换中文:选择左边扩展按钮输入chinese
点击Install即可安装,等待右下角跳出切换语言后点击按钮重启,即可切换至中文
各种编程语言配置
在扩展商店里搜编程语言名称即可配置好,如果还有问题可先ai和csdn查找,不会再联系学长:)
配置运行环境
在「扩展」中搜索 Code Runner,安装该插件。随后点击 VSCode 左下角的齿轮按钮,选择「设置」,搜索 Code-runner Run in Terminal,勾选对应的配置。
用 VSCode 打开一个文件夹,随便创建一个 Python 文件(以 .py 后缀,会自动识别为 Python 文件),输入以下代码:
1 | print("Hello, World!") |
注意
记得保存文件(快捷键 Ctrl+S)。VSCode 标签页上若显示圆点,则表示该文件已更改但未保存。可以在设置中搜索 Auto Save,选择自动保存的模式。
点击编辑器右上角的运行 ▷ 按钮,可在 VSCode 内置终端中看到输出。
TIP
VSCode 中有许多命令,按下 F1 或者 Ctrl+ Shift+P,可以调出命令输入框(以 > 开头表示命令,否则表示搜索文件)。
例如,你可以输入 settings format 等关键词,使用对应的功能。
Linux
Linux 简介
Linux 是一种自由和开放源码的类 UNIX 操作系统,其内核由 Linus Torvalds 在 1991 年发布。
Linux 也是自由软件和开放源代码软件发展中最著名的例子,只要遵循 GNU,任何个人和机构都可以自由地使用 Linux 的所有底层源代码,这使得它得到来自全世界软件爱好者和组织的开发支持。
Linux 严格来说是单指操作系统的内核,因操作系统中包含了许多用户图形界面和其他实用工具。如今Linux常用来指基于Linux的完整操作系统,内核则改以Linux内核称之。
接触 Linux 的场景
Linux 被广泛运用于各个领域:
- 服务器、主机、超级计算机
- 个人计算机
- 嵌入式系统(智能小车、树莓派、机顶盒、移动设备等)
- 基础设施(红绿灯、工业传感器)
对于个人的日常开发和使用,我们大概会从以下几个方面接触到 Linux:
- 安装 Linux 系统(单系统、Windows & Linux 双系统)
- WSL(英语:Windows Subsystem for Linux)
- 虚拟机(Virtualbox、Docker)
- 服务器远程连接(SSH、RDP)
Linux 发行版
我们平时使用的“Linux”严格来说是 Linux 发行版本,而 Linux 狭义上单指操作系统的内核。
发行版本在内核的基础上还包括安装工具、系统配置、图形桌面界面、各种 GNU 软件等,使得这个系统能够适用于各种使用目的。
一点发行版和特性包括了:
- Ubuntu: 很多人把 Linux 和 Ubuntu 画等号, 应该是因为 Ubuntu 确实比较常见, 名气也不小. 不过我觉得它相貌平平, 兼容性倒确实很好.
- Ubuntu Server: 用于服务器, 没有 GUI, 但是可以选择预装大量的服务端软件.
- Debian: Ubuntu 的上游, 以稳定著称.
相当丑.服务器上用的多些. - Linux Mint: 我主力使用的发行版, 基于 Ubuntu, 但是更加注重用户体验 (好看).
- Arch Linux: 开发者觉得 “一切决定权留给用户”, 安装好之后甚至没有 Desktop Environment, 但是深度可定制, 折腾得好就很好用. 软件包相当新.
三天两头爆炸 - Manjaro: 基于 Arch, 没有具体了解.
- Fedora: Red Hat 的社区版, 听说是 “几乎所有的开发环境都能一键安装”, 很省心的系统.
- Kali Linux: 专用于渗透测试的系统, 预装了大量的渗透测试工具.
俗话说, Kali 用得好, 牢饭吃到饱 (什么)
这里给大家主要讲Ubuntu和Kali,Ubuntu系统比较纯净,Kali上预安装的工具很多,各有所长,大家自行考虑安装哪个
安装
你需要准备:安装好的Vmvare、iso镜像(下面有下载教程)
Step1:下载镜像
Ubuntu
首先去清华大学开源软件镜像站 | Tsinghua Open Source Mirror
https://mirrors.tuna.tsinghua.edu.cn/
我们后面很多设置(换源等)也会在这里
进入后点这个按钮,然后往下翻找到Ubuntu
可以看到这里下载的类型特别多
大家只需要看amd64的Desktop LiveDVD(带图形界面的),版本可以选25.04(最新)或者24.04.3(稳定)
下载完会得到.iso文件,这是光盘映像文件,可以放到Vmvare里安装系统(Vmvare群里有安装包哦)
Kali
访问kali官网Get Kali | Kali Linux
https://www.kali.org/get-kali/
进入后会显示两种,左边的是iso镜像安装文件,右边是已经安装好的虚拟机磁盘下载
点击左边的直接点下载即可
右边的点vmvare下载即可
Step2:安装镜像
请前往各链接进行学习(绝对不是我懒)
Ubuntu:(https://blog.csdn.net/u013589130/article/details/146201867)
Kali镜像版:2025版最新Kali Linux下载安装配置大全(超详细保姆级教学)_kali linux 下载-CSDN博客
Kali虚拟机版
此处没提到的统一是下一步
先选择自定义
选稍后安装操作系统
选择这些配置
一直下一步到这里
选择后缀不带数字的vmdk文件(我这里没有kali先用ubuntu演示,可以看到Ubuntu后没带数字,就选这个
完成后进入系统即可
初始账号kali密码kali
终端
打开终端(Ubuntu在桌面右键——打开终端,Kali在开始菜单——终端模拟器),界面上会出现类似于下面样子的提示符:training@test:~$。
从左到右依次是当前身份 training,主机名 test,和当前工作目录 ~ 以及一个美元符号(fish 下是 > 号),这个美元符号表明当前用户不是 root。
如果你用 root 身份打开 Shell,呈现的提示符大概是这样 root@SAST-Training:~#。即 # 符号表明了 root 身份。
基本指令
| Command | Description |
|---|---|
| 目录相关 | |
| pwd | 当前目录 |
| cd | 切换目录 |
| ls | 查看目录列表 |
| mkdir | 创建目录 |
| find | 在层级目录下搜索文件 |
| 文件相关 | |
| touch | 创建 |
| mv | 移动(可用于重命名) |
| cp | 拷贝 |
| rm | 删除 |
| chmod | 更改文件权限 |
| chown | 更改文件所属 |
| echo | 输出提供的文本 |
| file | 查看文件类型 |
| cat | 将文件内容输出到标准输出 |
| 用户和组相关 | |
| su | 一般用于切换用户 |
| sudo | 一般用于执行 root 权限指令 |
其他一些可能用到的指令包括 grep、ps、systemctl、ip 等。
文件系统介绍
现在我们可以用 ls 和 cd 来翻阅系统里的文件了!
首先是一些基本的表示:/ 表示根路径,~ 表示家路径(/home/username/,如果是 root 则为 /root/),. 表示当前目录,.. 表示上一级目录。这些表示省去了很多写绝对路径的麻烦。你可以试试 cd 到这些地方,然后用 ls 查看目录里的内容。
我们来看看根路径下都有哪些文件夹:

/etc目录是系统根路径下最重要的目录之一,它是用来存储操作系统文件的公共区域,比如/etc/sudoers、/etc/passwd分别记录了拥有 root 权限的用户、系统内的所有用户信息。/var目录是系统的服务或应用频繁写入的地方,比如/var/log存储了程序的 log 文件。/tmp里是一些程序只需要访问一两次的文件,每当系统重启时,这里的文件都会被清空。注意这个文件夹默认可被任何用户写入。/home这个文件夹下是各个用户的家目录。/mnt是数据卷的挂载点;通过 USB 等接口连接的外部媒体也可能出现在/media文件夹中。/srv存放这个服务器提供的服务所需的文件(如网站资源)。/proc:虚拟文件系统,用于存储内核和进程的运行时信息,例如/proc/cpuinfo查看 CPU 信息,/proc/meminfo查看内存信息。/sys:虚拟文件系统,提供设备和驱动相关的系统信息。/dev:设备文件目录,例如/dev/null(空设备文件)和/dev/sda(磁盘设备文件)。
软件包管理系统介绍和换源
软件包管理系统是在电脑中自动安装、配置、卸载和升级软件包的工作组合。使用软件包管理系统可以大大简化在 Linux 发行版中安装软件的流程。常见的软件包有两种类型:deb 软件包(由 dpkg 和它的前端 apt 管理,使用于 Debian、Ubuntu)和 RPM 软件包(由 dnf、yum、ZYpp 等前端管理)。
绝大多数的 Linux 发行版或类 Unix 系统都有它的包管理器,Ubuntu 有 apt,Arch Linux 有 pacman,macOS 有 Homebrew。
包管理器的指令一般都很符合直观,如果失败了可以通过 man 或者 help 查看用法。
系统中包管理器所使用的仓库往往默认位于国外,这使得每次从仓库拉取东西时耗费很长时间或者甚至连不上。好在我们国内有许多的镜像源,比如清华的 TUNA,访问 https://mirrors.tuna.tsinghua.edu.cn/help 可以找到 Ubuntu 在内的各种仓库镜像源配置方法。
在这里,你需要更换以下镜像源:apt、python(pypi),这些都是我们以后常用的镜像源,详细的更换方法在上面的链接里。
SSH(远程连接服务器)
服务器(Linux)端安装
请参考:链接
使用Finalshell进行连接
Web、取证环境需要用到
进入后首先点击上面的文件夹
然后选择ssh连接
进入后主机地址写ip地址(在Linux端输入ifconfig然后问ai哪个是真实ip地址)(注意虚拟机一定是NAT联网模式),账号密码就写自己设置好的
进入后会显示密钥,选择接受并保存即可
扩展:VSCode SSH
大家用的最多的远程开发工具应该是 VSCode 的 SSH 插件. 这个插件可以让你在本地 VSCode 中编辑远程服务器上的文件.
安装 VSCode SSH

我印象里默认是装好的?
打开 VSCode SSH
左下角的 Open a Remote Window 点一下, 选 Connect to Host.... 推荐使用公钥登录, 不然你会不停输密码.
然后输进去 [user@]host[:port] (推荐写 SSH Config)
如果需要多级跳板 / 代理, 请使用 SSH Config.
VSCode 会配置自动端口映射, 也可以在 PORTS 选项手动配置.
Linux常用软件的安装
通用方向:
Vim(文字编辑)
Docker(比赛环境需要)
Python(不自带就要自己装)
Git(有时需要)介绍:Git - 酒井科协暑培 2025
Pwn:
pwntools、pwndbg
Web:
sqlmap、dirsearch、宝塔面板(可选)宝塔面板下载,免费全能的服务器运维软件
Crypto:
sagemath(较复杂,如果不会请先安装Windows版本)、pycryptodome(python库)
取证:
宝塔面板 宝塔面板下载,免费全能的服务器运维软件
不会请自行ai或者查找csdn,还是无法解决可以联系学长:)
分方向工具介绍
总起目录
Web工具
Burpsuite
蚁剑
Hackbar
vscode(PHP、js、html、css、Python环境)
finalshell
IDEA(java的编程环境)
Misc工具
010editor
wireshark
随波逐流
stegsolve
zsteg
audacity
steghide
outguess
deepsound
potplayer
volatility
ftkimager
hashcat
pycharm (python的编程环境)
archpr
Crypto工具
pycharm(python的编程环境)
随波逐流
sagemath
cyberchef(网站)
rsatools
ctf-rsatools
Pwn工具
Reverse工具
ida 7.7,ida 8.3
x96dbg(包含x64dbg和x32dbg)
jadx
die
取证工具
finalshell(xshell,xftp)
火眼,火眼仿真,随波逐流
物联网取证,网镜
各种工具的安装
Burpsuite
在这里进行下载和激活等操作
Burpsuite安装激活说明 - 飞书云文档
蚁剑
第一次需要选择工作目录,请选择里面带有源文件的文件夹而不是窗口化程序的文件夹
Hackbar
在浏览器扩展商店搜索“Hackbar”进行安装即可
注意辨别hackbar,第一个有问题不好用,下黑色版本的
注意要打开开发者模式
如果搜不到:
Release v1.2.8 · 0140454/hackbar · GitHub
在这里选择chrome
问题排查
用 baidu.com 做测试 如果打开开发者工具 没有 hackbar栏
按照以下步骤逐一排查
1.刷新插件 并确保插件正常启用

2.重新加载页面或重启浏览器
Question 2
点击LOAD 导入当前URL 若出现下图所示报错
Unable to fetch request information(无法获取请求信息)

刷新浏览器,重新点击 LOAD 即可正常导入
IDEA
在这里下载
下载 IntelliJ IDEA
往下翻翻到社区版进行下载
具体使用介绍:IDEA 2025下载安装教程【超详细】保姆级图文教程(附安装包)_idea2025下载-CSDN博客
Pwn工具合集
你需要具备 Ubuntu 或其它 Linux 操作系统
获取 IDE
一般只获取一个 IDE 即可,PyCharm 是专为 Python 开发的 IDE,VSCode 是通用的 IDE,可用于多种语言。
点击左下角菜单按钮,搜索 Software,进入 Ubuntu 软件商店。
若需安装 VSCode,则搜索「VSCode」下载即可。若需安装 PyCharm,搜索「PyCharm」,下载 Community 版本。
配置 root 密码
root 用户是 Linux 系统的超级管理员,可以执行任何操作。默认情况下,你以你的普通用户身份使用操作系统。
打开终端,你会发现你的用户并不是 root 用户。若要以 root 用户身份执行命令,需要使用 sudo 命令。例如:
1 | sudo apt-get update |
随后输入你当前账户的密码,即可以 root 身份执行命令。
修改 root 密码也是需要 root 身份的,因此我们用 sudo 命令执行 passwd 命令:
1 | sudo passwd root |
随后输入你希望设置的 root 密码,即可完成设置。
使用 su 命令可以切换到 root 用户:
1 | su |
随后输入你设置的 root 密码并回车即可。
退出当前的会话,可以使用 exit 命令,或使用快捷键CtrlD.
安装必备软件包
国内下载软件包速度较慢,可以使用清华大学的镜像源,参见 更换软件源。
打开终端,输入以下命令:
1 | sudo apt-get install python3-pip git gcc vim nano |
pip是 Python 的包管理工具,在学习 Python 的过程中必然会被介绍到。git是强大的版本管理工具,可用于下载互联网中的开源库。gcc是 GNU 的编译套件,Linux 下 编译 C 的必备,gdb是 GNU 中的调试工具。vim是 Linux 下强大的命令行文本编辑器,可自行学习它的基本用法。nano也是 Linux 下的命令行文本编辑器,比起vim的操作更便捷。
加快 pip 软件包下载速度,可参考 清华大学 PyPI 软件源。
安装 Pwn tools
Pwn tools 是一个专为 CTF 设计的工具集,包含了许多用于 Pwn 题目的工具。
使用 pip 安装:
1 | pip3 install pwntools |
安装 Pwndbg
Pwndbg 是一个专为 GDB(GNU 调试器)设计的插件,提供了更直观和实用的调试界面,帮助底层软件开发人员、硬件黑客、逆向工程师和开发人员分析程序漏洞。
Pwndbg 是 Pwn 中常用的动态调试工具,可以观察寄存器,汇编代码,栈空间等,功能强大。
进入一个安装目录,打开命令行,运行:
1 | git clone https://github.com/pwndbg/pwndbg --depth 1 # 获取源码 |
安装插件依赖:
1 | sudo pip3 install keystone-engine ropper keystone-engine |
在 gdbinit 中挂载 Pwndbg,编辑 ~/.gdbinit 文件:
vimnano
1 | vim ~/.gdbinit |
在文件中添加下面的内容
1 | source /path/to/pwngdb/gdbinit.py # 将路径替换为你的 pwndbg/gdbinit.py 的路径 |
保存并退出。
安装完后,运行 gdb 查看是否安装成功。
安装 ROPgadget
ROPgadget 是一个用于搜索二进制文件中可用 ROP(返回导向编程) 链的工具,帮助漏洞利用时构建rop链以执行恶意代码。
安装命令:
1 | sudo -H python3 -m pip install ROPgadget |
安装完后,运行 ROPgadget --version 查看是否安装成功。
安装 one_gadget
在 CTF 的 Pwn 题目中,通常需要获取远程 shell,one_gadget 会自动查找 ELF 文件中能够调用 execve("/bin/sh", NULL, NULL) 的位置,帮助通过漏洞利用实现远程代码执行(RCE)。
安装命令:
1 | sudo apt install -y ruby ruby-dev |
安装完后,运行 one_gadget --version 查看是否安装成功。
安装 seccomp-tools
一些题可能会遇到沙箱,seccomp 可以很好的帮助我们识别系统调用黑名单和白名单
安装命令:
1 | sudo gem install seccomp-tools |
安装完后,运行 seccomp-tools --version 查看是否安装成功。
安装 patchelf
patchelf 是一个用于修改 ELF 文件属性的工具,支持更改运行时依赖、RPATH 和入口点等,以便灵活调整二进制文件的行为。
等学到 ret2libc 之后,会遇到题目所给附件的编译环境以及 libc 和本地环境不匹配的情况。但是如果按照 libc 版本重装多个虚拟机的话实在是太费劲了,patchelf 就可以直接修改题目所需的 libc 和 ld.
安装命令:
1 | sudo apt install patchelf |
安装完后,运行 patchelf --version 查看是否安装成功。
安装 LibcSearch
LibcSearcher 是一个用于查询 libc 版本的工具,可以根据泄露的数据查询 libc 版本,以便进行 ret2libc 攻击。
TIP
如果学会了 patchelf,LibcSearcher 就不是必要的了。且一般情况下,对于没有给 libc 附件,却需要 libc 版本的题,面对远程泄露的 data,也可以在 libc-database 上查询。
安装命令:
1 | pip3 install LibcSearcher |
- 标题: 工具的提前配置
- 作者: ljnljn
- 创建于 : 2025-09-05 14:32:00
- 更新于 : 2026-05-25 22:04:46
- 链接: https://ljnljn2005.github.io/2025/09/05/工具的提前配置/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。