applied security research
Rik van Duijn - 13 mei 2020

Office 365 – Exchange rules

This blog is part of our Office 365 attack & defense series. We also maintain a Github page where we share our Office 365 tools and queries.

Exchange rules can be useful in managing the emails we receive on a daily basis. For example, it allows users to automatically respond or move specific emails to specific folders. The same rules can also used to exfiltrate information. A hacker adds a rule to forward specific emails. This method is sometimes used to gain information or to intercept specific email communication in order to manipulate internal payment procedures. We’ve encountered companies that became victim of a scam where the invoices were intercepted and modified just before being delivered to the intended destination. The attackers just changed the bank account number where the money had to go to. This can become quite costly; we’ve seen one instance where attackers were able to do this with a payment for multiple vehicles. As you can imagine this was an expensive lesson for the company. These types of scams are part of what they call Business Email Compromise (BEC) scams.

The way they are executed differs per type of scam. One of the tricks is to intercept emails sent, this gives the ability to modify emails before sending to the intended recipient. There are different ways to forward emails. Most of them can be done with user privileges, others require admin privileges on the exchange server itself. Using the admin privileges, it’s possible to steal emails for the entire organization. The user privileges only allow an attacker to steal the emails for the compromised user.


  • Rules:Forward to
  • Rules:Forward as attachment
  • Rules:Redirect to
  • Forwarding: Forward all email


  • Mail flow: rules
  • Mail flow: connectors

Depending on your Office 365 license you have you’ll be able to use Office 365 Advanced Threat Protection (ATP). ATP is an effective solution because it already detects many of the tricks you can use to steal emails. If ATP is included in your license, make sure the alert emails are sent to someone or a group of people that can check on alerts from the system. For the purpose of this blog we assume your organization does not have ATP. Which is not a problem we can detect any of these threats with limited resources.

Enabling audit logging

For companies that have an enterprise E3/E5 license there is no need to enable logging. Without an E3 or E5 license, audit logging has to be enabled. Next to this an additional step is required. In that case, auditing has to be enabled on every individual mailbox manually. In order to do so, we have written a PowerShell script that retrieves all available mailboxes, loops over all mailboxes to individually enable the logging per mailbox. For more information see:

We’ve added 2 scripts to fix your logging:

Connecting Exchange audit logging to Sentinel

Although using Sentinel in combination with Office 365 is free, it does require an Azure subscription. Adding Sentinel is easy, navigate to Azure portal, search for “Azure Sentinel” and select add. The wizard will guide you through, make sure to add everything to a unique resource group, it will allow you to see all related components and to see any cost you might incur. Instead of us re-iterating how to add sentinel exactly, its better to go to the source:

Creating Rules

