使用DWN在Docker中进行渗透测试
关于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中进行渗透测试相关推荐
- 风险评估中的渗透测试
http://blog.ixpub.net/html/46/1772146-402892.html 风险评估中的渗透测试上一篇 / 下一篇 2009-01-06 08:05:05 查看( 111 ) ...
- 记一次docker虚拟机横向移动渗透测试
本次渗透在几个docker虚拟机间多次横向移动,最终找到了一个可以进行docker逃逸的出口,拿下服务器.渗透过程曲折但充满了乐趣,入口是172.17.0.6的docker虚拟机,然后一路横向移动,最 ...
- kail中的渗透测试工具
1.AssassinGo 基于Go的高并发可拓展式Web渗透框架 AssassinGo是一个可扩展和并发的信息收集和漏洞扫描框架,该框架基于Vue的WebGUI,前后端交互主要采用WebSocket技 ...
- kail linux中的渗透测试工具
1.Nmap Nmap Nmap(即 "网络映射器")是 Kali Linux 上最受欢迎的信息收集工具之一.换句话说,它可以获取有关主机的信息:其 IP 地址.操作系统检测以及网 ...
- BackTrack平台中主流渗透测试工具
信息收集第一类.DNS扫描工具 收集信息包括:域名注册信息 域名解析服务器(DNS Server).有效的子域名称 1.Whois 使用方法:#whois 顶级域名 2.Dnsenum 所在路 ...
- frp内网穿透—将kali代理在公网中进行渗透测试
文章目录 前言 Frp简介 准备工具 实现内网穿透 frp服务端配置 frp客户端配置 测试 HTTP服务测试 ssh服务测试 反弹shell测试 注意 前言 由于工作常需要用到kali,但是公网服务 ...
- 在开发流程中嵌入安全测试
ContinuumSecurity创始人Stephen de Vries,在Velocity Europe 2014大会上提出了持续且可视化的安全测试的观点.Stephen表示,那些在敏捷开发过程中用 ...
- 渗透测试集成环境Faraday
渗透测试集成环境Faraday Kali Linux集成了海量的渗透测试工具.但是这些工具在使用的时候,还是分离的.虽然用户可以通过Shell.日志/报告导入导出功能等方式,进行整合,但是仍然不便于分 ...
- Android 渗透测试学习手册 第七章 不太知名的 Android 漏洞
第七章 不太知名的 Android 漏洞 作者:Aditya Gupta 译者:飞龙 协议:CC BY-NC-SA 4.0 在本章中,我们将了解一些不太知名的 Android 攻击向量,这在 Andr ...
- 全员编程的时代下,软件测试如何转渗透测试?
随着时代的不断发展,软件测试这一行越来越不好做了,各种自动化工具的普遍,再加上00后都开始抢饭碗了(开个玩笑). 软件测试:(Software Testing),一种用来促进鉴定软件的正确性.完整性. ...
最新文章
- java 中格式化数字
- Linux chattr命令详解
- qtextedit 默认文案_QT中常用的控件说明.md
- 测试服务器最大链接数_JMeter压力测试集合点教程
- 声呐图像数据集_MaskedFace-Net 口罩人脸基准数据集,13万+图像数据
- 模板:网络流(Dinic算法)
- 【python】入门学习(五)
- django -- 实现ORM登录
- 如何订阅MVP on dot NET(或其它播客) - iTunes版
- 你网购遭遇钓鱼了吗?瑞星安全随身WiFi率先帮你拦截
- mysqld是服务,mysql是客户端
- Java-集合第六篇操作集合的工具类Collections
- 动态加载Asp.net分页控件
- struts2 传递json对象时的延迟加载异常处理方法
- 用实体类来做数据绑定(不用数据表数据字段的绑定方法)
- 【教程】InstallShield使用完全教程
- 海康摄像机通过Ehome协议接入EasyCVR无法成功上线的原因排查及配置注意事项
- linux4.12 交叉编译链,交叉编译工具链(很详细)
- COGS.1689.[HNOI2010]Bounce 弹飞绵羊(分块)
- 兼容android模拟器的微信apk,Android模拟器中安装apk的方法
热门文章
- CISCO路由器的备份与还原(2)
- 使用 T-SQL 实现 base64 解码
- 解决进入XP系统无法响应故障
- pygame里面物体闪烁运动_关于“雷氏力学”运动力在空间上积累的一点研究(1)...
- Linux下更改Python的软链接
- sleuth zipkin mysql_springCloud的使用08-----服务链路追踪(sleuth+zipkin)
- svn服务器搭建和使用_使用Gitea搭建自己的Git服务器
- .net pdf转图片_pdf转图片怎么转?看了就知道啦!
- 多边形面积的求法(已知每个点的坐标)hdu2036
- 【web前端】a只显示visited属性问题解决方法