• VulnHub实战靶场Mr-Robot


    Vulnhub简介

    Vulnhub是一个提供各种漏洞环境的靶场平台,供安全爱好者学习渗透使用,大部分环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞,需要使用VMware或者VirtualBox运行。每个镜像会有破解的目标,大多是Boot2root,从启动虚机到获取操作系统的root权限和查看flag。网址:https://www.vulnhub.com。

    靶场说明

        Mr-Robot是一个难度为中等的Boot2root/CTF挑战,由@sho_luv (Twitter)制作。

    描述:

          难度等级:中等

          操作系统类型:Linux

          用户::root, robot, daemon

          flag目录:在用户家目录中

    实验目的

          获取三个flag.

    实验环境

    靶机:Mr-Robot  IP:192.168.1.28

    攻击机:Kali Linux  IP:192.168.1.26

    实验步骤一

    准备阶段

    ①打开靶机(Mr-Robot)。

     

    ②打开攻击机(Kali Linux)并确认攻击机ip。

    使用命令ifconfig查看攻击机ip为192.168.1.26

     

    实验步骤二

    主机发现

    ①输入命令netdiscover尝试发现靶机ip为192.168.1.28。

     

    ②输入命令nmap -sS -p- 192.168.1.28命令扫描靶机开放端口及服务。

     

    如图所示分析可知,靶机关闭了ssh服务,但是开放了80端口和443端口对应的http和https服务,于是猜测可以访问对应ip的网站进行渗透测试。

    实验步骤三

    前期准备

    ①访问对应ip地址的web服务并依次尝试其中提供的命令。

     

    输入prepare命令发现是一个视频。 

    输入fsociety命令发现依然是一个视频。 

    输入inform命令发现是一些图片和文字。 

    输入question命令发现是一些图片。 

    输入wakeup命令发现是视频。 

    输入join命令,弹出提示输入邮箱地址。  

    ②输入命令nikto -h 192.168.1.28对目标ip进行探测。

    发现了登录界面/wp-login/可以利用。

    ③输入命令dirb http://192.168.1.28扫描目标ip存在的目录。 

     

     发现了可能会有用的目录:/readme、/robots.txt、/wp-login等。

    ④依次访问对应的目录,寻找有用的信息,发现第1个flag、得到爆破用的字典以及发现登录界面等。

    l  访问readme目录

     

    l  访问robots.txt目录

    如图所示,发现了第一个flag以及一个字典文件,访问key-1-of-3.txt目录获得第一个flag。 

    访问fsocity.dic目录获得字典文件。内容如下:

     

    ⑤发现得到的字典文件很大,猜测有重复字符。 

       于是使用命令sort fsocity.dic | uniq > dic.txt将字典文件去重复化并保存为dic.txt文件。去重复化后的字典大小仅有96.7kb。 

    l  访问wp-login目录,发现WordPress登录界面。

    实验步骤四

    进一步探索

    ①使用Burp Suite,利用刚刚得到的字典,分别对网站登录的用户名和密码进行爆破。

    l  开启Firefox浏览器代理127.0.0.1,端口为8080 

    l  Burp Suitte捕包后,首先进行repeater测试,看是否可以进行爆破。

    l  经多次repeater对比后发现网站响应仅有时间不同,说明可以对进行爆破。

    首先使用刚刚去重复化的字典对用户名字段进行爆破。

    将得到的响应结果按长度进行排序,得到用户名可能为elliot、Elliot、ELLIOT。

    l  用同样的方法、同样的字典对密码字段进行爆破。结果如下图:

     

    按长度排序后发现密码可能为ER28-0652。

    ②使用用户名和密码登录后尝试利用php的反弹shell获取权限。修改php-reverse-shell.php文件中的ip地址和端口,并将修改后的代码替换掉WordPress中editor页面的404.php文件。

    l  使用用户名:elliot,密码:ER28-0652登陆。 

    l  输入命令:find / -name php-reverse-shell.php尝试寻找可以利用的php反弹shell文件。

     

     

    将查找到的php-reverse-shell.php文件,修改其中的ip地址为攻击机ip:192.168.1.26,保持端口为默认8888不变,并将修改后的代码替换掉WordPress中editor页面的404.php文件。

     

    点击Upadte File上传文件。 

    提示上传成功。 

    ③在Kali上使用nc监听相应的端口,并在浏览器中访问修改过的404.php,得到权限。

    l  输入命令nc -lvvp 8888监听8888端口

     

    l  在浏览器中访问修改过的404.php,得到权限。

     

    ④得到权限后,使用cat /etc/passwd查看靶机中的用户,发现有robot这个用户,进入这个用户的目录。

     

    ⑤尝试查看robot用户下flag的文件,但是发现没有权限并且是robot的文件。于是查看password.raw-md5文件,并按照提示进行md5解密,得到robot用户的密码。

    l  使用ls命令查看当前用户下的所有文件,发现有第二个flag与另一个与密码相关的文件。尝试访问key-2-of-3.txt发现权限不足,于是查看password.raw-md5文件。

     

    l  使用ls -lar命令发现这两个文件都是robot用户下的文件,说明要想获得第二个flag需要切换到robot用户。

     

    l  将之前得到的md5加密后的密码使用在线解密工具进行解密,得到密码为a-z的字母表。

    ⑥使用python -c 'import pty'pty.spawn("/bin/bash")'命令打开终端,使用密码登陆到robot用户并获取第2个flag。

      

    最后的探索

    ①利用可执行文件SUID进行Linux提权。使用命令:find / -user root -perm -4000 -print 2>/dev/null 寻找可以利用的命令,发现了nmap命令。

     

    ②查询资料发现早期版本的Nmap(2.02到5.21)有交互模式,允许用户执行shell命令。于是使用命令nmap -v查看nmap的版本为3.81符合要求。

    ③使用命令:nmap --interactive,进入交互模式,接着使用命令:!sh成功提权为root用户。

     

    ④切换到root目录下,拿到最后的flag。

     

  • 相关阅读:
    Struts2拦截器
    Struts2执行过程
    struts.xml属性extends的执行顺序和剖析源码
    Struts2请求流程图
    8.29 脏检查笔记
    transactionManager 以及datasource type解析
    Mybatis
    Interceptor
    ongl(示例3-6 多值类型的数据处理)
    ongl(原始类型和包装类型)
  • 原文地址:https://www.cnblogs.com/Jesse-Cavendish/p/13203523.html
Copyright © 2020-2023  润新知