渗透测试——Ripper靶机详细横向渗透过程(rips扫描文件,水平横向越权,Webmin直接获取root权限)

今天继续给大家带来Ripper靶机详细横向渗透过程;

  • rips扫描文件;
  • 水平横向;
  • Webmin获取root权限;

文章目录


靶机介绍

还是老样子,先导入靶机并设置好网络:


  • Kali地址:192.168.56.119
  • 目标机器网段:192.168.56.0/24

话不多说,直接开始;

信息收集

首先我们登陆靶机,并对其进行网段扫描:

bash 复制代码
nmap -sP 192.168.56.0/24

# 详细服务端口
nmap -sC -sV -A -T4 -p- 192.168.56.121

可以得到靶机的具体地址为192.168.56.121

随后使用多种工具对其服务以及端口进行探测:

Nmap结果:

可以看到的是目标机器开放了三个端口以及服务:

  • 22/tcp:SSH服务,用于远程安全登录和管理目标主机,这里显示为OpenSSH 7.6p1版本,运行在Ubuntu系统上。
  • 80/tcp:HTTP服务,Apache httpd 2.4.29搭建的Web服务,当前是Apache2默认页面,提供Web访问功能。
  • 10000/tcp:HTTP服务,MiniServ 1.910的Webmin管理工具服务,用于系统远程管理。

http服务信息收集

因为访问 http://192.168.56.121/ ,并没有得到可用的信息:

随后我们针对该主机扫描其后台目录:python dirsearch.py -u http://192.168.56.121/

分析上述结果我们可以知道:80端口并没有搭建可用的服务;

Webmin框架信息收集

既然如此,那我们就访问 http://192.168.56.121:10000/ 该网站的10000端口,果然发现了一些信息:

并且根据页面提示:该页面提示Web服务器运行在SSL模式下,访问http://192.168.56.121:10000时被拒绝,需改用 https://ripper-min:10000/ 访问

这里还是老样子,将该域名ripper-min添加到机器的hosts文件中,即可正常访问;否则会失败;

  • Windows机器:C:\Windows\System32\drivers\etc\hosts
  • Linux机器:/etc/hosts/

配置完成后,我们重新访问:https://ripper-min:10000/,得到结果如下:

可以发现,该服务是由Webmin框架 进行搭建的:

框架简介

Webmin 是一款用于Unix/Linux 系统的开源Web管理界面,可通过浏览器完成系统配置、服务管理等操作。

可能存在的漏洞
漏洞类型 漏洞描述 影响版本
远程代码执行 (RCE) 未授权攻击者可通过构造恶意请求执行任意系统命令 CVE-2019-15107、CVE-2022-0824
权限提升 低权限用户可利用配置缺陷获取 root 权限 CVE-2020-21243
弱口令/暴力破解 默认/弱密码易被爆破,导致未授权登录 全版本(依赖管理员配置)
XSS 跨站脚本 存在反射型/存储型 XSS,可窃取会话或劫持账号 CVE-2021-36781

由于我们并不能注册普通用户登陆该系统,所以可以尝试一些Web目录枚举,看看其是否还存在隐藏目录等:

bash 复制代码
# dirsearch针对https服务(效果不好)
python dirsearch.py -u https://ripper-min:10000/

# dirb自带
dirb https://ripper-min:10000/ -k

所以可以多尝试其他工具,比如它自带的dirbdirbuster

结果如下,存在robots.txt目录:

得到一串编码,解密后得到结果:d2Ugc2NhbiBwaHAgY29kZXMgd2l0aCByaXBzCg==

提示:告诉我们使用rips进行扫描php密码;

rips扫描php文件(得到ripper密码)

  • RIPS(Recursive Inclusion PHP Scanner)是一款开源PHP静态代码审计工具,通过污点分析与数据流追踪,自动检测PHP代码中的SQL注入、XSS、文件包含、密码硬编码等安全漏洞。

这里尝试本地下载后尝试访问呢,但是无法修改地址,所以只能尝试访问靶机的地址(域名会失败):http://192.168.56.121/rips/

随后修改为PHP文件探测,并且默认目录为/var/www/html

