AWD练习的平台搭建

ubuntu虚拟机搭建

前提资源准备

进行AWD我们需要在一个独立的虚拟机

现在就来搭建一个ubuntu的

这里我们使用的VMware是17的

然后下载镜像的地址:Ubuntu最全的国内镜像下载地址 - 哔哩哔哩

我下载的是中科大的

这里需要准备的前提资源就有了。

创建Ubuntu虚拟机

这里其实和我们创建kali机差不多

首先,在主页里面点击创建新的虚拟机

选择自定义

选择硬件兼容性,然后下一步然后稍后安装,下一步

然后选择linux系统,和ubuntu版本

默认下一步(最好更改位置)

处理器的内核为4内存选择4GB默认选择,下一步

默认选择默认选择

创建新的磁盘

磁盘大小为40,为单个文件默认就行

下一步直接选择完成。 

搭建Ubuntu靶机

首先开启虚拟机

然后选择try or install ubuntu

在左侧选择语言(中文简体),点击安装ubuntu

键盘选择chinese选择最小安装

选择清除整个磁盘并安装ubuntu,然后点击现在安装选择继续

默认选择上海,然后继续然后自己设置用户名和密码,然后点击继续这里就慢慢等着安装就好安装完成,现在重启

但是后面看到文章说是语言还是选择英文,方便后续报错的时候去找资料

重启的时候要注意一下下面的英文,要移除安装介质,就是设置中CD/DVD中的ISO映像文件

将连接改为“使用物理驱动器”,然后确定就好。

接下来就进入桌面了。

附上几个链接:

修改终端语言:Ubuntu修改终端下的语言 - W_K_L - 博客园

然后ubuntu有一个bug:就是每次都要手动挂载共享文件夹,手动启用共享文件夹(只有当次有效):VMware共享文件夹设置(ubuntu22.04)_ubuntu vmware共享文件夹-CSDN博客

这个bug我们在sudo gedit /etc/fstab 添加上下面的话,就可以实现开机 自动挂载(永久挂载)

.host:/         /mnt/hgfs         fuse.vmhgfs-fuse allow_other,defaults   0       0

换源

如果不清楚自己的虚拟机的信息,就用下面的命令查看:

lsb_release -a

然后找到与自己版本符合的源:[ubuntu]ubuntu22.04默认源和国内源_ubuntu22.04源-CSDN博客

保险起见,备份一个:# 备份源列表
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 

 然后我们先将自己要换的国内源复制下来

再在终端中输入sudo vim /etc/apt/sources.list

但是我使用这个命令不成功,如果你也显示:

那么就需要安装vim使用命令:sudo apt install vim 

然后再使用那个命令就能成功了 

打开后把所有内容删掉,再将新源粘贴上

我使用的是阿里云的 

ubuntu 22.04 LTS (jammy) 

deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiversedeb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiversedeb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse# deb https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiversedeb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

粘贴完后用输入

:wq

命令退出 

然后再进行更新

sudo apt update

然后进行软件更新(过程有点慢,且不是必须的)

sudo apt upgrade

 安装VMware Tools

sudo apt-get update
sudo apt-get install open-vm-tools-desktop

但是其实也可能本身就已经有了

到这里虚拟机的配置完全够了

搭建AWD平台

可以通过git命令下载awd-platform,需要先安装git命令 

sudo apt-get install git

安装好之后进行克隆

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

再安装一个python2 

sudo apt-get install python2

接下来需要下载docker ,安装好docker之后下载比赛docker镜像

sudo apt install docker.io
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/zhl2008/web_14.04:latest#拉取镜像
docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/zhl2008/web_14.04:latest web_14.04#将镜像另命名

 最开始用的其他的命令,都报错说不是最新的,然后就改了一下命令成功了。

 这样我们的AWD平台就搭建好了。

AWD的使用

普通用户先进入刚才的awd-platform,然后输入下面的命令,创建了两个队伍

python2 batch.py web_yunnan_simple 2

 然后再切换到root用户,输入下面的命令,启用环境

python2 start.py ./ 2

 通过docker ps可以查看启用docker的情况

从最右侧的那栏的names可以看到每一个端口的作用

我们试着访问一下看看(0.0.0.0是linux的本地网址,相当于Windows的127.0.0.1)

team1的地址:0.0.0.0:8801

team2的:0.0.0.0:8802

再看一下观战平台,在这里可以提交flag

各个靶机的ssh密码可以在项目的文件夹下的pass.txt文件中

team1的默认端口为2201,以此类推

根据赛题修改check.py(awd-platform/check_server/目录下)文件,找到check类

class check():def __init__(self):print "checking host: "+hostdef index_check(self):res = http('get',host,port,'/','',headers)if 'Home' in res:return Trueif debug:print "[fail!] index_fail"return Falsedef test_check(self):res = http('get',host,port,'/about.php?file=header.php','',headers)if 'About' in res:return Trueif debug:print "[fail!] test_fail"return Falsedef test_check_2(self):headers['Cookie'] = ''data = 'key=1'res = http('get',host,port,'/services.php',data,headers)if 'Services' in res:return Trueif debug:print "[fail!] test_2_fail"return False

 修改flag刷新时间,同样是check.py文件中,默认120s,2分钟

