Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
dwn — d(ockerp)wn - 一个Docker漏洞利用工具管理器 | Kitploit
工具/GitHubGitHub/sensepost/dwn
容器安全脚本与自动化渗透测试实用工具与框架
GitHubsensepost/dwn

dwn

d(ockerp)wn - 一个Docker漏洞利用工具管理器

查看仓库网站
156205年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享


🥽 dwn

d(ockerp)wn - Docker 攻击工具管理器

@leonjza PyPI 版本


介绍

dwn 是“黑客的 docker-compose”。它使用类似 docker-compose 的简单 YAML “计划”格式,定义镜像名称、版本以及卷/端口映射,从而配置工具以供使用。

特性

使用 dwn,你可以:

  • 在 Docker 容器中配置常用的渗透测试工具
  • 拥有上下文感知的卷挂载
  • 无需重启容器即可动态修改端口绑定
  • 还有更多!

安装

只需运行 pip3 install dwn。

用法

dwn 实际上非常简单。核心概念是“计划”(plans),其中定义了工具的信息(如名称、版本、挂载和绑定)。已有若干内置计划,你也可以创建自己的计划。不带参数直接运行 dwn,效果如下。

root@kitploit:~
❯ dwn
Usage: dwn [OPTIONS] COMMAND [ARGS]...

       __
   ___/ /    _____
  / _  / |/|/ / _ \
  \_,_/|__,__/_//_/
    docker pwn tool manager
    by @leonjza / @sensepost

Options:
  --debug  enable debug logging
  --help   Show this message and exit.

Commands:
  check    Check plans and Docker environment
  network  Work with networks
  plans    Work with plans
  run      Run a plan
  show     Show running plans
  stop     Stop a plan

要列出可用的计划,运行 dwn plans show。

root@kitploit:~
❯ dwn plans show
                                    dwn plans
┏━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ name             ┃ path                                  ┃
┡━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ sqlmap           │ /tools/dwn/plans/sqlmap.yml           │
│ wpscan           │ /tools/dwn/plans/wpscan.yml           │
│ gowitness-report │ /tools/dwn/plans/gowitness-report.yml │
│ msfconsole       │ /tools/dwn/plans/msfconsole.yml       │
│ gowitness        │ /tools/dwn/plans/gowitness.yml        │
│ nginx            │ /tools/dwn/plans/nginx.yml            │
│ cme              │ /tools/dwn/plans/cme.yml              │
│ netcat-reverse   │ /tools/dwn/plans/netcat-reverse.yml   │
│ semgrep-sec      │ /tools/dwn/plans/semgrep-sec.yml      │
│ semgrep-ci       │ ~/.dwn/plans/semgrep-ci.yml           │
│ neo4j            │ ~/.dwn/plans/neo4j.yml                │
└──────────────────┴───────────────────────────────────────┘
                                     11 plans

要运行一个计划,例如用 gowitness 截图 https://google.com,可以运行 dwn run gowitness --disable-db single https://www.google.com。该计划会在完成后退出,因此无需执行 dwn stop gowitness。

root@kitploit:~
❯ dwn run gowitness --disable-db single https://www.google.com
(i) found plan for gowitness
(i) volume: ~/scratch -> /data
(i) streaming container logs
08 Feb 2021 10:46:18 INF preflight result statuscode=200 title=Google url=https://www.google.com
❯
❯ ls screenshots
https-www.google.com.png

然而,像 netcat-reverse 这样的计划会保持活跃。你可以在容器启动后连接到该计划的 TTY,与可能收到的任何 shell 进行交互。用法示例:

root@kitploit:~
❯ dwn run netcat-reverse
(i) found plan for netcat-reverse
(i) port: 4444<-4444
(i) container booted! attach & detach commands are:
(i) attach: docker attach dwn_wghz_netcat-reverse
(i) detach: ctrl + p, ctrl + q

连接到该计划(并在其他地方执行 nc -e)

root@kitploit:~
❯ docker attach dwn_wghz_netcat-reverse
connect to [::ffff:172.19.0.2]:4444 from dwn_wghz_netcat-reverse_net_4444_4444.dwn:46318 ([::ffff:172.19.0.3]:46318)

env | grep -i shell
SHELL=/bin/zsh

read escape sequence

你也可以获取正在运行的计划报告

root@kitploit:~
❯ dwn show
                                running plan report
┏━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ plan           ┃ container(s)                          ┃ port(s)    ┃ volume(s) ┃
┡━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ netcat-reverse │ dwn_wghz_netcat-reverse_net_4444_4444 │ 4444<-4444 │           │
│                │ dwn_wghz_netcat-reverse               │            │           │
└────────────────┴───────────────────────────────────────┴────────────┴───────────┘

最后,停止一个计划。

root@kitploit:~
❯ dwn stop netcat-reverse -y
(i) stopping 2 containers for plan netcat-reverse

网络

dwn 允许你动态地将端口映射到计划,无需重启容器。网络命令位于 dwn network 子命令下。以 nginx 计划为例,我们可以动态添加端口映射。首先,启动 nginx 计划。

root@kitploit:~
❯ dwn run nginx
(i) found plan for nginx
(i) volume: ~/scratch -> /usr/share/nginx/html
(i) port: 80<-8888
(i) container dwn_wghz_nginx started for plan nginx, detaching

然后,用 cURL 测试通信

root@kitploit:~
❯ curl localhost:8888/poo.txt
haha, you touched it!

❯ curl localhost:9000/poo.txt
curl: (7) Failed to connect to localhost port 9000: Connection refused

端口 9000 未开放,因此我们添加一个新的端口绑定并测试连通性

root@kitploit:~
❯ dwn network add nginx -i 80 -o 9000
(i) port binding for 9000->nginx:80 created
❯
❯ curl localhost:9000/poo.txt
haha, you touched it!

更新计划

dwn plans pull 命令可用于更新计划中定义的 images。若只想更新单个计划,可在 pull 后添加计划名称,例如:dwn plans pull nginx。

编写计划

dwn plans new 命令可快速生成新计划的脚手架。虽然只需少数几个选项即可让计划运行起来,但 Python Docker SDK 中 run 调用支持的所有选项都是有效的标签,都可以使用。

许可证

dwn 采用 GNU General Public v3 许可证。超出本许可证范围的权限,请访问 http://sensepost.com/contact/ 获取。

下载工具