跳转到帖子

搜索论坛

显示结果为标签'SharpGen'。

  • 用标签来搜索

    用逗号分隔标签类型
  • 用作者来搜索

内容类型


论坛

  • 漏洞与黑客攻击防御安全领域
    • 黑客攻防业务合作
    • 世界黑客新闻动态
    • WEB和服务器安全漏洞
    • CHT漏洞数据库
    • Linux Kali高级学习教程
    • CTF&密码学与社会工程
    • 木马病毒分析
    • 黑客世界会员中心
  • 问题讨论中心
    • 问答中心
    • 交流中心
  • 编程开发
    • 各种编程技术
    • ios /安卓开发
  • CHT官方团队介绍及比赛制度
    • CTF攻防系统[供会员使用]
    • 积分商场
    • 积分跳马系统
    • 积分统计系统

产品组

  • Hacker attack and defense security hardware series
  • Internet Security Book Recommendations

博客

没有结果。

没有结果。

类别

  • Hacker Attack and Defense & Network Security Videos

查找结果在…

查找包含的结果…


创建日期

  • 开始

    结束


最后更新

  • 开始

    结束


按数量过滤…

注册日期

  • 开始

    结束


用户组


About Me

找到1个结果

  1. 0x00 前言 夏普根是我认为特别棒的一个工具,它能够用来对其他。网程序集进行整合、重组并加密,二次编译后可生成一个全新的工具 本文将要研究夏普根的细节,介绍调用其他开源库的详细方法,分析利用思路 参考链接: https://github.com/cobbr/SharpGen https://cobbr.io/SharpGen.html 0x01 简介 本文将要介绍以下内容:网络核心开发环境搭建 功能介绍 调用其他开源库的方法 利用思路 0x02 .NET Core开发环境搭建 夏普根使用。网芯,优点是支持多平台(Linux,MacOS和Windows) 编程语言使用C#,利用罗斯林编译100 .净框架控制台应用程序或库 注: 罗斯林是一个。网编译器平台,通过脚本API,能够对脚本文件进行动态编译 测试系统:Win7x64 我在测试系统选择安装。网络核心2.2.0、ASP。网核心2 .2 .0和SDK 2.2.101,这是为了兼容另一个工具契约 对应版本的下载链接如下: https://点网。微软。com/download/thank-you/dot net-SDK-2。2 .101-windows-x64-安装程序 https://点网。微软。com/download/thank-you/dot net-runtime-2。2 .0-windows-x64-安装程序 https://点网。微软。com/download/thank-you/dot net-runtime-2。2 .0-windows-x64-ASP。NET-core-运行时-安装程序 安装Git for Windows,下载链接如下: https://github。windows/Git/releases/download/v2。23 .0 .窗户。1/Git-2。23 .0-64位。可执行程序的扩展名 下载安装并编译夏普根: 饭桶克隆https://github.com/cobbr/SharpGen 激光唱片夏普根 点网构建-配置版本 0x03 基本功能介绍 夏普根默认集成了尖锐的声音,能够直接调用其中的功能 参数说明: 选项: -?| -h | -救命显示帮助信息 -f | -文件要写入的输出文件。 -d | -点网| -点网-框架作为目标的点网框架版本(网络35或net40). -o | -输出类型要使用的输出种类(控制台或dll). -p | -平台要使用的平台(AnyCpy、x86或x64). -n | -无优化不要使用源代码优化。 -a | -程序集名称要生成的程序集的名称。 -s | -源文件要编译的源代码。 -c | -类名要生成的类的名称。 -混淆混乱项目文件配置。 1.对单行代码进行编译 命令如下: example.exe的控制台WriteLine(Mimikatz .登录密码());" 执行过程显示自动补齐的编译代码,如下图 值得注意的是其中的随机类名ohq8r7eQ1qK,每次生成文件时使用的类名均会改变 注: 如果想指定类名,可以加入-c参数,示例如下: example.exe的控制台WriteLine(Mimikatz .登录密码());" 命令执行后生成示例。exe,示例。可执行程序的扩展名会调用米米卡茨的塞库尔萨:登录密码命令 2.对完整代码文件进行编译 example.txt的内容如下: 使用系统; 使用夏普勒斯波特.执行力; 使用夏普勒斯波特.全权证书; 班级计划 { 静态空干管() { 控制台WriteLine(Mimikatz .登录密码()); 返回; } } 命令如下: 点网bin/Release/netcoreapp2.1/sharp gen . dll-f example . exe-源文件example.txt 执行过程显示编译代码,如下图 由于指定了类名为程序,所以不再具有随机类名的功能 注: 夏普根使用了罗斯林进行动态编译,每次生成的文件混杂都会不一样 0x04 高级功能 1.缩小生成文件的体积 (1)取消对指定dll的引用 编辑文件清晰的gen/References/References。yml 此处的动态链接库通常为C#程序使用的引用文件 不需要的动态链接库名称属性由启用:真改为启用:假 (2)取消对指定dll的引用 编辑文件尖锐的性别/资源/资源。yml 此处的动态链接库为实现米米卡茨的功能 不需要的动态链接库名称属性由启用:真改为启用:假 注: powerkatz_x64.dll为64位的米米卡茨 powerkatz_x64.dll.comp为使用系统10 . IO。压缩库压缩后的64位的米米卡茨 powerkatz_x86.dll为32位的米米卡茨 powerkatz_x86.dll.comp为使用系统10 . IO。压缩库压缩后的32位的米米卡茨 (3)使用ConfuserEx资源保护 混乱资源保护会对资源进行加密和LZMA压缩 示例命令如下: 点net bin/Release/netcoreapp2.1/sharp gen . dll-f example . exe-confusm。Cr '控制台WriteLine(Mimikatz .登录密码());" 2.调用其他开源库 参考资料中未介绍这部分内容,这里给出我的解决方法 这里给出两个示例,一个是开源的夏普米,另一个是我自己编写的模板夏普特斯 1.添加对SharpWMI的调用 (1)将夏普米源码复制到SharpGen/Source (2)修改SharpGen/SharpGen.csproj 项目组标签中添加 否则在编译夏普根时会报错提示: Source\SharpWMI\Program.cs(3,14):错误CS0234:命名空间“系统”中不存在类型或命名空间名称“管理”(是否缺少程序集引用?) (3)修改夏普米的源代码 只保留Program.cs,删除其中的主要的函数并且将程序。铯中的每个静态方法改为公共方法 例如: 静态void LocalWMIQuery(string wmiQuery,string wmiNameSpace=' ')需要修改为public static void LocalWMIQuery(string wmiQuery,string wmiNameSpace=' ') (4)重新编译夏普根 命令如下: 点网构建-配置版本 (5)调用测试 example.txt的功能为调用夏普米中的LocalWMIQuery方法查询win32 _计算机系统,内容如下: 夏普米程序。LocalWMIQuery(“select * from win32 _ ComputerSystem”); 控制台WriteLine(主机GetProcessList()); 夏普根的命令如下: 点网bin/Release/netcoreapp2.1/sharp gen . dll-f example . exe-源文件example.txt 生成示例。前夫;前妻;前男友;前女友并执行,调用成功,如下图 2.添加自己编写的C#模板 命名为夏普特斯,功能为接收参数并在命令行输出 (1)新建文件夹夏普特斯,其中新建文件Program.cs,内容如下: 使用系统; 使用系统。集合。泛型; 使用系统。管理; 名称空间清晰度测试 { 班级计划 { 公共静态void TestMethod(字符串string1) { 控制台WriteLine(字符串1); } } } (2)修改SharpGen/SharpGen.csproj 项目组标签中添加 (3)重新编译夏普根 命令如下: 点网构建-配置版本 (4)调用测试 example.txt的功能为调用夏普特斯中的测试方法方法,参数为123456,内容如下: 夏普特斯程序。测试方法(' 123456 '); 夏普根的命令如下: 点网bin/Release/netcoreapp2.1/sharp gen . dll-f example . exe-源文件example.txt 生成example.exe并执行,调用成功,如下图 为了便于测试,我已经叉了cobbr的夏普根,添加了对夏普米和夏普特斯的调用,地址如下: https://github.com/3gstudent/SharpGen 3.资源保护 使用新版的混乱能够对编译后的文件资源进行保护,地址如下: https://github.com/mkaring/ConfuserEx 旧版的混乱不再进行维护,地址如下: https://github.com/yck1509/ConfuserEx 调用命令示例: 点net bin/Release/netcoreapp2.1/sharp gen . dll-f example . exe-confusm。Cr '控制台WriteLine(Mimikatz .登录密码());" 对应使用的配置文件为夏普gen/confush。铬 默认配置为对资源执行加密和LZMA压缩 混乱还支持其他保护功能: 反调试保护 防倾倒保护 反伊尔达斯姆保护 防篡改保护 常量保护 控制流保护 无效的元数据保护 名称保护 参考代理保护 资源保护 只需要去掉夏普gen/confush。铬中对应的注释即可 例如添加反调试功能,配置文件混淆。铬的内容如下: 4.补充:禁用优化 夏普根在编译期间会对源代码进行优化,可通过-无优化参数来禁用优化,这将导致增加生成文件的大小 0x05 利用分析 SharpGen可以作为重新打包的平台。Net程序集,并具有以下优点: 使用。NET核心平台和Roslyn来动态编译,开发代码时可以选择多种平台(Linux,MacOS,Windows)。 可以调用其他开源库自定义函数,最后打包成单个exe文件或dll文件。 使用ConfuserEx对资源进行加密和压缩,以避免被检测到签名。 生成的文件支持。Net3.5和。Net 4.0。 生成的文件支持x86和x64。 此外,使用SharpGen可以快速将POC转换为。Net程序集转换为EXP。 0x06 小结 介绍了SharpGen的功能,分享了我调用其他开源库的方法,分析了SharpGen的优势。 留下回复

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    ×
    ×
    • 创建新的...