干货 | 利用VB.NET反射执行任意系统命令

渗透技巧 2年前 (2022) admin
496 0 0

0x01 介绍

VB.NET反射机制和C#大同小异,只在语法上稍微有些不同,利用Type.GetType类可以获得对象的类型,此包含对象的所有要素方法、构造器、属性等等,此类有6个重载方法,第一个参数指定程序集名typeName,后面两个布尔型参数分别为throwOnError, ignoreCase,表示是否抛出异常,忽略大小写,如下代码

System.Type.GetType("System.Diagnostics.Process, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", True, True)

干货 | 利用VB.NET反射执行任意系统命令

笔者关注到另外一个ReflectionOnlyGetType类,它与GetType类不同之处在于只是显示反射上下文内容,不能够执行代码

public static Type ReflectionOnlyGetType(string typeName, bool throwIfNotFound, bool ignoreCase)        {            StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller;            return RuntimeType.GetType(typeName, throwIfNotFound, ignoreCase, reflectionOnly: true, ref stackMark);        }

最后用Activator.CreateInstance创建实例化对象执行反射,具体使用方法请跟随笔者一探究竟

1.1 使用方法

干货 | 利用VB.NET反射执行任意系统命令

干货 | 利用VB.NET反射执行任意系统命令

1.2 工具化

后续工具发布会发布在星球里,请关注dotNet安全矩阵星球

干货 | 利用VB.NET反射执行任意系统命令

原文始发于微信公众号(dotNet安全矩阵):干货 | 利用VB.NET反射执行任意系统命令

版权声明:admin 发表于 2022年11月4日 上午9:21。
转载请注明:干货 | 利用VB.NET反射执行任意系统命令 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...