• 渗透实战靶机2wp


    0x00 简介

    1、测试环境

    目标IP:10.xxxx

    测试IP:192.168.139.128

    测试环境:win10、kali等

    测试时间:2021.7.22-2021.7.22

    测试人员:ruanruan

    2、测试过程

    本次实战主要通过对收集到的端口、目录等信息进行持续整合分析,再对目标系统进行tomcat弱口令、ghostcat文件读取、struts2RCE、SMB无认证访问等尝试,获取到jan账号,再利用.ssh私钥爆破获取较高权限的kay账号,直接sudo提权就能获得root权限。

    0x01 信息收集

    扫描端口
    在这里插入图片描述

    0x01 初次尝试

    对以下端口进行的尝试及判断:

    • 22:高版本ssh,弱口令爆破较难
    • 80:web,访问一下好像没什么功能,只有个dev提示
    • 139、445:版本号4.3.11,复现RCE漏洞失败。
    • 8009:幽灵猫漏洞,只能读取/WEB-INF/目录下的文件,意义不大
    • 8080:Tomcat,尝试弱口令,失败。

    到这里就只剩下80和445还能再继续探索一下。==

    0x02 继续收集信息

    访问web首页,网站正在维护中
    在这里插入图片描述

    back,查看源码
    在这里插入图片描述

    提示dev,试了下/dev/,404,扫一下目录,得到/development/路径

    在这里插入图片描述

    访问该路径,下面有两个txt文件

    内容如下:

    在这里插入图片描述

    在这里插入图片描述

    根据两个文件的内容,目前可以得到以下三个信息:

    • 使用了struts2,版本为2.5.12,关键字rest。=>基本确定S2-052 REST插件 XStream远程代码执行漏洞。
    • smb已配置,samba服务已测试过RCE,失败。根据对话整体能猜到应该是文件共享问题,但是尝试的方法有点偏了,应该直接连接IP/用户名
    • /etc/shadow,J的账号是弱口令

    0x03 再次尝试

    1、S2-052

    首先试着复现S2-052,但是在复现S2-052时路径不对导致复现失败,通用路径为/struts2-rest-showcase/,这台靶机的路径为/struts2-rest-showcase-2.5.12/。==

    在这里插入图片描述

    2、SMB文件共享

    先是参考了一篇文章,得到了Anonymous用户,然后就跟着挂载文件。。失败

    正确的利用smb文件共享服务的漏洞应该是直接连接查看,而不是什么挂载乱七八糟的。

    这里获取到用户名为Anonymous,无密码认证直接回车

    smbclient -N -L IP
    smbclient //IP/用户名
    
    • 1
    • 2

    在这里插入图片描述

    查看staff.txt文件,得到两个用户名

    在这里插入图片描述

    0x04 思路一:把爆破jan账号作为入口

    1、获得jan账号

    利用/usr/share/wordlists/rocky.txt爆破jan的密码

    hydra -l jan -P password.txt -vV -o ssh.log -e ns ip ssh
    
    • 1

    在这里插入图片描述

    得到密码:armando

    在这里插入图片描述

    登录jan账号,进入kay目录可以看到.ssh文件

    在这里插入图片描述

    对比两个公钥,相同

    在这里插入图片描述

    查看私钥,已加密

    在这里插入图片描述

    这里利用ssh2john来爆破ssh私钥,默认在/usr/share/john/ssh2john.py

    在这里插入图片描述

    得到密码:beeswax

    2、成功登录kay账号

    直接登录ssh

    在这里插入图片描述

    登陆成功,查看pass.bak,得到一串字符。。其实是密码,利用它使用sudo命令。

    3、利用sudo提权获取root权限

    sudo -l ,这里all表示所有命令都以root权限执行

    在这里插入图片描述

    直接sudo su

    在这里插入图片描述

    0x05 思路二:利用struts2漏洞反弹shell

    如果利用struts2漏洞,可以先上传一个.sh文件,再chmod加权限,最后利用bash命令执行。

    这里直接创建一个shell.sh,写入反弹shell命令

    在这里插入图片描述

    再在struts2的poc中修改执行

    在这里插入图片描述

    物理机就能获取shell,得到tomcat9账号的权限,然后继续通过kay目录下的.ssh目录进行利用。

    在这里插入图片描述

    后面的步骤和前面一样,这里只是提供另一种思路。

    0x06 总结

    1、踩坑
    • struts2的漏洞路径为/struts2-rest-showcase-2.5.12/
    • 知道存在smb文件共享认证问题,但是登录命令有误
    • 在kay账号下读取的密码太长,以为需要再次解密/找密码
    2、知识点
    • S2-052漏洞复现,获取shell思路
    • goastcat文件读取漏洞,限制:只能读取/WEB-INF/路径下的文件
    • smb文件共享认证问题,以及登录命令
      • smbclient -N -L IP
        smbclient //IP/用户名
    • .ssh私钥爆破,利用ssh2john文件
    3、反思
    • 做得较好的地方
      • 相对于上一次实战测试,在做本次实战过程时思路会更加清晰、收集的信息有整合分析,存在漏洞的地方也基本能猜测出。
    • 需要继续努力的地方
      • 但是在漏洞利用和信息利用过程以及不是特别顺利,主要原因是对服务、漏洞原理不够熟悉,之后会多总结复现常见的服务漏洞和组件漏洞。次要原因是靶机的很多地方需要猜测,脑洞型,思维比较跳跃。
      • 之后的测试中,在开始时先尽量收集更多信息再尝试寻找突破点。
  • 相关阅读:
    【Qt 学习笔记】Qt常用控件 | 显示类控件 | Label的使用及说明
    List接口与实现类
    pnpm install安装element-plus的版本跟package.json指定的版本不一样
    苹果电脑好用的剪切板管理工具 Paste激活中文版最新
    c++ 线程类
    自定义mvc增删改查
    Golang入门笔记(最后一章 17 封版)—— 映射map
    ETHERNET IP站转MODBUS RTU协议网
    【Spring boot 静态资源处理】
    JavaScript中 判断网络状态的几种方法
  • 原文地址:https://blog.csdn.net/syy0201/article/details/134276982