Skip to content

Inboxfuscation is an advanced offensive & defensive framework for mailbox rule obfuscation and detection in Exchange environments.

License

Notifications You must be signed in to change notification settings

Permiso-io-tools/Inboxfuscation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

10 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Inboxfuscation

Permiso: https://permiso.io

Read our release blog: https://permiso.io/blog/inboxfuscation-because-rules-are-meant-to-be-broken

Released At: Blue Team Con 2025 (2025-09-07)

Authors: Andi Ahmeti

Introduction

Inboxfuscation is an advanced inbox rule obfuscation framework for Microsoft Exchange environments. This tool provides sophisticated Unicode-based obfuscation techniques to create stealthy inbox rules that can evade basic detection while maintaining functionality.

image

Quick Start

# Import the module
Import-Module .\Inboxfuscation.psd1

# Create obfuscated inbox rules using direct function calls
New-ObfuscatedInboxRule -Name "Security Filter" -Mailbox "user@company.com" -SubjectContainsWords "confidential","secret" -MoveToFolder ":\Archive" -ObfuscationLevel "Heavy"

# Modify existing rules with obfuscation
Set-ObfuscatedInboxRule -Identity "RuleID123" -Mailbox "admin@company.com" -SubjectOrBodyContainsWords "sensitive","classified" -DeleteMessage -ObfuscationLevel "Heavy"

# Analyze existing rules for obfuscation
Find-ObfuscatedInboxRules -Mailbox "user@company.com"

# Show comprehensive help
Show-InboxfuscationHelp
image

Core Architecture: Obfuscation Framework

Inboxfuscation provides enhanced versions of standard Exchange cmdlets that work seamlessly with PowerShell:

# Direct obfuscation functions
New-ObfuscatedInboxRule [Conditions + Actions + Obfuscation Options]
Set-ObfuscatedInboxRule [Conditions + Actions + Obfuscation Options]

# Note: Exchange inbox rules require both conditions AND actions to be valid

Framework Architecture

  1. Parameter Capture: New-InboxRule and Set-InboxRule capture all Exchange parameters
  2. Rule Object Creation: Creates structured rule objects with integrated obfuscation
  3. Intelligent Obfuscation: Automatically identifies and processes eligible condition values
  4. Command Generation: Produces ready-to-execute Exchange commands with Unicode obfuscation applied

Features

PowerShell Integration

  • Native PowerShell Syntax: Use familiar Exchange cmdlet parameter names
  • Enhanced Functions: Improved versions of New-InboxRule and Set-InboxRule
  • Intelligent Parameter Processing: Automatically identifies and processes obfuscation-eligible parameters
  • Seamless Integration: Native PowerShell experience with | operator

Advanced Obfuscation Engine

  • Unicode Mathematical Styles: Bold, italic, script, fraktur, sans-serif variations (๐’‚๐’ƒ๐’„, ๐—ฎ๐—ฏ๐—ฐ, ๐˜ข๐˜ฃ๐˜ค)
  • Zero-Width Characters: Invisible steganographic characters (U+200B, U+200C, U+200D)
  • RTL Control Characters: Right-to-left overrides and directional isolates (U+202E, U+202D, U+2067)
  • Enclosed Alphanumerics: Circled, squared, and negative variants (โ’ถโ“‘โ“’, ๐Ÿ„ฐ๐Ÿ„ฑ๐Ÿ„ฒ)
  • Homoglyph Substitution: Visually similar characters from different scripts

Comprehensive Detection System

  • Surrogate Pair Support: Proper handling of extended Unicode characters
  • Category-Based Analysis: Systematic detection across all obfuscation types
  • Risk Scoring: Quantified threat assessment for each rule
  • Character-Level Analysis: Unicode code point identification and reporting

Multiple Output Formats

  • Console: Rich colored output with visual indicators
  • JSON: Structured data for programmatic processing
  • XML: Standards-compliant markup for integration
  • CSV: Tabular format for spreadsheet analysis

Usage Examples

Basic Obfuscation Commands

# Simple security filter with default obfuscation
New-ObfuscatedInboxRule -Name "Threat Filter" -Mailbox "security@kosova.com" -SubjectContainsWords "malware","virus","phishing" -DeleteMessage

