系列文章
简介
渗透测试-地基篇
该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。
请注意:
本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。
名言:
你对这行的兴趣,决定你在这行的成就!
一、前言
Nim(最初叫 Nimrod)是一门命令式静态类型编程语言,可以被编译成 C 或 JavaScript。它是开源的,维护很活跃,还结合了来自成熟语言(如Python,Ada和Modula)的成功概念。
Nim具有高效性,生成的执行文件小,编译器支持所有平台,非常适合嵌入式硬实时系统,支持各种后端编译等等,Nim强大的宏系统和独立性,接下来将介绍如何利用Nim配合C、C++和Winim进行免杀。
演示非常详细,共演示14种方法,存在12种方法能过杀软拿到权限,其中5种方法能免杀2021年如今所有杀软,从初部署环境到利用凯撒和三重数据加密算法进行最终免杀的过程,以及如何分析底层代码,如何修改底层代码方法的过2021年(所有操作均有时间截图)如今所有杀软的过程。
二、环境介绍
黑客(攻击者):
IP:192.168.175.145
系统:kali.2020.4
windows 2019系统是黑客用于Nim编程制作免杀exe的系统。
VPS服务器:
此次模拟环境将直接越过VPS平台,已成功在VPS上进行了钓鱼行为。
办公区域:
系统:windwos 10
IP:192.168.2.142
存在:360、360杀毒、火绒、deferencer,以及全球和全国杀软平台检测。
目前黑客通过kali系统进行攻击行为,通过钓鱼获得了对方的权限后,发现对方电脑上存在360、360杀毒、火绒、deferencer直接被杀软进行了查杀,无法进行反弹shell获得权限,如今将演示利用Nim框架配合C、C++、Winim语言进行凯撒和三重加密,以及底层分析生成免杀exe,并控制对方的过程。
三、环境部署
在Windows server 2019系统环境进行开始部署:
1、部署Nim环境
Nim官网:
https://nim-lang.org/install.html
进来选择点击Windows。
选择点击Download x86_64.zip下载。
复制bin目录地址C:\Users\dayu\Desktop\nim-1.4.2_x64\nim-1.4.2\bin
。
将C:\Users\dayu\Desktop\nim-1.4.2_x64\nim-1.4.2\bin
加入环境变量。
在Cmd命令窗口输入Nim,看图红框提示成功安装。
2、安装C、C++编译器
Nim编译器需要C编译器才能编译软件。nim-1.4.2_x64文件夹包含一个简单应用程序finish.exe,可以点击finish.exe用来安装MingW。由于国内网络问题,我不推荐使用在线方式下载方式,建议离线方式提前下载并解压,配置环境变量。
双击打开finish.exe。
输入确认Y,等待下载完成即可。
下载完成后会Nim包自带7z压缩工具,会自动解压到目录下。
等待解压完成进入该目录:C:\Users\dayu\Desktop\nim-1.4.2_x64\nim-1.4.2\dist\mingw64\bin,复制该目录。
将目录加入环境变量,然后检查成功安装完成C和C++。
3、下载NimShellCodeLoader
项目地址:
https://github.com/aeverj/NimShellCodeLoader/releases/tag/0.2
下载NimShellCodeLoader_Winx64.zip
下载加压后来到encryption目录下,进行编译:
nim c -d:release --opt:size Tdea.nim
nim c -d:release --opt:size Caesar.nim
成功编译。
编译完成后来到主目录双击codeLoader.exe打开图形化界面。
四、Nim免杀详细测试
接下来将介绍14种免杀方法,其中12种是可拿权限的,5种是过任何杀软的,开始!
1、CS生成payload
首先打开Cobalt Strike输出生成Raw的payload.bin后门文件。
然后将payload.bin拖入界面。
2、Nimshellcode界面详解
可看该图,细致的讲解了每个界面的用法。
加载shellcode-> 加密方式(凯撒和3des)-> shellcode加载方式-> 编译命令-> 编译过程输出
OEP Hiijack-Inject Load # 入口点劫持注入加载
Thread Hiijack-Inject Load # 线层劫持注入加载
APC-Ijnect Load # APC 注入加载(APC应该是异步)
Early Bird APC-Injetc Load # Early Bird APC注入加载
Direct Load # 直接加载
GreateThreatPoolWait load # (线程池、信号量等)加载
Fiber Load # (用户级线程)加载
详细讲解了界面,这里编译使用的命令会在最后如果底层分析讲解。
3、十四种免杀演示
Nimshellcode特点是支持两种加密技术,分别位3des加密和凯撒密码,密钥随机,每次生成文件拥有不同hash!!
1. 入口点劫持加载
利用入口点劫持注入加载生成凯撒和三重加密的随机生成的EXE文件。
1)入口点劫持- Caesar
测试凯撒算法随机生成的EXE文件被360秒杀了,火绒未报毒。
2) 入口点劫持- TDEA
测试三重加密算法随机生成的EXE文件丢入后未被秒杀,但是执行后进行了拦截清理。
利用入口点劫持注入加载生成凯撒和三重加密的随机生成的两种EXE文件无法免杀!继续~
2. 线层劫持加载
利用线层劫持注入加载生成凯撒和三重加密的随机生成的EXE文件。
1)线层劫持 - Caesar
测试凯撒算法随机生成的EXE文件被360清理了,火绒未报毒,这里需要提醒的是,刚将payload丢入后,未执行查杀,双击可上线,等待30多秒后才进行了自动查杀。
2)线层劫持 - TDEA
测试三重加密算法随机生成的EXE文件被360清理了,火绒未报毒,这里需要提醒的是,刚将payload丢入后,未执行查杀,双击可上线,等待30多秒后才进行了自动查杀。
在经过测试线层劫持注入加载加密后,是可上线的,查杀后的shell也是还在运行的,那么这时候可以进行快速提权和迁移进程操作,shell可一直存在控制对方电脑,需要快速操作!
3. APC注入加载
利用APC 注入加载(APC应该是异步)生成凯撒和三重加密的随机生成的EXE文件。
1) APC注入- Ceasar
测试凯撒算法随机生成的EXE文件被360清理了,火绒未报毒,这里需要提醒的是,刚将payload丢入后,未执行查杀,双击可上线,等待2分钟后才进行了自动查杀。
2) APC注入- TDEA
测试三重加密算法随机生成的EXE文件被360清理了,火绒未报毒,这里需要提醒的是,刚将payload丢入后,未执行查杀,双击可上线,等待2分钟后才进行了自动查杀。
在经过测试APC 注入加载(APC应该是异步)加密后,是可上线的,查杀后的shell也是还在运行的,那么这时候可以进行快速提权和迁移进程操作,shell可一直存在控制对方电脑,需要快速操作!
4. Early Bird加载
利用Early Bird APC注入加载生成凯撒和三重加密的随机生成的EXE文件。
1)Early Bird- Ceasar
测试凯撒算法随机生成的EXE文件被360清理了,火绒未报毒,这里需要提醒的是,刚将payload丢入后,未执行查杀,双击可上线,等待7~10分钟后才进行了自动查杀。
2)Early Bird- TDEA
测试三重加密算法随机生成的EXE文件被360清理了,火绒未报毒,这里需要提醒的是,刚将payload丢入后,未执行查杀,双击可上线,等待7~10分钟后才进行了自动查杀。
在经过测试Early Bird APC注入加载加密后,是可上线的,查杀后的shell也是还在运行的,那么这时候可以进行快速提权和迁移进程操作,shell可一直存在控制对方电脑,检测较慢,可持续操作!
5. 直接加载
利用直接加载生成凯撒和三重加密的随机生成的EXE文件。
1)直接加载- Ceasar
测试凯撒算法随机生成的EXE文件最后还是被360清理了,火绒未报毒,图中明显的显示了开始初是未报读的,而是经过了长时间的操作后才进行了查杀,等待查杀时间不定,几分钟或者十几分钟。
2)直接加载- TDEA
测试三重加密算法随机生成的EXE文件免杀了三件套,360和360杀毒、火绒、Defer!!然后丢到了国内和全球两个杀软平台显示,国内杀软全过!
全球杀软11款杀软秒杀了!
在经过测试直接加载加密后,达到了国内全免杀,是可上线的,凯撒加密查杀后的shell也是还在运行的,那么这时候可以进行快速提权和迁移进程操作,shell可一直存在控制对方电脑,检测较慢,可持续操作!
6. 线程池加载
在利用(线程池、信号量等)加载生成凯撒和三重加密的随机生成的EXE文件时,报错了,需要winim语言模块进行编译!
1) git安装
需要在windows安装git环境:
https://git-scm.com/downloads
根据需求下载即可。
所有默认下一步安装。
安装完成后cmd验证安装成功。
2) 安装Winim
使用命令:nimble install winim
可看到成功安装,此方法较慢,可自行到github下载。
利用(线程池、信号量等)加载生成凯撒和三重加密的随机生成的EXE文件。
3)线程池- Caesar
测试凯撒加密算法随机生成的EXE文件免杀了三件套,360和360杀毒、火绒、Defer!!然后丢到了国内和全球两个杀软平台显示,国内杀软一款查杀!全球杀软2款杀软查杀了!
4)线程池- TDEA
测试三重加密算法随机生成的EXE文件免杀了三件套,360和360杀毒、火绒、Defer!!然后丢到了国内和全球两个杀软平台显示,国内和全球杀软情况就奥地利一款杀软查杀,其他全过!!非常给力。
7. 用户级线程加载
利用(用户级线程)加载生成凯撒和三重加密的随机生成的EXE文件。
1) 用户级线程- Caesar
测试凯撒加密算法随机生成的EXE文件免杀了三件套,360和360杀毒、火绒、Defer!!然后丢到了国内和全球两个杀软平台显示,国内杀软一款查杀!全球杀软2款杀软查杀了!
2) 用户级线程- TDEA
测试三重加密算法随机生成的EXE文件免杀了三件套,360和360杀毒、火绒、Defer!!然后丢到了国内和全球两个杀软平台显示,国内和全球杀软情况就奥地利一款杀软查杀,其他全过!!非常给力。
最后,这里的免杀加载的EXE都是可上线的。
五、底层分析
1、分析.ini文件
看图可详细看到就是在命令框中输入nim带入加密算法指向payload输出大小和文件类型,那么我们需要修改的第一步在这进行注入加载类型添加即可。
那么修改Compiler.ini文件,需要添加一行,key为加载方式,value为编译使用的命令行,其中为shellcode文件位置的占位符,为加密方式的占位符,其余可以自行定义即可。
2、分析.nim文件
这里也很简单,调用module目录下的cpp文件。
那么这里需要新建nim代码文件,引用public,获取code(解密的明文shellcode)和codelen(明文shellcode长度)即可。
3、分析.cpp文件
可看到nim调用.cpp文件,那么来分析cpp。
.cpp文件又调用底层C++语言编写的.hpp文件,分析hpp文件就是利用了C++语言中APC、Early、OEP、Thred、Direct_Load进行加载注入,那么分析到这里就可以在.hpp中加入另外的注入加载函数去调试了。继续分析cpp文件可看图,我都详细写在图里了!
到这里就很简单了,学习固定一些注入形式的加载函数,写入C++的hpp文件,利用.ini调用.nim在调用.cpp文件即可!
六、总结
思路总结:
1)安装Nim、Git、mingw64(C和C++)、Winim环境
2)七种方式加载注入,两种加密方法,共14种shellcode
2)底层分析学Nim、C、C++基础函数
Nimshellcode自带七种注入加载方式,还可自行扩展方式,支持两种加密技术,分别位3des加密和凯撒密码,密钥随机,每次生成文件拥有不同hash,三种非常棒的框架都搭好了,那么后期如何免杀在Nim上,是很简单的。
当然在此基础上,可以更深入的去了解底层源码Nim、C和C++语言的同时,重新编写一款属于自己的加载方式,那么新的免杀就出现了,或者更深入的在加载注入中在添加一些混淆和多重算法,这样免杀效果更佳,打造自己的专属免杀shellcode,引路人大余!
希望大家提高安全意识,没有网络安全就没有国家安全!
今天基础牢固就到这里,虽然基础,但是必须牢记于心。
作者:大余