当下,虽然厚客户端不如Web应用程序常见,但在大企业中仍有不少使用后客户端的地方。在本系列文章中,我们将学习如何搭建厚客户端的测试环境并进行渗透测试。在第一部分我们将学习胖客户端的基础知识,以及搭建,信息收集。 厚客户端介绍
厚客户端也称胖客户端(Rich or Thick Client),是相对于“瘦客户端”(Thin Client)(基于Web的应用程序)而言的,它是在客户机器上安装配置的一个功能丰富的交互式的用户界面,例如Oracle、DB2数据库的客户端管理工具。
根据维基百科,厚客户端其实是c/s架构中的c。而b/s架构就是我们所熟悉的web应用程序。比如qq就是经典的厚客户端应用程序。厚客户端多是由以下语言开发:
1. NET 2. C/C++ 3. Microsoft Silverlight 4. Java applets etc 常见的c/s架构如下:
这是一个典型的二层架构,客户端和数据库直接连接。大多数应用程序的处理将在客户端进行,数据库负责存储的所有数据。当然这种结构被认为是很不安全的。
这是一个典型的三层架构,在这种类型的设计中,大多数的处理是在服务器端完成,相对于二层架构风险相对较小。 环境搭建
DVTA是vs用C#.NET语言开发的程序,与远端的FTP服务和sql服务进行交互。环境所需要的工具如下。
Vbox: [url=]https://www.virtualbox.org/wiki/Downloads[/url]
Windows1(客户端)
可以是宿主机或者虚拟机,从[url=]github[/url]下载源码,可以下载编译好的文件。
要注意的是需要安装.net framework4.5,应用程序才能正常运行。
Windows2(服务端)
创建一台虚拟机,在上面安装SQL Server2008 express,并设置帐号密码为sa/p@ssw0rd。
创建一个名为DVTA的数据库,新建两张表。
最后我们向表里面插入数据。
接着安装XAMPP,设置FTP的用户名和密码:dvta/p@ssw0rd
要注意的是需要配置数据库服务器的ip为192.168.56.110,这个ip是在代码中写死的,当然你也可以修改后重新编译。 信息收集
信息收集是渗透测试的至关重要的一步。在这个阶段,我们需要尽可能的收集与目标应用程序相关的信息。客户端渗透测试需要做的一些常见的事情如下。 探索应用程序的完整的功能
了解该应用程序的完整功能。使用不同用户(rebecca, raymond, admin)浏览所有UI元素。我们将在后面的文章中讨论DVTA的功能和弱点。 应用程序是如何构建
我们需要逆向二进制文件知道应用程序是如何构建的,CFF Explorer是一个不错的工具。我们用CFF Explorer浏览DVTA.exe看看有什么东西。
可以看到应用程序是由VS.NET构建,可以逆向.NET编译后的文件,如果要是不行的话则使用模糊测试。
客户端与服务端是如何沟通的?
来自Sysinternals的套件中的TCPView可以用来查看本地机器月远程主机之间的连接。
运行TCPView后再打开DVTA。
我们可以看到DVTA正在与192.168.56.102进行连接。我们可以使用wireshark查看更详细的连接信息。
文件监控
我们可以用Sysinternals套件中的process monitor来查看应用程序的一举一动。打开processmonitor按下图设置好过滤器。
然后运行DVTA,我们可以看到DVTA所做的一系列操作。可以看到dvta在访问注册表,其中出现了username,password的字眼。这是一个有趣的信息,需要进一步探索。我们将在后面的文章中讨论更多关于数据存储的问题。
任何与应用在一起的文件
有时候会在应用程序目录下看到配置文件,如下。
图中显示当前目录DVTA及其所有依赖项。如果你仔细观察,有配置文件DVTA.exe.config。
有趣!正如你所看到的在上面的图中,我们从位于DVTA文件夹的配置文件获取有趣的信息。通常情况下,该信息告诉所使用的应用程序如何连接到数据库。尽管数据库密码是加密的,有多种方法来获得明文密码。使用密钥和IV来解密使用AES加密的密码是一个方法。我们将在后面的文章讨论更多关于获取明文数据库密码的概念。
总结
在本文中,我们建立了一个厚客户机应用程序渗透测试环境,然后我们讨论了各种信息收集技术。在下一篇文章中,我们将讨论如何截取厚客户机应用程序传输的信息。 注:本文参考来源于infosecinstitute
|