我正在尝试为 Kali linux 中的漏洞研究安装 nessus。Kali 在 Windows 11 上作为 WSL2 的 Win-Kex 实例运行。我已经下载了 Nessus 并尝试安装:
sudo dpkg -i Nessus-10.1.2-debian6_amd64.deb
但我收到错误...
System has not been booted with systemd as init system (PID 1). Can't operate
完整的错误是:
[sudo] password for kali:
(Reading database ... 189342 files and directories currently installed.)
Preparing to unpack Nessus-10.1.2-debian6_amd64.deb ...
Unpacking nessus (10.1.2) over (10.1.2) ...
Setting up nessus (10.1.2) ...
Unpacking Nessus Scanner Core Components...
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
- You can start Nessus Scanner by typing /bin/systemctl start nessusd.service
- Then go to https://CLI-WIN-001:8834/ to configure your scanner
我试图从提示符启动服务,但同样的错误:
$ /bin/systemctl start nessusd.service
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
我尝试使用 service 命令启动服务,但出现错误以及找不到 nessusd 服务。
有人可以在这里帮忙吗?
首先(在我们讨论安装问题之前),这可能不是一个好主意,除非您非常了解并且可以接受这些限制。如果您查看我的个人资料,您就会知道,我回答了很多 WSL 问题 - 我认为总体来说很棒。但这是一个通常不是一个好的选择的领域。
WSL2 中的网络在Windows主机的/内部进行了 NAT。它不直接桥接到物理网络。结果,您将只能对 WSL2 之外的任何网络进行第 3 层访问,从而极大地阻碍了漏洞工具的使用。
在这种情况下,虚拟机是更好的选择。
旁注:WSL2 网络区域有一些改进,目前处于预览阶段。如果您使用的是 Windows 11 专业版/教育版或更高版本,则可以安装 Microsoft Store 中提供的 WSL 预览版,并按照此处的说明打开桥接网络。您的结果可能会有所不同。不包括电池。等等。
核心问题是 WSL 不使用 Systemd,即使在默认的发行版中也是如此。相反,WSL 目前使用自己的 /init 进程作为 PID 1,它执行我在这个答案中提到的一些 WSL 特定的任务(所以我不会在这里重复它们)。
换句话说,如果没有额外的努力,Systemd(因此
systemctl
)在 WSL 上不起作用。从Nessus doc中的外观来看,Nessus 确实在
/etc/init.d/nessusd
. 如果 Debian 软件包是这种情况,那么您应该可以通过以下方式启动它:如果这不起作用(从评论来看,它似乎可能不起作用),那么您仍然有几个选择:
查找 Nessus 的 Systemd 单元文件并确定它应该如何启动。有关如何使用简单服务执行此操作的示例,请参阅此答案。
或者(除非您真的知道自己在做什么,否则我并不真正推荐这样做)在 WSL 中启用 Systemd,可以手动或使用其中的帮助应用程序之一(也链接在上面的 Ask Ubuntu 答案中)。
我能够通过 Kali WSL 中的以下命令启动 Nessus:
然后可以在 URL 下访问该服务
https://<IP of WSL>:8834
我猜这是因为 WSL2 并没有真正“启动”linux,而是 Linux 的行为更像一个 Docker 容器,没有任何类型的 init 系统。
Mayb 使用 VM 会有所帮助。