前言

Windows10在发布WSL(Windows Subsystem for Linux)后经过多次更新,现在使用体验已经比较良好,下面简单记录一下我在安装Kali WSL中遇到的种种问题,为各位同样遇到问题的朋友们提供一些解决方案。

由于我已安装了一次Kali,故本次演示使用Debian替代,安装过程基本相同。

安装

安装过程已经得到了相当的简化。首先进入控制面板-程序和功能-打开或关闭windows功能

点击确定后重启系统,完成相关功能的安装

在windows商店内搜索Kali Linux,下载并安装

至此安装完成

配置Kali Linux

启动Kali,显示

Installing, this may take a few minutes...

等待安装完成,按提示输入用户名,密码,新建用户

Enter new UNIX username: test
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Installation successful!
test@Reese:~$

可选条目-更改默认用户为root

由于之前在kali虚拟机内我默认使用root用户进行操作,避免频繁输入sudo,故在kali wsl里面也希望使用root操作,同时也可以避免因权限而带来的操作问题。

按Ctrl+D退出登录,并打开Windows命令行或者PowerShell,输入命令

kali config --default-user root

WSL 子系统是基于 LxssManager 服务运行的,在更改过默认用户后,我们需要重启该服务,使改动生效

net stop LxssManager
net start LxssManager

然后进入Kali系统,删除之前创建的test用户

userdel test

(此时应该是以root身份操作)

然后更改root用户的密码

passwd root

可选条目-赋予test用户sudo权限

如果你不想删除创建的test用户,那么如果想要执行一些高级命令,就应该为test用户赋予sudo权限

在我们安装Kali时,默认的root密码是随机的,而且每次开机都会生成新的root密码,所以,我们先要将root密码设置为我们自己的密码

注意,该操作只有在安装完成后第一次尝试设置密码时有用,以后使用sudo passwd都需要sudo权限

我们先输入

sudo passwd

提示信息出现后提醒我们为test用户输入sudo密码,注意我们这里需要输入test用户的密码

然后输入新的密码,这里我们输入的时root用户的密码,然后按提示再输入一遍,root用户的密码更新完成

切换到root用户

su root

输入密码,成功登录。

接下来的操作可选,我执行该操作是为了防止以后出现某些问题

接下来将test用户加入sudoers,在root下

visudo

找到该行

root    ALL=(ALL:ALL) ALL

在下面添加

test    ALL=(ALL:ALL)    ALL

保存并退出

安装完整版Kali

受限于安全条约,Windows商店的Kali基本不能包含任何渗透用工具,我们需要自行安装(以下命令均在root下完成,如果遇到权限问题Permission denied,请在命令前加上sudo或切换到root用户)

修改软件源至国内的镜像站地址

这里我使用的是科大镜像站提供的Kali源

先备份原文件

mv /etc/apt/sources.list /etc/apt/sources.list.bak

创建新的/etc/apt/sources.list

nano /etc/apt/sources.list 

输入以下内容保存并退出

deb https://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src https://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib

当然也可以将原来的源注释掉,再将上面两行内容添加至文件头

再简单地update一下

apt update

安装完整工具集

由于metasploit等一众工具含有许多payload等大量不安全的代码会被Windows自带的Defender检测并查杀,我们需要先关闭实时保护如果你还是遇到问题,把防火墙也给关了)

在此之后,每次需要使用到类似于metasploit等工具时,需要将实时防护和防火墙给关闭,用完过后记得再打开

现在安装工具集

apt install kali-linux-full

需要下载近7000MB的文件,安装过程非常费时间,建议在良好的网络条件下进行。

图形化界面的实现

默认的命令行虽然能完成绝大部分工作,但还是有少数任务在GUI的帮助下更快捷,这里我们才用Xserver+xfce来实现图形化界面

安装xfce桌面

apt install xfce4

安装中文字体

apt install fonts-noto-cjk

在你的Windows 10内,下载VcXsrv,下载地址在这里

下载完成后,安装启动VcXsrv文件夹内的Xlaunch,第一个界面推荐先选择"One large window",其余默认均可

在Kali内,编辑~./bashrc文件

nano /root/bashrc

在末尾添加如下内容

export    DISPLAY=0.0

保存并退出,该步骤的目的是让图形自动输出到我们的VcXsrv窗口内,不需要每次运行GUI程序都手动指定

启动xfce桌面

xfce4-session

  

该图形界面经过我的美化,刚刚安装完成的应该与这个存在差异

(可选)由于我并不喜欢uxterm这个终端,于是选择使用sakura终端

apt install sakura

文件传输

WSL在文件传输方面做的十分方便,默认Windows内的系统盘都被挂载在/mnt目录下面,譬如C盘被挂载在/mnt/c,直接访问即可。

注意:如果你尝试搭建samba服务并在使用smbpasswd命令时遇到了permission denied的问题,可以参考一下GitHub上的这个Issue

其他

