开发知识点-NimLang
Nimrod
Nim-ShellCodeLoader免杀
https://mp.weixin.qq.com/s/YKkCcqeiQLwyw4cJvQHilA
http://cn-sec.com/archives/1277211.html
免杀对抗|冷门Nim语言加载ShellCode
小迪安全
免杀对抗-Nim语言&分离无文件socket&隐写&参数化&内存加载uuid等
#知识点:
1、Nim-加载工具-NimLoader
2、Nim-加载方式-OffensiveNim
2、Nim-分离加载-Socket&Http&Image
3、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解析等
测评结果:
1、某绒存活情况:三种加载模式:回调函数三种分离无文件:参数argv 协议Http 隐写Image一种UUID加载:UUID
2、某60存活情况:三种加载模式:ASM混编三种分离无文件:协议Http 隐写Image一种UUID加载:UUID
3、某DF存活情况:三种加载模式:G三种分离无文件:参数argv 协议Http 隐写Image一种UUID加载:G
https://github.com/byt3bl33d3r/OffensiveNim
加载模式
Nim ASM混编
https://github.com/byt3bl33d3r/OffensiveNim/blob/master/src/shellcode_inline_asm_bin.nim
DLL 反射注入
[DLL反射注入是一种不需要在目标进程中创建或加载DLL文件的技术,而是直接在内存中解析和执行DLL的内容。Nim是一种编译到C/C++的语言,可以利用其强大的FFI(外部函数接口)能力来实现DLL反射注入。](https://blog.csdn.net/weixin_43956962/article/details/105843803)[1](https://blog.csdn.net/weixin_43956962/article/details/105843803)[2](https://www.bilibili.com/read/cv16407409)
[具体来说,Nim可以使用winim库来调用Windows API,如VirtualAllocEx、WriteProcessMemory、CreateRemoteThread等,来分配内存,写入DLL的数据,创建远程线程并调用ReflectiveLoader函数。](https://github.com/byt3bl33d3r/OffensiveNim)[3](https://github.com/byt3bl33d3r/OffensiveNim)[4](https://www.stevencampbell.info/Offensive-Nim-DLL-Injection/) [ReflectiveLoader函数负责在内存中展开DLL,修复重定位和导入表,并调用DLL入口点。](https://blog.csdn.net/weixin_43956962/article/details/105843803)[1](https://blog.csdn.net/weixin_43956962/article/details/105843803)
[有一些GitHub项目提供了Nim实现DLL反射注入的示例代码,如byt3bl33d3r/OffensiveNim](https://github.com/byt3bl33d3r/OffensiveNim)[3](https://github.com/byt3bl33d3r/OffensiveNim)[和waldo-irc/NimMusings](https://www.stevencampbell.info/Offensive-Nim-DLL-Injection/)[4](https://www.stevencampbell.info/Offensive-Nim-DLL-Injection/)。你可以参考这些项目来学习和使用Nim实现DLL反射注入。
利用Nim结合一些未被大规模滥用的winapi进行免杀。
[nim-lang: UUID shellcode execution(过所有杀软) - StudyCat - 博客园 (cnblogs.com)](https://www.cnblogs.com/StudyCat/p/14765971.html)
Nimrod (已改名为 Nim)是一个
新型的静态类型、命令式编程语言,支持过程式、函数式、面向对象和泛型编程风格而保持简单和高效。
http://blog.nsfocus.net/nim-summary/
kernel32.dll
Nim 是一种静态类型的、编译型、系统编程语言。它结合了其他成熟语言的成功概念(如 Python、Ada 和 Modula)。
(参考:https://nim-lang-cn.org/)
scala
Dart
Perl 调用 windows api
cobol 调用 windows api
dayu
https://github.com/aeverj/NimShellCodeLoader
https://github.com/aeverj/NimShellCodeLoader/issues/6
https://github.com/aeverj/NimShellCodeLoader/issues/4
aeverj
Windows Server2019 、Windows Defender最新版、火绒联网最新版
关闭Windows Defender最新版的自动上传样本功能**********************************************
https://nim-lang.org/install.html
https://nim-lang.org/download/nim-1.6.10_x64.zip
bin加到Path
G:\envir\base\nim\nim-1.6.10_x64\nim-1.6.10
MinGW是为Nim编译所必须的,MinGW主要是编译C、C++代码用的,在这里一共有两种方式:
直接下载MinGW安装
利用Nim自带的程序finish.exe安装
先不使用Nim进行编译工作,否则会由于缓存问题导致第二种线上安装的方式编译出错。
直接安装MinGW
首先按照教程,安装MinGW
在这里有下载链接地址:
https://sourceforge.net/projects/mingw-w64/files/
下载最新版x64位版本:
64位系统建议选择x86_64-posix-sjlj
32位系统建议选择i686-posix-sjlj
MingGW64 版本区别于各版本说明
https://www.pcyo.cn/linux/20181212/216.html
https://www.mingw-w64.