龙少华 發表於 2016-8-8 17:05:56

Docker构建Web渗透测试工具容器

<p align="center"><img alt="DockerLogo.png" width="660" height="330" src="https://img.jbzj.com/file_images/article/201608/2016080816485347.png" /></p>
<p><br /></p>
<p><strong>Docker是世界领先的软件集装化平台,<strong>针对不同的渗透测试类型</strong>,我们完全可以使用Docker创建相应的环境。有了Docker容器,你可以把测试环境放到U盘或者云端。</strong></p>
<p>Docker是什么</p>
<p>Docker是一个开源的技术,在软件容器中,你可以创建、运行、测试和部署应用程序。Dcoker可以让你在任何环境中快速、可靠、稳定地部署应用程序。</p>
<p>容器具有可移植、方便、快速的优点。使用Docker,我们可以创建一个映像,在这个映像的基础上再创建其它环境。比如,我们下载了Kali Linux作为基础容器,这里面没装我们需要的工具。我们将它看做基础容器,在上面安装需要的工具,然后保存成一个新的映像,不会影响原始的映像。</p>
<p>也就是说,可以以原始映像为基础,创建出包含取证工具、Web渗透测试工具的容器。</p>
<p>用于Web渗透测试的工具</p>
<p>在这篇文章中,只使用了控制台工具。</p>
<blockquote>
<p>W3af-console</p>
<p>SQLMap</p>
<p>Arachni</p>
<p>Nikto</p>
<p>Websploit</p>
<p>Nmap</p>
</blockquote>
<p>安装</p>
<p>Docker的安装依赖于你使用的操作系统,但是,现在我们可以在官方仓库中找到针对大部分系统的安装包。</p>
<p>在这篇文章中,我们使用OpenSuse系统。</p>
<p></p>
<p></p>
<p>_0x4a0x72@pwned ~ sudo zypper se docker</p>
<p>S | Nome | Resumo | Tipo</p>
<p>&ndash;+&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;+&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&ndash;+&mdash;&mdash;&mdash;&mdash;-</p>
<p>| docker | The Linux container runtime | pacote</p>
<p>_0x4a0x72@pwned ~ sudo zypper in docker</p>
<p></p>
<pre></pre>
<p></p>
<p>安装成功后,你必须启用并启动服务</p>
<p></p>
<p></p>
<p>_0x4a0x72@pwned ~ sudo systemctl enable docker</p>
<p>_0x4a0x72@pwned ~ sudo systemctl start docker</p>
<p>_0x4a0x72@pwned ~ sudo docker info</p>
<p>Containers: 0</p>
<p>Running: 0</p>
<p>Paused: 0</p>
<p>Stopped: 0</p>
<p>Images: 0</p>
<p>Server Version: 1.11.2</p>
<p>Storage Driver: btrfs</p>
<p>Build Version: Btrfs v4.5.3+20160516</p>
<p>&hellip;&hellip;.</p>
<p>Docker Root Dir: /var/lib/docker</p>
<p>Debug mode (client): false</p>
<p>Debug mode (server): false</p>
<p>Registry: https://index.docker.io/v1/</p>
<p>WARNING: No swap limit support</p>
<p></p>
<pre></pre>
<p></p>
<p>容器安装</p>
<p>Kali发布者在HUB Docker上有一个官方映像,这可以大大加快我们的工作。</p>
<p>使用命令:<strong>sudo docker search Kali</strong>,可以列出Docker HUB上的映像,我们选择第一个。</p>
<p></p>
<p></p>
<p>_0x4a0x72@pwned ~ sudo docker search kali</p>
<p>NAME DESCRIPTION STARS OFFICIAL AUTOMATED</p>
<p>kalilinux/kali-linux-docker Kali Linux Rolling Distribution Base Image 193 </p>
<p>Let&rsquo;s do the pull image for our machine, This step depends on the internet connection.</p>
<p>_0x4a0x72@pwned ~ sudo docker pull kalilinux/kali-linux-docker</p>
<p>Using default tag: latest</p>
<p>latest: Pulling from kalilinux/kali-linux-docker</p>
<p>b2860afd831e: Pull complete</p>
<p>340395ad18db: Pull complete</p>
<p>d4ecedcfaa73: Pull complete</p>
<p>3f96326089c0: Pull complete</p>
<p>e5b4b7133863: Pull complete</p>
<p>Digest: sha256:0aa8342172aacbe79957f66e7029c1fb38e14765bf35eff30624f90cb813a56f</p>
<p>Status: Downloaded newer image for kalilinux/kali-linux-docker:latest</p>
<p>_0x4a0x72@pwned ~ sudo docker images</p>
<p>REPOSITORY TAG IMAGE ID CREATED SIZE</p>
<p>kalilinux/kali-linux-docker latest f321257d50f7 6 days ago 602.4 MB</p>
<p></p>
<pre></pre>
<p></p>
<p>使用下面的命令,可以开启容器。</p>
<p></p>
<p></p>
<p>_0x4a0x72@pwned ~ sudo docker run &ndash;name WebPentest -t -d kalilinux/kali-linux-docker</p>
<p>_0x4a0x72@pwned ~ sudo docker ps</p>
<p>CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES</p>
<p>a5fb073e53c8 kalilinux/kali-linux-docker &ldquo;/bin/bash&rdquo; 10 seconds ago Up 8 seconds WebPentest</p>
<p></p>
<pre></pre>
<p></p>
<p>工具安装</p>
<p>我们可以在容器外面进行安装,但是这里我会演示如何像虚拟机一样访问容器。</p>
<p>我们执行下面的命令获取容器的shell。</p>
<p></p>
<p>_0x4a0x72@pwned ~ sudo docker exec -it WebPentest bash</p>
<p>root@a5fb073e53c8:/#</p>
<p></p>
<p></p>
<pre></pre>
<p></p>
<p>在拿到shell后,我们更新容器,安装web渗透测试时需要的工具。</p>
<p></p>
<p></p>
<p>root@a5fb073e53c8:/# apt-get update</p>
<p>root@a5fb073e53c8:/# apt-get upgrade</p>
<p>root@a5fb073e53c8:/# apt-get install websploit w3af-console arachni nikto sqlmap websploit nmap</p>
<p></p>
<pre></pre>
<p></p>
<p>安装完成后,我们可以在容器里面正常执行命令</p>
<p></p>
<p>root@a5fb073e53c8:/# nmap localhost</p>
<p>Starting Nmap 7.12 ( https://nmap.org ) at 2016-06-30 09:09 UTC</p>
<p>Nmap scan report for localhost (127.0.0.1)</p>
<p>Host is up (0.000010s latency).</p>
<p>Other addresses for localhost (not scanned): ::1</p>
<p>All 1000 scanned ports on localhost (127.0.0.1) are closed</p>
<p>Nmap done: 1 IP address (1 host up) scanned in 0.18 seconds</p>
<p></p>
<p></p>
<pre></pre>
<p></p>
<p>或者也可以在容器外面运行。在完成命令之后,使用转义序列Ctrl-p + Ctrl-q,你可以不退出shell,而是断开连接。</p>
<p></p>
<p></p>
<p>_0x4a0x72@pwned ~ sudo docker exec -it WebPentest nikto</p>
<p>&ndash; Nikto v2.1.6</p>
<p>&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;</p>
<p>+ ERROR: No host specified</p>
<p>-config+ Use this config file</p>
<p>&hellip;&hellip;.</p>
<p>+ requires a value</p>
<p>Note: This is the short help output. Use -H for full help text.</p>
<p></p>
<pre></pre>
<p></p>
<p>使用commit,可以将所做的改变保存成映像。</p>
<p>_0x4a0x72@pwned ~ sudo docker commit -a &ldquo;Junior Carreiro&rdquo; -m &ldquo;Install Web Pentest Tools&rdquo; WebPentest</p>
<pre></pre>
<p>结论</p>
<p>使用Docker容器,我们可以根据需要创建渗透测试环境或者审计环境。我们也可以将容器作为证据的一部分向客户展示,或者将容器交给客户让他们进行审计。</p>
頁: [1]
查看完整版本: Docker构建Web渗透测试工具容器