如果你愿意的话,可以继续安装vscode/sublimtext等等工具,作为生产环境。

有问题请留言,本文会持续更新各位在安装过程中的常见问题。

Kali WSL折腾笔记-在Windows10上使用Kali子系统的更多相关文章

  1. kali linux 折腾笔记

    http://xiao106347.blog.163.com/blog/static/215992078201342410347137/ 这里告诉你刚刚装好kali后要做,有些也是不正确的,可能开始你 ...

  2. Windows10上使用Linux子系统(WSL)

    Linux的Windows子系统让开发人员可以直接在Windows上运行Linux环境(包括大多数命令行工具,实用程序和应用程序),而无需建立在虚拟机的开销之上,整个系统共200多M,但包含了你能用到 ...

  3. Windows10上安装Linux子系统(WSL2,Ubuntu),配合Windows Terminal使用

    Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具.实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销. WSL 说白了安装Li ...

  4. 如何在win10系统上安装linux子系统

    对于软件开发人员来说,linux基本上是一个绕不过去的槛. 因为工作经常要用到linux,电脑用纯linux还是windows + 虚拟机装linux,我一直纠结. 如果装个纯linux,则一些win ...

  5. 【转】Kali Linux 新手折腾笔记

    原作者:http://defcon.cn/1618.html 最近在折腾Kali Linux 顺便做一简单整理,至于安装就不再多扯了,估计会出现的问题上一篇文章<VMware虚拟机安装Kali ...

  6. Kali Linux 新手折腾笔记

    http://defcon.cn/1618.html 2014年09月29日 渗透测试 暂无评论 阅读 55,052 次   最近在折腾Kali Linux 顺便做一简单整理,至于安装就不再多扯了,估 ...

  7. kali linux 2.0 折腾笔记

    1. 配置SSH远程登录 root@kali:~# vi /etc/ssh/sshd_config #PermitRootLogin without-password PermitRootLogin ...

  8. WSL(Windows上的Linux子系统)

    WSL(Windows上的Linux子系统) WSL,Windows Subsystem for Linux,就是之前的Bash on [Ubuntu on] Windows(嗯,微软改名部KPI++ ...

  9. Windows10 上运行Ubuntu Bash

    Windows10 上运行Ubuntu Bash 2016年4月6日,Windows 10 Insider Preview 发布的版本 14316,添加了Ubuntu Bash,在Windows上提供 ...

随机推荐

  1. sql group by聚合函数

    如何让分组后count计算结果为0的记录也显示

  2. 最简单的RPC框架实现

    通过java原生的序列化,Socket通信,动态代理和反射机制,实现一个简单的RPC框架,由三部分组成: 1.服务提供者,运行再服务端,负责提供服务接口定义和服务实现类 2.服务发布者,运行再RPC服 ...

  3. 解决[Errno 10048]报错

    最近一直很纳闷,写的python程序在自己电脑上运行得非常顺利,放到远程测试机上经常报“[Errno 10048]通常每个套接字地址(协议/网络地址/端口)“这样的错误,百度到这种是端口号冲突引起的, ...

  4. C++函数指针与指针函数干货

    C++要是不常用,相信过四天你的指针函数与函数指针的概念就该忘个精光. 其实只要记住谁在后面谁就是哪个本质. 先了解下指针数组与数组指针吧 数组指针 就是指向数组的指针,它表示的是一个指针,它指向的是 ...

  5. XCube和X组件的入门级使用教程

    我也是一个入门级的初学者,在学习魔方的时候,很多不是很懂的地方,而网上的资料又比较少.尤其是Newlife的论坛打不开的情况下 所以就想着把这个初级项目做完后,做一个入门级教程.保证人人都看得懂(.^ ...

  6. FileSystemObject对象及常用方法

    FSO 对象模式包含在 Scripting 类型库中,该库位于 Scrrun.dll 文件中.因而,要使用 FSO 对象模式,必须把 Scrrun.dll 放在 Web 服务器的适当系统目录中. 要用 ...

  7. qtp中type方法的按键常量

    记录键盘操作可以用set和presskey方法,而type方法是不记录的.type方法主要用于输入连接文本字符串和键盘修饰键(组合键),组合键之间用&符号. 如:JavaWindow(&quo ...

  8. linux常用命令 print格式输出

    格式化输出命令 printf '输出类型 输出格式' 输出内容 输出类型: %ns 输出字符串,n是数字指代输出的几个字符 %ni 输出整数,n是数字指代输出几个数字 %m.nf 输出浮点数.m和n是 ...

  9. vue兄弟组件传递信息

    bus方式的组件间传值其实就是建立一个公共的js文件,专门用来传递消息 新建一个Bus.js两个组件都需要引用 组件A 通过$emit传递信息 组件B $on接收

  10. web程序顺序

    1.org.apache.catalina.core.AprLifecycleListener init 2.Apache Tomcat Native library which allows opt ...