跳转到帖子

记一次对某客户端的安全测试

recommended_posts

发布于
  • Members

0x00 起因

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

0x01 抓包

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

bkwljxt1e4k9297.png

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

Proxifier + BurpSuite

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

ns0ahxyzsl09298.png

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

vvpcujwwyce9299.png

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

1rnuvxnp0cj9300.png

在 Proxifier 中添加代理规则

1vztlfgwntz9301.png

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

2jk3k3ectak9302.png

0x02 数据包分析

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

hclsvr3v0z29303.png
bxzytbqd1ql9304.png

尝试 Web 访问

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

fykuviyg0ix9305.png

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

0x03 柳暗花明

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

suvm2fhbkn49306.png

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

owm2jiv0oe19307.png

一波三折

更换 jsp 文件内容

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

cx5idxuscav9308.png

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

et0xmfycaqf9309.png

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

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

更换 jdk 版本

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

enrch5gjqwd9310.png
y4iungxo4259311.png

Myeclipse 构造 war 文件

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

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

i3semzw0nud9312.png
yqqso433zl09313.png

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

zwdsb4w5c1q9314.png

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

ofhdhb1jgzs9315.png

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

u3ynd52mccg9316.png

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

h5q3a22xfst9317.png
2os0gdrv1hc9318.png
e4kvunjxtxh9319.png

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



原文链接: https://xz.aliyun.com/t/10253

  • 查看数 719
  • 已创建
  • 最后回复

参与讨论

你可立刻发布并稍后注册。 如果你有帐户,立刻登录发布帖子。

游客
回帖…