HACKthebox-Cap

HackTheBox-Cap

cap_pwn

本机IP:10.10.16.6

目标IP:10.10.10.245

信息收集

nmap

nmap

开放了21、22、80端口

常规操作访问一下网站看看干嘛的

这个网站挺有意思,起到了类似服务器仪表盘的作用,能看本地启动的服务、IP等等

Security Snapshot里可以看到流量记录

流量

本来下载流量包看了一下全是我自己访问的流量突然就没思路了

然后切到其他页面看了下功能又切回来以后发现URL有变化,.../data/斜杠后面的数字变了,试试看其他的数字都和上图一样,估计都是我的访问流量,当访问.../data/0的时候不一样了

流量2

下载流量包,用Wireshark分析一下

找到了nathan用户的用户名密码

pcap

1
USER: nathan     PASS Buck3tH4TF0RM3!

上面提到服务器还开放了21、22端口,尝试用刚得到的用户名密码连接

FTP

ftp

成功登录,发现了user.txt,下载下来得到user flag

提权

SSH

1
ssh james@10.10.10.245

成功连接

在提权上遇到了问题,首先Linux提权的姿势太多了,以前做的Linux靶机用的大多是sudo提权滥用,但是靶机中nathan用户没有使用sudo的权限,所以只能用其他的手段了。

本台靶机的名字叫cap,google上搜的时候也围绕这个点去找,发现在Linux常用命令里有getcapsetcap,接着发现了一篇很棒的文章(参考链接二),还有一个碉堡了的网站(参考链接三)

知识点

从2.1版开始,Linux内核有了能力(capability)的概念,即它打破了UNIX/LINUX操作系统中超级用户/普通用户的概念,由普通用户也可以做只有超级用户可以完成的工作.

Capabilities的主要思想在于分割root用户的特权,即将root的特权分割成不同的能力,每种能力代表一定的特权操作。例如:能力CAP_SYS_MODULE表示用户能够加载(或卸载)内核模块的特权操作,而CAP_SETUID表示用户能够修改进程用户身份的特权操作。在Capbilities中系统将根据进程拥有的能力来进行特权操作的访问控制

在Capilities中,只有进程和可执行文件才具有能力,每个进程拥有三组能力集,分别称为cap_effective, cap_inheritable, cap_permitted(分别简记为:pE,pI,pP)

cap_permitted表示进程所拥有的最大能力集;

cap_effective表示进程当前可用的能力集,可以看做是cap_permitted的一个子集;

cap_inheitable则表示进程可以传递给其子进程的能力集。

系统根据进程的cap_effective能力集进行访问控制,cap_effective为cap_permitted的子集,进程可以通过取消cap_effective中的某些能力来放弃进程的一些特权。可执行文件也拥有三组能力集,对应于进程的三组能力集,分别称为cap_effective, cap_allowed 和 cap_forced(分别简记为fE,fI,fP),其中cap_allowed表示程序运行时可从原进程的cap_inheritable中集成的能力集,cap_forced表示运行文件时必须拥有才能完成其服务的能力集;而cap_effective则表示文件开始运行时可以使用的能力。

各种能力就不一一列举了,参考文章中写的很详细,本台靶机的提权用了CAP_SETUID

CAP_SETUID:允许改变进程的用户ID

getcap命令查看可执行文件获取的内核权限

getcap [-v] [-r] [-h] [-n] [ …]

1
getcap -r / 2>/dev/null  #把错误输出到/dev/null

getcap

发现 python3.8 有cap_setuid,可以拿来利用提权了,提权方法在GTFOBins上找到的

gtfobins

1
python3 -c 'import os;os.setuid(0);os.system("/bin/sh")' #python3.8或者python3都行

拿到root权限

rootflag

得到root flag

end

写在最后

Linux靶机的提权还是需要更多的学习和积累,虽然本台靶机整个流程很短,也没有什么网站上的漏洞利用直接就连上了,但还是有学到东西的。实际操作得来的经验比起光看博客和书本要印象更加深刻

参考链接

https://cloud.tencent.com/developer/article/1544037?from=article.detail.1180355

https://www.cnblogs.com/sky-heaven/p/12096758.html

https://gtfobins.github.io/gtfobins/python/