ΠŸΡ€ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π΅ΡƒΠ»ΠΎΠ²ΠΈΠΌΠΎΠΉ ΠΌΠ°Π»Π²Π°Ρ€ΠΈ, Ρ‡Π°ΡΡ‚ΡŒ IV: DDE ΠΈ поля Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Word

ΠŸΡ€ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π΅ΡƒΠ»ΠΎΠ²ΠΈΠΌΠΎΠΉ ΠΌΠ°Π»Π²Π°Ρ€ΠΈ, Ρ‡Π°ΡΡ‚ΡŒ IV: DDE ΠΈ поля Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Word

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ сСрии Β«Fileless MalwareΒ». ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ части сСрии:

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я собирался ΠΏΠΎΠ³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΡΡ Π² Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ слоТный многоэтапный cΡ†Π΅Π½Π°Ρ€ΠΈΠΉ Π±Π΅Π·Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π°Ρ‚Π°ΠΊΠΈ с Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ΠΌ Π² систСмС. Но Ρ‚ΡƒΡ‚ я наткнулся Π½Π° нСвСроятно ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Π°Ρ‚Π°ΠΊΡƒ Π±Π΅Π· ΠΊΠΎΠ΄Π° β€” Π½Π΅ трСбуСтся Π½ΠΈΠΊΠ°ΠΊΠΈΡ… макросов Word ΠΈΠ»ΠΈ Excel! И это Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ эффСктивно Π΄ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ мою ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ Π³ΠΈΠΏΠΎΡ‚Π΅Π·Ρƒ, Π»Π΅ΠΆΠ°Ρ‰ΡƒΡŽ Π² основС этой сСрии статСй: ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Ρ‚ΡŒ внСшний ΠΏΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€ любой ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ – совсСм нСслоТная Π·Π°Π΄Π°Ρ‡Π°.

ΠŸΠ΅Ρ€Π²Π°Ρ Π°Ρ‚Π°ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я ΠΎΠΏΠΈΡˆΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Microsoft Word, которая основана Π½Π° ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ динамичСского ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ (DDE). Она ΡƒΠΆΠ΅ Π±Ρ‹Π»Π° исправлСна. Вторая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰ΡƒΡŽ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π² Microsoft COM ΠΈ возмоТности ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Назад Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ с DDE

ΠšΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΅Ρ‰Π΅ ΠΏΠΎΠΌΠ½ΠΈΡ‚ DDE? ВСроятно, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΠ΅. Π­Ρ‚ΠΎ Π±Ρ‹Π» ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² взаимодСйствия ΠΌΠ΅ΠΆΠ΄Ρƒ процСссами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволял прилоТСниям ΠΈ устройствам ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅.

Π― сам Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠΎΠΌ с Π½ΠΈΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅ я провСрял ΠΈ тСстировал Ρ‚Π΅Π»Π΅ΠΊΠΎΠΌ-ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅. Π’ Ρ‚ΠΎ врСмя DDE позволял, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΊΠΎΠ»Π»-Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ² ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ звонящСго Π°Π±ΠΎΠ½Π΅Π½Ρ‚Π° Π² CRM ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π»ΠΎ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Для этого Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ кабСль RS-232 ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠΌ ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ. Π’ΠΎΡ‚ Π±Ρ‹Π»ΠΈ дСньки!

Как оказалось, Microsoft Word всС Π΅Ρ‰Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ DDE.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ эту Π°Ρ‚Π°ΠΊΡƒ эффСктивной Π±Π΅Π· ΠΊΠΎΠ΄Π°, Ρ‚Π°ΠΊ это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ DDE нСпосрСдствСнно ΠΈΠ· автоматичСских ΠΏΠΎΠ»Π΅ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Word (снимаю ΡˆΠ»ΡΠΏΡƒ ΠΏΠ΅Ρ€Π΅Π΄ SensePost Π·Π° исслСдования ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΠ± этом).

ΠšΠΎΠ΄Ρ‹ ΠΏΠΎΠ»Π΅ΠΉ – это Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° дрСвняя функция MS Word, которая позволяСт Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ динамичСский тСкст ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ программирования Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚. Π’ качСствС самого ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ привСсти ΠΏΠΎΠ»Π΅ Β«Π½ΠΎΠΌΠ΅Ρ€ страницы», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½Ρ‚ΠΈΡ‚ΡƒΠ» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ значСния {PAGE *MERGEFORMAT}. Π­Ρ‚ΠΎ позволяСт автоматичСским ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€Π° страниц.

