使用Docker构建渗透测试容器(安全相关Docker Image收集)

前言

Docker是目前最火热的开源应用容器,拥有可移植、方便、快速的优点。使用Docker可以创建一个映像,在这个映像的基础上再创建其它环境。比如,我们下载了Kali Linux作为基础容器,这里面没装我们需要的工具。我们将它看做基础容器,在上面安装需要的工具,然后保存成一个新的映像,可以以原始映像为基础,创建出包含取证工具、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

安装成功后启动服务

_0x4a0x72@pwned ~ sudo systemctl enable docker
_0x4a0x72@pwned ~ sudo systemctl start docker
_0x4a0x72@pwned ~ sudo docker infoContainers: 0Running: 0Paused: 0Stopped: 0Images: 0Server Version: 1.11.2Storage Driver: btrfsBuild Version: Btrfs v4.5.3+20160516…….Docker Root Dir: /var/lib/dockerDebug mode (client): falseDebug mode (server): falseRegistry: https://index.docker.io/v1/WARNING: No swap limit support

安装容器

Kali在docker hub上有官方映像。

使用命令:sudo docker search Kali,可以列出Docker HUB上的映像,我们选择第一个。

_0x4a0x72@pwned ~ sudo docker search kali
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
kalilinux/kali-linux-docker Kali Linux Rolling Distribution Base Image 193 [OK]Let’s do the pull image for our machine, This step depends on the internet connection._0x4a0x72@pwned ~ sudo docker pull kalilinux/kali-linux-dockerUsing default tag: latest
latest: Pulling from kalilinux/kali-linux-docker
b2860afd831e: Pull complete340395ad18db: Pull complete
d4ecedcfaa73: Pull complete3f96326089c0: Pull complete
e5b4b7133863: Pull completeDigest: sha256:0aa8342172aacbe79957f66e7029c1fb38e14765bf35eff30624f90cb813a56fStatus: Downloaded newer image for kalilinux/kali-linux-docker:latest
_0x4a0x72@pwned ~ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
kalilinux/kali-linux-docker latest f321257d50f7 6 days ago 602.4 MB

然后开启容器

_0x4a0x72@pwned ~ sudo docker run –name WebPentest -t -d kalilinux/kali-linux-docker
_0x4a0x72@pwned ~ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a5fb073e53c8 kalilinux/kali-linux-docker “/bin/bash” 10 seconds ago Up 8 seconds WebPentest

安装工具

我们可以在容器外面进行安装,但是这里我会演示如何像虚拟机一样访问容器。

执行下如下命令获取容器的shell。

_0x4a0x72@pwned ~ sudo docker exec -it WebPentest bash
root@a5fb073e53c8:/#

获取shell后更新容器,安装渗透测试时需要的工具。

root@a5fb073e53c8:/# apt-get update
root@a5fb073e53c8:/# apt-get upgraderoot@a5fb073e53c8:/# apt-get install websploit w3af-console arachni nikto sqlmap websploit nmap

安装完成后可以在容器里面正常执行命令

root@a5fb073e53c8:/# nmap localhost
Starting Nmap 7.12 ( https://nmap.org ) at 2016-06-30 09:09 UTCNmap scan report for localhost (127.0.0.1)Host is up (0.000010s latency).Other addresses for localhost (not scanned): ::1All 1000 scanned ports on localhost (127.0.0.1) are closedNmap done: 1 IP address (1 host up) scanned in 0.18 seconds

或者在容器外面运行。在完成命令之后,使用转义序列Ctrl-p + Ctrl-q,可以不退出shell,而是断开连接。

_0x4a0x72@pwned ~ sudo docker exec -it WebPentest nikto– Nikto v2.1.6—————————————————————————+ ERROR: No host specified-config+ Use this config file…….+ requires a valueNote: This is the short help output. Use -H for full help text.

然后使用commit将所做的改变保存成映像。

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

Docker Image收集

  • GourdScan 分布式被动扫描器 v2.0链接: https://pan.baidu.com/s/1miLKhW8 密码: thrf
docker run -d -p 10022:22 -p 10086:10086 -p 10080:80 -p 16379:6379 ubuntu:14.04 /usr/sbin/sshd -D

SSH密码:

gourdscan_admin123~

Redis:

redis-server ~/GourdScan_v2/redis.conf
  • 巡风:企业内网的漏洞快速应急巡航扫描系统https://github.com/atiger77/XunFeng_Docker

部署方式

1.文件介绍

mongoauth.txt mongo认证文件Config.py Flask的配置文件,其中存放mongo密码要与上一个文件保持一致MongoDB-org-3.2.repo mongodb的repo文件Run.sh 执行文件,在docker启动后会执行 Dockerfile docker镜像生产文件

2.部署方式

a. 下载全部文件

$git clone git@github.com:atiger77/XunFeng_Docker.git

b. 修改密码后生成镜像

#docker build -t "xunfeng:v1" .

c. 启动镜像

#docker run -d -p 80:80 -d /var/log/xunfeng:/var/log/xunfeng xunfeng:v1
  • DVWA 1.9https://hub.docker.com/r/euphrat1ca/dvwa1.9_win10/

部署方式:http://www.mottoin.com/94363.html

  • Nessus链接: http://pan.baidu.com/s/1pLVlRLL 密码: i5kb
  • Kali Linuxhub.c.163.com/vamvam/kalilinux:latest
  • T00ls Test Docker(Sqlmap,Python,hydra,Nginx,php)https://c.163.com/hub#/m/repository/?repoId=36078
  • Mooder团队内部知识分享平台https://github.com/phith0n/mooder
  • BWAPP/xssed/DVWA/OWASP Broken Web Applications Projecthttps://github.com/MyKings/docker-vulnerability-environment
  • Web_Dionaea蜜罐系统https://github.com/atiger77/Dionaea部署:http://www.mottoin.com/86937.html
  • check_docker_image已知漏洞静态分析工具https://github.com/eliasgranderubio/check_docker_image部署:http://www.mottoin.com/92339.html
  • VulApps各种漏洞环境https://github.com/Medicean/VulAppsDockerHub 在线镜像地址:https://hub.docker.com/r/medicean/vulapps/
  • Vane:开源WordPress安全检测工具https://github.com/delvelabs/vane
  • django-DefectDojo漏洞跟踪程序https://github.com/OWASP/django-DefectDojo

总结

使用Docker容器可以根据需要创建渗透测试环境或者审计环境。也可以将容器作为证据的一部分向客户展示,或者将容器交给客户让他们进行审计。对于渗透测试工作来说应该会事半功倍。

分享到:更多 ()