# Executive protection with maximum obfuscation
New-ObfuscatedInboxRule -Name "Executive Protection" -Mailbox "ceo@kosova.com" -SubjectOrBodyContainsWords "urgent","financial","board" -From "external@domain.com" -DeleteMessage -ObfuscationLevel "Maximum"

# Modify existing rule with heavy obfuscation
Set-ObfuscatedInboxRule -Identity "ExistingRule123" -Mailbox "admin@kosova.com" -SubjectOrBodyContainsWords "confidential","secret" -MoveToFolder ":\Calendar" -ObfuscationLevel "Heavy"

# Complex rule with multiple conditions
New-ObfuscatedInboxRule -Name "Multi-Condition Filter" -Mailbox "user@kosova.com" -SubjectContainsWords "invoice","payment" -From "finance@company.com" -MoveToFolder ":\Invoices"

Detection and Analysis

Find-ObfuscatedInboxRules supports two powerful modes:

Mode 1: Direct Exchange Connection (Live Analysis)

# Quick analysis of a mailbox
Find-ObfuscatedInboxRules -Mailbox "user@kosova.com"

# Detailed analysis with step-by-step debug output
Find-ObfuscatedInboxRules -Mailbox "user@kosova.com" -DebugOutput

# Export live analysis results
Find-ObfuscatedInboxRules -Mailbox "user@kosova.com" -OutputFormat "JSON" | Out-File "live-analysis.json"

Mode 2: File/Pipeline Analysis (Offline Analysis)

Supports multiple file formats with automatic detection:

  • Graph API/Get-InboxRule Format: Direct rule objects from Get-InboxRule (JSON)
  • Runtime/Audit Log Format: Exchange audit logs with Parameters array (JSON)
  • CSV Format: Exported rule data in comma-separated values
image
  # Analyze mailbox for obfuscated rules
  Find-ObfuscatedInboxRules -Mailbox 'user@company.com'

  # Analyze mailbox for obfuscated rules with detailed output
  Find-ObfuscatedInboxRules -Mailbox 'user@company.com' -DebugOutput

  # Analyze runtime logs (real-time execution data)
  Find-ObfuscatedInboxRules -InputFile 'runtime-logs.json'

  # Analyze auditing logs (historical activity records)
  Find-ObfuscatedInboxRules -InputFile 'audit-logs.csv'

  # Save analysis results to file
  Find-ObfuscatedInboxRules -Mailbox 'user@company.com' -OutputFormat 'JSON' | Out-File -FilePath 'analysis-results.json'

Batch Processing

# Process multiple rules from CSV file
Add-InboxRuleObfuscation -InputFile "example-inbox-rules.csv" -ObfuscationLevel "Heavy"

# Process rules from JSON file with debug output
Add-InboxRuleObfuscation -InputFile "example-inbox-rules.json" -DebugOutput

# Process rules from plain text file
Add-InboxRuleObfuscation -InputFile "rules.txt" -ObfuscationLevel "Maximum"

Obfuscation Levels

Level Description Techniques Used
Light Minimal obfuscation Unicode mathematical styles only
Medium Moderate obfuscation Mathematical styles + RTL OR zero-width chars
Heavy Strong obfuscation Mathematical styles + RTL AND zero-width chars
Maximum Maximum stealth All techniques with maximum character density

Detection Capabilities

The framework can detect and analyze:

Unicode Categories Detected

  • Mathematical Styled Characters: ๐’‚๐’ƒ๐’„ (script), ๐—ฎ๐—ฏ๐—ฐ (bold), ๐˜ข๐˜ฃ๐˜ค (italic), ๐šŠ๐š‹๐šŒ (monospace)
  • Zero-Width Characters: U+200B (ZWSP), U+200C (ZWNJ), U+200D (ZWJ)
  • RTL Control Characters: U+202E (RLO), U+202D (LRO), U+2067 (RLI), U+2069 (PDI)
  • Enclosed Alphanumerics: โ’ถโ“‘โ“’ (circled), ๐Ÿ„ฐ๐Ÿ„ฑ๐Ÿ„ฒ (squared), ๐Ÿ…๐Ÿ…‘๐Ÿ…’ (negative squared)
  • Homoglyph Substitutions: Cyrillic ะฐ (U+0430) vs Latin a (U+0061)