ΠŸΡ€ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π΅ΡƒΠ»ΠΎΠ²ΠΈΠΌΠΎΠΉ ΠΌΠ°Π»Π²Π°Ρ€ΠΈ, Ρ‡Π°ΡΡ‚ΡŒ IV: DDE ΠΈ поля Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Word
Подсказка: Π²Ρ‹ смоТСтС Π½Π°ΠΉΡ‚ΠΈ ΠΏΡƒΠ½ΠΊΡ‚ мСню Полe (Field) Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Вставка (Insert)

Π― помню, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ» эту Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π² Word, Ρ‚ΠΎ Π±Ρ‹Π» ΠΏΠΎΡ€Π°ΠΆΠ΅Π½. И Π²ΠΎΡ‚ ΠΏΠΎΠΊΠ° ΠΏΠ°Ρ‚Ρ‡ Π½Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΠ» Π΅Π΅, Word Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π» ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΏΠΎΠ»Π΅ΠΉ DDE. ИдСя состояла Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ DDE ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Word ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, для возмоТности Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚. Π­Ρ‚ΠΎ Π±Ρ‹Π»Π° совсСм юная тСхнология Π² Ρ‚ΠΎ врСмя – ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с внСшними прилоТСниями. ПозТС ΠΎΠ½Π° Π±Ρ‹Π»Π° Ρ€Π°Π·Π²ΠΈΡ‚Π° Π² Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ COM, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ рассмотрим Π½ΠΈΠΆΠ΅.

Π’ ΠΈΡ‚ΠΎΠ³Π΅, Ρ…Π°ΠΊΠ΅Ρ€Ρ‹ поняли, Ρ‡Ρ‚ΠΎ этим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ DDE ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°, которая, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, запускаСт PowerShell, Π° ΠΎΡ‚Ρ‚ΡƒΠ΄Π° Ρ…Π°ΠΊΠ΅Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ всё, Ρ‡Ρ‚ΠΎ ΠΈΠΌ ΡƒΠ³ΠΎΠ΄Π½ΠΎ.
На ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅ Π½ΠΈΠΆΠ΅ Π²ΠΈΠ΄Π½ΠΎ, ΠΊΠ°ΠΊ я использовал Π΄Π°Π½Π½ΡƒΡŽ ΡΠΊΡ€Ρ‹Ρ‚Π½ΡƒΡŽ Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ: малСнький сцСнарий PowerShell (Π΄Π°Π»Π΅Π΅ – PS) ΠΈΠ· поля DDE Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ PS скрипт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСт Π²Ρ‚ΠΎΡ€ΡƒΡŽ Ρ„Π°Π·Ρƒ Π°Ρ‚Π°ΠΊΠΈ.

ΠŸΡ€ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π΅ΡƒΠ»ΠΎΠ²ΠΈΠΌΠΎΠΉ ΠΌΠ°Π»Π²Π°Ρ€ΠΈ, Ρ‡Π°ΡΡ‚ΡŒ IV: DDE ΠΈ поля Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Word
Бпасибо Windows Π·Π° Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΎ Ρ‚ΠΎΠΌ Ρ‡Ρ‚ΠΎ встроСнноС ΠΏΠΎΠ»Π΅ DDEAUTO скрытно пытаСтся Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ

ΠŸΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ эксплуатации уязвимости являСтся использованиС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° с ΠΏΠΎΠ»Π΅ΠΌ DDEAUTO, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ автоматичСски запускаСт сцСнарий ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Word.
Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄ΡƒΠΌΠ°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ с этим ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

Как Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ Ρ…Π°ΠΊΠ΅Ρ€, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ„ΠΈΡˆΠΈΠ½Π³ΠΎΠ²ΠΎΠ΅ письмо, ΠΏΡ€ΠΈΡ‚Π²ΠΎΡ€ΠΈΠ²ΡˆΠΈΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΠ· ЀНБ, ΠΈ Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅ DDEAUTO со скриптом PS для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ этапа (Π΄Ρ€ΠΎΠΏΠΏΠ΅Ρ€ ΠΏΠΎ сути). ΠŸΡ€ΠΈΡ‡Π΅ΠΌ Π²Π°ΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ кодирования макросов ΠΈ ΠΏΡ€., ΠΊΠ°ΠΊ я это Π΄Π΅Π»Π°Π» Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅.
Π–Π΅Ρ€Ρ‚Π²Π° ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ваш Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, встроСнный скрипт активируСтся, ΠΈ Ρ…Π°ΠΊΠ΅Ρ€ оказываСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Π’ ΠΌΠΎΠ΅ΠΌ случаС ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ сцСнарий PS лишь ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ сообщСниС, Π½ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ PS Empire, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставит ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ доступ ΠΊ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅.
И ΠΏΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ ΠΆΠ΅Ρ€Ρ‚Π²Π° успССт произнСсти Ρ…ΠΎΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Ρ…Π°ΠΊΠ΅Ρ€Ρ‹ окаТутся самыми Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΌΠΈ подростками Π½Π° сСлС.

