skipped 2 lines 3 3 ![Language](https://img.shields.io/badge/Language-Golang-blue) 4 4 ![Author](https://img.shields.io/badge/Author-H4de5-orange) 5 5 ![GitHub stars](https://img.shields.io/github/stars/H4de5-7/geacon_pro.svg?style=flat&logo=github) 6 - ![Version](https://img.shields.io/badge/Version-V1.0 . 1-red) 6 + ![Version](https://img.shields.io/badge/Version-V1.1. 0 -red) 7 7 ![Time](https://img.shields.io/badge/Join-20221117-green) 8 8 <!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451--> 9 9 10 - 本项目基于[geacon](https://github.com/darkr4y/geacon)项目对cobaltstrike的beacon进行了重构,并适配了大部分Beacon的功能。 10 + 本项目基于[geacon](https://github.com/darkr4y/geacon)项目对cobaltstrike的beacon进行了重构,并适配了大部分Beacon的功能, 支 持 4 . 1 + 版 本 。 11 11 12 - **该项目会持续跟进免杀的技术,保持项目的免杀性,并将免杀的技术与工具集成进来,希望未来可以做成不仅限cs功能的跨平台后渗透免杀工具。如果师傅们有相关的需求或者想法,欢迎一起来讨论。师傅们的支持与讨论是我们前进的动力。** 13 - 14 - **后续可能会考虑hook服务端jar包,类似冰蝎4.0让用户可以自定义流量的加密方式。** 15 - 16 - **该项目仅用于对CobaltStrike协议的学习测试。请勿使用于任何非法用途,由此产生的后果自行承担。** 17 - 18 - 本项目与好兄弟Z3ratu1共同开发,他实现了一版支持4.0版本的[geacon_plus](https://github.com/Z3ratu1/geacon_plus),我这边实现了一版支持4.1及以上版本的beacon,大致功能类似,有部分功能不同。 19 - 20 - 传统cs的免杀偏向于如何加载上线,但是杀软对beacon的特征查得非常严,尤其是卡巴这种查内存的,因此不如自己重构一个。 21 - 22 - 免杀主要体现在三个方面: 23 - * 由于是重构的,因此没有beacon的特征,针对beacon特征的杀软是检测不出来的。 24 - * golang本身具备一定的免杀性 25 - * 针对各功能实现了免杀,cs部分不免杀的功能得到了更换 26 - 27 - **在师傅们的帮助下测试了4.3、4.4、4.5、4.7版本,理论上来说4.1+版本均支持,如果有不支持的版本请及时通知我。** 28 - 29 - **如果有不免杀的地方请及时通知我。** 30 - 31 - **由于项目刚做出来,目前的版本存在部分功能不完善的地方,如有需求请师傅们提出。** 32 - 33 - 目前实现的功能具备免杀性,可过Defender、360核晶(除powershell)、卡巴斯基(除内存操作外,如注入原生cs的dll)、火绒 12 + 目前实现的功能具备免杀性,可过Defender、360核晶、卡巴斯基(除内存操作外,如注入原生cs的dll)、火绒 34 13 35 14 上述测试环境均为实体机 36 15 37 - **为了规避360对fork&&run操作的监控,本项目目前采用注入自己的方式来执行cs原生的dll,但是测试发现cs原生powerpick在注入自己执行的时候有时候会拿不到回显,在fork&&run模式下正常。因此可用execute-assembly执行我这里另一个powershell免杀的[小工具](https://github.com/H4de5-7/powershell-bypass),可绕过Defender、360等。** 38 - 39 - 若想使用免杀bypassUAC的话,请execute-assembly执行[该项目](https://github.com/0xlane/BypassUAC/)的Csharp版本,尽管Csharp程序不免杀,但是execute-assembly之后可过Defender与360。该项目dll版本自己编译一下是可以免杀的,但是需要落地并且需要用rundll32执行,因此并不推荐。 40 - 41 - 若想用免杀捆绑器的话可以参考我的这个[小项目](https://github.com/H4de5-7/Bundler-bypass) 42 - 43 - 若想用免杀计划任务的话可以参考我的这个[小项目](https://github.com/H4de5-7/schtask-bypass)以及一个师傅的这个[项目](https://github.com/0x727/SchTask_0x727)(不过这个项目需要用execute-assembly来内存执行)。 16 + **该项目会持续跟进免杀的技术,保持项目的免杀性,并将免杀的技术与工具集成进来,希望未来可以做成不仅限cs功能的跨平台后渗透免杀工具。如果师傅们有相关的需求或者想法,欢迎一起来讨论。师傅们的支持与讨论是我们前进的动力。** 44 17 45 - 开发的过程中参考了鸡哥的数篇文章以及许许多多的项目,同时抓包对服务端返回的内容进行猜测,并对服务端java代码进行了部分的理解。 18 + 本项目与好兄弟Z3ratu1共同开发,他实现了一版支持4.0版本的[geacon_plus](https://github.com/Z3ratu1/geacon_plus),我这边实现了一版支持4.1及以上版本的beacon,大致功能类似,有部分功能不同。 46 19 47 20 由于本人对二进制方向接触的不多,希望师傅们多多包涵,欢迎师傅们交流,欢迎指出问题。 48 21 49 - **如果有师傅对堆内存加密有好的解决思路欢迎来讨论,我的实现思路在实现细节里面** 22 + ## 二、免责声明 23 + **该项目仅用于对CobaltStrike协议的学习测试以及合法的渗透测试。请勿使用于任何非法用途,由此产生的后果自行承担。** 50 24 51 - ## 更新的情况 52 - 11.10更新: 53 - 54 - 实现了exit时自删除的功能,可通过设置config.go中的DeleteSelf来设置,默认为false。 55 - 56 - 11.9更新: 57 - 58 - 实现了dllinject、cna等用户自定义反射型dll注入,将shinject和dllinject的注入方法改为remote,修改了rsa解密的bug,对x86进行了部分功能的适配,对cna进行了适配(即新支持反射型dll注入)。 59 - 60 - 感谢timwhitez师傅及[该项目](https://github.com/timwhitez/Doge-RL)的帮助! 61 - 62 - 11.2更新: 63 - 64 - 修正了中文乱码的问题。 65 - 66 - 10.31更新 67 - 68 - 新增了C2profile功能 69 - 70 - 1、适配了metadata的header、parameter、uri-append形式,暂时不支持print,不过要注意**prepend与parameter同时存在的时候好像会解析不了**,请避免同时使用。 71 - 72 - 2、适配了http-post的id的prepend、append以及parameter、header形式。 73 - 74 - 3、适配了http-post的output的parameter、header、print形式,暂时不支持uri-append形式。 75 - 76 - ## 使用方法 25 + ## 三、实现功能 77 26 本项目支持windows、linux、mac平台的使用。 27 + ### windows平台支持的功能: 28 + sleep、shell、upload、download、exit、cd、pwd、file_browse、ps、kill、getuid、mkdir、rm、cp、mv、run、execute、drives、powershell-import、免杀powershell命令混淆、免杀bypassuac、execute-assembly(不落地执行c#)、多种线程注入的方法(可自己更换源码)、spawn、inject、shinject、dllinject(反射型dll注入)、管道的传输、多种cs原生反射型dll注入(mimikatz、portscan、screenshot、keylogger等)、令牌的窃取与还原、令牌的制作、权限的获取、代理发包、自删除、timestomp更改文件时间等功能。支持cna自定义插件的reflectiveDll、execute-assembly、powershell、powerpick、upload and execute等功能。 78 29 79 - 基础的使用方法可参考原项目,windows有三种推荐的编译方式: 30 + 目前由于对其他进程进行自定义反射型dll注入有一些问题,目前无论将自定义反射型dll注入到哪个进程都默认为注入到自身进程,请师傅们注意,有可能会拿不到回显。。 80 31 81 - 1、go build 32 + ### linux和mac平台支持的功能: 33 + sleep、shell、upload、download、exit、cd、pwd、file_browse、ps、kill、getuid、mkdir、rm、cp、mv、自删除、timestomp 34 + 后续会添加linux与mac平台下后渗透功能 82 35 83 - 2、go build -ldflags "-H windowsgui" 去除黑框 36 + 进程管理部分、文件管理部分支持图形化交互 84 37 85 - 3、go build -ldflags "-H windowsgui -w" 缩小体积并去除黑框 38 + ### C2profile: 86 39 87 - 4、go build -ldflags "-H windowsgui -s -w" 缩小体积并去除黑框 40 + 适配了C2profile流量侧的设置与部分主机侧的设置,支持的算法有base64、base64url、mask、netbios、netbiosu、详情见config.go。 88 41 89 - **360对部分编译参数有监控,可以尝试用go-strip等项目混淆编译参数,或者尝试用伪造签名等方法,后续我们会考虑增加隐藏黑框的代码,避免使用编译参数来隐藏黑框。** 90 - 91 - linux和mac编译的时候添加-ldflags "-s -w"减小程序体积,然后后台运行。 92 42 93 - 目前项目有部分控制台输出内容,若想删除可在代码中删除。 94 - 95 - **最简单的使用方法即为修改config.go中的公钥(此公钥是cs的公钥,不是https的公钥,提取方法可参考[geacon](https://github.com/darkr4y/geacon)介绍)以及C2服务器地址(注意是listener地址,如果是http的listener的话需要将sslHTTP改为plainHTTP),然后C2profile更换为下面的示例即可** 96 - 97 - **可以支持域前置,因为只是模拟了cs的发包的协议,把C2地址更改为域前置回连的域名和端口,然后把config.go里面req.Header的host更改为域前置域名,profile不用变,谢谢帮忙测试了的师傅。** 98 - 99 - **geacon_pro目前是免杀的。不过如果使用的人较多,会被杀软盯上,我们会尽量保持免杀性,师傅们可尝试用[garble](https://github.com/burrowers/garble)这个项目混淆一下源码。** 100 - 101 - **出于免杀性考量,暂时删除掉powershell-import代码,师傅们若想使用可以将commands_windows.go中的PowershellPort注释恢复。** 43 + ## 四、使用方法 102 44 103 - **部分cs二开版本由于修改了48879该特征,可能会认证失败,如果失败的话可以尝试将meta.go中的0xBEEF更改为jar包二开后的值。可参考鸡哥的这篇[文章](https://bbs.pediy.com/thread-267208.htm)来找jar包中二开后的值。** 45 + 有以下两种使用的方法,师傅们可以根据自己的喜好来灵活地使用: 104 46 47 + ### 第一种使用方法:直接编译成exe执行 105 48 106 - ## 实现功能 107 - ### windows平台支持的功能: 108 - sleep、shell、upload、download、exit、cd、pwd、file_browse、ps、kill、getuid、mkdir、rm、cp、mv、run、execute、drives、powershell-import、powershell、execute-assembly(不落地执行c#)、多种线程注入的方法(可自己更换源码)、spawn、shinject、dllinject(反射型dll注入)、管道的传输、多种cs原生反射型dll注入(mimikatz、portscan、screenshot、keylogger等)、令牌的窃取与还原、令牌的制作、代理发包、自删除等功能。支持cna自定义插件的reflectiveDll、execute-assembly、powershell、powerpick、upload and execute等功能。 49 + #### 1、修改公钥 50 + 修改config.go中的公钥RsaPublicKey(此公钥是cs的公钥,不是https的公钥,提取方法可参考[geacon](https://github.com/darkr4y/geacon)介绍。 109 51 110 - 由于要规避杀软对fork&&run的检测,暂时令反射型dll注入注入到自身进程中,暂时拿不到回显,请师傅们注意,如果师傅们对如何从CreateThread中拿回显有想法请联系我。 52 + #### 2、修改C2地址 53 + 修改config.go中的C2地址(注意是listener地址,如果是http的listener的话需要将sslHTTP改为plainHTTP)。 111 54 112 - 目前由于对其他进程进行反射型dll注入有一些问题,目前无论将反射型dll注入到哪个进程都默认为注入到自身进程,请师傅们注意。 55 + 域前置设置(可选):把C2地址更改为域前置回连的域名和端口,然后把config.go里面req.Header的host更改为域前置域名。 113 56 114 - 若想再派生一个会话的话,不建议使用spawn,因为spawn派生的是原生cs的beacon,并且为了规避杀软对fork&&run的检测,目前spawn是注入了自身,建议直接用run或者execute执行geacon_pro.exe。 57 + #### 3、适配C2profile 58 + config.go中设置了大部分C2profile流量端设置与部分主机端设置。 115 59 116 - ### linux和mac平台支持的功能: 117 - sleep、shell、upload、download、exit、cd、pwd、file_browse、ps、kill、getuid、mkdir、rm、cp、mv、自删除 118 - 后续会添加linux与mac平台下后渗透功能 60 + C2profile暂时不要设置post-ex中的obfuscation以及data_jitter。 119 61 120 - 进程管理部分、文件管理部分支持图形化交互 121 - 122 - ### C2profile: 62 + **修改完C2profile后请不要忘记在config.go中对相应位置进行修改。下面给出示例C2profile,默认config.go适配该C2profile:** 123 63 124 - 适配了C2profile流量侧的设置与部分主机侧的设置,支持的算法有base64、base64url、mask、netbios、netbiosu、详情见config.go,这里给出示例C2profile,修改完C2profile后请不要忘记在config.go中对相应位置进行修改: 125 64 ``` 126 65 # default sleep time is 60s 127 66 set sleeptime "3000"; 67 + set jitter "7"; 128 68 129 69 https-certificate { 130 70 set C "KZ"; skipped 99 lines 230 170 231 171 ``` 232 172 233 - ### 目前需要改进的地方: 234 - * ~~dllinject的BUG(正在修改中)~~ 235 - * 堆内存加密目前不稳定,暂未正式使用 236 - * ~~修改部分功能下中文乱码的问题~~ 237 - * ~~部分功能暂未支持x86系统(最近太忙了,会尽快改出来)~~ 173 + #### 4、编译成exe并执行 174 + windows有五种推荐的编译方式: 238 175 239 - ### 未来打算做的: 240 - * 适配更多功能 241 - * 集成免杀工具 242 - * 增加Linux和Mac平台下后渗透功能 243 - * 增加代码混淆 244 - * hook服务端jar包类似冰蝎4.0让用户自定义流量加密特征 245 - * 增加混淆的流量 176 + 注意已实现了内置去黑框功能,不需要"-H windowsgui"参数了,但是目前仍有一闪而过的黑框。 177 + 178 + * go build 179 + 180 + * go build -ldflags "-H windowsgui" 去除黑框(已内置代码) 181 + 182 + * go build -ldflags "-w" 缩小体积 183 + 184 + * go build -ldflags "-s" 缩小体积 185 + 186 + * go build -ldflags "-s -w" 缩小体积 187 + 188 + **360对部分编译参数有监控,可以尝试用winhex/记事本等将-ldflags "-s -w"等含有编译信息的字符替换成其他的字符串,或者用garble等项目混淆编译参数(seed=randon、-literals等),或者尝试用伪造签名等方法。** 189 + 190 + linux和mac编译的时候添加-ldflags "-s -w"减小程序体积,然后后台运行。 191 + 192 + ### 第二种使用方法:转成反射型dll/shellcode的形式以加载器方式来灵活加载 193 + 194 + 前三步与第一种方法相同。 195 + 196 + #### 编译为反射型dll/shellcode 197 + 师傅们如果不想局限于使用geacon_pro生成的exe,可以使用[该项目](https://github.com/WBGlIl/go-ReflectiveDLL)将geacon_pro转换成反射型dll/shellcode的形式后使用加载器来加载,进而达成千人千面的免杀形式。师傅们若觉得转换后的体积较大,可以用下载器的方式来远程stager加载。将geacon_pro目录下文件移到该项目目录下之后,将main.go原本的main函数更名为OnPorcessAttach并标注导出函数export,之后添加import "C"并新增main()函数即可,最后用x64.bat编译(可以自定义编译的参数)并生成反射型dll。main.go示例如下: 198 + 199 + ``` 200 + package main 201 + 202 + import "C" 203 + import ( 204 + "bytes" 205 + "errors" 206 + "fmt" 207 + "main/config" 208 + "main/crypt" 209 + "main/packet" 210 + "main/services" 211 + "os" 212 + "strings" 213 + "time" 214 + ) 215 + 216 + func main() { 217 + //fmt.Println("123") 218 + } 219 + //export OnProcessAttach 220 + func OnProcessAttach() { 221 + ......//原本main函数里面的内容 222 + ...... 223 + ...... 224 + } 225 + 226 + ``` 227 + 228 + ### 自定义设置 229 + 230 + config.go中有一些自定义的设置: 231 + 232 + * Proxy设置代理发包的功能,详情见实现细节。 233 + * Remark可以在上线的时候备注机子,方便区分不同应用场景。即如果Remark=“test”,上线机子的名称会被设置成为 ComputerName [test]。 234 + * ExecuteKey可以进行简单的反沙箱,若密钥值为password,设置后执行的时候需要geacon_pro.exe password才可执行成功,沙箱或蓝队成员由于不知道密钥,因此无法执行。 235 + * ExecuteTime可以进行简单的反沙箱,若当前时间晚于设置的时间则执行失败,师傅们注意该设置是UTC时区。 236 + * DeleteSelf设置是否自删除。 237 + * HideConsole设置是否内置隐藏黑框。 238 + * CommandReadTime设置异步实时回显长命令的间隔时间。 239 + 240 + ## 五、其他注意事项与免杀手段 241 + 242 + 1、出于免杀性考量,暂时删除掉powershell-import代码,师傅们若想使用可以将commands_windows.go中的PowershellPort注释恢复。 243 + 244 + 2、geacon_pro基于原生cs进行的开发,部分二开的版本可能会兼容错误,需要在geacon_pro中修改代码以适配二开的版本。 245 + 246 + 3、若想用免杀捆绑器的话可以参考我的这个[小项目](https://github.com/H4de5-7/Bundler-bypass)。 247 + 248 + 4、若想用免杀计划任务的话可以参考我的这个[小项目](https://github.com/H4de5-7/schtask-bypass)以及一个师傅的这个[项目](https://github.com/0x727/SchTask_0x727)(不过这个项目需要用execute-assembly来内存执行)。 249 + 250 + 5、如果师傅们对堆内存加密或者dllinject注入自己拿回显有想法,欢迎来交流。 251 + 252 + ## 六、开发的思路 253 + <details><summary>点击展开</summary> 254 + 255 + ### 整体的思路 256 + 传统cs的免杀偏向于如何加载上线,但是杀软对beacon的特征查得非常严,尤其是卡巴这种查内存的,因此不如自己重构一个。 257 + 258 + 免杀主要体现在三个方面: 259 + * 由于是重构的,因此没有beacon的特征,针对beacon特征的杀软是检测不出来的。 260 + * golang本身具备一定的免杀性 261 + * 针对各功能实现了免杀,cs部分不免杀的功能得到了更换 246 262 247 263 ### 主体代码结构 248 264 #### config skipped 19 lines 268 284 #### main.go 269 285 主方法对各个命令进行了解析与执行,以及对结果和错误进行了返回 270 286 271 - ## 部分功能的实现细节 272 - ### shell 287 + ### 部分功能的实现细节 288 + #### shell 273 289 shell之前直接调用了golang的os/exec库,现在更改为底层CreateProcess的实现,与run的区别仅在于shell调用了cmd。 274 290 275 - ### run && execute 291 + #### run && execute 276 292 run和execute的区别在于,run可以返回执行的结果而execute无回显。底层的实现差别就在于run会通过管道回传执行的结果而execute不会。 277 293 278 294 shell、run和execute的实现在没有窃取令牌的时候调用了CreateProcess,窃取令牌后调用CreateProcessWithTokenW以令牌权限来执行命令。 279 - ### powershell-import 295 + #### powershell-import 280 296 powershell-import部分的实现与cs的思路一样,先把输入的powershell module保存,之后在执行powershell命令的时候本地开一个端口并把module放上去,powershell直接请求该端口进行不落地的powershell module加载,不落地加载powershell module可以对部分杀软进行绕过。 281 297 282 - ### powershell 283 - powershell命令直接调用了powershell,会被360监控,可以尝试用免杀的方式执行。 298 + #### powershell 299 + 集成了powershell命令混淆免杀(AMSI绕过+ETW block+命令的混淆),VT全过,详情见我的[该项目](https://github.com/H4de5-7/powershell-obfuscation)。 284 300 285 - ### execute-assembly 301 + #### bypassuac 302 + 集成了免杀bypassuac,即execute-assembly执行COM绕过的exe。 303 + 304 + #### execute-assembly 286 305 execute-assembly的实现与cs原生的实现不太一样,cs的beacon从服务端接收的内容的主体部分是c#的程序以及开.net环境的dll。cs的beacon首先拉起来一个进程(默认是rundll32),之后把用来开环境的dll注入到该进程中,然后将c#的程序注入到该进程并执行。考虑到步骤过于繁琐,并且容易拿不到执行的结果,我这里直接用[该项目](https://github.com/timwhitez/Doge-CLRLoad)实现了execute-assembly的功能,但未对全版本windows进行测试。 287 306 288 - ### 进程注入 307 + #### 进程注入 289 308 进程注入shinject和dllinject采用的是remote注入。 290 309 291 310 **目前dllinject只支持注入自身的进程,shinject若注入到其他的进程的话要注意杀软对远程线程注入的检测。** 292 311 293 312 不过如果想执行自己的shellcode的话建议用shspawn,在当前实现中shspawn会注入geacon_pro本身,因此不会被杀软报远程线程注入。 294 313 295 - ### 反射型dll注入 314 + #### 反射型dll注入 296 315 cs原生反射型dll注入的思路是先拉起来一个rundll32进程,之后把dll注进去执行,但是会被360核晶报远程线程注入。我尝试使用了native或者unhook等方法均失败,最后发现了将dll注入自己是不会被查杀的,因此考虑将cs的fork&run的方式改为注入自己的方式。 297 316 由于cs是fork&&run的形式,因此部分dll在结束的时候要执行ExitProcess。 298 317 skipped 3 lines 302 321 303 322 dll通过管道将结果异步地回传给服务端。目前的dll反射注入采用了注入自己的方法,后续会实现用户可通过配置文件进行注入方式的更改。 304 323 305 - ### 令牌 306 - 令牌的部分目前实现了令牌的窃取、还原、制作。 324 + #### 令牌 325 + 令牌的部分目前实现了令牌的窃取、还原、制作、 权 限 的 获 取 。 307 326 308 - ### 上线内网不出网主机 327 + #### 上线内网不出网主机 309 328 考虑到渗透中常常存在着内网主机上线的情况,即边缘主机出网,内网主机不出网的情况。目前实现的木马暂不支持代理转发的功能,但是可以通过设置config.go中的proxy参数,通过边缘主机的代理进行木马的上线。即如果在边缘主机的8080端口开了个http代理,那么在config.go中设置ProxyOn为true,Proxy为`http://ip:8080`即可令内网的木马上线我们的C2服务器。 310 329 311 - ### 堆内存加密 330 + #### 堆内存加密 312 331 堆内存加密的方法实现参考了[该文章](https://cloud.tencent.com/developer/article/1949555) 。在sleep之前先将除主线程之外的线程挂起,之后遍历堆对堆内存进行加密。sleep结束后解密并将线程恢复。不过该功能较为不稳定,有时在进行堆遍历的时候会突然卡住或者直接退出,并且考虑到后台可能会有keylogger或portscan这种的持久任务,将线程全部挂起有些不合适,如果有师傅有好的想法欢迎来讨论。同时我不太理解为什么go的time.Sleep函数在其他线程都挂起之后调用会一直沉睡,而调用windows.SleepEx就不会有问题,还望师傅们解答。 313 332 314 - ### 字符集 333 + #### 字符集 315 334 由于golang默认对UTF-8进行处理,因此我们对协议协商的字符集进行了统一,windows、linux、mac平台下均为UTF-8,然后将部分返回格式为GBK的数据转为UTF之后再回传,避免了中文乱码问题。 316 335 336 + #### 自删除 337 + CobaltStrike貌似没有做自删除的功能,我们添加了不同平台下的自删除功能。windows平台下由于进程未退出的时候是无法自己删除自己的,常用的方法有bat与远程线程注入。 远程线程注入的缺点前面也提到了容易被杀软监控,因此我们这里简化了一下bat自删除,用CreateProcess新起了一个自删除进程并设置为空闲时间执行,自删除进程在geacon_pro进程执行完之后删除它。Linux平台下可以直接删除正在执行的进程的文件。 317 338 339 + </details> 318 340 319 341 <!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b--> 320 342 ## 项目相关 321 343 322 344 323 345 ## 最近更新 346 + 347 + #### [v1.1.0] - 2022-12-18 348 + 349 + **更新** 350 + - 集成了powershell命令混淆免杀(AMSI绕过+ETW block+命令混淆),VT全过 351 + - 集成了免杀bypassuac 352 + - 新增了linux/macos下的timestomp,增加了公钥错误的回显 353 + - 修复了部分异步命令回显出错、screenshot中文乱码、windows平台下timestomp出错的BUG 324 354 325 355 #### [v1.0.1] - 2022-12-11 326 356 skipped 17 lines