AM0N-Eye是一个由一组最重要的脚本组成的合集 | Cobaltstrike插件
作者:Sec-Labs | 发布时间:
项目地址
https://github.com/S3N4T0R-0X0/AM0N-Eye
AM0N-Eye
AM0N-Eye 是一个由一组最重要的脚本组成的合集,专门为 Cobaltstrike 编写,并且还包括de用于修改颜色和图像等其他文件。所有权利归原始开发者所有。只需打开 Cobaltstrike.jar 文件并将其替换为添加的项目名称中的 de 和 default.cna 和 resources。这些项目名称包括ScareCrow、CrossC2、CSSG-xor、InvokeCredentialPhisher、Registry-Recon、StayKit等。此外,AM0N-Eye 还具有以下 TTPs,但不是全部。
- Linux、MacOS 和 windows c2 服务器
- 虚假警报技术
- AV/EDR 规避技术
- shellcode 生成器和混淆器
- 持久化技术
- 新的 BOF
- AV/EDR 偵察
- 可逃避杀毒程序检测的 PayloadGenerator
- 自定义恶意软件
- 新的 c2 档案

chmod +x 安装.sh
有效载荷生成器
基于防病毒程序未检测到的 HTTP/HTTPS 侦听器生成各种类型的无阶段/阶段有效负载
创建/opt/amon-eye/Staged_Payloads, /opt/amon-eye/Stageless_Payloads
Linux 和 MacOS C2 服务器
一个面向企业和红队人员的安全框架,支持AM0N-Eye对其他平台(Linux/MacOS/…)的渗透测试,支持自定义模块,包含一些常用的渗透模块。
横向运动
Generate beacon of Linux-bind / MacOS-bind type
The target in the intranet runs ./MacOS-bind.beacon <port> to start the service
Run connect <targetIP>:<port> in the session
例子
host中的bash / python / ruby / perl / php等脚本解释器可以在session中直接调用,执行传入内存的脚本。进程中没有任何信息,所有运行内容都从内存传输到解释器
1.python c:\getsysteminfo.py
2.python import base64;print base64.b64encode('whoami'); print 'a'*40
3.php
不要忘记检查 /AM0N-Eye/C2-Profiles/ 中的 C2 配置文件以绕过网络过滤器 要使用自定义配置文件,您必须启动 AM0N-Eye 团队服务器并在那个时候指定您的配置文件 Example ./teamserver [external IP ] [密码] [/path/to/my.profile] 。

假警报更新
代表(已安装的)应用程序或计算机本身发送 toast 通知。一旦用户单击通知 toast,系统将要求用户提供凭据。第二个是 AM0N-Eye 模块,用于对连接的信标发起网络钓鱼攻击,您可以了解受害者防御机制的类型并利用它来发出更新警报或采取行动