ssh连接格式

ssh -p <port> <username>@<ip>
或者换一种命令也是可以连接的
ssh <username>@<ip> -p <port>

这里我们需要先去开启ssh后才能进行ssh连接

先进行安装

apt update && apt install openssh-server -y

安装好后进入其中一个队伍的目录,然后输入命令进行开启ssh连接 

systemctl start sshd

然后我们再输入命令  来查看是否开启

systemctl status sshd

这里注意一下:就是首先是物理机能不能ping到虚拟机,能的话就可以进行了(如果不行结合ai解决问题,大致就是虚拟机连网、VMtools没有在运行、物理机和虚拟机不是同一域名,具体解决问ai)

然后就是docker开着了吗

其次是ssh开着没


 这里由于我的物理机尝试了各种办法也还没解决连接虚拟机的问题,所以我就直接在虚拟机本地展开接下来的动作了

ssh连接

我们前面已经cat pass.txt知道了密码,然后现在是在本地,那么ip就是127.0.0.1,而port就是2201

一切都好了,就输入命令吧,然后按照要求回答,再输入密码后就ssh连接成功了

模拟team2去打team1

首先是进入他们的网站,可以看到最下面的输入框里显示着ls

有所怀疑,那就输入ls看什么情况

就直接给了我们目录下的文件 

既然如此,就输入ls / 看到了flag,cat他,输入cat /flag

http://ip:8080/flag_file.php?token=team_name&flag=

这就找到了一个,那我们就去作为team2交一个flag

地址栏格式:

http://ip:8080/flag_file.php?token=team_name&flag=

关于AWD

这里引用一下别人的文章,学习一下AWD比赛:技术流丨AWD比赛攻防详解 | CN-SEC 中文网 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/89732.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/89732.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 详谈继承体系下的构造函数和析构函数

前言 前面呢, 我们说了C中实现多态的原理, 其中也说了, 虚函数表和虚函数指针的创建时机, C 详谈多态实现原理-CSDN博客 , 这一节呢, 我们会说说在C中继承体系下的另一个知识点, 那就是: 继承体系下的构造函数和析构函数~~, 主要围绕两个问题: 执行顺序? 虚析构函数的作用? …

PostgreSQL 字段类型速查与 Java 枚举映射

