在docker容器快速部署Nessus(Linux版)
0x01 Linux安装
deb / rpm安装(debian/ubuntu/centos等等)直接执行:
root@vamtest:~#sudo curl -fsSL https://get.docker.com/ | sh
关于windows下docker的安装和基本使用可以参考上一篇文章,《在docker容器中运行kali linux (windows版)》https://www.t00ls.com/thread-36440-1-1.html。
本文以nessus为例,方法是一样的,需要什么参照下面方法直接搜索即可。
安装完成后,我们可以使用search参数来搜索docker hub上公开的镜像,例如我要搜索nessus
root@vamtest:~#docker search nessus
选择一个,然后 docker pull NAME 即可pull到本地,完成后启动即可(具体可以参考上一篇文章)。但是为了介绍参数的使用,本文不使用这种方法。
当然,你也可以到https://hub.docker.com/explore/上去搜索
为了介绍参数的使用和避免跨洋数据传输产生的网络不稳定,我已经通过 docker save 【IMAGE ID】 -o nessus.tar 把镜像导出到一个叫nessus.tar的文件,文件下载地址在文章的尾部,你只需要按照以下的步骤导入即可
0x02 导入步骤
root@vamtest:~#docker load -i nessus.tar 其中nessus.tar为文件路径
完成后可以通过docker images 查看,如果你的和我一样显示为<none> <none> 可以执行下面的命令
root@vamtest:~#docker tag e714228e7aac nessus:latest 其中, e714228e7aac为IMAGE ID可以通过docker images查看,如下图,执行后再次输入docker images发现已经成功修改
0x03 启动
root@vamtest:~#docker run -d -p 8834:8834 e714228e7aac
参数解释:
与上一篇文章不同。上一篇文章中我们是使用 docker run -i -t vamvam/kalilinux 直接得到一个交互shell
但是,本次使用的是root@vamtest:~#docker run -d -p 8834:8834 IMAGEID
其中,-d 表示在后台运行,-p 表示 把本机的8834端口转发到容器的8834端口,如果需要,可用多个-p参数指定多个端口转发。
上述的-p是小写的p,如果使用大写的P则不需要指定端口,如docker run -d -P e714228e7aac。
执行完成后,可以用docker ps 列出运行中的容器
直接访问https://本机ip:8834 , 如图
打开http://www.tenable.com/products/nessus/nessus-plugins/obtain-an-activation-code申请一个免费版输入激活码即可。。
如过需要进入容器,执行
root@vamtest:~#docker exec -it 568e84c835a0 bash 把568e84c835a0替换为你的CONTAINER ID即可,可以通过docker ps获得,请看下图...
注意: 默认情况下,在容器中输入exit会退出容器并停止,我们使用exec参数(如上)即可实现输入exit后依旧在后运行。
0x04 停止容器
root@vamtest:~#docker stop 【CONTAINER ID】 //CONTAINER ID,可以通过docker ps获得
0x05 唠叨几句
容器有什么好处呢?举个简单的例子,比如我个人服务器,一般是用来运行web服务器,如果我在服务器上安装一大堆的渗透工具,可能会破坏系统的依赖关系。而我们在docker容器运行就完全不需要担心依赖关系了,容器和主机是隔离的,就算遇到最近的”sqlmap蜜罐“也不会影响到主机安全~
文中操作均在root权限下完成。
windows下直接使用-p 参数好像并不能转发,可以参考@uncia的这篇文章https://www.t00ls.com/thread-36467-1-1.html
文章的nessus.tar下载地址:http://pan.baidu.com/s/1dEJHqAd
TCV 1
deb / rpm安装(debian/ubuntu/centos等等)直接执行:
root@vamtest:~#sudo curl -fsSL https://get.docker.com/ | sh
关于windows下docker的安装和基本使用可以参考上一篇文章,《在docker容器中运行kali linux (windows版)》https://www.t00ls.com/thread-36440-1-1.html。
本文以nessus为例,方法是一样的,需要什么参照下面方法直接搜索即可。
安装完成后,我们可以使用search参数来搜索docker hub上公开的镜像,例如我要搜索nessus
root@vamtest:~#docker search nessus
选择一个,然后 docker pull NAME 即可pull到本地,完成后启动即可(具体可以参考上一篇文章)。但是为了介绍参数的使用,本文不使用这种方法。
当然,你也可以到https://hub.docker.com/explore/上去搜索
为了介绍参数的使用和避免跨洋数据传输产生的网络不稳定,我已经通过 docker save 【IMAGE ID】 -o nessus.tar 把镜像导出到一个叫nessus.tar的文件,文件下载地址在文章的尾部,你只需要按照以下的步骤导入即可
0x02 导入步骤
root@vamtest:~#docker load -i nessus.tar 其中nessus.tar为文件路径
完成后可以通过docker images 查看,如果你的和我一样显示为<none> <none> 可以执行下面的命令
root@vamtest:~#docker tag e714228e7aac nessus:latest 其中, e714228e7aac为IMAGE ID可以通过docker images查看,如下图,执行后再次输入docker images发现已经成功修改
0x03 启动
root@vamtest:~#docker run -d -p 8834:8834 e714228e7aac
参数解释:
与上一篇文章不同。上一篇文章中我们是使用 docker run -i -t vamvam/kalilinux 直接得到一个交互shell
但是,本次使用的是root@vamtest:~#docker run -d -p 8834:8834 IMAGEID
其中,-d 表示在后台运行,-p 表示 把本机的8834端口转发到容器的8834端口,如果需要,可用多个-p参数指定多个端口转发。
上述的-p是小写的p,如果使用大写的P则不需要指定端口,如docker run -d -P e714228e7aac。
执行完成后,可以用docker ps 列出运行中的容器
直接访问https://本机ip:8834 , 如图
打开http://www.tenable.com/products/nessus/nessus-plugins/obtain-an-activation-code申请一个免费版输入激活码即可。。
如过需要进入容器,执行
root@vamtest:~#docker exec -it 568e84c835a0 bash 把568e84c835a0替换为你的CONTAINER ID即可,可以通过docker ps获得,请看下图...
注意: 默认情况下,在容器中输入exit会退出容器并停止,我们使用exec参数(如上)即可实现输入exit后依旧在后运行。
0x04 停止容器
root@vamtest:~#docker stop 【CONTAINER ID】 //CONTAINER ID,可以通过docker ps获得
0x05 唠叨几句
容器有什么好处呢?举个简单的例子,比如我个人服务器,一般是用来运行web服务器,如果我在服务器上安装一大堆的渗透工具,可能会破坏系统的依赖关系。而我们在docker容器运行就完全不需要担心依赖关系了,容器和主机是隔离的,就算遇到最近的”sqlmap蜜罐“也不会影响到主机安全~
文中操作均在root权限下完成。
windows下直接使用-p 参数好像并不能转发,可以参考@uncia的这篇文章https://www.t00ls.com/thread-36467-1-1.html
文章的nessus.tar下载地址:http://pan.baidu.com/s/1dEJHqAd
TCV 1
评论15次
很好的,现在nessus 也不好破解了
学xi了一下,确实方便很多呢
提示缺少命令行,咋解决。。。
往后取证越来越有难度了。。。
docker stop 【CONTAINER ID】运行了这个之后,镜像没保存,是不是又会还原的原本的样子?
这个,是的
今天折腾了一整天docker。 stop 是不会还原的。其实就跟vmware 一样一个images就是一个ios镜像一个CONTAINER 就是一个实例。暂停了CONTAINER ID 其实就跟vmware 的挂起差不多。不会还原的!
你用的是哪个参数啊,exec还是什么。。
docker stop 【CONTAINER ID】运行了这个之后,镜像没保存,是不是又会还原的原本的样子?
这个,是的
今天折腾了一整天docker。 stop 是不会还原的。其实就跟vmware 一样 一个images就是一个ios镜像 一个CONTAINER 就是一个实例。 暂停了CONTAINER ID 其实就跟vmware 的挂起差不多。不会还原的!
docker stop 【CONTAINER ID】运行了这个之后,镜像没保存,是不是又会还原的原本的样子?
这个,是的
然儿docker。。还是不太好用啊。。都有虚机了,为啥要docker
看来你是没学过docker的,到极客学院上看几篇教程,你就会发现你喜欢上他了
然儿docker。。还是不太好用啊。。都有虚机了,为啥要docker
现在docker 这么火 以后全都是一键式部署的渗透环境了应该
docker stop 【CONTAINER ID】 运行了这个之后,镜像没保存,是不是又会还原的原本的样子?
这个分享十分漂亮
不错不错。直接写篇如何部署自己的工具库打包好自己镜像与后期更新自己工具库工具进行总结.win确实只能设置vbox转发出来端口.
对啊,类似的文章好像并不多,表哥可以写一篇总结...
还是把机会留给你折腾吧.
不错不错。直接写篇如何部署自己的工具库打包好自己镜像与后期更新自己工具库工具进行总结.win确实只能设置vbox转发出来端口.
对啊,类似的文章好像并不多,表哥可以写一篇总结...