AV/EDR规避
(AV/EDR 规避)是一种有效载荷创建框架,用于将(而非注入)侧面加载到合法的 Windows 进程中(绕过应用程序白名单控制)。一旦 DLL 加载程序加载到内存中,它就会利用一种技术将 EDR 的挂钩从进程内存中运行的系统 DLL 中清除。这是有效的,因为我们知道 EDR 的挂钩是在生成进程时放置的。(AV/EDR 规避)可以针对这些 DLL 并使用 API 函数 VirtualProtect 在内存中操作它们,该函数将进程的内存权限的一部分更改为不同的值,特别是从 Execute–Read 到 Read-Write-Execute。
执行时,(AV/EDR 规避)将复制存储在 C:\Windows\System32 磁盘上的系统 DLL 的字节。这些 DLL 存储在 EDR 挂钩“干净”的磁盘上,因为系统使用它们在生成新进程时将未更改的副本加载到新进程中。由于 EDR 仅在内存中挂钩这些进程,因此它们保持不变。(AV/EDR 规避)不会复制整个 DLL 文件,而是只关注 DLL 的 .text 部分。DLL 的这一部分包含可执行程序集,这样做(AV/EDR 规避)有助于降低检测的可能性,因为重新读取整个文件可能导致 EDR 检测到系统资源已被修改。然后使用每个函数的偏移量将数据复制到正确的内存区域。
为此,(AV/EDR 规避)使用 VirtualProtect 更改内存的 .text 区域的权限。尽管这是一个系统 DLL,但由于它已加载到我们的进程(我们控制)中,我们可以更改内存权限而无需提升特权。
一旦这些钩子被移除,(AV/EDR 规避)就会利用自定义系统调用在内存中加载和运行 shellcode。(AV/EDR 规避)即使在删除 EDR 挂钩后也会执行此操作,以帮助避免被非用户空间、基于挂钩的遥测收集工具(例如 Windows 事件跟踪 (ETW) 或其他事件记录机制)检测到。这些自定义系统调用还用于执行 VirtualProtect 调用,以移除 EDR 放置的钩子,如上所述,以避免被任何 EDR 的防篡改控件检测到。这是通过调用 VirtualProtect 系统调用的自定义版本 NtProtectVirtualMemory 来完成的。(AV/EDR 规避)利用 Golang 生成这些加载器,然后为这些自定义系统调用函数进行组装。
(AV/EDR 规避)通过首先解密 shellcode 将 shellcode 加载到内存中,默认情况下使用带有解密和初始化向量密钥的 AES 加密对其进行加密。一旦解密并加载,shellcode 就会被执行。根据指定的加载程序选项(AV/EDR 规避)将为 DLL 设置不同的导出函数。加载的 DLL 也不包含所有 DLL 通常需要操作的标准 DLLmain 函数。DLL 仍将毫无问题地执行,因为我们加载到的进程将查找那些导出函数,而不用担心 DLLMain 在那里。
| 各种开箱即用的规避能力 |
|---|
| 规避能力 x64 支持 x86 |
| 间接系统调用 是 是 是 |
| 在内存中隐藏 Shellcode 部分 是 |
| 多种睡眠掩蔽技术 是 |
| 解开 EDR Userland 挂钩和 Dll 是 |
| 用于 ETW 规避的 LoadLibrary 代理 是 |
| 线程堆栈加密 是 是 |
| Badger 堆加密 是 是 |
| 伪装线程堆栈框架 是 是 |
| AMSI/ETW 规避的硬件断点 |
| 为 ETW 规避重用虚拟内存 是 |
| 重用 PEB 中的现有库 是 |
| 保护免费 Badger 堆以规避波动性 |
(AV/EDR 规避)包含进行进程注入攻击的能力。为了避免在加载程序进程或注入进程本身中进行任何挂钩或检测,(AV/EDR 规避)首先像往常一样解除加载程序进程的挂钩,以确保进程中没有挂钩。完成后,加载程序将生成创建命令中指定的进程。一旦产生,加载程序将创建一个进程句柄以检索已加载 DLL 的列表。一旦找到 DLL,它将枚举远程进程中每个 DLL 的基地址。使用 WriteProcessMemory 函数,加载程序将写入存储在磁盘上的系统 DLL 的字节(因为它们是“干净的”EDR 挂钩),而无需先更改内存权限。(AV/EDR 规避)使用 WriteProcessMemory 因为此函数包含一个主要用于调试的功能,即使一段内存是只读的,如果在调用 WriteProcessMemory 时一切正确,它会暂时更改读写权限,更新内存部分,然后恢复原来的权限。一旦完成,加载器就可以毫无问题地将 shellcode 注入到生成的进程中,因为这两个进程中都没有 EDR 挂钩。

