C0nvR3 Lab

Search workspace

Keyboard shortcuts

Ctrl + K
Open search
Esc
Close menu or dialog

posts\wsl2_env\index.md

wsl2的配置与使用

Table of contents

wsl2是一款现代的 Linux 虚拟机解决方案,相较于以往的 wsl1 模拟了完整的 linux 内核,且可以非常方便的直接访问 windows 本机的文件,你可以通过 wsl2 配置不同的 linux 发行版进行使用。

windows 预先设置

首先确保你的电脑使用的系统是 windows 11 ,理论上来说 win10 也可以但需要一些神秘代码的帮助这里不作多余讨论 在正式开始之前请确认你打开了虚拟化,你可以按下 ctrl + shift +esc 在任务管理器的性能选项中查看

任务管理器中显示虚拟化已启用
如果你发现这一项没有启用,你应当去搜索自己购买的电脑的主板厂家的 bios 使用方法与虚拟化支持的开启,一般都可以直接搜到 这里附上微星的设置方法微星主板如何开启VT

其他厂家搜索关键词差不多

当你打开虚拟化后,接下来需要设置Windows 功能 在windows任务栏的搜索框中输入 启用或关闭 Windows 功能

Windows 搜索中的启用或关闭 Windows 功能入口
部分情况下单独搜索功能,开启这个选项卡,找到其中以下几项并开启

  • Virtual Machine Platform
  • Windows Subsystem for Linux
  • Hyper-V
  • Windows Hypervisor Platform

因为系统版本的原因,你这里可能会有几项使用的是中文翻译,也有可能会有几项缺少,但是主要的Windows Subsystem for LinuxVirtual Machine Platform一定要开启

Windows 功能中的 WSL 与虚拟机平台选项
完成后若提示需要重启电脑则请尝试重启以完成设置

如果除了 wsl 你还要使用其他的虚拟机如VMware之类的,请务必使用 VMware 25H2 以上的版本解决虚拟化独占问题,不然可能你两个都用不了

wsl2 安装

首先按下 win + R 键输入cmdpwsh打开命令行 在其中输入

wsl --list --online

查看当前可用 linux 发行版

终端列出的可安装 WSL Linux 发行版
一般来说,二进制研究使用 Ubuntu 即可,在 wsl 中的 Ubuntu 几乎可以做到开箱即用,同时去除了原装的一些冗余功能,使用起来非常方便

如果你研究 web 相关的内容,请选择 kali

当然你也可以选择我全都要,但是你的硬盘可能不这么认为

接下来输入

wsl --install -d Ubuntu-24.04

安装Ubuntu-24.04的版本,这里以 Ubuntu 为例,你可以根据自己的需求替换 这一步受限于网络环境可能会非常缓慢,可能需要一些魔法进行提速,你懂我意思的

完成后依旧可能提示重启,如果提示则尝试重启

启动 wsl2

完成安装后,部分版本会直接进入 wsl2 ,有些需要手动重新打开 如果没有自动打开,请在windows的菜单中找到你刚刚安装的发行版

Windows 开始菜单中的 Ubuntu WSL 发行版
然后手动打开 此时不出意外你需要开始创建账户,出现类似

Enter new username:

之类的提示,输入你希望设置的用户名 接下来会提示

New password:

输入你想设置的密码,但是这里不出意外你会发现输入的密码没有变化,这里其实只是为了安全隐藏了输入,也没有用*之类的占位,你是可以正常输入的

当完成之后你就可以爽爽的进入系统了

注意!!!

千万不要在 wsl2 里作死学别的视频里的虚拟机输入什么rm -rf /之类的命令,千万不要!!! 你整个电脑都被挂载在了 /mnt 里面,你要是执行会给你实体机也删了

wsl2 配置二进制环境

换源

在开始之前,你需要配置系统软件源,其实使用默认的也行只不过很慢 如果你使用的是Ubuntu 24.04及以上请使用如下命令,但如果是老版本 apt源的格式不同,因为是老版本请自行搜索

sudo tee /etc/apt/sources.list.d/ubuntu.sources > /dev/null <<'EOF'
Types: deb deb-src
URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

