Nessus支持很多种环境, docker vm 主机 aws等等, 这里主要介绍两种:

  • 自己构建docker镜像, 也可以使用官网的,
  • 使用一键脚本, 文章末尾提供一键脚本

参考: https://www.iculture.cc/software/pig=25546

官方提供docker版本的Nessus镜像,但是没有插件 https://docs.tenable.com/nessus/Content/DeployNessusDocker.htm

docker pull tenableofficial/nessus

所以自己把插件添加进去, 在docker容器启动以后,运行下crack.sh, 就可以使用插件了

Nessus 下载地址

https://www.tenable.com/downloads/nessus

扫描漏洞模块下载地址

https://plugins.nessus.org/v2/nessus.php?f=all-2.0.tar.gz&u=4e2abfd83a40e2012ebf6537ade2f207&p=29a34e24fc12d3f5fdfbb1ae948972c6

镜像制作步骤:

  1. 拉取debian镜像,添加文件, 安装nessus
  2. 打包上传docker hub
  3. 使用
  4. 删除

1. 拉取Debian镜像,并添加文件, 安装nessus

拉取debian镜像
docker -d run -it --name nessus-init  -p 8834:8834 debian bash
添加文件
docker cp Nessus-10.5.0-debian10_amd64.deb nessus-init:/opt/
docker cp all-2.0.tar.gz nessus-init:/opt/
docker cp crack.sh nessus-init:/opt/

crack.sh 内容

#!/bin/bash

/etc/init.d/nessusd stop
/opt/nessus/sbin/nessuscli update /opt/all-2.0.tar.gz

cat > /opt/nessus/var/nessus/plugin_feed_info.inc <

参考 https://www.iculture.cc/software/pig=25546

我省略了PLUGIN_SET获取过程, 直接手工指定,

安装
dpkg -i Nessus-10.5.0-debian10_amd64.deb

安装好以后,访问对应IP的8834端口进行安装操作,

2. 打包镜像上传

有人会问为什么这里不先运行破解crack.sh后再打包, 因为权限问题! docker 无法保存使用chattr +i修改了权限的文件,所以选择在容器运行阶段进行解压和权限设置

打包
docker commit nessus-init dockerhub用户名/仓库名:tag名

#登陆,已登录过可忽略
docker login
    username:
    password:

#上传,使用上面coomit处创建的
docker push dockerhub用户名/仓库名:tag名

3. 使用

我们使用 --cap-add LINUX_IMMUTABLE 来进行权限设置

拉取镜像
docker run -d -it --name nessus --cap-add LINUX_IMMUTABLE -p 8834:8834  k9scc/nessus:v202303110605 bash

#登陆进 docker容器
docker exec -it nessus bash
导入插件和许可
#登陆进容器以后执行下面的命令
bash /opt/crack.sh

这个时候等一会就好了, 大约十分钟左右, 访问8834端口, 即可, 默认用户名 admin 密码 admin file

4. 删除

因为使用了 --cap-add LINUX_IMMUTABLE 权限, 删除容器的时候会提示失败, 我们需要取消对应文件的 锁定 权限即可 file 例如,上图的地址为

/var/lib/docker/overlay2/58cf5fc21037833de45ff6406a37d26a0cb10ef81df999a39a97f79e32db7bba/diff/opt/nessus/var/nessus/plugin_feed_info.inc
chattr -i /var/lib/docker/overlay2/58cf5fc21037833de45ff6406a37d26a0cb10ef81df999a39a97f79e32db7bba/diff/opt/nessus/var/nessus/plugin_feed_info.inc

插件目录,批量取消锁定权限

chattr -i -R /var/lib/docker/overlay2/c9df7514dedca1c5f230dd01d99016720986d2eb0195cd6c542aebe4b95da79e/diff/opt/nessus/lib/nessus/plugins/

每次新创建的docker, docker路径都是不一样的,docker 文件 映射的主机路径 为 Uppdir里面的路径,使用 inspect可以查看

docker inspect nessus

file

Linux一键安装

环境

  • OS: debian11
  • Nessus: 10.5.0
  • Plugins: 202303071847
直接使用
curl -k https://www.hao.kim/soft/nessus-install.txt | bash

其他系统的ness可以到这里下载 https://www.tenable.com/downloads/nessus 这里为debian11, 其他系统对应脚本的4-5行内容进行修改 file 如果没有安装curl,dpkg 的安装一下,

#debian/Ubuntu
apt install curl dpkg -y

#Rhel Centos
yum -y install curl dpkg -y

ness-install.sh

#!/bin/bash
/etc/init.d/nessusd stop

curl --request GET \
  --url 'https://www.tenable.com/downloads/api/v2/pages/nessus/files/Nessus-10.5.0-debian10_amd64.deb' \
  --output 'Nessus.deb'

dpkg -i Nessus.deb  && rm -rf Nessus.deb

curl -A Mozilla -o all-2.0.tar.gz \
  --url 'https://plugins.nessus.org/v2/nessus.php?f=all-2.0.tar.gz&u=4e2abfd83a40e2012ebf6537ade2f207&p=29a34e24fc12d3f5fdfbb1ae948972c6' &>/dev/null
#curl -A Mozilla -o all-2.0.tar.gz --url 'https://www.hao.kim/soft/all-2.0.tar.gz 如果国内下载慢可以使用我下载的, 每天更新

chattr -i -R /opt/nessus/lib/nessus/plugins/
chattr -i /opt/nessus/var/nessus/plugin_feed_info.inc
/opt/nessus/sbin/nessuscli update all-2.0.tar.gz && rm -rf update all-2.0.tar.gz

vernum=$(curl https://plugins.nessus.org/v2/plugins.php 2> /dev/null)

cat > /opt/nessus/var/nessus/plugin_feed_info.inc <

参考 https://www.iculture.cc/software/pig=25546