eikendev/hackenv
GitHub: eikendev/hackenv
一款基于 libvirt 的命令行工具,用于快速创建、管理和访问 Kali Linux 或 Parrot Security 临时虚拟机,专为安全研究和 CTF 场景设计。
Stars: 20 | Forks: 5
## 🚀 安装
**首选方式**是从[最新发布版本](https://github.com/eikendev/hackenv/releases)下载二进制文件。
或者,安装[必需的依赖项](#dependencies)并自行构建:
```
go install github.com/eikendev/hackenv/cmd/...@latest
```
确保 libvirt daemon 正在运行,并且已创建 socket。在 Fedora 上,可以通过以下方式完成:
```
sudo systemctl start libvirtd
sudo systemctl start virtqemud.socket
```
## 🤘 功能
- 支持 Kali Linux 和 Parrot Security。
- 在几秒钟内创建临时的虚拟机。
- 方便地下载最新的官方 live image。
- **简单直观**的命令行界面。
- 配置基于**公钥认证**的即时 SSH 访问。
- 在主机和客户机之间设置**共享目录**。
- 在客户机中设置与主机相同的**键盘布局**。
## 📄 用法
首先,确保您已安装[必需的依赖项](#dependencies)。
此外,您还需要一个网桥接口,[如下所述](#creating-a-bridge-interface)。
这可以通过运行 `hackenv fix create-bridge`(或 `./bin/hackenv_createbridge`)来简单实现。
然后,使用 `hackenv get` 下载镜像。
这将从官方镜像源下载 live image。
下载可能需要一些时间,所以请坐下来喝杯茶吧。
| :warning: **如果您运行的是 SELinux,您必须亲自为新镜像设置标签。查看[文件共享部分](#file-sharing)了解更多信息。** |
|-----------------------------------------------------------------|
接下来,运行 `hackenv up` 来启动虚拟机。
一旦此命令执行完毕,虚拟机就会运行并完成全面配置。
虚拟机将是临时的(易失性的),这意味着一旦机器关机,存储在共享目录之外的任何数据和配置都将被删除。
这是设计使然, admittedly opinionated。
您现在可以使用 `hackenv ssh` 启动 SSH 会话,或使用 `hackenv gui` 启动 GUI。
请注意,默认情况下,hackenv 将使用 Kali Linux 进行操作,并分别下载其镜像。
如果您想改用 Parrot Security 进行操作,请指定 `hackenv --type=parrot`,或查看[配置](#configuration)。
### 文件共享
hackenv 将自动在主机和虚拟机之间设置一个共享目录。
在主机端,目录是 `~/.local/share/hackenv/shared`,而在客户机端,它位于 `/shared`。
如果 SELinux 拒绝访问共享目录,您必须调整该目录的上下文。
如果您使用的是 Fedora 或类似系统,可以运行 `hackenv fix apply-labels`(或 `./bin/hackenv_applylabels`)。
该脚本还将重新标记下载的镜像。
如果您从外部向共享目录添加新文件,请不要忘记也为它们设置标签。
### 创建网桥接口
hackenv 使用网桥,以便您可以从主机通过 SSH 连接到客户机,同时客户机可以访问 Internet。
您可以通过运行 `hackenv fix create-bridge`(或 `./bin/hackenv_createbridge`)来创建此网桥。
请注意,此脚本**将请求提升权限**,以便它可以创建接口。
当然,请根据您的具体需求调整此脚本。
默认情况下,该接口的名称应为 `virbr0`,但可以使用命令行标志进行更改。
## ⚙ 配置
该工具目前不支持通过文件进行配置。
但是,可以使用环境变量设置某些选项。
查看命令的帮助 (`--help`) 以了解哪些选项支持此功能。
例如,要默认使用 Parrot Security 进行操作,您可以设置 `$HACKENV_TYPE=parrot`。
如果您同时使用这两种操作系统,那么我建议使用 shell 别名:
```
alias kali='hackenv --type=kali'
alias parrot='hackenv --type=parrot'
```
## 🥙 依赖项
- [libvirt](https://libvirt.org/) (virsh)
- [OpenSSH](https://www.openssh.com/) (ssh 和 ssh-keygen)
- setxkbmap
- [virt-viewer](https://virt-manager.org/) 或 [Remmina](https://remmina.org/)
要自行构建二进制文件,您还需要 libvirt 的开发文件,通常名为 `libvirt-dev` 或 `libvirt-devel`。
## 💡 替代方案
如果您不喜欢此工具,以下选项值得一试:
- [Vagrant](https://www.vagrantup.com/) 结合 [VirtualBox](https://www.virtualbox.org/)
- [Docker](https://www.docker.com/) 或 [Podman](https://podman.io/)
标签:EVTX分析, Go语言, libvirt, SSH, 日志审计, 渗透测试环境, 程序破解, 虚拟机管理