1. 查询 SQLSELECTc.table_schema,c.table_name,c.column_name,c.data_type,c.udt_name,CASE-- 数值WHEN c.udt_name IN (int2,int4,int8,float4,float8,numeric,money)THEN NUMERIC-- 布尔WHEN c.udt_name boolTHEN BOOLEAN-- 日期/时间WHEN c.udt_name IN (date,time,timetz…

数据分析综合应用 30分钟精通计划

🔬 数据分析综合应用 30分钟精通计划(完整版含输出) ⏰ 时间分配 5分钟:数据加载与清洗基础 10分钟:探索性数据分析(EDA) 10分钟:数据分析实战案例 5分钟:分析报告生成 📚 第一部分:数据加载与清洗基础 (5分钟) 1. 模拟真实数据集 import pandas as pd import nu…

Python爬虫实战:研究psd-tools库相关技术

一、引言 1.1 研究背景 Adobe Photoshop 是目前最流行的图像处理软件之一,其原生文件格式 PSD(Photoshop Document)包含了丰富的图像信息和编辑历史。PSD 文件不仅在设计领域广泛使用,还在数字营销、版权保护和安全分析等领域具有重要价值。然而,手动分析大量 PSD 文件是…

基于卷积傅里叶分析网络 (CFAN)的心电图分类的统一时频方法

一、研究背景与核心问题​​ECG分类的挑战​&#xff1a;心电图&#xff08;ECG&#xff09;信号分类在心律失常检测、身份识别等领域至关重要&#xff0c;但传统方法难以同时有效整合时域和频域信息。现有方法包括&#xff1a;​时域分类&#xff08;CNN1D&#xff09;​​&am…

Linux——LinuxOS

cd,pwd,mkdir,rm,ls,touch,cat,echo,

深度学习篇---矩阵

在机械臂解算、深度学习网络等硬件和软件领域中&#xff0c;矩阵运算作为核心数学工具&#xff0c;承担着数据表示、变换、映射和优化的关键作用。以下从具体领域出发&#xff0c;详细总结涉及的矩阵运算及对应的核心知识&#xff1a;一、机械臂解算领域机械臂解算&#xff08;…

元宇宙:技术乌托邦与数字化未来——基于技术哲学的分析

一、技术哲学视域下的元宇宙本质哲学源流与技术基因的双重映射理想世界的千年回响&#xff1a;从柏拉图洞穴隐喻中的影子世界&#xff0c;到普特南“钵中之脑”对虚拟与现实界限的消弭&#xff0c;元宇宙的构想深植于人类对平行世界的永恒追问。中国传统神话中“天人二元结构”…

如何构建一个基于大模型的实时对话3D数字人?

近年来&#xff0c;随着元宇宙和AIGC技术的爆发&#xff0c;3D数字人从影视特效走向日常应用。无论是虚拟主播、AI客服&#xff0c;还是数字教师&#xff0c;其核心诉求都是**“能听、会说、有表情”**的实时交互能力。本文就带大家了解如何构建一个基于大模型的实时对话的3D数…

NULL值处理:索引优化与业务设计实践指南

一、NULL值的本质与影响NULL值在数据库中代表"未知状态"或"不适用"的特殊标记&#xff0c;与空字符串或0有本质区别12。其特性导致以下业务与性能问题&#xff1a;‌语义复杂性‌&#xff1a;NULL可能表示"未填写"(如用户手机号)或"不适用&…

【add vs commit】Git 中的 add 和 commit 之间的区别

关于git add和git commit还有一些有点不太清楚的地方&#xff0c;这里写一篇文章好好理一理git add&#xff1a;添加到暂存区 git add实际上是把工作区中的内容存入“暂存区” 通俗来讲就是告诉Git&#xff1a;“这些文件我准备好commit了” git add file.txt # 添加单个文件 …

【推荐100个unity插件】使用C#或者unity实现爬虫爬取静态网页数据——Html Agility Pack (HAP)库和XPath 语法的使用

文章目录前言一、安装HtmlAgilityPack1、从NuGet下载HtmlAgilityPack包2、获取HtmlAgilityPack.dll二、HtmlAgilityPack常用操作1、加载 HTML2、查询方式2.1 使用 XPath 查询&#xff08;推荐&#xff09;2.2 使用 LINQ 查询3、常用查询操作3.1 选择节点3.2 获取属性值3.3 遍历…

用 urllib 开启爬虫之门:从零掌握网页数据抓取

在数字时代&#xff0c;数据就是力量。作为一名社会工作者&#xff0c;或许你想了解城市服务资源&#xff1b;作为一个编程初学者&#xff0c;你可能希望从网页中自动提取新闻、课程或公开数据。今天&#xff0c;我们就来讲一讲 Python 标准库中的一把“钥匙”——urllib 库&am…

Spring Boot 订单超时自动取消的 3 种主流实现方案

Spring Boot 订单超时自动取消的 3 种主流实现方案关键词&#xff1a;Spring Boot、订单超时、延迟任务、RabbitMQ、Redis、定时任务在电商、外卖、票务等业务中&#xff0c;“下单后若 30 分钟未支付则自动取消”是一道经典需求。实现方式既要保证 实时性&#xff0c;又要在 高…

0401聚类-机器学习-人工智能

文章目录一 无监督学习什么是无监督学习&#xff1f;核心特点&#xff1a;无监督学习的主要类型1. 聚类分析 (Clustering)2. 降维 (Dimensionality Reduction)3. 关联规则学习 (Association Rule Learning)4. 异常检测 (Anomaly Detection)5. 密度估计 (Density Estimation)二 …

基础神经网络模型搭建

nn 包提供通用深度学习网络的模块集合&#xff0c;接收输入张量&#xff0c;计算输出张量&#xff0c;并保存权重。通常使用两种途径搭建 PyTorch 中的模型&#xff1a;nn.Sequential和 nn.Module。 nn.Sequential通过线性层有序组合搭建模型&#xff1b;nn.Module通过__init__…

基于单片机出租车计价器设计

传送门 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品题目速选一览表 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品题目功能速览 概述 本设计实现了一种基于单片机的智能化出租车计价系统。系统以单片机为核心处理器&#xff0c;集成…

134. Java 泛型 - 上限通配符

文章目录134. Java 泛型 - 上限通配符 (? extends T)**1. 什么是上限通配符 (? extends T)&#xff1f;****2. 为什么使用 ? extends T&#xff1f;****3. 示例&#xff1a;使用 ? extends T 进行数据读取****✅ 示例 1&#xff1a;计算数值列表的总和****4. 注意事项&…

【1】YOLOv13 AI大模型-可视化图形用户(GUI)界面系统开发

【文章内容适用于任意目标检测任务】【GUI界面系统不局限于YOLOV13&#xff0c;主流YOLO系列模型同样适用】本文以车辆行人检测为背景&#xff0c;介绍基于【YOLOV13模型】和【AI大模型】的图形用户&#xff08;GUI&#xff09;界面系统的开发。助力大论文实现目标检测模型的应…

小程序常用api

1. wx.request - 发起网络请求 用于向服务器发送 HTTP 请求&#xff0c;获取数据或提交表单。 // 示例&#xff1a;GET 请求获取数据 wx.request({url: https://api.example.com/data, // 替换为实际 API 地址method: GET,success: (res) > {console.log(请求成功, res.da…