找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2624

积分

0

好友

363

主题
发表于 3 小时前 | 查看: 0| 回复: 0

由于工作需要,我重新捡起了安全工程方面的知识,并一直在学习银狐远控的源码。在这个过程中,也接触了一些对安全工程感兴趣的小伙伴。本文不介绍具体的技术细节,而是想和大家聊聊,学习这类项目时,应该掌握怎样的方法。

特别申明:

  1. 本文介绍的内容仅做技术上的交流,请勿使用本文介绍的技术做其他用途,违者与本文无关。
  2. 作者不提供任何支持免杀版本的银狐源码,不做任何黑产,有此需求的读者请勿联系作者。

银狐远控调试界面示意图

银狐这套源码虽然代码风格不尽如人意,但总体的设计和架构思路还是很有参考价值的,是一份不错的学习材料。

在与部分小伙伴交流技术时,我发现一个现象:很多同学在学习安全工程时,容易沉迷于各种现成的工具和脚本,而忽略了底层技术原理的钻研。

举个例子,有小伙伴看到某平台上一个关于绕过 Windows UAC 的视频,感到非常兴奋并拿来分享。但我一看,那其实是应用了非常古老的技术。如果你对 Windows UAC 的原理和机制有基本的了解,就不会盲目追捧这类内容。试想,如果通过简单的几步操作,软件就能轻易提升到管理员权限,那 Windows 上的恶意软件岂不是可以为所欲为?微软在安全方面的设计也不至于如此“拉垮”。

我认为,从事 Windows 安全工程,除了学习 Windbg、IDA、x64dbg/x86dbg、Cobalt Strike 等必要的工具外,至少还应掌握以下几项基本功,否则很容易停留在“调库侠”或“脚本小子”的阶段:

  • 汇编语言
  • Windows 系统原理,需要熟悉 Windows 常用的 API,包括部分 Native API
  • Windows 内核或驱动开发基础
  • 网络编程

然而,研究银狐这套源码,不仅需要上述安全工程方面的知识,还需要正统的软件开发技能,例如 Windows C/C++ 编程、多线程编程等等。当然,你也可以通过逆向学习这套源码,来巩固这些开发知识。

此前,看雪学院招募小伙伴翻译了《Windows Shellcode Mastery》一书,这是一本教授如何编写高级 Shellcode 的学习资料。我一边学习一边参与了翻译,并将译文放在了 cppguide.cn 上,方便更多的小伙伴学习。

https://cppguide.cn/pages/windows-shellcode-advanced-practice/

(若链接无法直接点击,请复制至浏览器打开)

《Windows Shellcode Mastery》教程页面截图

该教程的目录结构如下,涵盖了从基础概念到实战应用的完整知识体系:

1  shellcodisation在病毒学中的应用

  • 1.1  背景定义
  • 1.2  恶意代码的选定目标
    • 1.2.1  避开基于特征码识别的反病毒软件检测
    • 1.2.2  在受感染主机上留下尽可能少的痕迹
    • 1.2.3  嵌入合法程序以创建特洛伊木马
    • 1.2.4  拦截使用受感染计算机的用户的私人数据
    • 1.2.5  加密自身以防止人工分析
  • 1.3  基于可执行文件的实现
    • 1.3.1  实现多态性
    • 1.3.2  仅在内存中执行
    • 1.3.3  感染其他可执行文件
    • 1.3.4  执行代码注入
    • 1.3.5  实现真正的加密
    • 1.3.6  总结
  • 1.4  基于shellcode的实现
    • 1.4.1  实现多态性
    • 1.4.2  仅在内存中执行
    • 1.4.3  感染其他可执行文件
    • 1.4.4  执行代码注入
    • 1.4.5  实现真正的加密
    • 1.4.6  总结

2  编写shellcode

  • 2.1  编译生成的二进制数据解析
  • 2.2  shellcode生成原理
    • 2.2.1  第一种方法:汇编代码修补
    • 2.2.2  第二种方法:使用栈
    • 2.2.3  第三种方法:使用全局数据

3  WiShMaster:shellcodisation过程

  • 3.1  工具介绍
  • 3.2  开发进展
    • 3.2.1  WiShMaster 版本1
    • 3.2.2  WiShMaster 版本2
  • 3.3  shellcodisation过程
    • 3.3.1  概述
    • 3.3.2  “分析”步骤说明
    • 3.3.3  “获取全局变量大小”步骤说明
    • 3.3.4  “生成”步骤说明
    • 3.3.5  “自定义”步骤说明
    • 3.3.6  “集成”步骤说明
    • 3.3.7  WiShMaster中shellcodisation的实现
    • 3.3.8  shellcode初始化

4  使用WiShMaster开发应用程序

  • 4.1  WiShMaster的目标
  • 4.2  WiShMaster版本2中应用程序的结构
    • 4.2.1  应用程序结构概述
    • 4.2.2  导出表和导入表
    • 4.2.3  入口点
  • 4.3  标准模块
    • 4.3.1  “日志”模块
    • 4.3.2  “initsh”模块
    • 4.3.3  “加载器”模块
  • 4.4  shellcode加密
    • 4.4.1  32位密钥的异或(XOR)加密
    • 4.4.2  256位密钥的高级加密标准-密码分组链接模式(AES-CBC)加密
    • 4.4.3  使用共享密钥
  • 4.5  开发反向shell
    • 4.5.1  程序结构概述
    • 4.5.2  生成反向shell
  • 4.6  实现USB攻击以执行反向shell
    • 4.6.1  攻击准备
    • 4.6.2  攻击流程

5  未来工作

  • 5.1  pycparser工具
  • 5.2  GCC编译器的fPIC选项
  • 5.3  趣味使用编译指令

6  结论

总结来说,学习银狐远控源码或类似项目,不应只停留在表面功能的使用和模仿。深入理解其背后的 Windows 系统机制、编程原理以及安全概念,才能真正提升自己的技术实力,从“会用工具”进阶到“理解并创造工具”。希望这份关于学习方法的探讨,能对正在安全工程道路上探索的你有所启发。也欢迎大家在专业的开发者社区交流更多技术心得。




上一篇:DIY玩家的物品管理方案:自托管Homebox搭建与体验分享
下一篇:开源AI桌面Agent TuriX-CUA:用Python让AI接管你的Windows与macOS自动化任务
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-24 16:35 , Processed in 0.233960 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表