厚客户端渗透介绍(五):API测试 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

厚客户端渗透介绍(五):API测试

DarkEye 技术 2020-06-28 11:30:00
653595
收藏

导语:厚客户端渗透测试介绍是一个系列博客文章,上一篇我们讲到了程序集的测试,这一章我们来看看API的测试。

厚客户端渗透测试介绍是一个系列博客文章,上一篇我们讲到了程序集的测试,这一章我们来看看API的测试。

示例应用下载地址:BetaFast Github repo

已发布文章

厚客户端渗透介绍(一):GUI测试

厚客户端渗透介绍(二):网络测试

厚客户端渗透介绍(三):文件系统和注册表测试

厚客户端渗透介绍(四):程序集测试

信息收集

测试应用程序时,搞清楚程序表面背后的逻辑是非常重要的。想象一下你们见过的最大的桌面应用程序,可能跟我测试过的体量庞大的厚客户端相比,都算不了什么。测试这些庞杂的厚客户端需要团队合作和坚持不懈的精神。我曾经做过一个demo的测试,花了6个小时,都没有看完整个应用程序的逻辑和代码。即使代码没有进行混淆,我也不可能读完,完全搞懂每句代码的意思。

不过好在有大牛开发了工具,可以帮助我们测试。

API Monitor

首先来介绍下API Monitor。这个工具会监控进程中的所有API调用,并且显示参数。在这个例子中,我们会筛选出BetaFast在登录认证过程中API调用列表,注意看一下左侧的API过滤器。当我勾选相应的模块并且通过BetaFast认证时,summary这一栏瞬间就记录了50000多条API调用,占用了相当一部分的系统资源:

1.png

以我的经验来看,使用API Monitor来监控BetaFast程序,并不会突出显示一些特定的漏洞,并且几乎所有的主要功能都包含在单独的程序集中,所以API Monitor可能无法找到在库之间传递的大量敏感信息。但是这个工具在显示其他信息方面也是很有帮助的,如显示正在使用的系统资源,被引用或创建的文件,网络调用,安全调用等。除了信息收集外,我们再来看看攻击方面,它能够在加密之前拦截和修改数据,或者是收集库之间传递的明文密码和连接字符串。

发起调用

下面我们看看高级测试。有一款测试工具叫“.net SmokeTest”,可用于加载和运行单个方法调用。不需要加载程序并搜索方法调用的位置,不需要调试应用程序,而且一行代码都不用编写。如果测试时需要写一个方法,用.net SmokeTest执行也很简单,比在程序中找到正确的调用点简单得多。而且,对于在预写方法中测试各种数据输入也是非常有用的。

请看下面这个加密方法!使用上篇文章介绍到的反编译器,我们在BetaFast.exe程序中找到了一个硬编码的加密密码,具体来说,就是在LoginModelView这个类中,看下代码,在点击登录时,登录表单中的密码会被加密,然后与存储的值进行比较。

2.png

加密方法如下:

3.png

再往下看,是解密方法,但是在程序中没有调用。由于IV和key在硬编码在了程序中,因此只需要输入密文即可:

4.png

下一步自然就是解密硬编码在代码中的加密密码了。首先启动.net SmokeTest,然后创建一个LoginViewModel类的实例:

5.png

打开LoginViewModel类,将密码作为密文参数传递到解密函数中,然后就可以显示出明文密码了:

6.png

还有一个powershell解密脚本,几年前的NetSPI的一篇博客中也有提到,以下代码可以运行来调用特定的方法:

# Load Assembly
$Assembly = [System.Reflection.Assembly]::LoadFile("C:\Users\netspi\Desktop\Examples\3-Tier\BetaFast.exe")
# Create binding
$BindingFlags= [Reflection.BindingFlags] "NonPublic,Instance"
# Target the class
$Instance = new-object "BetaFast.ViewModel.LoginViewModel"
# Call the methods
$Instance.GetType().GetMethod("Encrypt",$BindingFlags).Invoke($Instance,"Spring1980!")
$Instance.GetType().GetMethod("Decrypt",$BindingFlags).Invoke($Instance,"PE/jSP7tOGDLoZLXRvPtlA==")

可以看到Spring1980!成功加密,而PE/jSP7tOGDLoZLXRvPtlA== 也成功解密:

7.png

本文翻译自:https://blog.netspi.com/introduction-to-hacking-thick-clients-part-5-the-api/如若转载,请注明原文地址
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务