ΠŸΡ€ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π΅ΡƒΠ»ΠΎΠ²ΠΈΠΌΠΎΠΉ ΠΌΠ°Π»Π²Π°Ρ€ΠΈ, Ρ‡Π°ΡΡ‚ΡŒ IV: DDE ΠΈ поля Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Word
ΠžΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Π±Ρ‹Π»Π° Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° Π±Π΅Π· малСйшСго кодирования. Π”Π°ΠΆΠ΅ Ρ€Π΅Π±Π΅Π½ΠΎΠΊ смоТСт это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ!

DDE и поля

ПозТС Microsoft всС-Ρ‚Π°ΠΊΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΠ»Π° DDE Π² Word, Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ этим компания заявила, Ρ‡Ρ‚ΠΎ эта функция Π±Ρ‹Π»Π° просто Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ использована. Π˜Ρ… Π½Π΅ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ понятно. Из своСго ΠΎΠΏΡ‹Ρ‚Π° я сам наблюдал Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π±Ρ‹Π»ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ, Π½ΠΎ макросы Word Π±Ρ‹Π»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ИВ-слуТбой (Π½ΠΎ с ΠΏΠΎΠΊΠ°Π·ΠΎΠΌ увСдомлСния). ΠšΡΡ‚Π°Ρ‚ΠΈ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π²Ρ‹ смоТСтС Π½Π°ΠΉΡ‚ΠΈ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ настроСк Word.

Однако, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ, Microsoft Word Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ увСдомляСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π΅ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ доступ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ, ΠΊΠ°ΠΊ Π² случаС с DDE Π²Ρ‹ΡˆΠ΅. Microsoft Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Π΅Ρ‚ вас.

Но скорСС всСго, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ всС Ρ€Π°Π²Π½ΠΎ пропустят это ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΡŽΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ Π² Word. Π­Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Ρ€Π΅Π΄ΠΊΠΈΡ… возмоТностСй ΠΏΠΎΠ±Π»Π°Π³ΠΎΠ΄Π°Ρ€ΠΈΡ‚ΡŒ Microsoft Π·Π° ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ опасной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ DDE.

Насколько Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ сСгодня Π½Π°ΠΉΡ‚ΠΈ Π½Π΅ΠΏΡ€ΠΎΠΏΠ°Ρ‚Ρ‡Π΅Π½Π½ΡƒΡŽ систСму Windows?

Для этого тСстирования я использовал срСду AWS Workspaces для получСния доступа ΠΊ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌΡƒ столу. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ я ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π½Π΅ΠΏΡ€ΠΎΠΏΠ°Ρ‚Ρ‡Π΅Π½Π½ΡƒΡŽ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ с MS Office, которая ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° ΠΌΠ½Π΅ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅ DDEAUTO. НС сомнСваюсь, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎ сих ΠΏΠΎΡ€ Π½Π΅ установили Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΏΠ°Ρ‚Ρ‡ΠΈ бСзопасности.

Π’Π°ΠΉΠ½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠ²

Π”Π°ΠΆΠ΅ Ссли Π²Ρ‹ ΠΈ установили этот ΠΏΠ°Ρ‚Ρ‡, Π΅ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΄Ρ‹Ρ€Ρ‹ бСзопасности Π² MS Office, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ…Π°ΠΊΠ΅Ρ€Π°ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ΅Π΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ сдСлали с Word. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ сцСнарии ΠΌΡ‹ научимся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Excel Π² качСствС Π½Π°ΠΆΠΈΠ²ΠΊΠΈ для Ρ„ΠΈΡˆΠΈΠ½Π³ΠΎΠ²ΠΎΠΉ Π°Ρ‚Π°ΠΊΠΈ Π±Π΅Π· написания ΠΊΠΎΠ΄Π°.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ этот сцСнарий, Π΄Π°Π²Π°ΠΉΡ‚Π΅ вспомним МодСль ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Microsoft, ΠΈΠ»ΠΈ сокращСнно COM (Component Object Model).