shellcode混淆器
使用暴露的退出方法生成 beacon 无阶段 shellcode,附加格式化、加密、编码、压缩、多行输出等 shellcode 转换通常按降序菜单顺序执行要求:可选的 AES 加密选项使用 /assets 文件夹中的 python 脚本取决于要安装的 pycryptodome 包以执行 AES 加密
根据您的 python 环境,使用 pip 安装 pycryptodome:
python -m pip 安装pycryptodome python3 -m pip 安装pycryptodome py -3 -m pip 安装pycryptodome py -2 -m pip 安装pycryptodome
监听器:使用“…”按钮选择一个有效的监听器。Shellcode 将从该侦听器选择中生成
交付:Stageless(shellcode 生成器不支持 Staged)
退出方式:process——在beacon关闭时退出beacon所在的整个进程thread——在beacon关闭时只退出beacon运行的线程
本地指针复选框:如果您要从现有 Beacon 执行 shellcode,则可能会使用生成一个 Beacon shellcode 有效负载,它从同架构父 Beacon 继承关键函数指针
现有会话:仅在选中本地指针复选框时使用 Shellcode 将拉取会话元数据的父 Beacon 会话 Shellcode 应从此 Beacon 会话中运行
x86 Checkbox:勾选生成x86 shellcode,默认生成x64
或使用 Shellcode 文件:使用外部生成的原始 shellcode 文件代替生成 Beacon shellcode 这允许您使用以前导出的 shellcode 文件或其他工具(Donut、msfvenom 等)的输出
格式化:
raw - 原始二进制 shellcode 输出,未应用格式 hex - 十六进制格式的 shellcode 输出 0x90,0x90,0x90 - 格式化为 C# 样式字节数组的 shellcode(示例格式,不添加空值) 0x90uy;0x90uy;0x90uy - 格式化为 F# 的 shellcode style byte array (example format, does not prepend nulls) \x90\x90\x90 - shellcode 格式化为 C\C++ style byte array (example format, does not prepend nulls) b64 - base64 在生成早期编码 shellcode 的选项过程(在任何加密之前)
XOR Encrypt Shellcode Checkbox:勾选对shellcode进行异或加密(一次只能选择一种加密类型)
XOR Key(s): 随机生成和可编辑的 XOR key character(s) to use for encryption 多个字符将导致多轮 XOR 加密(即 ABCD)
AES Encrypt Shellcode Checkbox:勾选AES加密shellcode(一次只能选择一种加密类型) 使用python脚本进行AES Block Cipher AES-CBC加密 Shellcode用\0值填充以达到块大小要求 A随机生成的 IV 被添加到加密的 shellcode 数据中
AES 密钥:随机生成和可编辑的 AES 密钥,用于加密 生成 32 字节密钥,首选 256 位加密强度 接受的加密密钥字节长度为 16、24 和 32
编码/压缩:无 - 没有对 shellcode b64 进行额外的编码或压缩 - base64 编码 shellcode gzip 然后 b64 - gzip 压缩然后 base64 shellcode gzip - gzip 压缩 shellcode b64 然后 gzip - base64 然后 gzip 压缩 shellcode b64 然后7xgzip - base64 然后 gzip 压缩 shellcode 7 次

持久性威胁_Menu

