Recently Updated Pages
反病毒扫描接口
在 Windows 主机上,我们可以通过执行 exe 文件、加载恶意 dll 等行为获得 Beacon 会话,此外,还可以通过一些脚本语言达到相同目的,例如使用 PowerShell IEX 命...
杀毒软件与EDR原理
背景 如今,渗透测试人员和红队操作员在红队行动中面临着重大挑战,因为杀毒软件和 EDR (终端检测与响应) 等安全产品会阻止许多载荷与工具的执行。在本章节中,我们将讨论攻击者用来规避检测的一些...
Shellcode 编写 - 2
调用 API 为了能实现反向 Shell,我们需要 3 个来自 ws2_32.dll 中的 函数,分别是 WSAStartup,WSASocketA,和 WSAConnect。以及来自 ker...
Shellcode 编写 - 1
背景 一般来说,如果我们需要执行 Shellcode,会通过各自的 C2 或者 msfvenom 来生成,但因为这些工具大部分都是开源的,即便是商业工具,也会因为样本的提交导致 Shellco...
使用 WinDBG 调试
在这小节,我们将学习调试程序的技能,这对于恶意软件开发领域有这些帮助:理解当下的恶意软件的技术、功能、原理,分析恶意软件并且改进,开发漏洞利用以及 Shellcode,理解安全产品的原理以规避检...
面试专题
使用 Azure CDN 实现域前置
为了行动的 OPSEC,红队们通过各种手段寻求隐藏他们的 C2 基础设施,否则会被防御方以及威胁猎人所追踪到。这些技术中,使用域前置技术来实现对 C2 服务器的隐藏,是卓有成效以及典型的。在这个...
Azure API 管理服务转发器
类似于 Azure Function 应用,Azure API 管理服务也可用于搭建安全的 C2 基础设施。在 Azure 面板中,导航到 API Management services,创建新...
Azure 函数应用转发器
Azure 函数是无服务器的解决方案,允许我们写更少的代码,维护更少的基础设施,以及节约更多的开支。我们可以提供自己的代码,使得 Azure 函数充当着转发器的作用。 从 https://gi...
双向信任
有了上一小节的理论基础,我们来利用双向信任实现域间的移动。因为双向信任既可以发生于森林之内,也可以发生于森林之间,因此我们分别讨论。 森林之内 森林之内的横向移动是最简单的情形,因为信任...
SSH劫持
SSH 是一个可以用于远程访问网络设备的网络协议,广泛运用于 Linux 主机,并且如今 SSH 在 Windows 主机上的使用也越来越广泛。对于我们网络安全人士,直观地概括就是 SSH 会话...
第12章课后作业
练习 1:了解一下 DevOps 简介中所提及到的这些软件。 2:复现针对 Ansible 的这些枚举与攻击方法。 3:查看网络安全方面的新闻,了解一下近几年的一些大规模供应链污染事件。
攻击供应链
存储库管理软件 在企业环境中,我们常常遇见存储库管理软件,例如 JFog Artifactory, Nexus Sonatype 等。这些软件存储了企业内在用的软件包、项目文件、二进制文件等。...
Ansible
在这章节,我们将简要介绍在 DevOps 中所常涉及的应用以及这些应用可能带来的攻击面。通过对这些 DevOps 中涉及的应用进行利用与攻击,我们可以实现代码执行、横向移动、供应链污染、信息窃取...
第14章课后作业
练习 1:分析 OpenProcess 的调用链 2:使用 C++ 调用 CreateProcess API,运行 calc.exe 程序 3:使用 P/Invoke 通过序数调用 Ope...
x64架构汇编
掌握汇编语言对于恶意软件开发有着很大的作用,例如可以编写自定义 Shellcode、在木马加载器中插入汇编代码以实现混淆以及底层的指令操作等。 基本概念 汇编语言是我们可以用来为给定 C...
进程与线程
在恶意软件开发领域,诸多代码注入、防御规避技术是围绕着进程与线程展开的,因此我们首先需要理解进程与线程的相关概念。 进程与线程 Windows 进程是指当前运行在 Windows 主机上的程...
动态链接库文件
DLL 文件 对于 Windows 操作系统,EXE 与 DLL 虽然同为 PE 文件,但是这 2 种文件类型依旧有着诸多的不同。DLL 是可执行函数或数据的共享库,可供多个应用程序同时使用。...
Windows 架构、API 与编程调用
从这个章节起,我们将学习一些有关编程与二进制的技能,为下个章节的恶意软件以及安全工具开发奠定基础。学习恶意软件开发的原因有多种,从进攻型安全的角度来看,我们通常需要针对客户的环境执行某些恶意任务...
第11章课后作业
练习 1:根据 PsExec 的原理,手动实现这个过程。提示一下,过程包括了上传服务二进制文件、开启远程服务等。 2:实际上计划任务也可以作为横向移动的方法,研究一下前提条件,以及手动实现这...