![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5c34048950e3e4c937143bd32f7b1740.png)
知识点
1、内存加载-UUID地址-ShellCode转换
2、内存加载-MAC地址-ShellCode转换
3、内存加载-IPV4地址-ShellCode转换
编译代码面-ShellCode-混淆
编译代码面-编辑执行器-编写
编译代码面-分离加载器-编写
程序文件面-特征码定位-修改
程序文件面-加壳花指令-资源
代码加载面-Dll反射劫持-加载
权限逻辑面-杀毒进程干扰-结束
工具数据面-通讯内存流量-动态
对抗目标:
X60 Defender 某绒 管家 VT等
编程语言:
C/C++ Python C
涉及技术:
ShellCode混淆,无文件落地,分离拆分,白名单,DLL加载,Syscall,加壳加花,
资源修改,特征修改,二次开发CS,内存休眠,进程注入,反沙盒,反调试,CDN解析等
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/46d7662f91e8fad071cb368c0225e6c3.png)
演示案例
1、内存加载-UUID地址-ShellCode转换
2、内存加载-MAC地址-ShellCode转换
3、内存加载-IPV4地址-ShellCode转换
文章参考:
https://www.anquanke.com/post/id/262666
通用唯一识别码(UUID),是用于计算机体系中以识别信息数目的一个128位标识符,根据标准方法生成,不依赖中央机构的注册和分配,UUID具有唯一性。
演示加载语言:C++ C
MAC地址也叫物理地址、硬件地址,由网络设备制造商生产时烧录在网卡的EPROM一种闪存芯片,通常可以通过程序擦写。IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位(6个字节)的。
演示加载语言:Python2 Go
IPv4是一种无连接的协议,操作在使用分组交换的链路层(如以太网)上。此协议会尽最大努力交付数据包,意即它不保证任何数据包均能送达目的地,也不保证所有数据包均按照正确的顺序无重复地到达。IPv4使用32位(4字节)地址。
演示加载语言:Go
总结
这里讲的是通过UUID、MAC、Ipv4实现内存加载免杀
通常情况下,我们是开辟一块内存,然后直接将shellcode写入到对应的内存中,并且该内存是可读可写可执行的状态,但这种方式太容易被杀软所查杀
但如果是利用Windows自身提供的API来将加密或者封装好的shellcode写入到内存执行的话,将会大大增加查杀的难度
参考连接:https://www.anquanke.com/post/id/262666
以下是几种实现内存加载免杀的方式:(也就是说,我们可以将shellcode转换为UUID、MAC、Ipv4等)
1、UUID地址-ShellCode转换
2、MAC地址-ShellCode转换
3、IPV4地址-ShellCode转换
通常情况下,我们需要结合之前的内容,如shellcode混淆加密、分离免杀等