zoukankan      html  css  js  c++  java
  • VulnHub——Kioptrix Level 4

    目录

    简介

    环境配置

    信息收集

    数据库文件

    漏洞发现

    SQL注入漏洞

    漏洞利用

    获得webshell

    获得普通用户shell

    受限shell逃逸

    权限提升

    总结


    简介

    该靶机较前面三个麻烦些, 需要新建虚拟机,将虚拟磁盘导入。但总的来说依旧很简单,通过SQL注入漏洞可以直接获得webshell,也可以利用获取到的用户名和密码获得普通用户shell,然后通过root用户和空口令登录mysql,利用UDF提升到root权限。

    环境配置

    从官网下载压缩文件,解压后发现只有vmdk文件(虚拟磁盘文件),没有vmdx文件,因此需要新建虚拟机,选择自定义模式,安装来源选择“稍后安装”,然后在客户机操作系统选择“其他”,如图:

    然后选择位置为解压后放置vmdk文件的文件夹,名称自定义,如图:

    出现提示后点“继续”,设置内存为512M,如图:

    然后一路默认,在选择磁盘处选择“使用现有虚拟磁盘”,然后选择vmdk文件,如图:

    出现提示后选择“保持现有格式”即可。

    信息收集

    探测目标主机IP地址,如图:

    然后使用nmap快速扫描目标主机,发现开启22、80、139和445端口,OpenSSH版本为4.7p1,Apache版本为2.2.8,PHP版本为5.2.4-2,Samba版本为3.0.28a,操作系统大概率为Ubuntu,内核版本为2.6.X,如图:

    然后访问80端口Web服务,发现是一个登录页面,如图:

    尝试常见弱口令无果。

    数据库文件

    然后扫描网站目录,发现数据库文件database.sql,如图:

    使用Google搜索Samba 3.0.28a已知漏洞,发现一些拒绝服务的漏洞。

    漏洞发现

    使用Nikto扫描Web服务漏洞,

    使用searchsploit搜索Samba漏洞利用程序,如图:

    SQL注入漏洞

    查看数据库文件,如图:

    手工测试登录页密码框发现存在SQL注入,且暴露了网站物理路径,如图:

    在测试弱口令之后用sqlmap检测漏洞,同样发现SQL注入漏洞,如图:

    漏洞利用

    利用SQL注入获取members表下的用户名和密码,如图:

    使用密码登录网站,如图:

    查看当前数据库用户发现是root用户,然后使用--passwords选项获取数据库用户名和密码,发现root用户使用空密码,如图:

    获得webshell

    通过--os-shell选项直接获得webshell,如图:

    获得普通用户shell

    此外尝试使用获得的用户名和密码通过ssh进行登录也成功获得普通用户shell,如图:

    发现两个用户都是一样的结果,权限都非常低。只能执行几个命令,如图:

    受限shell逃逸

    看着像lshell,但是不确定,总之是受限制的shell。然后搜索受限shell逃逸方法,发现可以利用echo命令进行逃逸:Spawning A TTY Shell-逃逸Linux各种Shell来执行命令

    执行echo os.system("/bin/bash")后成功逃逸出当前受限Shell,如图:

    权限提升

    查看内核版本,如图:

    显然可以使用脏牛提权,尝试上传文件发现无法外连80端口,但是可以外连443端口,且该shell无法执行二进制文件,不存在gcc,因此无法通过内核提权。查看/etc/passwd文件发现john和robert用户默认使用kshell,如图:

    另外还存在一个普通用户loneferret用户。查看开启的端口发现有3306,如图:

    很自然想到的MySQL UDF提权,从前面SQL注入中获取到的信息发现数据库版本是5.0.12,但是在上传动态链接库后导出时出错。然而,在查看mysql数据库时很幸运发现已经存在func表,且表中含有执行命令的函数,如图:

    尝试执行id命令,但返回信息为NULL,如图:

    开启443端口监听,尝试使用函数执行命令访问443端口,如图:

    说明命令执行成功。然后使用msfvenom生成反弹shell 的程序,上传到目标主机并执行,成功获取root权限。

    总结

    对该靶机来说,获得webshell和普通shell非常简单,提权时需要注意查看mysql数据库。

  • 相关阅读:
    局部组件
    flex布局
    Websocket
    关于Javascript夜里再来分析下
    go build、go mod等命令
    websocket
    FileSystemWatcher使用
    DataGridView双缓冲
    C#读INI文件
    c 通过 COM接口调用 Excel.Application 问题终于解决
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302343.html
Copyright © 2011-2022 走看看