news 2026/4/28 14:34:05

手把手教你用VMware和Ubuntu 20.04搭建本地AWD靶场(附避坑指南)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
手把手教你用VMware和Ubuntu 20.04搭建本地AWD靶场(附避坑指南)

零成本构建AWD训练环境:VMware+Ubuntu全流程实战指南

在网络安全竞赛领域,AWD(Attack With Defense)模式因其高度模拟真实攻防场景而备受青睐。但商业化的在线AWD平台往往价格不菲,且受网络环境影响大。本文将带你用最常见的VMware虚拟机和Ubuntu 20.04系统,在本地搭建一个完整的AWD训练环境,特别针对国内用户优化下载速度,并解决90%新手会遇到的关键问题。

1. 基础环境准备:从零开始配置虚拟机

1.1 VMware虚拟机创建与优化

首先从VMware官网获取Workstation Player(个人使用免费版足够):

# 官方下载地址(建议使用迅雷等工具加速) https://www.vmware.com/products/workstation-player.html

创建虚拟机时这几个参数需要特别注意:

  • 磁盘空间:建议分配40GB以上(AWD镜像可能占用较大空间)
  • 内存:至少4GB(运行Docker容器需要足够内存)
  • 网络适配器:选择NAT模式(避免复杂的网络配置)

安装完成后立即执行这两个关键操作:

  1. 安装VMware Tools提升性能:

    # 在VMware菜单选择"虚拟机"→"安装VMware Tools" sudo mount /dev/cdrom /mnt cd /mnt tar -xzvf VMwareTools-*.tar.gz -C /tmp/ cd /tmp/vmware-tools-distrib/ sudo ./vmware-install.pl
  2. 配置共享文件夹(方便主机与虚拟机传输文件):

    • 在VMware设置中添加共享文件夹
    • 在Ubuntu中挂载:
      sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other

1.2 Ubuntu 20.04系统调优

刚安装好的Ubuntu系统需要几个必要配置:

换源加速(清华源为例)

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i 's|http://.*archive.ubuntu.com|https://mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list sudo sed -i 's|http://.*security.ubuntu.com|https://mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list

基础工具安装

sudo apt update && sudo apt install -y \ git \ vim \ net-tools \ openssh-server \ python2 \ docker.io

注意:Ubuntu 20.04默认没有python2,必须手动安装。部分AWD平台脚本依赖python2环境。

2. Docker环境配置:解决镜像拉取难题

2.1 Docker换源与加速

国内直接拉取Docker官方镜像速度极慢,需要配置镜像加速器:

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com", "https://registry.docker-cn.com" ] } EOF

重启Docker服务使配置生效:

sudo systemctl daemon-reload sudo systemctl restart docker

验证配置是否成功:

docker info | grep Mirrors -A 3

2.2 常见AWD镜像预加载

推荐几个常用的AWD比赛镜像及其加速下载方法:

镜像名称用途加速下载命令
zhl2008/web_14.04经典Web靶机docker pull registry.cn-hangzhou.aliyuncs.com/awd-training/web_14.04
ctftraining/nginxNginx漏洞环境docker pull docker.mirrors.ustc.edu.cn/ctftraining/nginx
vulhub/struts2Struts2漏洞集合docker pull hub-mirror.c.163.com/vulhub/struts2

下载后需要重新tag为原始名称:

docker tag registry.cn-hangzhou.aliyuncs.com/awd-training/web_14.04 zhl2008/web_14.04

3. AWD平台部署与排错实战

3.1 awd-platform安装与配置

使用国内Gitee镜像源加速下载:

git clone https://gitee.com/jikemofan/awd-platform.git cd awd-platform

平台目录结构解析:

awd-platform/ ├── batch.py # 环境批量生成脚本 ├── start.py # 启动脚本 ├── stop_clean.py # 停止清理脚本 ├── web_yunnan_simple/ # 示例比赛配置 │ ├── check.py # 存活检测脚本 │ └── ... └── www/ # Web题目文件

初始化2队比赛环境:

python2 batch.py web_yunnan_simple 2

启动环境(后台运行):

nohup python2 start.py ./ 2 > awd.log 2>&1 &

3.2 常见问题解决方案

问题1:端口无法访问

# 检查防火墙状态 sudo ufw status # 临时关闭防火墙 sudo ufw disable # 或放行特定端口(如8080) sudo ufw allow 8080/tcp