COM сущСствуСт с 1990-Ρ… Π³ΠΎΠ΄ΠΎΠ², ΠΈ опрСдСляСтся ΠΊΠ°ΠΊ Β«Π½Π΅ΠΉΡ‚Ρ€Π°Π»ΡŒΠ½Π°Ρ ΠΊ языку программирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ориСнтированная модСль ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²Β» Π½Π° основС ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ RPC. Для ΠΎΠ±Ρ‰Π΅Π³ΠΎ понимания Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ COM ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ этот пост Π½Π° StackOverflow.

По Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ счСту, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ COM ΠΊΠ°ΠΊ исполняСмый Ρ„Π°ΠΉΠ» Excel ΠΈΠ»ΠΈ Word, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ запускаСмый Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ».

ΠžΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ΡΡ, COM-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ сцСнарий β€” JavaScript ΠΈΠ»ΠΈ VBScript. ВСхничСски это называСтся скриптлСт. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ встрСчали Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅.sct Ρƒ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Windows – это ΠΈ Π΅ΡΡ‚ΡŒ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ для скриплСтов. По сути, ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠ΄ΠΎΠΌ скрипта, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π² XML ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΡƒ:

<?XML version="1.0"?>

<scriptlet>
<registration
description="test"
progid="test"
version="1.00"
classid="{BBBB4444-0000-0000-0000-0000FAADACDC}"
remotable="true">
</registration>
<script language="JScript">
<![CDATA[

var r = new ActiveXObject("WScript.Shell").Run("cmd /k powershell -c Write-Host You have been scripted!");

]]>
</script>
</scriptlet>

Π₯Π°ΠΊΠ΅Ρ€Ρ‹ ΠΈ пСнтСстСры ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΈ прилоТСния Π² Windows, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ, соотвСтствСнно, скриптлСты Ρ‚ΠΎΠΆΠ΅.

Π― ΠΌΠΎΠ³Ρƒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ скриптлСт Π² ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ Windows, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° VBS, ΠΈΠ·Π²Π΅ΡΡ‚Π½ΡƒΡŽ ΠΊΠ°ΠΊ pubprn. Она находится Π² Π½Π΅Π΄Ρ€Π°Ρ… C:Windowssystem32Printing_Admin_Scripts. ΠšΡΡ‚Π°Ρ‚ΠΈ, Π΅ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Windows, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Для Π½Π°Ρ‡Π°Π»Π° рассмотрим этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

ΠŸΡ€ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π΅ΡƒΠ»ΠΎΠ²ΠΈΠΌΠΎΠΉ ΠΌΠ°Π»Π²Π°Ρ€ΠΈ, Ρ‡Π°ΡΡ‚ΡŒ IV: DDE ΠΈ поля Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Word
Π’ΠΏΠΎΠ»Π½Π΅ СстСствСнно, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΄Π°ΠΆΠ΅ ΠΈΠ· сцСнария ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ. Π’ΠΏΠ΅Ρ€Π΅Π΄, Microsoft!

Π’ качСствС тСстирования я создал простой ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ скриптлСт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСт ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Π·Π°Π±Π°Π²Π½ΠΎΠ΅ сообщСниС «Вас Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ проскриптовали!Β». По сути, pubprn создаСт экзСмпляр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° scriptlet, позволяя ΠΊΠΎΠ΄Ρƒ VBScript Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ. Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ прСдоставляСт явныС прСимущСства Ρ…Π°ΠΊΠ΅Ρ€Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΈ ΡΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒΡΡ Π² вашСй систСмС.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ постС я объясню, ΠΊΠ°ΠΊ скриптлСты COM ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Ρ…Π°ΠΊΠ΅Ρ€Π°ΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°Π±Π»ΠΈΡ† Excel.

Π’Π°ΠΌ Π² качСствС домашнСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ – ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ это Π²ΠΈΠ΄Π΅ΠΎ с Derbycon 2016 Π³ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ…Π°ΠΊΠ΅Ρ€Ρ‹ использовали скриптлСты. А Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ эту ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΏΡ€ΠΎ скриптлСты ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠ½ΠΈΠΊΠ΅Ρ€.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com