跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

精选回复

发布于

在过去的18 个月里,我们断断续续地致力于Kaboxer,就在Kali 2021.1 之前,它已经准备好说“Hello World”(然后它将开始向您发送应用程序)。

TL;DR - 这是什么?

Kaboxer,这个名字是什么? Kali 应用Boxer

这意味着什么?容器中的应用程序,用于打包(对于难以正确打包的应用程序来说,这是一种前进的方式)。但它们不是独立的容器,而是集成到标准Kali 包管理系统中,并且可以通过标准apt 命令安装/删除。

好的。但是Kaboxer 是做什么的呢?并非每个工具都易于打包。有各种标准需要满足,有时是一些疯狂的依赖树或特殊的系统修改。您可能需要使用旧库,或者可能需要更改会破坏另一个应用程序的配置。你做什么工作?我们与工具作者合作,尝试让它变得更容易,或者我们花了很多深夜试图让它适合,或者我们只是无法打包它。

输入卡博克瑟。使用容器,我们可以将复杂的非标准包放入容器中,并将其与操作系统的其余部分集成,并将其捆绑到包装生态系统中。这意味着您可以轻松安装Kaboxer 程序并使用它,而无需采取任何特殊步骤。

Kaboxer 对我有什么好处? Kaboxer 有一些用例,具体取决于使用它的人:

对于使用Kali Linux 的人来说,它是透明的,因此您在使用它时不会注意到(这就是为什么您可能不认为它“有什么大不了”)。您只需获得更多工具即可!对于我们Kali 开发者来说,这是一个游戏规则的改变者。对于其他Debian 打包程序,这可能会引起您的注意。必须使用容器的开销。虽然安装的包很小,但其安装将下载所需的容器,即使对于简单的应用程序,该容器也将消耗高达数百兆字节。

Kaboxer 会发生什么?我们希望开始在Kali Linux 中包含更多以前无法打包的工具,并且您没有意识到您正在通过Kaboxer 使用它们。不幸的是,此类工具不会进入我们的默认安装,因为ISO 映像的大小增加太大。

概述

有多种工具可以为Kali 用户带来好处,但也存在一些问题,使它们难以作为*.deb 包正确发布。这可能是因为,tools:

开发时没有考虑到封装和系统集成。他们假设他们可以在运行时而不是在安装时安装特定版本的库或补丁库或下载软件。这违反了打包标准,也是糟糕的软件工程实践。可能觉得他们有权对操作系统或其他应用程序做任何他们想做的事。文件系统层次结构标准(FHS)。使用通常会受到其他服务影响的TCP或UDP端口。重新配置现有服务。与外部服务器交互(可能通过不安全的方法),因此软件本身不能完全信任。因此,将此类软件与系统上可能存在的有价值或敏感数据隔离可能是个好主意。提供上述所需隔离的一种方法是使用容器化。容器允许在隔离环境中运行应用程序,从而大大降低与系统其余部分(用户、服务、其他应用程序、现有文件、特定版本的库等)进行计划外交互的风险。

设计选择

虽然我们不排除支持其他容器化解决方案,但我们选择从Docker 开始。它众所周知,被广泛使用,并受益于庞大的图像生态系统,从而确保了其长期生存能力。 Docker 容器可以通过多种方式进行配置,以实现我们需要的与主机系统甚至多个容器之间的各种集成。

Kaboxer 的价值在于它如何通过常见的docker 功能(例如挂载点和端口重定向)以及与桌面菜单条目的集成,轻松地将docker 容器与主机系统绑定在一起。所有这些集成以及构建或检索docker 映像的说明都在单个YAML 文件中指定。

这是我们在Kali 中提供的.deb 文件中附带的单个YAML 文件,这些包的安装后脚本将透明地下载映像,以便应用程序准备好运行。

构建 Docker 镜像

docker 镜像的构建也是由Kaboxer 介导的,但没有什么神奇的,它归结为使用一些变量在特定的Dockerfile 上调用docker build。

由打包者负责编写Dockerfile,但当上游项目已经有Dockerfile 或提供了现成的docker 映像时,该步骤可能很简单。

