当前位置: 首页 > news >正文

5、关于kali搭建vulhub

Vulhub是一个基于Docker和Docker-compose的漏洞靶场环境,所以搭建vulhub分三步:

1、安装docker

2、安装docker-compose

3、安装vulhub

一、安装步骤

1、安装docker

因为kali太久没用,所以需要先更新软件列表最新源

apt-get update

安装docker

apt-get install docker.io

查看docker是否安装

docker -v

2、安装docker-compose

apt install docker-compose

安装报错,后来各种找原因,原因似乎是因为PyYaml版本过高,而docker-compose 仍支持的较低版本的 PyYaml (5.3.1),所以重新安装PyYaml (5.3.1)

pip install pyyaml==5.3.1
pip install docker-compose

3、安装vulhub,采用git克隆

git clone https://github.com/vulhub/vulhub.git

二、遇到问题

问题1:Traceback (most recent call last)

当使用docker-compose up -d启动靶场,报错

Traceback (most recent call last):
  File "/usr/local/bin/docker-compose", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.10/dist-packages/compose/cli/main.py", line 81, in main
    command_func()
  File "/usr/local/lib/python3.10/dist-packages/compose/cli/main.py", line 200, in perform_command
    project = project_from_options('.', options)
  File "/usr/local/lib/python3.10/dist-packages/compose/cli/command.py", line 60, in project_from_options
    return get_project(
  File "/usr/local/lib/python3.10/dist-packages/compose/cli/command.py", line 152, in get_project
    client = get_client(
  File "/usr/local/lib/python3.10/dist-packages/compose/cli/docker_client.py", line 41, in get_client
    client = docker_client(
  File "/usr/local/lib/python3.10/dist-packages/compose/cli/docker_client.py", line 124, in docker_client
    kwargs = kwargs_from_env(environment=environment, ssl_version=tls_version)
TypeError: kwargs_from_env() got an unexpected keyword argument 'ssl_version'
 

解决方法:手动修改代码

尝试修改 docker-compose 的源码,移除不兼容的 ssl_version 参数。

1、打开 /usr/local/lib/python3.10/dist-packages/compose/cli/docker_client.py 文件。

找到以下代码行:kwargs = kwargs_from_env(environment=environment,ssl_version=tls_version)

2、修改为:kwargs = kwargs_from_env(environment=environment)

问题2:无法连接

当使用docker-compose up -d启动靶场,显示连接失败

Creating network "apache_parsing_vulnerability_default" with the default driver
Pulling apache (php:apache)...
apache: Pulling from library/php
efc2b5ad9eec: Retrying in 1 second
a6a83fa76a2b: Retrying in 1 second
efb3cd9e6b42: Waiting
f41714dd6e6a: Waiting
e362d14d0b88: Waiting
d1b475c73fa4: Waiting
8c1c872d3db8: Waiting
03cc2132b34c: Waiting
51caad29038c: Waiting
ed8d9bd213bf: Waiting
50fd1ae1584b: Waiting
3faac715030a: Waiting
407897077fa2: Waiting
ERROR: error pulling image configuration: download failed after attempts=6: dial tcp 185.45.7.185:443: connect: connection refused

解决方法:配置国内镜像

1、在目录/etc/docker 下创建文件daemon.json,里面添加镜像连接。

      (注:有些docker目录里面只有key.json文件,没这个这daemon.json这个文件,需要自己创建)。创建文件后加上代码如下,URL表示国内的镜像链接:

{"registry-mirrors": ["https://hub.uuuadc.top","https://docker.anyhub.us.kg","https://docker.chenby.cn","https://dockerhub.jobcher.com","https://dockerproxy.com","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn"]
}

很多时候,镜像链接都用不了,我是参考GitHub里面的

https://gist.github.com/y0ngb1n/7e8f16af3242c7815e7ca2f0833d3ea6

三、使用vulhub

进入那个要测试的漏洞目录:Vulhub - Docker-Compose file for vulnerability environment

开启docker服务:systemctl start docker

启动容器环境:docker-compose up -d

关闭容器环境:docker-compose down

启动和关闭都是在当前漏洞目录运行命令,最后在物理机浏览器访问靶机IP地址就可以了

kali上创建环境:

物理机上打开

四、总结

开启docker服务:systemctl start docker

启动容器环境:docker-compose up -d

关闭容器环境:docker-compose down -v 或者 docker-compose down

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Datawhale X 魔搭 AI夏令营第四期 | AIGC文生图——可图Kolors-LoRA风格故事 Task1笔记
  • 雪花算法(Snowflake Algorithm)
  • C/C++字符串函数
  • LVS (Linux virual server)
  • 【ARM】ARM Cortex 处理器详细讲解
  • Upload 上传图标不显示
  • 【C#】StringComparer
  • 智能电话机器人的优势与挑战
  • 在mac上通过 MySQL 安装包安装 MySQL 之后,终端执行 mysql 命令报错 command not found: mysql
  • Pytorch-张量的创建
  • 电脑装机-热插拔
  • P1012 [NOIP1998 提高组] 拼数
  • java基础学习笔记1
  • 50 mysql 的 “where 1 = 1“ 的优化处理
  • 开启智能能效管理:4G 智能计量控制插座的协议对接与私有化部署
  • 【5+】跨webview多页面 触发事件(二)
  • Android开源项目规范总结
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • E-HPC支持多队列管理和自动伸缩
  • JavaScript新鲜事·第5期
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • mac修复ab及siege安装
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • SpiderData 2019年2月23日 DApp数据排行榜
  • SpringBoot几种定时任务的实现方式
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 从零开始学习部署
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 驱动程序原理
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 写代码的正确姿势
  • 一天一个设计模式之JS实现——适配器模式
  • HanLP分词命名实体提取详解
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 带你开发类似Pokemon Go的AR游戏
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • ​secrets --- 生成管理密码的安全随机数​
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • (007)XHTML文档之标题——h1~h6
  • (C语言)逆序输出字符串
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (独孤九剑)--文件系统
  • (黑马C++)L06 重载与继承
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (五)MySQL的备份及恢复
  • **PHP分步表单提交思路(分页表单提交)
  • .mysql secret在哪_MySQL如何使用索引
  • .NET Core 成都线下面基会拉开序幕
  • .Net 高效开发之不可错过的实用工具
  • .Net 应用中使用dot trace进行性能诊断
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • /proc/stat文件详解(翻译)
  • ?