Luckily, we don’t have to build all of the rules ourselves. Microsoft publishes some detection rules on their GIT repository. ( However i havent seen any complete set of rules to detect all different types. Let’s reiterate the things we want to detect.


  • Rules:Forward to
  • Rules:Forward as attachment
  • Rules:Redirect to
  • Forwarding: Forward all email
  • Mail Flow via ExchangeAdmin center (Administrator privileges required)

In order to build proper rules to detect the above tricks, its easiest to just create the rules and then see what type of logging shows up. So we know what we are dealing with. Using the ‘search “rulename”’ command will allow you to find entries pertaining to your rule creation. Looking for our rules the most important operations to look for are:

  • New-InboxRule with ruletype being one of the following:
    • ForwardTo
    • ForwardAsAttachmentTo
    • RedirectTo
  • Set-Mailbox with type: “ForwardingSmtpAddress”
  • New-TransportRule

Just detecting one of the above activities might incur allot of false positives as these mail rules are often used for legitimate purposes. One of the ways to reduce the number of false positives would be to filter out any internal mail forwards.

  let TimeFrame = 1d;
  let domains = dynamic(["" ""]);
  | where TimeGenerated >= ago(TimeFrame) 
  | where Operation == "Set-InboxRule"
  | extend details = parse_json(Parameters)
  | extend ruletype = tostring(details[0].Name) 
  | where ruletype in ( "ForwardTo" , "ForwardAsAttachmentTo", "RedirectTo")
  | extend forwardaddr = tostring(details[0].Value) 
  | extend forwarddomain = tostring(split(forwardaddr, "@")[1])
  | where isempty(forwarddomain) == false and forwarddomain !in (domains)
  1. Create an array of valid forward domains
  2. Parse the forward address
  3. Only trigger if the forward domain is not in our whitelist

There is a disadvantage to doing this, its unclear if Microsoft ever chooses to modify the order of the Parameters object. Once this changes we would not trigger. Unfortunately, the parameter order changes per operation.


While testing a rule to detect the creation of multiple forwarding rules across different users within one organization. So, I asked Wesley to add some extra rules. After waiting for a couple of minutes my rule failed. I asked Wesley if he added a rule and asked the rule-name. Turns out Wesley didn’t want to add new rules, so he copied an existing one. Those are modified using the “Set-InboxRule” function which is not part of our and the Microsoft provided rule. Turns out the ATP suite has a broader set of detections and already detects rules created via “Set-InboxRule”. For those that don’t have the luxury of ATP we can create a set of different rules.

Based on our experience a more complete set of operations to detect would be:

We could create one rule-to-rule them all, but it would be easy to make a mistake. Better to have atomic rules that detect one specific thing. This makes testing easier and the rules are easier to understand. The rules are available in our Github repo, dont forget to change the valid domains.

Yet another caveat: As if there aren’t enough deviations we have to contend with there is another way of adding rules. The EWS API has the “UpdateInboxRules” operation. Logging for this operation lacks information, there doesnt seem to be a way to have propper logs for this. A way to solve this would be to log into our Exchange instance and query them with the “Get-InboxRule” cmdlet. Unfortunately it only returns the name of the rule but often lacks any additional information. The only way to get those is through the EWS API and for each user search through their inbox to find the rules. There is a usefull script in the O365-InvestigationTooling Github repo that dumps all rules and forms. A nice future project would be to create a playbook that triggers once the “UpdateInboxRules” operation is spotted, queries the rules and checks for irregularities.


Mailbox rules are just one of the methods criminals try to maintain access to your emails. Storing audit logging in a tool like Sentinel will give your organization the ability to look back once something goes wrong. Using Sentinel in combination with Office 365 is free and even has 90 days retention, it’s a no brainer for any organization using Office365[1]. In future blogs we’ll discuss other detection methods related to BEC fraud. And how to respond once an attacker has gained access to one or more user accounts. In a future blog we’ll go more into the BEC fraud tactics, we plan on releasing rules and scripts to detect BEC-specific abuse.

[1] Storing different logs or creating playbooks can incur additional cost.


Attic versie 2023.9.0 - Release Notes

- 21 sep 2023
Een nieuwe Attic #release bomvol nieuwe checks, geïnspireerd door de #CIS Benchmark voor #Microsoft365. Deze release zit vol met nieuwe Checks en Fixes. Want we zijn hard bezig om te zorgen dat Attic “CIS-certified” raakt als assessment tool voor Microsoft365 en hebben nu bijna alle checks gebouwd die daarvoor nog nodig waren. Daarnaast is er […] Lees verder

Microsoft Sentinel: Wapen tegen Cyberdreigingen

Erik Remmelzwaal - 19 sep 2023
In de wereld van cybersecurity sta je voor een belangrijke uitdaging: het beschermen van je organisatie tegen digitale bedreigingen. Gelukkig is er een krachtig hulpmiddel tot je beschikking: Microsoft Sentinel. Wij praten er veel over vanwege onze dienstverlening, maar wat is het nu eigenlijk? in dit blog deel ik graag mijn inzichten met jou, zodat je een solide basisbegrip krijgt van wat dit product is en hoe je het kunt inzetten. Lees verder

Door NIS2 moet je iets gaan doen wat je nu nog niet doet...

Erik Remmelzwaal - 03 aug 2023
Als je onder een steen hebt geleefd: NIS2 komt eraan. De 2e versie van de Network and Information Security richtlijn van de EU. Het duurt nog even voordat dit in Nederlandse wetgeving is omgezet en daarin kunnen nog belangrijke details gaan schuiven, maar in grote lijnen weten we wat er op ons af komt. Door […] Lees verder

5 tips voor MKB'ers om zichzelf weerbaar te  maken tegen misleiding via internet

- 21 jul 2023
In de digitale wereld worden MKB’ers steeds vaker geconfronteerd met de dreiging van social engineering. In deze blogpost delen we waardevolle inzichten over twee veelvoorkomende vormen van social engineering, phishing en CEO-fraude. We benadrukken echter de praktische tips die MKB’ers kunnen volgen om zichzelf effectief te beschermen tegen deze cyberdreigingen. Phishing en CEO-fraude Phishing omvat […] Lees verder

Using MiTMProxy as a scriptable pre-proxy for BurpSuite

Rik van Duijn - 11 jul 2023
TLDR: you can use mitmproxy to modify stuff before it sent to Burp Proxy. Instruction below. Recently we were asked to asses a oldschool Java client server application. After configuring BurpSuite as a proxy and trusting the CA cert, we noticed the client communication still gave an error. It turned out the client and server […] Lees verder

Wat leren we uit het NCTV Cybersecuritybeeld en Verizon DBIR 2023

Zolder B.V. - 04 jul 2023
De samengestelde conclusie die ik haal uit CSBN en DBIR is dat organisaties (nog steeds) vooral slachtoffer worden via gelekte inloggegevens en e-mail en dat ze datalekken bijna altijd kunnen voorkomen door het implementeren van basismaatregelen. En de basismaatregel die past bij gelekte inloggegevens is Multi-Factor Authentication (MFA). Lees verder

Weerbaar tegen CEO-Fraude met Logs in Microsoft365

Erik Remmelzwaal - 22 jun 2023
Veel organisaties kunnen maar 7 dagen terugkijken in hun Microsoft365 logboeken. Veel te weinig, om adequaat te reageren op incidenten zoals CEO-Fraude en Ransomware. Belangrijk dus om te begrijpen welke mogelijkheden er zijn om die termijn uit te breiden. Lees verder

Attic voor de zorg: De toekomst van beveiliging met partnerschap Z-CERT

- 06 jun 2023
Attic voor de zorg is momenteel in ontwikkeling. We richten ons vooral op de toekomstige beschikbaarheid van deze krachtige beveiligingsoplossing en we nodigen zorginstellingen uit om deel te nemen aan onze beta-testfase. Partnerschap met Z-CERT In samenwerking met Z-CERT, de toonaangevende leverancier van dreigingsinformatie in de Nederlandse zorgsector, biedt Attic voor de zorg een unieke […] Lees verder

Verbeteringen in API's en toekomstige wijzigingen bij Attic

- 24 mei 2023
Microsoft heeft recentelijk enkele verbeteringen doorgevoerd in de API’s die toegang verlenen tot uw tenant. GDAP Op dit moment maakt Attic gebruik van DAP, oftewel Delegated Admin Privileges, om toegang te verkrijgen tot uw omgeving. Microsoft heeft onlangs een verbeterde versie van deze functionaliteit geïntroduceerd, genaamd GDAP, oftewel granular delegated admin privileges. Deze nieuwe versie […] Lees verder

Attic voegt website clone monitor toe

Wesley Neelen - 08 mei 2023
Attic is een krachtig platform wat heel veel mogelijkheden biedt. Attic is modulair opgebouwd zodat het platform aangevuld kan worden met extra diensten, ontwikkeld door Zolder, maar in de toekomst ook door externe leveranciers. Enkele maanden geleden heb ik een gratis applicatie gelanceerd genaamd Deze service is gebaseerd op Microsoft Azure en volledig cloud […] Lees verder

Attic als SOC

Zolder B.V. - 11 apr 2023
Bijna is het zover: roadmap-technisch naderen we het punt dat we de koppeling van Attic met Microsoft Sentinel gaan afronden. En daarmee de gelegenheid om op grote schaal organisaties te voorzien van een betaalbare SOC dienst. Tijdens onze deelname aan de RSA conferentie zullen we bezoekers van onze stand en website aanbieden zich alvast te […] Lees verder

Internetoplichters richten pijlen op Hockeyvereniging

Erik Remmelzwaal - 10 mrt 2023
De penningmeester van Hockeyclub Zevenbergen ontving een poging tot oplichting. Gelukkig werd het herkend, maar zal dat overal gebeuren, nu internetoplichters hun pijlen blijkbaar op sportverenigingen hebben gericht? Lees verder

Microsoft Digital Defense Report

Erik Remmelzwaal - 14 nov 2022
Het Digital Defense Report 2022 van Microsoft is uitgekomen. Wat zijn de highlights en key takeaways? Lees verder

TBX2022 Throwback & Masterclass

Erik Remmelzwaal - 07 nov 2022
Op 2 en 3 november vond in de Jaarbeurs Utrecht de TBX2022 beurs plaats. Zolder was net als vorig jaar aanwezig als exposant, en was op beide dagen de host van een masterclass. Ons voornaamste doel was om ons nieuwe propositie van Attic for MSPs bekend te maken. Met deze nieuwe release, stellen we andere […] Lees verder

Hacking my Helium Crypto Miner

Wesley Neelen - 05 sep 2022
Recently I came across an interesting cryptocurrency project called Helium. Its a wireless network built by people all around the world. The people that help expanding the network by adding a hotspot receive the Helium cryptocurrency coin by providing the coverage. During my research I decided to order one of those Helium miners. I ordered […] Lees verder

PEN-300 / OSEP review

Wesley Neelen - 19 jul 2022
This year I decided to start a new study, the PEN-300 course of Offensive Security. In 2012 I did the OSCP course and in 2013 OSCE. In 2016 I took the OSEE class in Vegas, unfortunately never took the exam (one of my biggest mistakes ever🥴). I liked all the courses very much at that […] Lees verder

Deze 3 misverstanden blokkeren het ontwikkelen van cyberweerbaarheid

Zolder B.V. - 04 jul 2022
Het NCTV heeft weer het jaarlijkse Cybersecuritybeeld Nederland gepubliceerd. Het CSBN-2022. Mooie aanleiding om eens op te schrijven waar ik al langer mee in mijn hoofd zit. Drie hardnekkige en foute aannames die mensen hebben bij digitale dreigingen. Drie misverstanden dus, die in mijn ervaring de belangrijkste reden zijn dat we nauwelijks vooruit komen met […] Lees verder

Cyberweerbaarheid en Operational Technology

Erik Remmelzwaal - 02 jun 2022
Onlangs nam Erik Remmelzwaal, co-owner en Managing Director van Zolder BV, deel aan een tafelgesprek van Data Value Center – Smart Industry (DVC-SI). Het thema was Cyberweerbaarheid en Operational Technology, en het gesprek werd opgenomen in de campus van Breda Robotics, waar Zolder lid van is. De opname is inmiddels beschikbaar en terug te kijken […] Lees verder

Detecting MFASweep using Azure Sentinel

Zolder B.V. - 01 nov 2021
Many companies are using cloud services such as Microsoft 365 for email, file sharing and communicating. If an attacker gains access to valid credentials that allows them to authenticate to the account, all information within the account is usually instantly accessible. Therefor, implementing multi factor authentication is one of the most important steps while securing […] Lees verder

Public SharePoint sites - the new open shares

Wesley Neelen - 16 sep 2021
During one of our engagements we were investigating a Microsoft 365 environment. My colleague Rik discovered that many SharePoint sites were publicly available within the organization. We were surprised by the amount sites that were wide open this way. A lot of sensitive information was located on those sites, for example PII-information and passwords for […] Lees verder