Jump to content

Hello visitors, welcome to the Hacker World Forum!

Red Team 1949  (formerly CHT Attack and Defense Team) In this rapidly changing Internet era, we maintain our original intention and create the best community to jointly exchange network technologies. You can obtain hacker attack and defense skills and knowledge in the forum, or you can join our Telegram communication group to discuss and communicate in real time. All kinds of advertisements are prohibited in the forum. Please register as a registered user to check our usage and privacy policy. Thank you for your cooperation.

TheHackerWorld Official

Kali Vagrant Rebuilt: Out With Packer, In With DebOS

Featured Replies

Posted

Vagrant 文件*.box 是预先配置的虚拟机(VM) VM 映像,当导入到HashiCorp 的Vagrant 中时,允许通过命令行与VM 进行交互。

您无需离开终端即可创建、启动、交互、停止、销毁虚拟机。想想容器(Docker/Podman),但针对虚拟机。

之前我们一直使用HashiCorp 的Packer 来生成HashiCorp 的Vagrant 图像。

Packer 是一个包装器,围绕您想要的任何虚拟机管理程序,它将自动安装操作系统(通过预置进行无人值守设置)、运行任何命令或脚本、导出虚拟机并最终压缩它。

Packer 的缺点是您需要在主机操作系统上安装所选的虚拟机管理程序,并且无法交叉构建。如果您使用Linux,则无法构建Window 的Hyper-V。

几年来,我们一直在使用DebOS 来自动构建虚拟机。这对我们来说非常有效。

最近我们意识到:“为什么我们有两个不同的系统,目的相同?”。

深入研究“如何制作vagrant base box VM”可以归结为几个要求:

修复用户名(vagrant) 修复/已知公共SSH 密钥(默认/标准不安全密钥对)能够执行超级用户操作(sudo) 真的很简单,只需要确保Vagrant 可以轻松访问虚拟机!

可选项目(和推荐),因为它有助于用户而不是Vagrant:

已知/修复凭据(到处都是流浪者)SSH 调整(加速气隙网络)所有这些都可以在安装后步骤中处理,我们已将其放入Kali-VM 构建脚本中。

现在,我们正在以同样的方式自动构建所有虚拟机(Stock 和Vagrant),所有虚拟机都在相同的基础设施设置(Linux!)中。

