1.冲击波病毒病毒反汇编源码
2.主机安全技术剖析-关于Windows RPC挖掘的漏漏洞利用那些事
3.fastjson 1.2.24源码分析以及漏洞复现
4.初入RMI反序列化(一)
冲击波病毒病毒反汇编源码
这部分代码是冲击波病毒的反汇编源码片段,它包含了多个指令和操作。洞源首先,漏漏洞利用有两条指令(F6 and esi,洞源esi 和 1AFC sbb bh,ah)对esi和esi以及bh和ah进行操作。接下来的漏漏洞利用( DDDC xor eax,4DC9DD3)执行异或操作,改变eax的洞源彩虹源码在线破解值。然后是漏漏洞利用pop edx,wait和cli指令,洞源可能用于控制程序流程和中断处理。漏漏洞利用 在后面的洞源代码中,有mov ebp,漏漏洞利用FFD和mov dl,0C3等,用以设置内存地址和执行特定操作。洞源cmps指令用于比较内存中的漏漏洞利用字节,push esp和inc/dec esi等操作用于数据处理。洞源未知命令(E2 F4 loopd和C6)可能代表未识别的漏漏洞利用循环指令。test al,7B和jpo等指令用于条件判断。 最后,代码中包含了ret指令(C3),用于返回到上一层调用,以及一系列的内存操作,如lea edi,多账号管理源码edi,mov ah,0D8,out dx,eax等,可能用于数据交换和输出。整体来看,这部分源码执行了一系列复杂的指令,用于执行病毒的特定功能,如数据比较、内存操作和控制流程。扩展资料
冲击波(Worm.Blaster)病毒是利用微软公司在7月日公布的RPC漏洞进行传播的,只要是计算机上有RPC服务并且没有打安全补丁的计算机都存在有RPC漏洞,具体涉及的操作系统是:Windows、XP、Server 。主机安全技术剖析-关于Windows RPC挖掘的那些事
本文深入探讨了如何利用Windows中的远程过程调用(RPC)机制,挖掘出系统中存在的未修复和改进的潜在漏洞,以实现本地提权。文章首先介绍了Windows提权系列的背景,指出了除了传统的绕过用户账户控制(UAC)和利用内核漏洞外,还有许多其他实现本地提权的手段。接着,原创批量检测源码文章详细阐述了如何通过模糊测试(Fuzzing)技术,利用RPC服务器中的漏洞来挖掘出这些潜在的安全隐患。
文章提供了两个利用RPC提权漏洞的实例,并分享了实现这些实例的工具和方法。首先,介绍了如何选择和使用模糊测试工具,如Impacket库,来探索和尝试未记录的RPC接口。接着,文章深入讲解了如何使用RpcView工具枚举RPC服务器,并通过下载Windows SDK中的symchk.exe工具,来配置RpcView以解析函数名称。这一步骤对于理解RPC通信过程至关重要。
文章进一步解释了如何利用PetitPotam工具,通过构建RPC接口和利用特定的RPC服务接口(如EFSRPC和LSARPC),实现本地提权。通过反编译接口为IDL文件,生成头文件和源代码,实现自定义RPC客户端。文章还展示了通过构造特定的割草游戏unity源码UNC路径来欺骗特权进程访问恶意管道,进而实现提权的过程。
最后,文章分享了两个具体的本地提权实例,一个是通过诊断跟踪服务(DiagTrack)中的RPC接口(UtcApi_StartCustomTrace)实现的提权,另一个是利用AzureAttestService服务中的RPC接口。文章强调了如何通过利用这些服务的RPC接口,构造特定的输入来触发提权过程,并最终实现本地用户权限的提升。
本文通过实例和工具介绍,提供了深入的理论和技术细节,旨在帮助安全研究者和系统管理员了解如何利用Windows RPC机制进行本地提权,同时强调了及时修复和更新系统的重要性,以防止此类安全风险的利用。
fastjson 1.2.源码分析以及漏洞复现
反序列化,这个过程将字节序列恢复为Java对象。例如在使用Python做自动化测试时,通过字符串名字调用相同名字的方法。Fastjson的功能允许通过字符串引用如`@type":"com.sun.rowset.JdbcRowSetImpl`来执行内部方法。由此,我们能利用Fastjson提供的java如何保存源码便利,通过调用对应的函数来验证漏洞。
在渗透测试中,漏洞的验证通常需要满足几个条件:判断指纹和指纹回显,Fastjson的特性使得这一步变得简单。然而,在利用过程中,要考虑到Fastjson本身的限制、JDK的限制以及可能的安全配置限制。因此,POC验证方案需考虑这些限制的版本和配置。
Fastjson通过JSON抽象类实现JSONAware接口,并提供两个常用方法:`toJSONString`用于对象转换为JsonString,`parseObject`用于将JSON字符串转换为对象。这次的漏洞主要与反序列化相关。
反序列化的执行发生在`DefaultJSONParser.java`类中。关键代码中,固定键`@type`对应反序列化类的全路径,其中`typeName`为传入类的全路径。在Fastjson 1.2.版本中,`loadClass`方法未进行任何过滤,允许传入任何JVM加载的类,并执行`setKey`方法,其中Key为可变参数。
要利用这个反序列化漏洞,需要满足以下条件:JVM加载的类、有非静态set方法和传入一个参数。使用RPC远程执行代码的思路实现POC,此处使用了`com.sun.rowset.JdbcRowSetImpl`实现。
JNDI全称为Java Naming and Directory Interface,主要提供应用程序资源命名与目录服务。其底层实现之一是RMI(Remote Method Invocation),用于Java环境的远程方法调用。在`com.sun.rowset.JdbcRowSetImpl`类中,关注点在于`getDataSourceName()`和`setAutoCommit()`方法。`getDataSourceName()`用于传值,`setAutoCommit()`用于确认调用set方法。
实现过程包括引用`com.sun.rowset.JdbcRowSetImpl`类、设置`dataSourceName`传值以及通过`autoCommit`属性触发执行方法。完成方法确认后,使用`marshalsec`项目启动RMI服务并加载远程类。
POC的实现步骤如下:首先确认目标是否使用Fastjson且存在漏洞;利用Fastjson的反序列化功能传输引用类和执行方法;使用`com.sun.rowset.JdbcRowSetImpl`执行验证POC的脚本,并观察回显结果;最后,完成漏洞利用。
具体操作包括搭建环境,如使用CentOS虚拟机作为RMI服务器和远程调用服务,KALI机器作为靶机和抓包测试。进行指纹确认、安装maven、构建RMI服务器和客户端、调用测试文件,并观察DNS日志以验证漏洞成功利用。通过DNS日志确认漏洞利用成功后,可以进一步尝试反弹shell,实现远程控制。
综上所述,Fastjson的反序列化漏洞是一个可以被利用的安全问题,通过合理的利用,可以实现远程代码执行。了解和研究这类漏洞有助于增强对Fastjson以及类似技术的防御能力。
初入RMI反序列化(一)
程序员的探索之旅: 本文将深度剖析RMI反序列化,分为"入门篇"和"漏洞解析"两大部分,带你探索RPC框架中的RMI技术,包括其背后的原理、实现及潜在的安全隐患。我们将在JDK8u的攻击端与jdk7的服务端,以及Apache-Commons-Collections 3.1和ysoserial.jar的背景下展开讨论。RMI基础
在分布式编程中,RMI是RPC框架之一,让我们从概念出发:RPC框架比较:RMI、grpc和dubbo各有特色,RMI以其简单易用著称。
RMI概念解析:远程调用的奥秘,Server、Client和Registry的协作机制。
实践代码示例:一步步构建接口、实现、实体,以及客户端如何调用远程服务。
源码浅析揭秘:深入RMI源码,理解服务端的发布与调试过程。
服务端发布与调试
发布过程:从无参构造到创建RemoteHelloWorld引用,每个步骤都至关重要。
关键步骤:初始化castServerRef,通过端口传递;有参构造LiveRef,实现对象的远程发布。
UnicastRef封装:TCP通信与对象类型检查,确保高效安全的通信。
exportObject与代理:创建并调用RemoteHelloWorld,服务器端的代理写法如何运作。
安全风险点
在服务端,执行call方法时,readObject漏洞可能成为攻击者的入口:readObject的危险:未过滤的输入流可能导致恶意对象反序列化,构成潜在威胁。
客户端与服务端的攻防:序列化/反序列化操作,既是攻击手段,也是防御线。
动态代理与客户端调用
var动态代理类中,RemoteObjectInvocationHandler与LiveREF承载着服务端信息,客户端调用远程方法时,这个环节尤为关键:客户端调用链路:从注册中心获取服务,执行executeCall,反序列化可能的陷阱。
返回值与潜在攻击:unmarshalValue环节,可能成为攻击者下手的地方。
总结:序列化/反序列化如同一把双刃剑,既可实现数据交互,也可能带来安全风险。下期我们将深入剖析RMI反序列化漏洞,敬请期待!