问题2:flag提交接口失效手动提交flag的curl命令示例:

curl "http://localhost:8080/flag_file.php?token=team1&flag=TEST_FLAG"

问题3:Docker容器异常退出查看容器日志:

docker logs -f <container_id>

重启单个容器:

docker restart <container_name>

4. 高级配置与训练方案

4.1 多机联队训练配置

如需在局域网内多台机器部署,需要修改网络配置:

  1. 将虚拟机网络改为桥接模式

  2. 设置静态IP避免变化:

    sudo vim /etc/netplan/00-installer-config.yaml

    添加配置示例:

    network: ethernets: ens33: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [114.114.114.114, 8.8.8.8]
  3. 在其他机器访问主控机IP即可加入训练

4.2 自定义比赛题目开发

在www目录下添加自己的Web题目:

  1. 创建题目目录结构:

    mkdir -p www/new_challenge/{html,php}
  2. 编写Dockerfile构建自定义镜像:

    FROM ubuntu:14.04 RUN apt update && apt install -y apache2 php5 COPY ./www /var/www/html EXPOSE 80 CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
  3. 构建并测试镜像:

    docker build -t my_challenge . docker run -d -p 8888:80 my_challenge

5. 监控与自动化工具集成

5.1 实时监控看板配置

使用netdata实现资源监控:

# 安装netdata bash <(curl -Ss https://my-netdata.io/kickstart.sh)

访问地址:http://<虚拟机IP>:19999

5.2 自动化flag提交脚本示例

Python自动提交脚本(保存为auto_submit.py):

import requests import time TEAM_IP = "192.168.1.100" TEAM_TOKEN = "team1" def submit_flag(flag): url = f"http://{TEAM_IP}:8080/flag_file.php" params = {"token": TEAM_TOKEN, "flag": flag} try: r = requests.get(url, params=params, timeout=3) return "success" in r.text except: return False if __name__ == "__main__": while True: # 这里替换为实际的flag获取逻辑 fake_flag = "FLAG_" + str(int(time.time())) if submit_flag(fake_flag): print(f"[+] Flag submitted: {fake_flag}") time.sleep(60)

运行脚本:

python3 auto_submit.py
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/28 14:33:43

CheatEngine-DMA插件:硬件级内存访问的终极解决方案

CheatEngine-DMA插件&#xff1a;硬件级内存访问的终极解决方案 【免费下载链接】CheatEngine-DMA Cheat Engine Plugin for DMA users 项目地址: https://gitcode.com/gh_mirrors/ch/CheatEngine-DMA CheatEngine-DMA是一款专为DMA硬件用户设计的Cheat Engine插件&…

作者头像 李华
网站建设 2026/4/28 14:31:14

别再只盯着对抗训练了!用Diffusion模型给你的AI模型加个‘净化器’:DiffPure实战与调参避坑指南

扩散模型驱动的AI防御革命&#xff1a;DiffPure实战指南与工程化调参策略 当ResNet在ImageNet上被对抗样本轻易欺骗时&#xff0c;我们突然意识到&#xff1a;传统防御手段就像用补丁修复泰坦尼克号。DiffPure的出现&#xff0c;则如同为模型装上智能力场护盾——这个基于扩散模…

作者头像 李华
网站建设 2026/4/28 14:31:13

OpenAI 推出GPT-5.5 生物漏洞奖励计划,最高赏金2.5万美元

聚焦源代码安全&#xff0c;网罗国内外最新资讯&#xff01;编译&#xff1a;代码卫士OpenAI 公司推出 GPT-5.5 生物漏洞奖励计划&#xff0c;旨在增强应对新型生物风险的防护能力。随着人工智能模型变得日益先进&#xff0c;恶意人员生成危险生物信息的潜在风险也在增加。高级…

作者头像 李华
网站建设 2026/4/28 14:29:24

CMake变量、缓存与环境变量傻傻分不清?一篇讲透三者区别与实战避坑指南

CMake变量、缓存与环境变量深度解析与实战指南 1. CMake变量系统的核心机制 CMake作为现代C/C项目构建的事实标准工具&#xff0c;其变量系统是项目配置的基石。理解变量工作机制对于编写高效、可维护的构建脚本至关重要。CMake变量系统包含三种主要类型&#xff1a;普通变量、…

作者头像 李华