不用虚拟机来操作真的太爽了!!还有和vscode的联动,更是妙绝!
目录
前言
站在前人的肩膀上
[安利] WSL Linux 子系统,真香!完整实操 - 知乎 (zhihu.com)
Windows中安装linux子系统(Ubuntu) - 知乎 (zhihu.com)
强势安利:命令行高亮?自动补全? tab手动补全?效率upup?——zsh和oh-my-zsh及其插件:
oh-my-zsh_zzzhang_num_1的博客-优快云博客
一、WSL获取
在 Microsoft Store中搜索ubuntu,下载你想要的版本,我选的是20.04.6版本
开启WSL支持
使用管理员权限的 Shell 才能安装 WSL。
按 Win+X, 找到 Windows PowerShell (管理员),并复制执行命令。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
以上命令会激活 WSL 服务,然后需要重启系统
重启之后,Win + R,输入 appwiz.cpl,左上角找到“启动或关闭 Windows 功能”,会看到这个选项处于选中状态。
其实吧,上面的命令就相当于手动去勾选这个功能。
直接命令执行效率可能更高些。
二、各种操作
1.apt 换源
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
$ sudo vim /etc/apt/sources.list
- 执行下面命令,备份 apt 安装源:
- vim 编辑 sources.list :
-
换源,这里用了阿里云源
-
ubuntu更换国内源_ubuntu换源_EmbededCoder的博客-优快云博客
#ubuntu 20 deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
删除sources原本内容,可以直接敲:dG 就删除全部内容了,然后i切换为输入模式,ctrl+shift+v粘贴,esc后 :wq回车退出。
2.更新软件
更新软件源中的软件列表
$ sudo apt-get upgrade
更新软件
$ sudo apt-get update
3.配置SSH服务器(对于pwn来说非必要)
WSL 上的 SSH 服务器没有自动配置,需要手动重新安装,首先可以运行以下命令来检查
$ sudo service ssh stop
$ sudo /usr/sbin/sshd -d
重新安装 openssh-server 就可以解决问题
$ sudo apt purge openssh-server
$ sudo apt install openssh-server
然后需要配置 /etc/ssh/sshd_config,用 sudo 权限运行 vim 修改如下三个关键字
-
记得删除 #
`Port 22 #这两行允许了 root 账户和密码登录 PermitRootLogin yes PasswordAuthentication yes`
然后记得重启 ssh 服务
$ sudo service ssh restart
$ sudo service ssh status
4.WSL访问windows文件
在 wsl (Windows 的 Linux 子系统)中,我们可以访问如下路径,就可以看到 Windows 下的文件:
/mnt/c # C:盘
/mnt/d # D:盘
5.安装gdb
sudo apt install gdb
6.pwndbg的安装
git clone https://github.com/pwndbg/pwndbg
cd pwndbg
./setup.sh
然后我们可以查看.gdbinit中的内容,查看用的是peda还是pwndbg,修改该文件即可实现插件的切换
cat .gdbinit
7.WSL背景设置 

什么?你的cmd找不到旁边的+和^?
那就去Microsoft Store下载个terminal吧!界面看着舒服多了(如果你愿意的话)
8.vscode联动
下载了vscode,在我们的ubuntu指令窗口中输入
code .
即可联动——我们的exp可以写在这里用vscode运行,爽!
9.zsh以及插件的安装
oh-my-zsh_zzzhang_num_1的博客-优快云博客
这个大佬已经贴心的把过程都搞得及其通俗简单,跟着一步步就可以傻瓜式安装啦!!
10.glibc-all-in-one
丰富的libc库,能够download下来对应的libc版本,再配合patchelf,构造和云端同样的环境。对于heap题非常重要!
11.patchelf
下载了glibc-all-in-one,肯定还要手动把对应libc版本连接到可执行程序上呀,patchelf工具就是干这个的。
GitHub - NixOS/patchelf: A small utility to modify the dynamic linker and RPATH of ELF executables
12.one-gadget
堆体有时候,可以跳转执行一次,这时候不如试试one-gadget——顾名思义,一个gadget即可getshell,当然有一些限制条件,具体碰碰运气或者主动构造即可。
one_gadget 下载 安装 与使用_obe_gadget-优快云博客
13.seccomp-tools
做沙箱题不可避免的环境检测工具,查看哪些系统调用被禁用/可用
https://github.com/david942j/seccomp-tools
三、成果图
总结
网上的资源很多,站在了巨人的肩膀上。
过程比较简单,具体可以看看大佬们的文章。
2024.3.19更新
增加glibc-all-in-one、patchelf、one-gadget、seccomp-tools
对了,我的环境wsl2-Ubuntu-22.04上述都可行。如果需要wsl2-ubuntu16.04环境,可以去找已弃用的wsl版本,里面可以找到喔。