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

admin 2023年1月30日01:21:50评论29 views字数 747阅读2分29秒阅读模式

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反射执行任意系统命令

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月30日01:21:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   干货 | 利用VB.NET反射执行任意系统命令https://cn-sec.com/archives/1390695.html

发表评论

匿名网友 填写信息