安全路透社
当前位置:安全路透社 > 网络转载 > 正文

手把手教你如何使用Docker进行Web渗透测试

1.png

介绍

Docker是目前世界上最为先进的应用软件容器平台,Docker允许我们为每一种渗透测试任务创建不同的测试环境。在应用容器的帮助下,我们既可以将每一种测试环境存储在U盘中以方便携带,我们也可以将其保存在云端以便随时随地进行访问。比如说,你可以直接从云端下载测试环境,或者将测试环境直接拷贝到本地计算机中,而无需再花时间进行环境搭建了。没错,这一切Docker都可以帮你完成!

Live CD与容器

在此之前,很多测试人员会将各种不同的测试环境以LiveCD的形式进行存储,但LiveCD的使用则需要我们进行额外的配置。比如说,我们必须创建一个闪存驱动器或可启动的CD,甚至有时还需要使用到VirtualBox这样的虚拟机。

但是当我们使用Docker容器时,我们唯一要做的就是下载并安装Docker,而这个过程是非常简单的。安装完成之后,我们就可以从云端、U盘、或者DockerHUB中直接使用测试环境镜像了,这样不仅能为我们节省大量的时间,而且也提升了可移植性。

Docker到底是什么?

从本质上来说,Docker是一种在软件容器中帮助你创建、运行、测试和部署分布式应用的开源技术。Docker允许用户迅速地在任何系统环境中稳定且高效地部署应用。

2.png

我们为什么选择Docker?

我们之所以选择使用Docker,正是因为容器的可移植性、便捷性和高效性。在Docker的帮助下,我们只需要一个镜像,就能够适配不同的测试环境。比如说,我们先下载了一个Kali Linux作为基础容器,而这个容器并没有事先安装任何的工具。那么当我们需要进行信息取证的时候,我们就可以下载所需工具,然后将系统另存为取证镜像。当我们需要进行Web渗透测试时,我们又可以下载渗透测试工具,然后再将容器进行重新保存,而整个过程不会对基础容器产生影响。

如果你想了解更多有关Docker的详细内容,请参考这篇文章《Bullet Proof Your Docker》。

用于Web渗透测试的工具

在我们的容器中,我们会使用到各种各样的工具,但是这里为了演示方便,下面只给出可以通过控制台使用的工具:

-W3af-console

-SQLMap

-Arachni

-Nikto

-Websploit

-Nmap

安装

Docker的具体安装方法取决于你所使用的操作系统,但是对于大多数系统而言,我们可以直接从官方代码库中下载并安装。注:本文使用的是OpenSuse,相关操作如下:

_0x4a0x72@pwned ~ sudo zypper se docker

S | Nome | Resumo | Tipo

–+——————————+————————————————————–+————-

| docker | The Linux container runtime | pacote

_0x4a0x72@pwned ~ sudo zypper in docker

Once installed, you must enable and start the service

_0x4a0x72@pwned ~ sudo systemctl enable docker

_0x4a0x72@pwned ~ sudo systemctl start docker

_0x4a0x72@pwned ~ sudo docker info

Containers: 0

Running: 0

Paused: 0

Stopped: 0

Images: 0

Server Version: 1.11.2

Storage Driver: btrfs

Build Version: Btrfs v4.5.3+20160516

…….

Docker Root Dir: /var/lib/docker

Debug mode (client): false

Debug mode (server): false

Registry: https://index.docker.io/v1/

WARNING: No swap limit support

容器安装

3.png

首先我们要准备好KaliLinux发行版镜像,如果你手中有HUB Doccker的官方镜像那就再好不过了。

接下来,使用命令“sudo docker search Kali”我们可以列出DockerHUB中的所有镜像文件,然后选择第一个,因为这个是官方推荐的选项。

_0x4a0x72@pwned ~ sudo docker search kali

NAME DESCRIPTION STARS OFFICIAL AUTOMATED

kalilinux/kali-linux-docker Kali Linux Rolling DistributionBase Image 193 [OK]

接下来,将镜像下载到我们的设备中,这一步操作需要联网。

_0x4a0x72@pwned ~ sudo docker pullkalilinux/kali-linux-docker

Using default tag: latest

latest: Pulling from kalilinux/kali-linux-docker

b2860afd831e: Pull complete

340395ad18db: Pull complete

d4ecedcfaa73: Pull complete

3f96326089c0: Pull complete

e5b4b7133863: Pull complete

Digest:sha256:0aa8342172aacbe79957f66e7029c1fb38e14765bf35eff30624f90cb813a56f

Status: Downloaded newer image forkalilinux/kali-linux-docker:latest

_0x4a0x72@pwned ~ sudo docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

kalilinux/kali-linux-docker latest f321257d50f7 6 days ago602.4 MB

接下来,使用下面的命令运行我们的容器:

_0x4a0x72@pwned ~ sudo docker run –name WebPentest -t -dkalilinux/kali-linux-docker

_0x4a0x72@pwned ~ sudo docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

a5fb073e53c8 kalilinux/kali-linux-docker “/bin/bash” 10seconds ago Up 8 seconds WebPentest

测试工具安装

首先,通过下列命令访问容器的Shell:

_0x4a0x72@pwned ~ sudo docker exec -it WebPentest bash

root@a5fb073e53c8:/#

拿到Shell之后,我们需要更新容器,并安装Web渗透测试所需要的工具:

root@a5fb073e53c8:/# apt-get update

root@a5fb073e53c8:/# apt-get upgrade

root@a5fb073e53c8:/# apt-get install websploit w3af-consolearachni nikto sqlmap websploit nmap

安装完成之后,你可以直接在容器中执行相应的命令:

root@a5fb073e53c8:/# nmap localhost

Starting Nmap 7.12 ( https://nmap.org ) at 2016-06-30 09:09UTC

Nmap scan report for localhost (127.0.0.1)

Host is up (0.000010s latency).

Other addresses for localhost (not scanned): ::1

All 1000 scanned ports on localhost (127.0.0.1) are closed

Nmap done: 1 IP address (1 host up) scanned in 0.18 seconds

当然了,你也可以在容器外运行命令:

_0x4a0x72@pwned ~ sudo docker exec -it WebPentest nikto

–Nikto v2.1.6

—————————————————————————

+ ERROR: No host specified

-config+ Use this config file

…….

+ requires a value

最后,我们可以使用命令“commit”来保存更改并保存镜像:

_0x4a0x72@pwned ~ sudo docker commit -a “Junior Carreiro” -m“Install Web Pentest Tools” WebPentest

总结

在Docker容器的帮助下,我们可以根据自己的需要来分门别类地创建渗透测试环境。除此之外, 我们还可以将容器当作取证结果来提供给不同的人员进行审核。总而言之,容器的作用也许比我们想象中的还要强大。

* 参考来源:pentestmag, FB小编Alpha_h4ck编译

未经允许不得转载:安全路透社 » 手把手教你如何使用Docker进行Web渗透测试

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册