Types: deb deb-src
URIs: http://security.ubuntu.com/ubuntu/
Suites: noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
EOF

刷新软件包索引:

sudo apt update

然后更新已经安装的软件包:

sudo apt upgrade -y

清理无用依赖:

sudo apt autoremove --purge -y
sudo apt clean

基础工具

先安装日常使用和后续安装过程依赖的工具:

sudo apt install -y \
  ca-certificates \
  curl \
  wget \
  git \
  gnupg \
  software-properties-common \
  file \
  tree \
  less \
  man-db \
  manpages \
  manpages-dev \
  unzip \
  zip \
  xz-utils \
  tar \
  jq \
  rsync \
  openssh-client \
  socat \
  netcat-openbsd \
  vim \
  neovim \
  nano \
  tmux

其中比较重要的工具包括:

软件用途
file判断文件类型、架构和链接方式
git下载源码、管理项目
curlwget下载文件和测试网络
xz-utils解压 glibc、内核等源码压缩包
socat模拟远程 PWN 服务、转发输入输出
netcat-openbsd测试 TCP 服务
tmux分屏
jq处理 JSON 数据和 GitHub API 返回值

安装 C/C++ 和汇编开发环境

安装完整的基础编译工具链:

sudo apt install -y \
  build-essential \
  gcc \
  g++ \
  make \
  cmake \
  ninja-build \
  meson \
  pkg-config \
  autoconf \
  automake \
  libtool \
  bison \
  flex \
  clang \
  lld \
  libc6-dev \
  libssl-dev \
  libffi-dev \
  zlib1g-dev \
  liblzma-dev \
  libreadline-dev \
  libncurses-dev \
  libseccomp-dev

安装汇编器:

sudo apt install -y \
  nasm \
  yasm

这些工具可以覆盖:

  • GCC/Clang 编译;
  • Makefile、CMake、Meson 项目;
  • Intel 风格汇编编写;
  • OpenSSL、FFI、ncurses、seccomp 相关程序编译;
  • glibc、binutils 和大量安全工具的源码编译。

检查安装结果:

gcc --version
g++ --version
clang --version
make --version
cmake --version
nasm -v

32位支持

一些古老的题目或者特殊情况下会出现一些32位的题目,所以我们应当也配置好相关内容 执行:

sudo dpkg --add-architecture i386
sudo apt update

查看已经启用的外部架构:

dpkg --print-foreign-architectures

正常应包含:

i386

安装 32 位运行库和开发库

sudo apt install -y \
  gcc-multilib \
  g++-multilib \
  libc6-dev-i386 \
  libc6:i386 \
  libstdc++6:i386

python环境

Ubuntu 24.04 提供 Python 3、pip 和 venv 软件包。

安装:

sudo apt install -y \
  python3 \
  python3-dev \
  python3-pip \
  python3-venv \
  python3-setuptools \
  python3-wheel \
  pipx

检查:

python3 --version
python3 -m pip --version

pip 换源

pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

pwn的python环境

这里没有使用虚拟环境,可能会提示无法执行,你可以选择创建venv虚拟环境或使用–break-system-packages参数或者直接删除externally-managed(有风险)

pip3 install --upgrade pip

pip3 install pwntools

sudo pip3 install keystone-engine ropper

pwn因为实际需要使用的工具非常多,你完全可以等用到了再配,这里整个基础的pwntools即可

调试工具

sudo apt install -y \
  gdb \
  gdb-multiarch \
  binutils \
  binutils-multiarch \
  elfutils \
  strace \
  ltrace \
  patchelf \
  valgrind \
  hexedit \
  xxd

gdb的插件中,pwndbg,GEF,PEDA你只能三选一,我比较喜欢pwndbg所以以这个为例

git clone https://github.com/pwndbg/pwndbg.git

cd pwndbg

./setup.sh

需要注意这个依然有一定的网络要求,建议魔法一下


可能有一些包名发生过变动,但一般都能很方便的解决这里不细讲了 这些东西搞完一般来说你的 wsl 已经可以进行最基础的开发调试了,其余高级工具在遇到时再进行安装配置

Terminal

C0nvR3 Lab terminal ready. Type help for commands.