关于DWN
DWN是一个针对网络安全研究人员设计和开发的Docker-Compose,它使用的是一种简单的YAML格式的Plan,支持在工具配置和安装过程中定义镜像名称、版本、卷/端口映射等。本质上来说,DWN就是一个Docker版本的渗透测试工具管理器。
当前版本的DWN支持以下功能:
在Docker容器中安装和配置常用渗透测试工具。
能够自动识别卷宗加载。
在不重新启动容器的情况下动态修改端口绑定。
更多功能敬请期待…

DWN安装
首先,我们需要在本地系统安装并配置好Python环境,然后运行下列命令即可安装DWN:
pip3 install dwn
工具使用
DWN的使用非常简单,这里的核心思想就是定义关于工具的信息-Plan,比如说工具名称、版本信息、加载和绑定等等。DWN已经有一些预置的Plan了,我们可以直接运行dwn命令来查看:
❯ dwn
Usage: dwn [OPTIONS] COMMAND [ARGS]…
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
如需查看所有可用Plan的列表,可以运行下列命令(“dwn plans show”):
❯ 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 │

└──────────────────┴───────────────────────────────────────┘

如果你想要运行gowitness(屏幕截图)这个Plan,可以直接运行下列命令:
dwn run gowitness --disable-db single https://www.google.com
这个Plan将会在完成任务后退出,因此我们不需要运行“dwn stop gowitness”命令:
❯ 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这样的Plan会一直保持运行,我们可以在它开始跟任意Shell交互之后接收到相关信息,比如说:
❯ 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
绑定Plan:
❯ 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
最后,终止一个Plan:
❯ dwn stop netcat-reverse -y
(i) stopping 2 containers for plan netcat-reverse

网络连接
DWN允许我们对Plan进行动态端口映射,而无需重启容器。网络连接命令属于dwn network的子命令。我们用nginx这个Plan来举个例子,我们可以对其进行动态端口映射。首先,我们需要启动nginx这个Plan:
❯ 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测试通信连接:
❯ 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尚未打开,我们需要添加一个新的端口绑定,然后测试连接:
❯ 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!
更新Plan
“dwn plans pull”命令可以更新Plan中定义的镜像。如需更新一个Plan,只需要在“pull”命令后添加Plan名称即可,比如说:

dwn plans pull nginx
编写Plan
“dwn plans new”命令可以用于快速构建新Plan。尽管启动和运行Plan只需要几个选项,但Python Docker SDK中存在的所有用于运行调用的选项都是可以使用的有效选项。

项目地址
DWN:https://github.com/sensepost/dwn

使用DWN在Docker中进行渗透测试相关推荐

  1. 风险评估中的渗透测试

    http://blog.ixpub.net/html/46/1772146-402892.html 风险评估中的渗透测试上一篇 / 下一篇 2009-01-06 08:05:05 查看( 111 ) ...

  2. 记一次docker虚拟机横向移动渗透测试

    本次渗透在几个docker虚拟机间多次横向移动,最终找到了一个可以进行docker逃逸的出口,拿下服务器.渗透过程曲折但充满了乐趣,入口是172.17.0.6的docker虚拟机,然后一路横向移动,最 ...

  3. kail中的渗透测试工具

    1.AssassinGo 基于Go的高并发可拓展式Web渗透框架 AssassinGo是一个可扩展和并发的信息收集和漏洞扫描框架,该框架基于Vue的WebGUI,前后端交互主要采用WebSocket技 ...

  4. kail linux中的渗透测试工具

    1.Nmap Nmap Nmap(即 "网络映射器")是 Kali Linux 上最受欢迎的信息收集工具之一.换句话说,它可以获取有关主机的信息:其 IP 地址.操作系统检测以及网 ...

  5. BackTrack平台中主流渗透测试工具

    信息收集第一类.DNS扫描工具 收集信息包括:域名注册信息 域名解析服务器(DNS  Server).有效的子域名称 1.Whois 使用方法:#whois    顶级域名 2.Dnsenum 所在路 ...

  6. frp内网穿透—将kali代理在公网中进行渗透测试

    文章目录 前言 Frp简介 准备工具 实现内网穿透 frp服务端配置 frp客户端配置 测试 HTTP服务测试 ssh服务测试 反弹shell测试 注意 前言 由于工作常需要用到kali,但是公网服务 ...

  7. 在开发流程中嵌入安全测试

    ContinuumSecurity创始人Stephen de Vries,在Velocity Europe 2014大会上提出了持续且可视化的安全测试的观点.Stephen表示,那些在敏捷开发过程中用 ...

  8. 渗透测试集成环境Faraday

    渗透测试集成环境Faraday Kali Linux集成了海量的渗透测试工具.但是这些工具在使用的时候,还是分离的.虽然用户可以通过Shell.日志/报告导入导出功能等方式,进行整合,但是仍然不便于分 ...

  9. Android 渗透测试学习手册 第七章 不太知名的 Android 漏洞

    第七章 不太知名的 Android 漏洞 作者:Aditya Gupta 译者:飞龙 协议:CC BY-NC-SA 4.0 在本章中,我们将了解一些不太知名的 Android 攻击向量,这在 Andr ...

  10. 全员编程的时代下,软件测试如何转渗透测试?

    随着时代的不断发展,软件测试这一行越来越不好做了,各种自动化工具的普遍,再加上00后都开始抢饭碗了(开个玩笑). 软件测试:(Software Testing),一种用来促进鉴定软件的正确性.完整性. ...

最新文章

  1. java 中格式化数字
  2. Linux chattr命令详解
  3. qtextedit 默认文案_QT中常用的控件说明.md
  4. 测试服务器最大链接数_JMeter压力测试集合点教程
  5. 声呐图像数据集_MaskedFace-Net 口罩人脸基准数据集,13万+图像数据
  6. 模板:网络流(Dinic算法)
  7. 【python】入门学习(五)
  8. django -- 实现ORM登录
  9. 如何订阅MVP on dot NET(或其它播客) - iTunes版
  10. 你网购遭遇钓鱼了吗?瑞星安全随身WiFi率先帮你拦截
  11. mysqld是服务,mysql是客户端
  12. Java-集合第六篇操作集合的工具类Collections
  13. 动态加载Asp.net分页控件
  14. struts2 传递json对象时的延迟加载异常处理方法
  15. 用实体类来做数据绑定(不用数据表数据字段的绑定方法)
  16. 【教程】InstallShield使用完全教程
  17. 海康摄像机通过Ehome协议接入EasyCVR无法成功上线的原因排查及配置注意事项
  18. linux4.12 交叉编译链,交叉编译工具链(很详细)
  19. COGS.1689.[HNOI2010]Bounce 弹飞绵羊(分块)
  20. 兼容android模拟器的微信apk,Android模拟器中安装apk的方法

热门文章

  1. CISCO路由器的备份与还原(2)
  2. 使用 T-SQL 实现 base64 解码
  3. 解决进入XP系统无法响应故障
  4. pygame里面物体闪烁运动_关于“雷氏力学”运动力在空间上积累的一点研究(1)...
  5. Linux下更改Python的软链接
  6. sleuth zipkin mysql_springCloud的使用08-----服务链路追踪(sleuth+zipkin)
  7. svn服务器搭建和使用_使用Gitea搭建自己的Git服务器
  8. .net pdf转图片_pdf转图片怎么转?看了就知道啦!
  9. 多边形面积的求法(已知每个点的坐标)hdu2036
  10. 【web前端】a只显示visited属性问题解决方法