得到结果如下:

(没有结果,又改回了ALL,总算成功)

分析结果:

  • 会话固定漏洞

    • 简介:用户提交的样式参数直接写入Cookie,可被固定会话导致劫持
    • payload:curl -i "http://目标IP/rips/config/general.php" -d "stylesheet=test"
    • 结果:返回头出现 Set-Cookie: stylesheet=test 即存在漏洞
  • 任意文件读取漏洞

    • 简介:file 参数直接传入读取函数,可读取服务器任意文件
    • payload: http://目标IP/rips/windows/code.php?file=/etc/passwd
    • 结果:成功显示 /etc/passwd 内容即存在漏洞
  • 反射型XSS漏洞

    • 简介:用户输入未过滤直接输出到JS,可执行恶意脚本
    • payload: http://目标IP/rips/printer.php?userinput=<script>alert(1)</script>
    • 结果:页面弹出alert框即存在漏洞

但是很遗憾,都没有成功,只能自己人工排查;

发现secret.php 文件,在该文件中发现账号和密码信息:
ripper / Gamespeopleplay

普通用户ripper远程登陆

得到账号密码,那我们就进入该系统:

登陆失败,并没有得到我们预料中的结果。竟然不是系统的账户,那就尝试一下ssh服务

bash 复制代码
# ssh远程登陆
ssh ripper@192.168.56.121
输入密码:Gamespeopleplay

成功进入目标机器;

ripper用户信息收集

随后尝试发现该用户存在哪些可用信息:

只有一个flag文件,接下来我们要进行的就是得到root用户;

继续查找:发现还有一个用户cubes

人工排查费时费力,所以这里用一下工具帮助排查;

系统信息收集

这里从本次下载了fscan等工具后,执行收集信息:

随后执行文件,得到结果:

(1)得到主机版本信息:

(2)针对内核版本可能存在的漏洞:

(3)定时任务cron

也并没有发现什么信息;

既然有另一个用户,那就尝试水平越权到该用户进行查看;

查找特定用户的SUID文件(得到cubes密码)

常见命令如下:

bash 复制代码
# 查看用户信息与权限
id
sudo -l

# SUID越权查找可疑文件
find / -perm -4000 -type f 2>/dev/null

# 查看是否有隐藏后门文件
find . -name ".*" -type f

当前登陆的用户没有相应信息,那就换成cubes用户试试:find / -user cubes -type f 2>/dev/null 最终也是通过SUID发现了点线索:

查看 /mnt/secret.file文件内容:

可以得到cubes用户的密码:Il00tpeople

水平横向:cubes用户远程登陆

这里我们再打开一个终端窗口用来登陆cubes用户:

bash 复制代码
# ssh登陆
ssh cubes@192.168.56.121
Il00tpeople

成功登陆:

随后开始信息收集:

查看一下历史命令:history

历史命令分析(得到Webmin密码)

  1. 频繁操作 /var/webmin/

    • 多次进入 /var/webmin/、查看目录、创建 backup 文件夹
    • 查看日志:miniserv.logminiserv.errorblocked
    • 复制错误日志到备份目录
      明显在排查/操作 Webmin 面板相关日志与配置
  2. 在 /mnt 目录编辑敏感文件(这就是cubes用户的密码)

    • nano s.txt
    • nano secret.file

针对上述行为,我们可以去到该目录 /var/webmin/backup 进一步的查看:

过程:

查看该文件内容,得到root用户的账户以及密码:

看不清楚?我帮大家把内容贴出来:

