zoukankan      html  css  js  c++  java
  • 记一次对某客户端的安全测试

    0x00 起因

    此次接到的项目是对某客户端进行安全测试。之前的工作内容除了偶尔测测 App 之外,大部分的测试目标还是以 B/S 架构的 Web 为主,这是第一次对 C/S 架构的客户端进行测试,所以也是两眼一抹黑,只能先按照测 Web 的常规思路来了。

    0x01 抓包

    首先查看目标客户端是否存在代理配置功能(大多数没有)

    可以看到只有个简单的登录功能,并无代理配置功能

    Proxifier + BurpSuite

    查看 BurpSuite 中配置的代理地址及端口

    在 Proxifier 中添加代理服务器(ip、port 为 BurpSuite 中配置的代理地址及端口)

    配置好后,进行检查,测试与 BurpSuite 的连通性(BurpSuite 中有流量即为成功连通)

    在 Proxifier 中添加代理规则

    BurpSuite 成功拦截到客户端的登录请求

    0x02 数据包分析

    成功拦截到数据包之后,便打算对其进行分析,结果一看就绝望了,请求包跟响应包均被加密


    尝试 Web 访问

    之前测 App 时遇到过手机端流量被加密但 PC 端未加密的情况,遂复制请求链接尝试 Web 访问,并未获取到有效信息

    由于该客户端内相关功能的请求参数均以 POST 方式传输,流量均被加密,所以暂时放弃,转变思路打算从服务器入手

    0x03 柳暗花明

    WebSphere
    对目标服务器进行端口扫描,发现开放的端口还挺多,9043、9060分别为 WebSphere 默认的管理控制台安全端口、管理控制台端口

    默认登录地址为 /ibm/console,此处用默认的用户标识 admin 成功登录

    一波三折

    更换 jsp 文件内容

    按理说成功进入 WebSphere 管理控制台,拿到 shell 只是顺理成章的事情,但是事情远没有我想象中的那么容易,首先使用之前打好的 war 包进行上传

    选择 war 包,填好上下文之后报错

    关于这个报错,我上网搜索了好久最终汇总了几种原因以及解决方案,分别是重启 WebSphere、war 包中包含的文件内容格式有误、打 war 包时所用的 jdk 与目标 WebSphere 的 jdk 版本不一致、修改一些 WebSphere 的配置文件。

    将 war 包中的 jsp 文件内容修改为打印字符串(无害内容),重新打包后上传,依旧报错

    更换 jdk 版本

    从前面抓取到的数据包中可知目标使用的 jdk 版本为 1.5.0_21,遂下载对应版本的 jdk 使用 jar 命令对无害 jsp 文件打 war 包后上传,依旧报错


    Myeclipse 构造 war 文件

    通过此前的多次尝试均未解决这个报错,于是卡在这个步骤上好久,最后通过查阅资料得知,WebSphere 6.x 版本默认支持的 Web 应用是2.3(web.xml 配置的 web-app_2_3.dtd),所以选择使用 Myeclipse 来生成 war 文件

    Myeclipse 新建 web 项目
    将 jsp 文件放至 WebRoot 目录下
    导出项目为 war 文件


    生成的 war 文件目录结构如下

    选择生成的 war 文件并填写上下文进行上传

    步骤 1-4 无需操作,点击下一步
    步骤 5 点击完成后,记得选择保存到主配置

    安装完成后应用程序状态为已停止,点击启动即可成功启动



    0x04 总结

    jsp 文件需使用 Godzilla 生成的 webshell,刚开始使用 Behinder v3.11生成的马,虽然可以上传成功,但是会提示页面存在,无法获取密钥,猜测可能与目标 jdk 版本过低有关,具体原因不明。

    1.先分别设置bp和proxififter的代理端口为127.0.0.1 8081 ,并将目标客服端的软件添加到proxififter中,并对其抓包

    ,发现目标传输的post数据包已进行加密,显示的JDK为1.5.0-21。

    2.对客服端软件的IP进行端口扫描,发现开放了9043、9060以及WebSphere 服务端口

    3.访问WebSphere后台(/ibm/console),输入用户名admin/admin可进入系统,且版本为6.x

    4.这里通过Godzilla 的生成的一句话木马,制作成war包(自应用程序-企业应用程序-安装-新应用程序的路径-本地文件系统-选择WAr包)

    5.上传WAR包显示错误,出现错误的原因如下:

    需要重启 WebSphere

    war 包中包含的文件内容格式有误需要修改

    打 war 包时所用的 jdk 与目标 WebSphere 的 jdk 版本不一致

    修改一些 WebSphere 的配置文件

    5.这里在本地安装jdk1.5版本,然后通过jar命令将war包进行修改,并上传waf包,发现还是不能运行

    jar  -cvf  time.war   time.jsp

    6.WebSphere 6.x 版本默认支持的 Web 应用是2.3(web.xml 配置的 web-app_2_3.dtd),所以选择使用 Myeclipse 来生成 war 文件:

    new --web project-project name(getshell)-将Godzilla生成一句话拖入到getshell项目下。然后export导出--

    java  EE --war  file--导出getshell.war包

    7.getshell.war包可直接上传

    (自应用程序-企业应用程序-安装-新应用程序的路径-本地文件系统-选择WAr包,以及上下文根(test目录))

    8.然后保存配置,并启动。

    最终访问:

    http://www.xxx.com/test/getshell.jsp



  • 相关阅读:
    Java之hashCode的作用和equals方法的重构规则
    Java-IO流之File操作和Properties操作
    Java-IO流之转换流的使用和编码与解码原理
    Java-IO 字节流的使用和效率比较
    Java-IO流之BufferedReader 和BufferedWriter的使用和原理
    二分查找
    leetcode530 二叉搜索树的最小绝对差
    leetcode94 二叉树的中序遍历
    leetcode17电话号码字母组合
    leetcode26 删除排序数组中的重复项
  • 原文地址:https://www.cnblogs.com/backlion/p/15793325.html
Copyright © 2011-2022 走看看