前言
由于我的破thinkpad x1 carbon只有500g的磁盘,在面对所需要用到多台vmware虚拟机(Kali Linux +
Ubuntu16.04 + Ubuntu 18.04 + Ubuntu 20.04 + Ubuntu 22.04)时,硬盘容量捉襟见肘。偶然发现
windows下WSL可以虚拟化Linux系统。
通过移动硬盘去开vmware虚拟机偶尔会出现卡顿,而且万一usb接口脱出,也特别尴尬。
Windows Terminal安装与配置
Windows terminal通过MircoSoft直接搜索进行安装
Windows Terminal兼容cmder
由于之前用了较长时间的cmder,寻找了一下Windows Terminal对Cmder的兼容方案
现在环境变量的用户环境变量中添加CMDER的相关路径
变量名: CMDER_ROOT
变量值: PATH_TO_CMDER
变量名:ConEmuDIr
变量值:%CMDER_ROOT%\vendor\conemu-maximus5
在powershell中执行 new-guid获取一个GUID
打开Windows Terminal的设置,点击左下角的打开JSON文件
在JSON配置文件中找到 list属性
添加(YOUR_NEW_GUID替换为之前申请的new-guid)
{
"commandline": "cmd.exe /k %CMDER_ROOT%\\vendor\\init.bat",
"guid": "{YOUR_NEW_GUID}",
"icon": "%CMDER_ROOT%\\icons\\cmder.ico",
"name": "Cmder",
"startingDirectory": "%USERPROFILE%"
},
保存配置文件后就可以通过Windows Terminal开启cmder了
WSL虚拟机的安装与配置
其中Kali linux,Ubuntu 18.04,Ubuntu 20.04,Ubuntu 22.04都可以直接通过Mircosoft Store进行获取。
Windows10 获取 WSL Ubuntu 16.04
Ubuntu 16.04的获取方式为
管理员权限开启Powershell
启用 WSL,执行完毕后重启电脑
PS > Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
下载Ubutnu 16.04,本地保存为 Ubuntu.appx数据包
PS > Invoke-WebRequest - Uri https://aka.ms/wsl-ubuntu-1604 - OutFile Ubuntu.appx - UseBasicParsing
导入ubuntu16
PS > Add-AppxPackage .\Ubuntu.appx
之后可以在开始菜单栏 最新添加中找到新安装的虚拟机
开启虚拟机后会需要输入 用户名 和 创建密码
# Installation successful!# Please create a default UNIX user account. The username does not need
to match your Windows username.# For more information visit: https://ak
a.ms/wslusers# Enter new UNIX username:
jambolt
# Enter new UNIX password:
*********
# Retype new UNIX password:
*********
WSL虚拟机的一些特性
在linux shell上可以通知执行linux elf 和 exe
Linux与windows贡献磁盘 通过 /mnt/盘符/******* 来访问windows的文件系统
wsl虚拟机与
从使用体验来说,速度和性能较于vmware有非常大的提升
WSL 版本升级
为了更好地使用一些Linux的图形化界面,需要将虚拟机从WSL v1 升级到 WSL v2
管理员启动Powershell
PS>Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
重启计算机
管理员启动Powershell
PS>dism.exe /online /enable-feature /featurename:Microsoft-Wind
ows-Subsystem-Linux /all /norestart
重启计算机
下载WSL2 KERNEL 并安装 https://aka.ms/wsl2kernel
需要注意自己计算的架构是 X64还是 AMD 64
通过windows terminal下的命令 wsl -l -v 查看当前已安装的WSL虚拟机与版
本(截图时所有使用的wsl虚拟机已经升级为 wsl v2)
WSL 升级的命令为 wsl --set-version NAME 2
例如(wsl --set-version Ubuntu-22.04 2)
升级需要windows 开启如下功能
并且需要在BIOS中开启虚拟化支持。
我遇到了 DMA保护 与 BIOS 虚拟化冲突的情况,需要关闭windows DMA保护开启
BIOS虚拟化后,才能进行 WSL2 的升级
通过 win-kex启动 kali的图形化界面
通过wsl安装的kali为最小版本
可以通过apt来安装下列可选项
kali-linux-default
kali-linux-large
kali-linux-everything
先将kali-linux 升级为 WSL2
安装 kali-win-kex
sudo apt install -y kali-win-kex
个人喜欢通过 kex --sl -s 来启动kali图形化界面可以兼容windows的图形化
WSL kali虚拟机的端口转发
如果遇到msf反弹shell的情况需要对wsl虚拟机进行端口转发
管理员启动windows terminal,并开一个kali的shell
netsh.exe Interface portproxy add v4tov4 listenport=4444 listenaddress=0.0.0.0
connectport=4444 connectaddress=kali_wsl_ip_address
配置 ubuntu gnome-terminal 启动
windows上安装 VcXsrv Windows X Server
https://sourceforge.net/projects/vcxsrv/
通过桌面上的 XLanch启动
个人比较喜欢 Multiple windows,可以开启多台虚拟机的图形化应用不冲突。
勾选 Disable access control,不然会出现报错
linux安装 gnome-terminal
Sudo apt install gnome-terminal
由于我的ubuntu都安装了 oh my zsh。
我在 ~/.zshrc配置文件中添加了配置
在windows terminal启动的ubuntu中输入 gnome-terminal
得到了4个ubuntu版本的gnome-terminal,并且和windows自身的图形化界面没有冲突,非常好用且方便。
ubuntu 16 pwndbg的安装
对于pwn环境安装的pwntools,LibcSearcher,ROPgadget,one_gadget,ropper不进行过多赘述。
Ubuntu16使用了python3.5,在安装时要选择较早的pwndbg版本进行安装
https://github.com/pwndbg/pwndbg/archive/refs/tags/2019.12.09.zip
对于pwn的gdb.attach调试而言,使用 gnome-terminal是比较方便的。
在windows上有一个兼容的gnome-terminal是特别方便的事情
gdb.attach动态调试的效果
|