回归最本质的信息安全

如何搭建厚客户端的渗透测试环境?

2016年9月1日发布

2,931
0
0

导语:当下,虽然厚客户端不如Web应用程序常见,但在大企业中仍有不少使用后客户端的地方。在本系列文章中,我们将学习如何搭建厚客户端的测试环境并进行渗透测试。

当下,虽然厚客户端不如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: https://www.virtualbox.org/wiki/Downloads

Windows1(客户端)

可以是宿主机或者虚拟机,从github下载源码,可以下载编译好的文件。

要注意的是需要安装.net framework4.5,应用程序才能正常运行。

Windows2(服务端)

创建一台虚拟机,在上面安装SQL Server2008 express,并设置帐号密码为sa/p@ssw0rd。

创建一个名为DVTA的数据库,新建两张表。

最后我们向表里面插入数据。

INSERT INTO USERSvalues(‘admin’,’admin123′,’admin@damnvulnerablethickclientapp.com’,1)
INSERT INTO USERSvalues(‘rebecca’,’rebecca’,’rebecca@test.com’,0)
INSERT INTO USERSvalues(‘raymond’,’raymond’,’raymond@test.com’,0)

接着安装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,如若转载,请注明来源于嘶吼: http://www.4hou.com/technology/2342.html

点赞 0
取消

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

扫码支持

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

Change

Change

嘶吼编辑

发私信

发表评论