CobaltStrike ShellCode详解

本文为看雪论坛优秀文章
看雪论坛作者ID:mb_wiyiprvz
一
前言
二
目标样本

三
样本情况说明






















#include <iostream>#include <stdio.h>#include <windows.h>typedef void* (WINAPI* FnLoadLibraryA)(char*);FnLoadLibraryA MyLoadLibraryA;int main(){UINT_PTR uiBaseAddress = 0;UINT_PTR uiExportDir = 0;UINT_PTR uiNameArray = 0;UINT_PTR uiAddressArray = 0;UINT_PTR uiNameOrdinals = 0;DWORD dwCounter = 0;void* hKernel32 = NULL;//直接通过PEB获取到Kernel32的基址__asm {mov rdx, gs: [60h]mov rdx, [rdx + 18h]mov rdx, [rdx + 20h]mov rdx, [rdx]mov rdx, [rdx]mov rdx, [rdx + 20h]mov hKernel32, rdx}uiBaseAddress = (UINT_PTR)hKernel32;//获取NT头uiExportDir = uiBaseAddress + ((PIMAGE_DOS_HEADER)uiBaseAddress)->e_lfanew;//获取数据目录表中的导出表RVAuiNameArray = (UINT_PTR) & ((PIMAGE_NT_HEADERS)uiExportDir)->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT];//获取导出表uiExportDir = uiBaseAddress +((PIMAGE_DATA_DIRECTORY)uiNameArray)->VirtualAddress;//获取名称表uiNameArray = uiBaseAddress + ((PIMAGE_EXPORT_DIRECTORY)uiExportDir)->AddressOfNames;//获取导出地址表uiAddressArray = uiBaseAddress +((PIMAGE_EXPORT_DIRECTORY)uiExportDir)->AddressOfFunctions;//获取导出序号表uiNameOrdinals = uiBaseAddress +((PIMAGE_EXPORT_DIRECTORY)uiExportDir)->AddressOfNameOrdinals;//获取名称导出的个数dwCounter = ((PIMAGE_EXPORT_DIRECTORY)uiExportDir)->NumberOfNames;while (dwCounter--){char* cpExportedFunctionName = (char*)(uiBaseAddress + *(DWORD*)(uiNameArray));//找LoadLibraryif (strstr(cpExportedFunctionName, "LoadLibraryA") != NULL){// 用导出序号*dword是在获取函数在地址表内的位置+地址表获取到内存中的位置uiAddressArray += (*(WORD*)(uiNameOrdinals) * sizeof(DWORD));printf(" LoadLibraryA RVA: % d", *(DWORD*)(uiAddressArray));// 返回函数地址RVA+基址MyLoadLibraryA = (FnLoadLibraryA)( uiBaseAddress+* (DWORD*)uiAddressArray);//调用后加载HMODULE hUser32 = (HMODULE)MyLoadLibraryA((char*)"testdll.dll");//返回LoadLibraryA的rvareturn *(DWORD*)(uiAddressArray);}// 名称表++uiNameArray += sizeof(DWORD);// 序号表++uiNameOrdinals += sizeof(WORD);}return 0;}













不分段的Beacon





https://www.yuque.com/p1ut0/qtmgyx/aneyo7#1RQls
https://mp.weixin.qq.com/s?__biz=MzIyMjkzMzY4Ng==&mid=2247487765&idx=1&sn=4aa17ec86305ebc3832becc1ed057144&chksm=e824b6ccdf533fdaaecb93f7e9a7b7f0992c745918f07670ebf1e33cb1fcadd7746d5bdeb8a0&scene=21#wechat_redirect
https://bbs.pediy.com/thread-264470.htm#msg_header_h3_1

看雪ID:mb_wiyiprvz
https://bbs.pediy.com/user-home-874115.htm
# 往期推荐


球分享

球点赞

球在看

点击“阅读原文”,了解更多!
[广告]赞助链接:
关注数据与安全,洞悉企业级服务市场:https://www.ijiandao.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注KnowSafe微信公众号随时掌握互联网精彩
- MAZANOKE:隐私安全的全能图片处理神器!
- openGauss开源关系型数据库管理系统
- 周鸿祎:360 基本不触碰用户数据;苹果与亚马逊被指控合谋推高 iPhone 等产品价格|极客头条
- Python 3.11 的速度大幅超越 3.8!
- 微信打开时支持消息通知横幅引热议;Google和甲骨文的云服务因英国高温天气而下线;谷歌发布开源开发语言Carbon|极客头条
- 基础能力、分布式能力、系统应用…OpenHarmony 3.1 Release 版本带来全方位升级
- 高通公司、宝马集团和Arriver达成长期战略合作,共同开发自动驾驶软件解决方案
- 超级CSO评选|第一周直播精彩回顾
- 什么是OV SSL证书?
- 乐视视频 App 图标改为“欠 122 亿”,网友:我在别家分红包,却在你家随份子!
- 盘点 | 2020年网安法规政策:百花齐放,日臻完善
- 小米11:轻装换新颜,2021一往无前
赞助链接




