0. 概述
web、PC 客户端、APP 客户端的区别:
- web 为 B/S 架构,服务端更新后,刷新一下页面就同步更新了
- PC、APP 为 C/S 架构,服务端更新后,需要对各个主流版本进行兼容测试及回归测试,客户端更新的话,需要重新安装或升级应用
- PC 客户端漏洞挖掘主要是逆向工程和进程监控为主。
1. 信息收集
PC 客户端的信息收集有别于 web,主要收集一些比如:编译信息,开发环境/语言,协议,数据库,IP,接口,混淆/加密,是否加壳等。
1.1 信息提取
提取 PE 文件中的敏感信息
- Universal Extractor
www.filecroco.com/download-un…
- binwalk
1.2 文件数字签名检测
- Sigcheck:文件数字签名检查工具
download.sysinternals.com/files/Sigch…
- GUI 版本:
1.3 PE 文件分析
查看.net 的 PE 结构、编译环境等
- ExeinfoPe
- CFF Explorer
download.cnet.com/CFF-Explore…_4-10431155.html
- StudyPE
1.4 查壳/脱壳
- PEID
- NETUnpack
1.5 字符串
通过 strings、find、cat、grep 等命令搜索 IP、域名等敏感字符串
2. 逆向工程
2.1 反编译
逆向工程里面两个最受欢迎的工具:
- 静态分析:IDA pro
- 动态调试:Ollydbg
down.52pojie.cn/Tools/OllyD…_Plugin/
2.1.1 .NET
- de4dot:down.52pojie.cn/Tools/NET/d…
- dotPeek:www.jetbrains.com/decompiler/…
- ilasm:msdn.microsoft.com/zh-cn/libra…
- ildasm:msdn.microsoft.com/zh-cn/libra…
ilasm 和 ildasm 都是微软官方提供的.Net 编译与反编译工具,可谓是.Net 逆向中的瑞士军刀。这两个工具的位置分别位于.Net Framework 目录和 Microsoft SDK 目录中:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\ilasm.exeC:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\ildasm.exe
- ILSpy:github.com/icsharpcode…
- dnSpy:github.com/0xd4d/dnSpy…
基于 ILSpy 发展而来,它能在完全没有源码的情况下即时调试程序,甚至还能修改程序!
2.1.2 Java
同安卓平台,所以安卓反编译的工具在此也应该是都可以用的
- jadx:down.52pojie.cn/Tools/Andro…_Tools/jadx-1.1.0.zip
- jad:varaneckas.com/jad/
- JD-GUI:down.52pojie.cn/Tools/Andro…_Tools/jd-gui-1.5.5.jar
- 在线反编译:javare.cn,www.javadecompilers.com
通过第一阶段的信息收集,我们可能会获得一些敏感信息,比如:
- 安装目录是否存在 db、conf、config 等敏感文件;
- IP、域名、API、数据库等敏感信息;
- 硬编码配置信息,比如 Appkey、AppSecure、加密密钥等;
- 源代码,在通过 github、码云等去搜相关的代码特征;
- 获取加解密逻辑;
- 后门;
3. 运行监控
运行监控包括软件安装、运行时 Windows 上文件、注册表、进程、流量的动态情况及分析。监控整个客户端的运行情况,我们就可以知道程序在我们的计算机上做了些什么、整个业务逻辑流程是什么样的。
3.1 文件
开发调试日志、错误日志、临时文件、配置文件、运行时文件等,比如登录后是否本地铭文保存账号密码,开发调试日志是否有服务器敏感信息,本地数据是否明文储存等
-
Process Monitor:强大的监视和过滤功能的高级 Windows 监视工具,可实时显示文件系统、注册表、进程/线程的活动,可以添加过滤规则。
3.2 注册表
-
RegfromApp:可以选择一个进程之后跟踪其对注册表的修改
-
Process Monitor:强大的监视和过滤功能的高级 Windows 监视工具,可实时显示文件系统、注册表、进程/线程的活动,可以添加过滤规则。
-
Regshot:注册表备份和比对工具,可以通过保存快照和比对快照的方式来找出注册表中哪些值发生了变化,利用 regshot 比较客户端运行(如登录)前后注册表差别。
-
Autoruns:一款启动项、注册表、进程等多功能的安全
3.3 进程
-
ProcessHacker:查看客户端内存中的敏感数据,比如账号密码、key、数据库信息等。
-
ProcessExplorer:利用 ProcessExplorer 就可以知道哪个程序打开了某个文件或者目录么?PorcessExplorer 将会显示出进程打开或者加载了哪些的句柄(handles)或者动态链接库(Dlls)。
-
火绒剑:集进程、启动项、注册表、文件等多种功能为一体的监控工具
3.4 流量
Wireshark/Echo Mirage/Burpsuite+Proxifier/Fillder/Charles
- WSExplorer:进程抓包工具,左侧是进程,右侧是对应的进程抓到的数据包。
- Echo Mirage:Echo Mirage 可针对某一个应用规则拦截并修改非 HTTP 协议的流量。
- TCPView:TCPView 是一个用来显示系统中所有的 TCP 和 UDP 端点(endpoint)列表的 Windows 程序,包括本地和远程的网络地址,以及 TCP 连接的状态。
docs.microsoft.com/zh-cn/sysin…
4. 业务逻辑分析
PC 客户端业务逻辑分析方法同安卓客户端,抓取到业务逻辑流量之后参照 B/S 架构的测试方法即可。
业务流量抓取主要分为两步:
1、添加代理服务器
2、设置代理规则(设置需要代理的应用程序)
这样,只要选择需要代理的应用程序,比如 chrome.exe,即可实现 PC 客户端流量转发
具体详情可参考:渗透测试之业务流量通用抓包方法
5. 其他漏洞
其他漏洞的测试大致同 B/S 架构,只不过都变成了桌面的框框的。
- 登录爆破
- 用户名枚举
- 任意用户注册
- 任意用户密码重置
- SQL 语句等敏感信息泄漏
- SQL 注入
- CSV 注入
- XSS
- 文件读取
- 命令执行
- 逻辑缺陷
- DLL 劫持
- 认证授权缺陷:www.freebuf.com/vuls/203227…
- 安全策略绕过
- 越权
- 中间人攻击
- 未授权
- 溢出
参考文章:
嘶吼 RoarTalk《厚客戶端渗透测试实战》系列文章
www.aneasystone.com/archives/20…
cloud.tencent.com/developer/a…