云计算运维

Windows Server 2003 - Windows Server 2019 系统工具,Linux系统脚本,Mysql、Nginx、PHP、Redis、K8S、Seafile、Weblogic 、Jenkins、DNS、DHCP、FTP、IIS、Zookeeper、Rabbitmq、Oracle、Tomcat、Mavrn等服务搭建维护,请关注我.

在Docker中安装Nessus


在Docker中安装Nessus

在本文中,我们将了解如何在Kali Linux 环境下将Docker Nessus 漏洞扫描器安装到 Docker 容器中。此外,我们还将介绍如何将 Nessus 与 Hydra 集成,以便为 Nessus 提供登录暴力破解功能。

准备工作:

1、Kali Linux

2、Centos7

3、Nessus(破解版也行,如果有条件请支持正版)

首先第一步,我们必须确保在我们的 Kali Linux 上安装了 Docker。

01在 Kali Linux 上安装 Docker

由于 Docker 没有预装在 Kali Linux 上,我们必须自己安装它。我们将使用 Docker 引擎社区 (docker-ce) 版本。

关于如何在 Kali Linux 上安装 Docker 的官方说明不存在,但不要担心。使用 Debian 的说明(链接)并假设我们拥有最新的 Debian 版本('buster'),我们总是取得成功。

安装步骤可以概括为以下命令

echo 'deb https://download.docker.com/linux/debian buster stable' >> /etc/apt/sources.list
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
apt-get update
apt-get remove docker docker-engine docker.io
apt-get -y install apt-transport-https ca-certificates curl gnupg2 software-properties-common
apt-get -y install docker-ce
service docker start
docker run hello-world

现在我们在 Kali Linux上安装了 Docker,我们可以继续在其中安装 Nessus。

02将 Nessus 安装到 Docker

作为 Nessus 容器的基础系统,我们将使用 Centos 7 Linux 发行版。我们将使用 Centos 7,因为它具有我们需要的所有依赖项。即我们要安装Hydra工具并将 Nessus 与其集成。这将在漏洞扫描期间提供 Nessus 登录暴力破解功能。Nessus 将能够使用提供的词表对各种网络服务执行登录攻击。

请注意,在 Centos 8 中,Hydra 软件包不可用。因此,我们必须坚持使用 Centos 7。但是,这可能会在未来发生变化,在这种情况下,下面的步骤应该也适用于 Centos 8。

01获取Nessus安装包(.rpm)

首先,我们需要从官方页面下载最新的 Nessus 包。在撰写本文时,最新版本为10.4.1。(因演示时没有及时更新版本,故用8.9.0版本作为演示)

02创建一个Dockerfile

接下来我们必须创建一个 Dockerfile。Dockerfile 包含用于构建 Docker 映像的一组指令。让我们创建以下文件,确保将其命名为“Dockerfile”:


FROM centos:7
ARG rpmfile
COPY $rpmfile /tmp/nessus.rpm
RUN set -x \
&& yum update -y \
\
&& yum -y install net-tools lsof tzdata \
&& yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm \
&& yum -y install hydra \
\
# Import Tanable's GPG key
&& rpm --import https://static.tenable.com/marketing/RPM-GPG-KEY-Tenable \
\
# Install the rpm
&& rpm -ivh /tmp/nessus.rpm \
\
# Cleanup
&& rm /tmp/nessus.rpm \
&& yum clean all \
&& rm -rf /var/cache/yum \
&& rm -rf /opt/nessus/var/nessus/{uuid,*.db*,master.key}
EXPOSE 8834
CMD ["/opt/nessus/sbin/nessus-service"]

现在这是我们应该在我们的计算机上看到的:

03构建 Nessus Docker 镜像

一切准备就绪后,我们可以使用以下命令构建 Nessus Docker 映像:

docker build -t centos7/nessus --build-arg rpmfile=Nessus-8.9.0-es7.x86_64.rpm .

构建过程通常需要几分钟。构建过程完成后,我们应该看到类似这样的东西:

