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 中文网