首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >靶机实战(2):ICA 1

靶机实战(2):ICA 1

作者头像
OneMoreThink
发布2024-10-15 11:31:52
发布2024-10-15 11:31:52
2150
举报

一、主机发现

启动虚拟机,直接就获得了主机的IP地址。

二、端口发现(服务、组件)

使用命令sudo nmap 10.58.81.114 -n -Pn -p- --reason -sV -sC -O获得主机开放的端口、提供的服务、使用的组件、组件的版本。

开放的端口

提供的服务

使用的组件

组件的版本

22/tcp

ssh

OpenSSH

8.4p1 Debian 5

80/tcp

http

Apache

httpd 2.4.48

3306/tcp

mysql

MySQL

8.0.26

33060/tcm

-

-

-

-

os

Debian Linux

4.15 - 5.6

三、漏洞发现(获取权限)

22端口/ssh服务

组件漏洞

使用命令searchsploit OpensSH,未发现OpenSSH 8.4p1组件的Nday漏洞。

弱口令漏洞

使用命令hydra -C10.58.81.114 ssh,通过字典/usr/share/seclists/Passwords/Default-Credentials/ssh-betterdefaultpasslist.txt/usr/share/wordlists/legion/ssh-betterdefaultpasslist.txt,未发现弱口令漏洞。

80端口/http服务

组件漏洞

01、使用命令searchsploit Apache | grep "2\.4\."searchsploit Apache | grep -i httpd,未发现组件Apache httpd 2.4.48的Nday漏洞。

02、使用Wappalyzer、WahtRuns、BuiltWith、WhatWeb识别网站组件,没啥收获,倒是直接访问网站首页,发现组件qdPM 9.2。

使用命令searchsploit qdPM 9.2,发现网站文件/core/config/databases.yml存在数据库口令泄露的Nday漏洞,从而获得数据库账号qdpmadmin、密码UcVQCMQk2STVeS6J。

URL发现(目录、文件)

01、访问首页http://10.58.81.114,发现是后台登录页,看来可以尝试默认账号和口令爆破。但账号是邮箱,需要先获得邮箱后缀才能构造爆破账号,所以先尝试默认账号密码。

qdPM官网的Demo说明页面[2]发现默认管理员账号密码admin@localhost.com/admin,以及一些Demo账号,经测试都无法登录。

说个题外话,qdPM官网的Demo页面[3]也是qdPM 9.2,不过已经修复了数据库口令泄露漏洞。

回到正题,假设用户沿用默认的管理员账户,只是修改了密码,尝试爆破口令,无收获。

02、使用命令dirb http://10.58.81.114 -R对网站目录和文件进行爆破,发现/backups/目录、/uploads/目录、/core/config/目录、/robots.txt文件等可能存在信息泄露的目录或文件,均未发现有价值的信息。同时基于目前已知信息,没有对网站目录和文件进行FUZZ的必要。

信息泄露

前面翻找网站的流量全都走Burp Suite代理,在Burp Suite中未发现敏感信息泄露。

3306端口/mysql服务

组件漏洞

使用命令searchsploit MySQL 8.0,未发现MySQL 8.0.26组件的Nday漏洞。

口令泄露
01、前面利用qdPM 9.2的Nday漏洞拿到的数据库账号qdpmadmin、密码UcVQCMQk2STVeS6J,可以成功登录mysql服务。

对数据库进行翻找,在staff库的user表和login表中,分别找到5个账号和5个密码。

不知道user表的id字段是和login表的id字段还是user_id字段对应,所以打混账号密码,形成25种组合,分别对ssh服务和http服务进行登录尝试。

由于5个账号都不像有root权限,所以没有对mysql服务进行登录尝试的必要。

02、ssh服务登录失败。

http服务登录失败。

03、将账号改成小写,再试一次。

ssh服务获得2个账号密码,可以成功登录。

http服务仍然登录失败。

四、提升权限

sudo

使用命令sudo -l分别查看dexter和travis用户的特权命令,无收获。

perm

01、使用命令find / -perm -u=s 2>/dev/nullfind / -perm -g=s 2>/dev/null查看特权程序,发现/opt/get_access程序不是系统命令。一般系统命令可利用的有find等,非系统命令是否可利用需逆向分析。

/opt/get_access程序的属主是root用户,普通用户执行该程序时,会以属主的权限即root权限执行。因此若能利用,则可提权获得root权限。

查看/opt/get_access程序,发现里面的命令cat /root/system.info可以利用。如果伪造系统命令cat,里面包含提权命令,那么当普通用户执行/opt/get_access程序时,就会以属主的root权限执行假cat命令里的提权命令,从而让普通用户提权获得root权限。

02、首先是伪造假cat命令。通过命令echo /bin/sh > /tmp/catchmod +x /tmp/cat可以伪造假cat命令,通过执行假cat命令可以进入新的shell环境。但因为执行假cat命令的是普通用户dexter,所以新shell环境的权限还是dexter的普通权限。(备注:这里使用/bin/sh而不是/bin/bash作为新的shell环境,是为了让大家能够直观看到shell切换情况。)

03、然后是给假cat命令寻找执行环境。真cat命令是在/usr/bin/目录下,环境变量中更靠前的只有/usr/local/bin/目录了,但普通用户没有该目录的write权限,无法把假cat命令添加到该目录下。

那就创造一个吧,比如/tmp/目录。我们可以看到假cat命令在/tmp/目录添加到环境变量之前是不能直接执行的,添加之后就能直接执行了,这时假cat命令就取代真cat命令了。

04、因为/opt/get_access程序有suid权限,且属主是root用户,所以普通用户执行该程序时会以该程序的属主root用户的root权限执行。

因为/opt/get_access程序里的cat命令被替换成了返回shell环境的假cat命令,所以普通用户执行该程序时会以该程序的属主root用户的root权限返回shell环境,即提权。

参考资料

[1]

ICA: 1: https://www.vulnhub.com/entry/ica-1,748/

[2]

qdPM官网的Demo说明页面: https://qdpm.net/qdpm-demo-free-project-management

[3]

qdPM官网的Demo页面: https://qdpm.net/demo/9.2/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OneMoreThink 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、主机发现
  • 二、端口发现(服务、组件)
  • 三、漏洞发现(获取权限)
    • 22端口/ssh服务
      • 组件漏洞
    • 80端口/http服务
      • 组件漏洞
      • URL发现(目录、文件)
    • 3306端口/mysql服务
      • 组件漏洞
      • 口令泄露
      • 01、前面利用qdPM 9.2的Nday漏洞拿到的数据库账号qdpmadmin、密码UcVQCMQk2STVeS6J,可以成功登录mysql服务。
  • 四、提升权限
    • sudo
    • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档