自Microsoft Windows 10 1607/Server 2016 起,导出虚拟机时,会出现3 个额外的“二进制”文件,其中包括*.vmcx/*.vmrs 以及*.xml。由于我们不再从Hyper-V 导出虚拟机,而是在外部生成虚拟机,因此我们没有这些文件。

现在,我们可以创建一个“模板”二进制文件来充当虚拟标记。

但这并不适合我们,我们不想包含项目,尤其是二进制文件。

Vagrant 开箱即用,需要这些二进制文件,但如果没有它们,就会失败。然而,稍后向上游提出合并请求,并添加了支持。因此,尝试使用Hyper-V 在Windows 上使用Kali 2025.2 或更高版本,使用v2.4.7 之前的vagrant 是行不通的。您需要使用较旧的Kali、不同的虚拟机管理程序、手动修补或将Vagrant 升级到v2.4.8(2025-08-05 发布)或更高版本。

由于Packer 不再生成Vagrant VM,因此我们重命名了git 存储库(gitlab.com/kalilinux/build-scripts/kali-vagrant - gitlab.com/kalilinux/build-scripts/kali-packer)。

最后,在废弃我们的Packer 构建脚本之前,我们再次刷新了这些构建脚本。我们可能不会使用它,但这并不意味着您不能。

演示

安装Vagrant 和VirtualBox 后:

$ vagrant box 添加kalilinux/rolling

==box: 正在加载框“kalilinux/rolling”的元数据

box: URL: https://vagrantcloud.com/api/v2/vagrant/kalilinux/rolling

该盒子可以与多个提供商合作!它的提供者

可以与下面列出的一起使用。请查看列表并选择

您将与之合作的提供商。

1) 超级v

2)libvirt

3)虚拟机

4)vmware_桌面

输入您的选择: 3

==box: 为provider: virtualbox (amd64) 添加框'kalilinux/rolling' (v2025.2.1)

box: 下载: https://vagrantcloud.com/kalilinux/boxes/rolling/versions/2025.2.1/providers/virtualbox/amd64/vagrant.box

box: 正在计算和比较框校验和.

==box: 已成功为“virtualbox (amd64)”添加框“kalilinux/rolling”(v2025.2.1)!

$

$ 流浪者盒子列表

kalilinux/滚动(virtualbox,2025.2.1,(amd64))

$

$ mkdir -pv vagrant-demo/; cd vagrant-demo/

mkdir: 创建了目录'vagrant-demo/'

$

$ vagrant init --force --minimal kalilinux/rolling

[.]

$

$ cat Vagrantfile

# -*- mode: 红宝石-*-

# vi: 设置ft=ruby :

Vagrant.configure('2') 执行|config|

config.vm.box='kalilinux/滚动'

结束

$

$ vagrant up --provider virtualbox

将机器“默认”与“virtualbox”提供商一起使用.

==default: 输入基础框'kalilinux/rolling'.

==default: 正在生成NAT 网络的MAC 地址.

==default: 检查框“kalilinux/rolling”版本“2025.2.1”是否是最新的.

==default: 设置VM:的名称vagrant-demo_default_1753960552589_87147

Vagrant 当前配置为创建VirtualBox 同步文件夹

已启用“SharedFoldersEnableSymlinksCreate”选项。如果流浪者

来宾不受信任,您可能需要禁用此选项。了解更多

有关此选项的信息,请参阅VirtualBox 手册:

https://www.virtualbox.org/manual/ch04.html#sharedfolders

可以使用环境变量: 全局禁用此选项

VAGRANT_DISABLE_VBOXSYMLINKCREATE=1

或Vagrantfile: 中的每个文件夹

config.vm.synced_folder '/host/path', '/guest/path', SharedFoldersEnableSymlinksCreate: false

==default: 清除任何先前设置的网络接口.

==default: 正在根据配置准备网络接口.

默认:适配器1: nat

==默认: 转发端口.

默认: 22(来宾)=2222(主机)(适配器1)

==default: 正在运行“预启动”VM 自定义.

==default: 正在启动虚拟机.

==default: 等待机器启动。这可能需要几分钟.

默认: SSH地址: 127.0.0.1:2222

默认: SSH用户名: vagrant

默认: SSH 身份验证方法: 私钥

default: 警告: 连接重置。正在重试.

default: 警告: 远程连接断开。正在重试.

default: 警告: 连接重置。正在重试.

default: 警告: 远程连接断开。正在重试.

默认:

default: Vagrant 检测到不安全密钥。 Vagrant 会自动替换

default: 使用新生成的密钥对以提高安全性。

默认:

default: 正在访客中插入生成的公钥.

default: 正在从来宾中删除不安全的密钥(如果存在).

default: 钥匙已插入!使用新的SSH 密钥断开连接并重新连接.

==default: 机器已启动并准备就绪!

==default: 正在检查虚拟机中的来宾添加.

default: 此VM 上的来宾添加与已安装的版本不匹配

默认: VirtualBox!在大多数情况下这很好,但在极少数情况下可能会这样

default: 会阻止共享文件夹等内容正常工作。如果你看到

default: 共享文件夹错误,请确保来宾添加在

default: 虚拟机与您安装的VirtualBox 版本匹配

default: 您的主机并重新加载您的虚拟机。

默认:

default: 来宾添加版本: 7.0.20

默认: VirtualBox 版本: 7.1

==default: 正在挂载共享文件夹.

默认: /tmp/vagrant-demo=/vagrant

$

$ 流浪者ssh

Linux kali 6.12.25-amd64 #1 SMP PREEMPT_DYNAMIC Kali 6.12.25-1kali1 (2025-04-30) x86_64

Kali GNU/Linux 系统中包含的程序是自由软件;

每个程序的确切分配条款在

/usr/share/doc/*/copyright 中的各个文件。

Kali GNU/Linux 绝对不提供任何保证

适用法律允许。

┌──(流浪㉿kali)-[~]

└─$

备忘单

vagrant box添加kalilinux/rolling --force --clean --provider virtualbox --box-version 2025.2.1

mkdir -pv kali-vagrant/cd $_

vagrant init kalilinux/rolling --force --minimal --output - --box-version 2025.2.1 | vagrant init kalilinux/rolling --force --minimal --output --box-version 2025.2.1 | tee 流浪文件

vagrant up --provider virtualbox

流浪者ssh

更多阅读

Kali inside Vagrant (Guest VM)自定义Kali Vagrant Vagrantfilekali-packer/README.vagrant.mdkali-packer/README.packer.mdBuild Script: kali-packerBuild Script: kali-vm

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.