当前位置:首页 > 综合 > 客户端渗透测试怎么做 正文

客户端渗透测试怎么做

来源:烟消火灭网   作者:探索   时间:2026-10-17 05:50:31
```html 客户端渗透测试怎么做

客户端渗透测试怎么做

拿到一个exe,双击,端渗弹出一个登录框。透测你输入admin/admin,客户提示密码错误。端渗这时候大多数人会去翻逆向工具,透测但我习惯先打开Process Monitor——看看这程序在后台偷偷摸摸干了什么。客户果然,端渗它尝试读取一个根本不存在的透测配置文件,路径写死在代码里:C:\ProgramData\AppCache\config.dat。客户这就是端渗突破口。

客户端渗透和Web完全两码事。透测Web你面对的客户是HTTP请求和响应,客户端你得跟二进制、端渗内存、透测注册表、本地文件系统打交道。Windows平台最常见,macOS和Linux客户端也有,但工具链和思路差异不小。我主要讲Windows桌面端,这是企业环境里最常遇到的。

第一步永远是信息收集,但别只盯着PE头看。把程序跑起来,用Process Explorer看它加载了哪些DLL,有没有非系统目录下的模块。用API Monitor挂钩几个关键函数——CreateFileW、RegOpenKeyExW、WinHttpOpen。我见过一个“加密聊天工具”,每次启动都会去读HKCU\Software\Vendor\App下面的一个LicenseKey值,如果为空就生成一个写进去。这个值后来被证明是硬编码密钥的Base64变形,拿它直接解开了本地消息数据库。

配置文件是个金矿。很多客户端把敏感信息塞在INI、JSON、XML里,甚至明文SQLite。有个做医疗软件的客户,他们的客户端会在%APPDATA%下建一个cache.db,里面存了最近登录的医生账号和密码哈希——用的还是MD5加固定盐。逆向出来盐值后,彩虹表十分钟跑完。

内存取证不能跳过。用Cheat Engine或者x64dbg附加进程,搜索字符串“password”、“token”、“secret”。有个案例更直接:程序把JWT存在一个全局变量里,用x64dbg在ws2_32.dll的send函数下断点,堆栈回溯两层就看到了明文token。这比逆向算法快多了。

个人踩坑记录:有次遇到一个用.NET Reactor混淆的客户端,dnSpy反编译出来全是乱码。换用de4dot脱壳后,发现它把关键逻辑放在了一个动态加载的程序集里——那程序集从资源段解密出来,直接Assembly.Load。用MegaDumper在运行时dump内存中的程序集,问题解决。别死磕静态分析。

网络通信是另一个切入点。客户端通常走HTTPS,但很多会忽略证书校验——用Fiddler或者Burp抓包,把代理证书装到系统信任区,流量就明文了。更狠一点,用mitmproxy的transparent模式,配合iptables或Windows的netsh interface portproxy做透明代理。我见过一个客户端把API密钥硬编码在请求头里,X-API-Key: 3f7a...,直接拿来调它的云端接口,能拉全公司的通讯录。

提权不是必须的,但有时候能打开新世界。用accesschk.exe看服务权限,用PowerUp.ps1扫一遍。有个客户端安装时创建了一个Everyone:F权限的目录C:\Program Files\Vendor\Updater,里面有个update.exe被计划任务调用。替换成自己的payload,等五分钟就拿到SYSTEM。这属于客户端渗透的“买一送一”。

最后说个反直觉的:别忽略卸载程序。很多客户端的卸载逻辑里藏着硬编码凭据或者后门。用Orca打开MSI安装包,看CustomAction表,经常能发现cmd.exe /c net user backdoor P@ssw0rd /add这种骚操作。我见过最离谱的,卸载时会把数据库密码写到C:\Windows\Temp\uninstall.log里——权限没设好,普通用户可读。

客户端渗透没有标准答案。一个登录框背后可能是C++写的本地验证,也可能是Electron套壳的Web应用。先跑起来,看行为,再决定用什么工具。别一上来就IDA,那玩意儿费眼睛。

```

标签:

责任编辑:综合