04启动Nessus Docker容器

我们已经成功构建了 Nessus Docker 镜像,现在我们可以使用该镜像启动一个新的 Docker 容器。请注意,我们将为容器分配一个自定义 MAC 地址。如果需要,这将允许我们稍后备份容器并将其移动到另一个系统。例如,当我们想在没有互联网访问的情况下使用 Nessus 时,这非常有用。

好的,让我们使用以下命令启动它:

docker run -d --name nessus -p 8834:8834 --mac-address 00:0c:16:12:34:56 centos7/nessus /opt/nessus/sbin/nessus-service
#端口号随意

现在容器应该正在运行,我们可以打开https://你的地址:8834/并激活Nessus。

05最后检查

在插件激活和随后的编译之后,我们可以登录并开始使用它。为确保与Hydra的集成成功,我们应该在“Brute Force”子菜单下的扫描配置窗口中看到 Hydra 可用,如下所示:

如果一切顺利,我们现在有一个与 Hydra 集成的完全 dockerized Nessus 扫描仪。

现在让我们来看看一些常见的维护任务。

06重启后启动 Nessus Docker 容器

如果一不小心遇到了问题重新启动了机器,现在需要重新启动 Nessus docker 容器。只需像这样提出来,就不用担心扫描的结果消失,会发现所有扫描结果都在

现在可以返回https://你的地址:8834/并再次使用它。


# 启动Docker守护进程
service docker start
# 获取 Nessus 的容器 ID
docker ps -a
# 启动:
docker start 你的ID

07停止 Nessus Docker 容器

一般来说不需要停止 Nessus docker 我们通常让它一直运行。但是,如果需要停止它(例如重新启动它),可以使用“docker stop”或“docker kill”的任何其他 docker 容器一样执行此操作。例:


# 获取 Nessus 容器的ID
docker ps
# 停止:
docker stop 你的容器ID

现在容器应该停止了。然后,可以使用“docker start”再次启动它,如前所示。

08Nessus Docker 容器中的 Spawn shell

有时想检查并“登录”正在运行的 docker 容器。我们可以使用 Nessus 容器完美地做到这一点。要在其中生成一个 shell,只需运行:


# 获取Nessus容器ID
docker ps
# 在容器中执行交互式 shell
docker exec -i -t 你的容器ID/bin/bash

现在可以检查 Nessus docker 容器内是否一切正常。退出 shell 后,Nessus 仍在运行。

09将 Nessus Docker 容器移动到另一台机器上

假设客户不允许使用自己的计算机进行相关测试。并且没有随身携带笔记本电脑,而且也没有互联网。基本上需要在没有 Internet 访问的情况下使用 Nessus。应该怎么办?其实只需导出Nessus 容器并将其复制到 USB 闪存驱动器上。然后将 USB 闪存驱动器带到客户端并在那里导入它就可以了。

以下是步骤:

01导出容器

要导出正在运行的 Nessus docker 容器,请使用以下命令。请注意,我们还将压缩它:


# g获取你的 Nessus容器ID
docker ps
#导出并压缩
docker export 3802b0b61d8b | gzip > nessus_docker.gz

然后,将“nessus_docker.gz”文件传输到允许的 USB上,并将其带到客户端。

02导入容器并启动

现在,在客户端只需将文件复制到提供的机器上,并安装好 Docker。然后就可以导入它并使用以下命令启动它:

# 解压并导入
zcat nessus_docker.gz | docker import - centos7/nessus
# 启动
docker run -d --name nessus -p 8834:8834 --mac-address 00:0c:16:12:34:56 centos7/nessus /opt/nessus/sbin/nessus-service

现在已经启动成功了,可以使用相同的 MAC 地址我们可以毫无问题地在另一个系统上使用 Nessus。PS:如果是正常购买Nessus不能同时并行使用两个 Nessus工具,如果是破解版请忽略。

  • 分享:
评论
还没有评论
    发表评论 说点什么