Risk Assessment

  • Character-Level Scoring: Individual Unicode character risk assessment
  • Pattern Analysis: Detection of obfuscation patterns and techniques
  • Density Metrics: Measurement of obfuscation character density
  • Context Awareness: Understanding of legitimate vs suspicious Unicode usage

File Formats Supported

CSV Format

Name,Condition,ConditionValue,RuleAction,ActionValue,Mailbox,Priority,ObfuscationLevel
"Security Filter","SubjectContainsWords","confidential,secret","MoveToFolder","Archive","user@company.com",1,"Heavy"
"Executive Protection","SubjectOrBodyContainsWords","merger,acquisition","DeleteMessage","","ceo@company.com",2,"Maximum"

JSON Format

[
  {
    "Name": "Security Filter",
    "Condition": "SubjectContainsWords",
    "ConditionValue": "confidential,secret",
    "RuleAction": "MoveToFolder",
    "ActionValue": "Archive",
    "Mailbox": "user@company.com",
    "Priority": 1,
    "ObfuscationLevel": "Heavy"
  },
  {
    "Name": "Executive Protection",
    "Condition": "SubjectOrBodyContainsWords", 
    "ConditionValue": "merger,acquisition",
    "RuleAction": "DeleteMessage",
    "ActionValue": "",
    "Mailbox": "ceo@company.com",
    "Priority": 2,
    "ObfuscationLevel": "Maximum"
  }
]

Plain Text Format

# Format: Name|Condition|ConditionValue|RuleAction|ActionValue|Mailbox|Priority|ObfuscationLevel
Security Cleanup|SubjectOrBodyContainsWords|malware,phishing|DeleteMessage||security@company.com|5|Heavy
HR Notifications|From|hr@company.com|MarkAsRead||hr@company.com|10|Light

Security Considerations

Legitimate Use Cases

  • Red Team Operations: Testing email security controls and detection capabilities
  • Security Research: Understanding Unicode-based evasion techniques and defenses
  • Blue Team Defense: Developing and testing detection rules for obfuscated inbox rules
  • Compliance Testing: Validating email security policies and controls

Requirements

Software Requirements

  • PowerShell: 5.1 or later (PowerShell 7+ recommended)
  • Exchange Module: ExchangeOnlineManagement (for live Exchange operations)
  • Operating System: Windows, macOS, or Linux

Permissions Required

  • Exchange Online: Appropriate RBAC permissions for target mailboxes
  • On-Premises Exchange: Exchange Management Shell access
  • Mailbox Access: Read/Write permissions for target mailboxes

Installation

# Install Exchange Online Management module (if needed)
Install-Module -Name ExchangeOnlineManagement -Force

# Import Inboxfuscation
Import-Module .\Inboxfuscation.psd1

# Verify installation
Show-InboxfuscationHelp

Architecture

Inboxfuscation follows a modular architecture:

Inboxfuscation/
โ”œโ”€โ”€ Inboxfuscation.psd1              # Module manifest
โ”œโ”€โ”€ Inboxfuscation.psm1              # Main module with pipeline functions
โ”œโ”€โ”€ Modules/
โ”‚   โ”œโ”€โ”€ InboxfuscationCore.psm1      # Cmdlets and obfuscation logic
โ”‚   โ”œโ”€โ”€ InboxfuscationDetection.psm1 # Unicode detection and analysis
โ”‚   โ””โ”€โ”€ InboxfuscationUI.psm1        # Display and formatting functions
โ”œโ”€โ”€ Helpers/
โ”‚   โ””โ”€โ”€ UnicodeHelpers.psm1          # Unicode character definitions
โ””โ”€โ”€ Examples/                        # Usage examples and test files

Examples

Check the Examples/ folder for comprehensive usage examples:

  • Basic-Usage.ps1: Getting started with pipeline syntax
  • Advanced-Obfuscation.ps1: Complex obfuscation techniques
  • Detection-Examples.ps1: Detection and analysis workflows
  • CLI-Usage.ps1: Command-line interface examples

License

Copyright (c) 2025 Permiso Security. All rights reserved.

Educational and authorized testing purposes only.


Powered by Permiso Security

About

Inboxfuscation is an advanced offensive & defensive framework for mailbox rule obfuscation and detection in Exchange environments.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published