PC(C/S架构)客户端测试笔记

0. 概述

web、PC客户端、APP客户端的区别:

  • web为B/S架构,服务端更新后,刷新一下页面就同步更新了
  • PC、APP为C/S架构,服务端更新后,需要对各个主流版本进行兼容测试及回归测试,客户端更新的话,需要重新安装或升级应用

PC客户端漏洞挖掘主要是逆向工程和进程监控为主。

1. 信息收集

PC客户端的信息收集有别于web,主要收集一些比如:编译信息,开发环境/语言,协议,数据库,IP,接口,混淆/加密,是否加壳等。

1.1 信息提取

提取PE文件中的敏感信息

  • Universal Extractor

https://www.filecroco.com/download-universal-extractor/

  • binwalk

https://github.com/devttys0/binwalk/releases/latest

1.2 文件数字签名检测

  • Sigcheck:文件数字签名检查工具

https://download.sysinternals.com/files/Sigcheck.zip

  • GUI版本:

https://github.com/bibortone/Toolsuite/blob/master/SigcheckGUI.exe

1.3 PE文件分析

查看.net的PE结构、编译环境等

  • ExeinfoPe

https://down.52pojie.cn/Tools/PEtools/ExeinfoPe.zip

  • CFF Explorer

https://download.cnet.com/CFF-Explorer/3000-2383_4-10431155.html

  • StudyPE

https://down.52pojie.cn/?query=studype

1.4 查壳/脱壳

  • PEID

https://down.52pojie.cn/Tools/PEtools/PEiD%200.95.zip

  • NETUnpack

https://down.52pojie.cn/Tools/NET/NETUnpack.rar

1.5 字符串

通过strings、find、cat、grep等命令搜索IP、域名等敏感字符串

2. 逆向工程

2.1 反编译

逆向工程里面两个最受欢迎的工具:

静态分析:IDA pro

https://down.52pojie.cn/Tools/Disassemblers/IDA.txt

动态调试:Ollydbg

https://down.52pojie.cn/Tools/Debuggers/%E5%90%BE%E7%88%B1%E7%A0%B4%E8%A7%A3%E4%B8%93%E7%94%A8%E7%89%88Ollydbg.rar

https://down.52pojie.cn/Tools/OllyDbg_Plugin/

2.1.1 .NET

ilasm 和 ildasm 都是微软官方提供的.Net编译与反编译工具,可谓是.Net逆向中的瑞士军刀。这两个工具的位置分别位于.Net Framework目录和Microsoft SDK目录中:

1
2
3
> C:\Windows\Microsoft.NET\Framework\v2.0.50727\ilasm.exe
> C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\ildasm.exe
>
2.1.2 Java

同安卓平台,所以安卓反编译的工具在此也应该是都可以用的

通过第一阶段的信息收集,我们可能会获得一些敏感信息,比如:

  • 安装目录是否存在db、conf、config等敏感文件;
  • IP、域名、API、数据库等敏感信息;
  • 硬编码配置信息,比如Appkey、AppSecure、加密密钥等;
  • 源代码,在通过github、码云等去搜相关的代码特征;
  • 获取加解密逻辑;
  • 后门;

3. 运行监控

运行监控包括软件安装、运行时Windows上文件、注册表、进程、流量的动态情况及分析。监控整个客户端的运行情况,我们就可以知道程序在我们的计算机上做了些什么、整个业务逻辑流程是什么样的。

3.1 文件

开发调试日志、错误日志、临时文件、配置文件、运行时文件等,比如登录后是否本地铭文保存账号密码,开发调试日志是否有服务器敏感信息,本地数据是否明文储存等

3.2 注册表

3.3 进程

3.4 流量

Wireshark/Echo Mirage/Burpsuite+Proxifier/Fillder/Charles

  • WSExplorer:进程抓包工具,左侧是进程,右侧是对应的进程抓到的数据包。

https://bbs.pediy.com/thread-125475.htm

  • Echo Mirage:Echo Mirage可针对某一个应用规则拦截并修改非HTTP协议的流量。

https://sourceforge.net/projects/echomirage.oldbutgold.p/

  • TCPView:TCPView是一个用来显示系统中所有的TCP和UDP端点(endpoint)列表的Windows程序,包括本地和远程的网络地址,以及TCP连接的状态。

https://docs.microsoft.com/zh-cn/sysinternals/downloads/tcpview

4. 业务逻辑分析

PC客户端业务逻辑分析方法同安卓客户端,抓取到业务逻辑流量之后参照B/S架构的测试方法即可。

业务流量抓取主要分为两步:

1、添加代理服务器

2、设置代理规则(设置需要代理的应用程序)

这样,只要选择需要代理的应用程序,比如chrome.exe,即可实现PC客户端流量转发

具体详情可参考:渗透测试之业务流量通用抓包方法

5. 其他漏洞

其他漏洞的测试大致同B/S架构,只不过都变成了桌面的框框的。

  • 登录爆破

  • 用户名枚举

  • 任意用户注册

  • 任意用户密码重置

  • SQL语句等敏感信息泄漏

  • SQL注入

  • CSV注入

  • XSS

  • 文件读取
  • 命令执行
  • 逻辑缺陷
  • DLL劫持

  • 认证授权缺陷:https://www.freebuf.com/vuls/203227.html

  • 安全策略绕过

  • 越权

  • 中间人攻击
  • 未授权
  • 溢出

参考文章:

嘶吼RoarTalk《厚客戶端渗透测试实战》系列文章

https://down.52pojie.cn/

https://github.com/theLSA/CS-checklist

https://github.com/cybertechniques/site/

https://github.com/bibortone/Toolsuite/

https://github.com/theLSA/hack-cs-tools

https://www.aneasystone.com/archives/2015/06/net-reverse-decompiling.html

https://blog.csdn.net/WPwalter/article/details/80457131

https://www.t00ls.net/articles-50878.html

https://www.freebuf.com/vuls/203227.html

https://cloud.tencent.com/developer/article/1472352

大爷,赏个铜板呗!