bash 复制代码
cubes@ripper-min:/var/webmin/backup$ cat miniser.log
[04/Jun/2021:11:21:48 -0400] miniserv.pl started
[04/Jun/2021:11:21:48 -0400] IPv6 support enabled
[04/Jun/2021:11:21:48 -0400] Using MD5 module Digest::MD5
[04/Jun/2021:11:21:48 -0400] Using SHA512 module Crypt::SHA
[04/Jun/2021:11:21:48 -0400] Perl module Authen::PAM needed for PAM is not installed : Can't locate Authen/PAM.pm in @INC (you may need to install the Authen::PAM module) (@INC contains: /root/webmin-1.910 /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.26.1 /usr/local/share/perl/5.26.1 /usr/lib/x86_64-linux-gnu/perl5/5.26 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.26 /usr/share/perl/5.26 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at (eval 15) line 1.
BEGIN failed--compilation aborted at (eval 15) line 1.
[04/Jun/2021:11:33:16 -0400] [10.0.0.154] Authentication : session_login.cgi=username=admin&pass=tokiohotel
[04/Jun/2021:11:33:16 -0400] [10.0.0.154] Document follows : This web server is running in SSL mode. Try the URL <a href='https://ripper-min:10000/'>https://ripper-min:10000/</a> instead.<br>
[04/Jun/2021:11:33:16 -0400] [10.0.0.154] Document follows : This web server is running in SSL mode. Try the URL <a href='https://ripper-min:10000/'>https://ripper-min:10000/</a> instead.<br>
[04/Jun/2021:11:33:29 -0400] Reloading configuration
[04/Jun/2021:11:33:39 -0400] Reloading configuration
Use of uninitialized value in numeric ne (!=) at /root/webmin-1.910/bind8/bind8-lib.pl line 2397.
Use of uninitialized value $ip in concatenation (.) or string at /root/webmin-1.910/system-status/system_info.pl line 39.
Use of uninitialized value $mode in chop at /root/webmin-1.910/webmin/webmin-lib.pl line 1762.
Use of uninitialized value in string eq at /root/webmin-1.910/webmin/webmin-lib.pl line 656.
Use of uninitialized value in string eq at /root/webmin-1.910/webmin/webmin-lib.pl line 656.
Use of uninitialized value $ip in concatenation (.) or string at /root/webmin-1.910/system-status/system_info.pl line 39.
Use of uninitialized value $mode in chop at /root/webmin-1.910/webmin/webmin-lib.pl line 1762.
Use of uninitialized value in string eq at /root/webmin-1.910/webmin/webmin-lib.pl line 656.

✔ 核心发现

Webmin 登录账号密码明文泄露

  • 用户名:admin
  • 密码:tokiohotel

漏洞利用:登陆Webmin系统

这里登陆进入系统:

这里我也是第一次接触这个系统,所以我还以为要找Webmin系统的相应漏洞,但是没有成功;

  • 看了网上WP ,发现直接执行左下角的终端即是root用户

结果如下:

拿到最高权限:


总结

本次靶机的思路还是比较新颖,因为之前我做的测试路径都是:

bash 复制代码
通过漏洞进入Web系统
	↓
上传shell,进入目标机器
	↓
登陆普通用户,主机信息收集
	↓
提权root权限

而本次刚好就反过来了:

bash 复制代码
# Ripper靶机 正向渗透路径
端口扫描 → 发现Webmin/RIPS → 利用RIPS文件读取漏洞获取用户凭据
	↓
SSH登陆普通用户,主机信息收集 → 提取Webmin管理员密码
	↓
登陆Webmin后台,获取交互式Shell
	↓
拿到root权限与最终flag

总之,又学到了一种思路;多学习,多思考;

期待下次再见;

相关推荐
努力的lpp2 小时前
小迪安全第9天:算法逆向与加密解密基础
安全
大能嘚吧嘚2 小时前
Redis客户端框架-Redisson
数据库·redis·缓存
QCzblack2 小时前
知识点回顾
安全
神龙斗士2402 小时前
MySQL在Navicat中 库的操作 表的操作
数据库·mysql
攒了一袋星辰2 小时前
10万级用户数据日更与定向推送系统的可靠性设计
java·数据库·算法
弘毅 失败的 mian2 小时前
嵌入式系统观
数据库·经验分享·笔记·物联网·嵌入式
深蓝轨迹2 小时前
Redis+Lua实现秒杀优化
数据库·redis·lua
竹之却2 小时前
【Linux】Linux 中 .service 文件核心介绍
linux·运维·服务器·systemd·.service 文件
小年糕是糕手2 小时前
【35天从0开始备战蓝桥杯 -- Day7】
开发语言·jvm·数据库·c++·蓝桥杯