windows下直接使用kali(二)

admin 2025年1月6日18:57:52评论5 views字数 4671阅读15分34秒阅读模式

这是《windows下使用kali》第二个文章片断(第二部分 应用篇),收在张老师的《电子数据取证与网络犯罪调查专刊》第七辑中。这本专辑很厚,涵盖了全国众多从业人员与互联网业内取证知名公司,引用扉页张博士言:“纸上得来终觉浅,绝知此事要躬行;无论技术多么炫酷,唯有实践才能使其落地生根,创造真正的价值”。

回顾一下,曾几何时,Windows 和 Linux 被视为水火不容的对立面,各自占据着不同的技术领土,互不干涉。然而,随着 Windows 子系统 Linux(WSL)诞生,尤其是 WSL 2 的推出,这两大操作系统不再是敌对阵营,而是迎来携手共进的新时代。WSL 2 提供强大的性能和兼容性,使 Windows 与 Linux 完美融合,成为开发者的新宠。

言归正传:

2024年7月3日,我介绍了windows下直接使用kali(一)”,是安装使用的步骤过程,如果还没看或不清楚,请看一次,如下的内容才能顺利进行;自从用上wsl2-kali后,vmware就打开少了,主要是太方便了。随着应用加深,对wsl2也有了更多地了解。应该说,wsl2是windows打通linux跨平台的重大成果之一,具有里程碑式的意义。跟诟病的wsl1的假linux实winnt内核相比,wsl2基于强大的Hypervisor虚拟化平台,是真正的linux内核;同时,对打通windows和linux这两个使用人数最多、应用范围最广、最重要的两个系统作出了重大历史性贡献。

这里我列举了一些wsl2的应用,突出显示出跨平台的混用时的方便灵活,取双方之所长,发生了质的飞跃;没有了vmware夹在中间,使widows和linux的融合更加流畅,体验感完美

第二部分应用篇

WSL 2 提供了一系列特色应用和功能,使得开发者和系统管理员可以在Windows上更加便捷地使用Linux环境。以下是一些主要的特色应用和功能因我的电脑的限制有些功能没有实现,如GPU加速,我的显卡就不支持等

1. 完整的 Linux 内核

WSL 2 使用一个轻量级虚拟机运行完整的 Linux 内核,这意味着它可以支持更多的系统调用和应用程序,与原生 Linux 环境高度一致。

2. 增强的文件系统性能

WSL 2 提供了更快的文件系统性能,特别是在处理 Linux 文件系统(如 ext4)时,比 WSL 1 有显著提升。这对于需要频繁读写大量文件的开发工作非常有利。

3.  Docker 完美集成

WSL 2 可以完美地与 Docker 集成,通过 Docker Desktop for Windows,开发者可以直接在 Windows 上使用 Docker 容器运行和管理 Linux 容器。通过 WSL 2,Docker 可以利用完整的 Linux 内核,提供更高的兼容性和性能。

4. 支持 GPU 加速

WSL 2 现在支持 GPU 计算,通过 CUDA 或 DirectML,开发者可以在 Linux 应用程序中使用 GPU 加速。这对于需要高性能计算、深度学习、数据分析等工作负载的开发者来说,是一个非常重要的特性。

5. 更好的网络兼容性

WSL 2 提供了改进的网络性能和兼容性,支持 IPv6 和更多的网络应用。它可以直接与 Windows 网络堆栈进行更好的集成,提供更快的网络通信。

6. 通过 Windows 更新自动获取最新的 Linux 内核

WSL 2 可以通过 Windows 更新自动获取和更新 Linux 内核,这确保了用户总是可以使用最新的内核功能和安全更新。

7. 支持多种 Linux 发行版

WSL 2 支持多种流行的 Linux 发行版,如 Ubuntu、Debian、Kali Linux、Fedora 等,用户可以在同一台 Windows 机器上安装和运行多个 Linux 发行版。

8. 轻量级虚拟机启动

WSL 2 使用轻量级虚拟机技术启动 Linux 内核,启动速度相对较快,并且不需要像传统虚拟机那样占用大量资源。

9. 开发和测试

WSL 2 是一个强大的开发和测试环境,特别是对于需要跨平台开发的项目。开发者可以在 Windows 上编写和测试 Linux 应用程序,无需在不同的机器之间切换。

10. 简化的系统管理

通过 WSL 2,系统管理员可以使用熟悉的 Linux 命令和工具在 Windows 上管理系统,执行脚本和自动化任务。这使得在 Windows 环境中处理 Linux 系统管理任务变得更加方便。

这些特性使得 WSL 2 成为开发者和系统管理员在 Windows 上使用 Linux 的一个非常强大和灵活的工具。

一、跨平台的命令混用

1、在linux里可以直接运行windows程序;

(1)在linux里直接运行notepad.exe,在win平台上打开linux下的demo.py这个文本文件:

windows下直接使用kali(二)

还可以修改保存。

(2)在linux里直接运行资源管理器explorer.exe,后面接一个".",在win平台上打开当前的linux目录:

windows下直接使用kali(二)

可以对目录里的文件进行增删改查。

2、在windows里直接运行linux命令;

用管理员权限打开PowerShell;

如:dir列出当前目录的所有文件;

如果对所列的内容进行筛选,我们可以加上 linux下的 筛选命令grep,但要加上管道符和wsl,完整命令如下(筛选字符串dsc):

dir | wsl grep dsc

windows下直接使用kali(二)

前半部分是windows命令,后半部分是linux命令,两者如此完美地结合在一起。

3、在linux里带UI的应用程序直接以windows窗口的形式打开;

这里要用到一个叫wslg的黑科技;它是利用了RDP远程桌面协议。