Docker镜像的发布

这一步太无聊了,我们已经使用GitLab CI 实现了自动化。每次我们对专用于“kaboxed”应用程序的存储库(例如covenant)进行更改时,GitLab CI 都会重建关联的docker 镜像并将其存储在其镜像注册表中。

将图像集成到系统中

一旦应用程序容器化,我们仍然需要以无缝的方式(理想情况下甚至不会被注意到)向用户提供它。用户甚至不必知道应用程序在容器中运行。

我们已经解释过,用户会继续与Kali 包交互来安装和删除容器化应用程序,尽管这些包大多是在各种维护者脚本中运行Kaboxer 命令的空壳。他们还提供.desktop 文件,以便可以从常用的桌面菜单启动应用程序,并提供命令行帮助程序,以便可以从终端启动应用程序,而无需了解Kaboxer。

为了能够运行docker 容器,用户需要一些提升的权限:我们修改了Kali 安装程序,默认将这些权限授予在初始安装过程中创建的用户。对于其他用户,必须将他们添加到Kaboxer 组(adduser $USER kaboxer)。

用户显然希望保留他们的应用程序数据,因此Kaboxer 可以配置主机和容器之间共享的卷,从而即使容器的生命周期很短,也可以提供持久性。然后,根据应用程序的类型,您可能需要更具体的集成:

对于GUI 应用程序,我们需要可以访问主机X11 套接字。对于Web 应用程序,我们希望公开HTTP 端口并在适当的URL 上启动Web 浏览器。当前的Kaboxer 功能已满足这些基本需求,但将来可能需要其他类型的集成。

如果您仍然想了解有关Kaboxer 的更多信息,请参阅其主页(以及源代码)和我们的文档(包含“Hello World”示例)。

有关“现实世界”应用程序的示例,您可以查看我们的第一个“Kaboxed 应用程序”:

Covenant,一个突出.NET 攻击面的框架。 Covenant 作为在后台启动的服务器以及在浏览器中运行的Web 应用程序提供。 Firefox Developer Edition 是一个Web 浏览器,我们选择它是因为它是一个复杂的大型GUI 应用程序。 Zenmap,官方NMAP GUI。 Zenmap 依赖于已弃用的Python 2 库,这些库在Kali Linux 中不可用。想亲自尝试一下吗?

kali@kali:~$ sudo apt update sudo apt -y 安装covenant-kbx

.

卡利@kali:~$

kali@kali:~$ 契约-kbx

用法: covenant-kbx 开始|停止

卡利@kali:~$

kali@kali:~$ 契约-kbx 启动

在~/.local/covenant/data 中初始化用户数据

起始契约

开始时请稍候,可能需要很长时间.

使用网络浏览器打开https://127.0.0.1:7443

契约/默认开始

按ENTER 退出

卡利@kali:~$

kali@kali:~$ ss -at |查询7443

听0 4096 0.0.0.0:7443 0.0.0.0:*

卡利@kali:~$

不要忘记在网络浏览器中打开https://localhost:7443!

如果您想开始探索Kaboxer 本身并了解其幕后情况:

kali@kali:~$ kaboxer

use: kaboxer [-h] [-v] {运行、开始、停止、获取元文件、获取上游版本、准备、升级、列表、ls、构建、安装、清理、推送、保存、加载、清除} .

kaboxer: 错误: 需要以下参数: 操作

卡利@kali:~$

kali@kali:~$ kaboxer ls

应用程序安装版本可用版本来自YAML 的打包修订来自映像的打包修订

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

盟约0.6 - 1 1

卡利@kali:~$

最后,您可以通过搜索以-kbx: 结尾的包来跟踪Kali 中哪些程序正在使用Kaboxer

kali@kali:~$ apt-cache search --names-only '\-kbx$'

covenant-kbx - .NET 命令和控制框架

firefox-developer-edition-en-us-kbx - Mozilla Firefox Web 浏览器- 开发人员版- zh-CN

zenmap-kbx - 网络映射器前端

卡利@kali:~$

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。