介绍Windows下PC客户端的常见漏洞挖掘

发布者:上海IT外包来源:http://www.lanmon.net点击数:2328

对于小白来说,网络安全似乎有一个非常完整的知识系统和漏洞发现过程。刚入门的朋友总是喜欢选择网络方向作为他们的发展方向,因为似乎可以获得网络系统的渗透测试。成就感更高,并且有许多小白人认为网络似乎更好。但是,由于对PC客户端漏洞的利用,由于对底层计算机和操作系统的了解,很多人不敢触摸它,但实际上PC客户端漏洞比你想象的要容易得多。即使您不需要精通汇编语言,也可以轻松挖掘PC客户端漏洞。但是,汇编语言是PC客户端利用的基础。最好学习它。
此外,挖掘PC客户端漏洞和挖掘WEB漏洞也是一样的。两者都需要小心和耐心。您应该学会关注每个细节,并了解系统和软件如何协同工作。本文主要讨论Windows下PC客户端漏洞的漏洞。为了理解和理解,它不涉及高级内存攻击,如ROP和内存溢出技术。
0×01工具
“如果你想做一些好事,你必须首先磨练你的工具。”
PC客户端漏洞挖掘主要基于逆向工程和流程监控。
在逆向工程中,我推荐两种工具,一种是静态分析之王:IDA pro,另一种是动态调试的最佳使用方法:Ollydbg(推荐使用我的爱破解论坛版)这两种反向分析工具你可以找到它,这里没有太多介绍。
流程监控工具主要分为流程本地行为监控和流程网络行为监控。
我推荐的本地行为监控工具:ProcessExplorer流程监控和Autoruns流程监控,这两个工具并不为人所知,但非常实用。
ProcessExplorer进程监控
Autoruns过程监控工具
本地监视工具中的另一个工具是用于监视注册表的工具。以下是一些:
Process Monitor:一个功能强大的注册表监控工具,可以添加过滤规则,非常方便。
Regshot:一种注册表备份和比较工具,通过保存快照和比较快照,找出注册表中的哪些值已更改。RegfromApp:也是一个流程监控工具,可以选择一个流程来跟踪其对注册表的更改。
当然,网络行为监控工具是第一个推出着名的Wireshark。当然,有一个非常小但很容易使用的工具。它是年度联盟的工具,名为WSExplorer。
Wireshark的
WSExplorer是岁月联盟的过程捕获工具,非常方便。进程在左侧,数据包在右侧捕获。
通过这些工具,我们可以知道程序在我们的计算机上做了什么,了解自己并相互了解,并且我们可以开始下一个漏洞利用。
0×02缺陷
对于开发人员来说,开发一个完全没有漏洞的程序是不可能的。特别是,当程序的大小很大时,它必须具有漏洞。我们需要知道的是哪些位置容易出现漏洞。
客户端验证漏洞:
通常,正版客户端软件具有授权认证模块。这些授权认证方法的目的只不过是“购买它的人可以使用它,没有购买它的人不能使用它”,并且一般验证使用注册码和个人的形式。计算机的机器代码彼此绑定或与个人认证机制绑定以用于验证目的。授权身份验证漏洞可能导致严重后果,例如软件和功能被破解,以及盗版程序在流通。授权身份验证漏洞通常是由于开发人员对身份验证的机密性和安全性缺乏关注所致。
客户的网络服务漏洞:
这种类型的漏洞通常是由客户端在没有严格认证的情况下不发送数据包或接收数据包引起的,这可能导致无条件地调用高级权限。
客户端功能逻辑漏洞:
此类漏洞通常是由客户端功能的不合理设计引起的,这可能导致严重后果,例如未经授权的访问。
客户端溢出漏洞:
这种类型的漏洞包含相对困难的逆向工程,主要是由于开发期间内存的错误管理,或程序本身的执行逻辑漏洞。
本文仅介绍前三个漏洞。
0×03实战
客户端功能逻辑漏洞:
挖掘这些漏洞应该关注客户端功能之间的逻辑,类似于Web逻辑漏洞。但不同之处在于功能逻辑漏洞也包含在后编译部分中。通常,通过修改键调用函数上方的跳转逻辑来挖掘漏洞。主要原因是客户端逻辑过于简单且使用较少。逻辑判断。此漏洞在功能齐全的客户端上并不常见。
客户端验证漏洞:
1.基于本地注册表破解:
虽然某些软件使用网络进行授权验证,但由于试验编号的设计存在缺陷,通过修改注册表可以导致无限次试验,从而导致“无法使用付款”,即发生授权验证漏洞。以下是客户端程序的情况。我们打开它时会提示试用次数29次。现在我们打开Process Monitor并使用过滤功能添加白名单,以便Pm仅显示有关过程的信息。
添加过滤后的白名单以仅显示该过程。
关键部件已经过处理。
然后停止所有捕获,关闭并重新启动客户端。经过反复迭代,我们监控每次客户端打开时,它会自动执行RegsetValue(注册表值修改),如下所示:
在测试之后,发现剩余的试验从登记处中名为Nowtimes的键下的值减去整数30。
所以我们编写一个BAT脚本,修改客户端指向的值,让他在客户启动时自动运行,你可以锁定试用次数30次,不减少。
Reg添加HKCU \ Software \ Client Name \ One Location/v Nowtimes/t REG_DWORD/d 0/f
造成这种漏洞的原因主要是因为试用频率识别的方法过于简单,没有加密就没有写入注册表,而且密钥名称很容易理解,它被称为“Nowtimes”。注册表中的这种漏洞发现和使用方法还比较简单,但问题是存在相当多的漏洞,所以每个人在挖掘时都要注意注册表。此外,如果注册表禁止监控,我们可以使用REGshot来保存快照之前和之后的比较分析。
2.基于网络授权验证的主机欺诈检测
这部分内容需要一些逆向工程知识。这次破解的客户端没有建立试用机制,所以第一种方法不起作用。我们将注意力转向其网络身份验证模式,以了解客户端的网络授权验证方法的工作原理。
关键位置编码
只需输入注册码即可进入
只需输入注册码,然后根据弹出错误窗口确定客户端注册检测验证的功能。在OLLYdbg中拖动以查找字符串“注册代码不正确”并将其跟踪到程序集窗口。
所以我们得到了注册授权的服务器地址。为了进一步验证,我们使用wireshark来分析此客户端注册时的网络请求。
可以看出,客户端正在携带我们的机器代码和服务器的/verifycheck/login.php的其他几个数据请求
回到我们的程序集窗口,我们可以看到几个unicode编码,怀疑服务器返回,并记录。
直接使用浏览器访问,你可以发现组装窗口的返回值和记录值是一样的,所以我们猜测可以构造一个假的服务器,修改主机的hosts文件来实现请求重定向,让我们的服务器返回注册成功信息。修改hosts文件,将服务器域名绑定到我们自己的假服务器的ip地址。
在服务器上构建不同的有效负载可以从客户端获得不同的响应,表明漏洞是成功的一半。
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部