如Gimp程序,这是一个开源免费的图像编辑软件,类似于photoshop;在linux下安装一下,apt-get install gimp;

运行gimp,

windows下直接使用kali(二)

程序直接在windows下打开了。

二、linux远程桌面

4、linux的黑科技,远程桌面,解决了kali桌面问题;

先安装 apt install kali-win-kex

运行 kex --esm --ip --sound

windows下直接使用kali(二)

然后出现登录界面,输入当时的用户名和密码,我这里是:kali/kali

windows下直接使用kali(二)

等待几秒钟,然后出现了,

windows下直接使用kali(二)

居然是kali的桌面系统,这太熟悉了

windows下直接使用kali(二)

这跟vm中是一模一样。但它不存在虚拟机逃逸的问题。

三、两个配置文件

5、wsl2的配置文件

有两个。一种是wsl.conf,一种是.wslconfig;两者的区别:后者是windows的配置文件,对全局的子系统生效;前者是linux的专有配置,是配置在linux里,只对某个linux生效,属局部配置。

这里有8秒的梗,即更改完配置后,要用wsl --shutdown把linux子系统关闭,等8秒以后重启才能生效。

(1)专有配置wsl.conf:

将以下行添加到/etc/wsl.conf中:

[boot]

systemed=true

然后,通过 powershell使用wsl.exe --shutdown来关闭wsl以重启wsl实例。重启后,systemd就会运行了,可以使用systemctl来验证是否成功,

windows下直接使用kali(二)

如果出现上图,说明成功了;

我在第一次进行时,弹出了提示:“Failed to connect to bus: No such file or director”,这样解决:

apt-get install dbus

service dbus start

reboot

重新打开,就可以了。

关于wsl.conf的配置,还有很多,找官方文档去看。

(2).wslconfig

这里主要用于修改网络配置,我们看下网络配置:

windows下直接使用kali(二)

看到它的网段是172.26开头的,我的宿主机的网段ip是192.1682.102,

windows下直接使用kali(二)

也就意味着它们俩个不在同一个网段上,这就是典型的NAT网络,也就是局域网里的设备是访问不到这个wsl2虚拟机的,我们可以通过修改配置改成镜像网络,也就是让我的虚拟机跟我的windows共用同一个ip地址,看下如何修改:

在windows宿主机中:c:users用户名,创建一个配置文件.wslconfig,全局配置.wslconfig选项仅适用于在 Windows 内部版本 19041 及更高版本中作为 WSL 2 运行的分发版。

添加如下内容,保存,

[wsl2]

networkingMode = mirrored

wsl --shutdown,再等个8秒,wsl启动;

windows下直接使用kali(二)

官方文档说支持19041及以后的版本,这里都已是19045了,居然还不支持,也不知道为何?

注意:因为我的wsl2是255.255.240.0的掩码,可以双向访问到,可以不用修改。如果真要连通,可以参考这篇文章《靶场中跨网段的互联互通》;虽然是靶场开头字样,但适用于任何需要联通的广义场景。

四、配合编程软件开发,作为linux调试器

6、vs2022编译调试linux下程序

可以参见kali+cmake编译ELF程序 和 Windows+WSL(Ubuntu)+Vs2022编译ELF程序的踩坑记录的第二部分“二、Windows下WSL(Ubuntu)+Vs2022编译ELF程序“。

简单描述下:

(1)在 WSL 2 上安装进行生成和调试所需的工具

sudo apt update

sudo apt install g++ gdb make ninja-build rsync zip

(2)vs2022要安装有这个:

windows下直接使用kali(二)

(3)在VS2022上创建Cmake项目

(4)选择wsl作为调试器

windows下直接使用kali(二)

(5)这里要注意个问题,需要 CMake 3.11 或更高版本才能安装目标集成。

解决办法:

#  添加签名密钥

wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add -

# 添加源

sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ bionic main'

sudo apt-get update

# 安装cmake

sudo apt install cmake

再回到VS2022,重新打开项目,大功告成。

======================================================

题外话:上次碰到一哥们问了我一个问题:经常看你的公众号,你这个号是一个人还是几个人在运营?接着说,我看更新很快。

关于这个问题,我来聊聊,公众号目前是我个人,只是作一些记录想法,当成个记事本用,时间久了,也就有了感情,才当成了个窗口,有了这个通道,我“认识”了很多不认识的笔友,他们的喜欢也鼓舞着我,让我在工作之外找到了一份平和淡然,有了一份动力,激励着自己。想来有以下几方面的认识和感想:一是公众号内容来自于实战或外延知识,因此取之不绝,实战性可读性均较强;二是不会的东西太多,各类难题堆积如山,要不断拓展自己的外沿;我经常阅读他人的文章,受到了很多的引导启发,所以我公众号里有不少都是学习他人、自己再动手复现的过程,从中收获很大,同时写下自己的所思所想,聚沙成塔;三是动力是源泉,有了动力就不会找借口;当心中有心心念的事时,中午、晚上、周六日都是可以的;四是见得多了,熟悉了,本领域内的很多知识点都是秒过,所以不会花太多的时间,就显得快;五是将这里当成了学习历程的记录本,对自已有了要求,就不允许滥竽充数,更不能耽误有缘读者,尽力保证质量;六是乐于分享,赠人玫瑰,手有余香;互相交流,共同成长;很多朋友给我指出文章中的问题,我是有收获的;七是不要给自己太大的压力,有时间有精力有心情就多写写,没时间没精力没心情就不写,乐个自在。

原文始发于微信公众号(MicroPest):windows下直接使用kali(二)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月6日18:57:52
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   windows下直接使用kali(二)https://cn-sec.com/archives/3598090.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息