目录
前记 BOF sleepmask anti-sandbox vehsyscall Persistence Others 效果展示
前记
在Cobalt Strike备受关注的今天,红队自研属于自己的先锋马是有一定价值的。入侵后让稳定性得到保证,在低权限下先做好持久化,然后通过先锋马拉大马完成后续操作。
正如老鑫说过,先锋马其实也不需要花费那么多时间,不必太花哨,只需要维持一个基本的链接就行,剩下的功能不如全交给BOF吧。
BOF
执行bof的本质是解析coff格式的obj文件,用010可以清晰的观察到obj文件构成格式,具体结构如下
FileHeader
SectionHeaders[]
Reloc[]
Symbol[]
重定位类型:
解析过程如下:
读取coff文件,拿到各表起始位置并解析结构 遍历节区,处理重定位表。(对于长名称符号(外部符号)的IMAGE_REL_AMD64_REL32需要根据 __imp_
动态获取函数地址)遍历符号表,找到入口点,通过SectionNumber和Symbol[i].Value跳到入口 执行入口点 清理资源
sleepmask
由于设计了heartbeat,为了对抗内存扫描,sleepmask是需要的。
实现过程如下:
HookedSleep 挂起当前进程除当前线程外的其他线程(te.th32ThreadID != targetThreadId && te.th32OwnerProcessID == targetProcessId) 加密内存 调用原来的sleep 解密内存 恢复挂起的线程
anti-sandbox
网上的方法太多了,略。
硬件检测、开机时间、进程数量、路由表、时钟、鼠标移动…
vehsyscall
设计用来执行shellcode,避免三环上NTDLL被挂钩分析
实现过程如下:
zw记录ssn_map AddVectoredExceptionHandler 调用一系列Nt函数配合VectExceptionHandler构造的syscall_stub写入 创建线程执行shellcode
Persistence
通过白加黑写注册表,这里找比较权威的白文件,比如杀软或微软自己的组件,通过断链的方式拉起白文件构造可信的进程链
Others
screenshot
SetProcessDPIAwareGetDeviceCaps
通过上面两个api获取真实的屏幕尺寸
filesystem/cmd/heartbeat
没什么好介绍的,fstream/_popen/sleep常规代码,这里设置每次随机0.7-1.2倍心跳
通信是通过第三方库加密避免被EDR检测出敏感的通信流量
效果展示
附带效果图,为卡巴斯基EDR环境下执行shellcode、Bof、加注册表权限维持
文章首发于:渗透测试安全攻防
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...