- (UserSchtasksPersist)
作为所选信标的当前用户运行的 Schtasks Persistence
用于在初始访问时快速保持用户级别
- (ServiceEXEPersist)
管理员级别自定义服务 EXE 持久性
以选定信标的提升用户/系统运行
- (WMICEventPersist)
使用 WMIC 生成自定义 WMI 事件,以在选定信标上保持系统级别
语法非常繁重,在实时目标上使用之前先进行测试
- (StartupGPOPersist)
在 psscripts.ini 中生成本地 GPO 条目以调用 .ps1 脚本文件以在选定的信标上保持持久性
以 SYSTEM 身份回调
在执行之前先使用 GPO 枚举检查权限(成功的 GroupPolicy 目录列表)
Beacon 执行会导致 winlogon.exe 挂起,最终用户无法登录。一旦新的 beacon 签入,就会注入另一个进程并杀死原来的进程。更新即将推出。
- (注册表持久化)
根据选定信标的用户输入创建自定义注册表项、值、类型和有效负载位置
- (HKCURunKeyPSRegistryPersist)
在 HKCU 中创建两个自定义注册表运行密钥条目
有效负载是基于 HTTP/HTTPS 侦听器的 base64 编码的 powershell 有效负载
(手动持久化)
是 AM0N-Eye 持久性的扩展,通过利用 SharpStay .NET 程序集的 execute_assembly 函数。通过读取特定执行类型的模板文件来处理负载创建。持久性菜单将添加到信标。由于每种技术的性质不同,因此只有 GUI 菜单而没有信标命令。
可用选项:
- 高架注册表键
- 用户注册表键
- UserInitMprLogonScriptKey
- ElevatedUserInitKey
- 预定任务
- 列出计划任务
- 预定任务动作
- SchTaskCOM劫持
- 创建服务
- 列表运行服务
- WMIEventSub
- GetScheduledTaskCOMHandler
- 连接文件夹
- 启动目录
- 新LNK
- 后门LNK
- 列出任务名称
依赖关系
- 用于编译 .NET 程序集的 Mono (MCS)(与动态负载创建一起使用)
AV查询
Queries the Registry with powershell for all AV Installed on the target
Quick and easy way to get the AV you are dealing with as an attacker
checkmate request版本的checkmate request Web Delivery攻击
Stageless Web Delivery using checkmate.exe
Powerpick is used to spawn checkmate.exe to download the stageless payload on target and execute with rundll32.exe
Curl-TLS
无需建立 SOCKS PROXY 的简单 Web 请求。示例用例可以是在从 [F-Secure 的 C3] 部署中继之前确认对特定服务的出站访问
AV/EDR Recon & EDR 精确查询
作为一名红队从业者,我们经常使用工具来尝试对受感染系统的详细信息进行指纹识别,最好以尽可能隐秘的方式进行。由于使用 Windows CLI 命令,我们的一些常用工具开始被 EDR 产品标记。这旨在通过仅使用本机注册表查询而不是 CLI 命令来探测系统来解决该问题。
主动邪恶
作为当前用户上下文执行的作业。每次用户登录时都会执行此作业。目前仅适用于 Windows 7、8、Server 2008、Server 2012。
绕过UAC-eventvwr
silentcleanup UAC 绕过绕过“始终通知”也就是最高的 UAC 设置,即使在 Windows 上也是如此
info_Advanced
当您手头没有 Google 或 RTFM 时,一个常见的操作系统命令集合和红队提示。
BOF &(新命令)
AV_Query Queries the Registry for AV Installed
FindModule Find loaded modules.
FindProcHandle Find specific process handles.
amsi-inject Bypass AMSI in a remote process with code injection.
blockdlls Block non-Microsoft DLLs in child processes
bypassuac-eventvwr Bypass UAC using Eventvwr Fileless UAC bypass via. Powershell SMB Beacon
cThreadHijack cThreadHijack: Remote process injection via thread hijacking
dllinject Inject a Reflective DLL into a process
dllload Load DLL into a process with LoadLibrary()
edr_query Queries the remote or local system for all major EDR products installed
etw Start or stop ETW logging.
execute-assembly Execute a local .NET program in-memory on target
info_RTFM A large repository of commands and red team tips
kerberos_ccache_use Apply kerberos ticket from cache to this session
kerberos_ticket_purge Purge kerberos tickets from this session
kerberos_ticket_use Apply kerberos ticket to this session
process-hollowing EarlyBird process hollowing technique - Spawns a process in a suspended state, injects shellcode, hijack main
thread with APC, and execute shellcode.
regenum System, AV, and EDR profiling via registry queries
shinject Inject shellcode into a process
show_beacon_downloads Show all Downloads associated with your current Beacon.
show_sync_location Shows sync location for downloads.
static_syscalls_apc_shspawnSpawn process and use syscalls to execute custom shellcode launch with Nt functions (NtMapViewOfSection -> NtQueueUserApc).
static_syscalls_apc_spawn Spawn process and use syscalls to execute beacon shellcode launch with Nt functions (NtMapViewOfSection -> NtQueueUserApc).
static_syscalls_dump Use static syscalls to dump a given PID and save to disk
static_syscalls_inject Use static syscalls to execute CRT beacon shellcode launch with Nt functions.
static_syscalls_shinject Use static syscalls to execute custom shellcode launch with Nt functions.
sync_all_beacon_downloads Sync all Downloads.
sync_beacon_downloads Sync all Downloads from current Beacon.
syscalls_inject Use syscalls from on-disk dll to execute CRT beacon shellcode launch with Nt functions.
syscalls_shinject Use syscalls from on-disk dll to execute custom shellcode launch with Nt functions.
unhook remove hooks from DLLs in this process
zerologon Reset DC machine account password with CVE-2020-1472
__________________________________________________________________________________________________________________________________