免杀对抗|冷门Nim语言加载ShellCode

admin 2023年2月16日23:01:29评论249 views字数 2698阅读8分59秒阅读模式

来源第114天直播课件


免杀对抗|冷门Nim语言加载ShellCode

#知识点:1、Nim-加载工具-NimLoader2、Nim-加载方式-OffensiveNim2、Nim-分离加载-Socket&Http&Image3、Nim-内存加载-UUID
#章节点:编译代码面-ShellCode-混淆编译代码面-编辑执行器-编写编译代码面-分离加载器-编写程序文件面-特征码定位-修改程序文件面-加壳花指令-资源代码加载面-Dll反射劫持-加载权限逻辑面-杀毒进程干扰-结束工具数据面-通讯内存流量-动态安全开发面-CS二开魔改-动态
对抗目标:X60 Defender 某绒 管家 卡巴 VT EDR等
编程语言:C/C++ Python C# Go Powershell Ruby Java ASM NIM Vlang等。
涉及技术:ShellCode混淆,无文件落地,分离拆分,白名单,DLL加载,Syscall,加壳加花,资源修改,特征修改,二次开发CS,内存休眠,进程注入,反沙盒,反调试,CDN解析等
#基础点:一般的编译参数:c:编译成C语言。例如:nim c test.nimcpp:编译成C++语言。例如:nim cpp test.nimobjc:编译成objc语言js:编译成javascript脚本, 可以建一个html文件在<script src="test.js"></script>里运行.-d:release:进行release编译。nim cc -d:release test.nim-r:编译完成后运行程序--cincludes:包含 当前目录(./)的 c头文件.--cpu:指定架构,如:nim cc -cpu amd64 , nim cc -cpu:arm。--cpu参数有:i386, m68k, alpha, powerpc, powerpc64, powerpc64el, sparc, vm, hppa, ia64, amd64, mips, mipsel, arm, arm64, js, nimvm, avr, msp430, sparc64, mips64, mips64el, riscv64, esp, wasm32
编译x64nim c -d:mingw --app:gui --cpu:amd64 -d:danger -d:strip --opt:size --passc=-flto --passl=-flto test.nim 编译x86nim c -d:mingw --app:gui --cpu:i386 -d:danger -d:strip --opt:size --passc=-flto --passl=-flto test.nim
安装库:nimble install
文章打包代码下载:链接:https://pan.baidu.com/s/1VIPSAFhjONOdjioecUvSLA 提取码:xiao 
参考来源:https://github.com/byt3bl33d3r/OffensiveNimhttps://github.com/aeverj/NimShellCodeLoaderhttps://github.com/ScxMes/Core-Nim-programminghttps://mp.weixin.qq.com/s/YKkCcqeiQLwyw4cJvQHilA
测评结果:1、某绒存活情况:三种加载模式:回调函数三种分离无文件:参数argv 协议Http 隐写Image一种UUID加载:UUID
2、某60存活情况:三种加载模式:ASM混编三种分离无文件:协议Http 隐写Image一种UUID加载:UUID
3、某DF存活情况:三种加载模式:G三种分离无文件:参数argv 协议Http 隐写Image一种UUID加载:G

免杀对抗|冷门Nim语言加载ShellCode

免杀对抗|冷门Nim语言加载ShellCode

免杀对抗|冷门Nim语言加载ShellCode





WEB安全/渗透测试/红蓝对抗/技术培训



小迪安全


免杀对抗|冷门Nim语言加载ShellCode


主流语言加载ShellCode调用的函数已被标记特征,免杀效果不佳

因此小众新型语言成为新玩法,Nim语言有着同语法,编译快等特点

本文将介绍Nim三种加载方式,来进行ShellCode免杀测评

免杀对抗|冷门Nim语言加载ShellCode
免杀对抗|冷门Nim语言加载ShellCode
免杀对抗|冷门Nim语言加载ShellCode
免杀对抗|冷门Nim语言加载ShellCode

1

—The first—



加载模式

免杀对抗|冷门Nim语言加载ShellCode

项目地址:

https://github.com/byt3bl33d3r/OffensiveNim


1、Nim ASM混编:

免杀对抗|冷门Nim语言加载ShellCode

2、Nim 注入调用:

免杀对抗|冷门Nim语言加载ShellCode

3、Nim 回调函数

免杀对抗|冷门Nim语言加载ShellCode

免杀对抗|冷门Nim语言加载ShellCode




2

—The second—



分离无文件落地

免杀对抗|冷门Nim语言加载ShellCode
更多分离无文件方式:➢ File-将shellcode从文本中提取➢ Argv-将shellcode与加载器分离➢ Http-将shellcode用远程协议加载➢ Socket-将shellcode通过管道传输➢ Images-将shellcode隐写进图片内
内存免杀是将shellcode直接加载进内存,由于没有文件落地,因此可以绕过文件扫描策略的查杀。为了使内存免杀的效果更好,在申请内存时一般采用渐进式申请一块可读写内存,在运行时改为可执行,在执行的时候遵循分离免杀的思想。分离免杀包含对特征和行为的分离两个维度,把shellcode从放在程序转移到加载进内存,把整块的shellcode通过分块传输的方法上传然后再拼接,这些体现了基本的”分离“思想。

A








Socket分离:利用管道传输关键ShellCode进行内存加载运行调用,实现无关键代码执行。免杀对抗|冷门Nim语言加载ShellCode









B

Argv分离:利用执行参数化传输关键ShellCode进行内存加载运行调用,实现无关键代码执行

免杀对抗|冷门Nim语言加载ShellCode


C

Image隐写:利用CTF隐写技术将Shellcode写入到正常图片中,通过特定的算法进行读取后加载内存执行。

免杀对抗|冷门Nim语言加载ShellCode

3

—The third—



内存加载方式

免杀对抗|冷门Nim语言加载ShellCode

#内存加载-UUID方式-ShellCode转换

通用唯一识别码(UUID),是用于计算机体系中以识别信息数目的一个128位标识符,根据标准方法生成,不依赖中央机构的注册和分配,UUID具有唯一性。

免杀对抗|冷门Nim语言加载ShellCode

免杀对抗|冷门Nim语言加载ShellCode


#内存加载-MAC地址-ShellCode转换

MAC地址也叫物理地址、硬件地址,由网络设备制造商生产时烧录在网卡的EPROM一种闪存芯片,通常可以通过程序擦写。IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位(6个字节)的。


#内存加载-IPV4方式-ShellCode转换

IPv4是一种无连接的协议,操作在使用分组交换的链路层(如以太网)上。此协议会尽最大努力交付数据包,意即它不保证任何数据包均能送达目的地,也不保证所有数据包均按照正确的顺序无重复地到达。IPv4使用32位(4字节)地址。


其他语言内存加载测评结果:
免杀对抗|冷门Nim语言加载ShellCode

E



N



D


免杀对抗|冷门Nim语言加载ShellCode

免杀对抗|冷门Nim语言加载ShellCode

小迪安全-技术培训

QQ及微信:471656814

个人博客:http://www.xiaodi8.com

原文始发于微信公众号(小迪安全):免杀对抗|冷门Nim语言加载ShellCode

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月16日23:01:29
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   免杀对抗|冷门Nim语言加载ShellCodehttps://cn-sec.com/archives/1277211.html

发表评论

匿名网友 填写信息