@byt3bl33d3r 师傅在twitter上发布了他最新的一个GitHub仓库,名为OffensiveNim。该仓库使用介绍了一种新的编译型语言来写一些工具,比如minidump、shellcode loader。
为什么选择nim?
- 可以直接编译为C、C++、Objective-C和Javascript。
- 语法简单,不依赖运行时虚拟机。
- 具有极其成熟的外部接口API。
- 跨平台交叉编译。
- 可以将代码直接编译为Javascript,甚至初步支持WebAssembly
使用OffensiveNim
OffensiveNim提供了几个代码demo
我们使用kali来编译OffensiveNim提供的demo,先git clone下来
git clone https://github.com/byt3bl33d3r/OffensiveNim.git
安装nim编译器和nimble包管理器。
sudo su
apt update
apt install nim
如果你要编译出Windows下可以运行的exe和dll文件,那么必须安装mingw
apt install mingw-w64
然后使用包管理器nimble安装winim包
nimble install winim
最后cd到OffensiveNim的根目录,运行make命令即可。
几分钟编译完之后会在bin目录下生成exe可执行文件,拖回本地执行即可。
加载shellcode
拖回本地的文件落地就被Windows defender杀烂,根据特征应该是msf的shellcode特征。
查看其代码在shellcode_bin.nim中写死了shellcode。
那就用nim写一个shellcode混淆的就可以了,实现的代码就不放了,就一个xor加密shellcode。