ãã®èšäºã¯ãã¡ã€ã«ã¬ã¹ ãã«ãŠã§ã¢ ã·ãªãŒãºã®äžéšã§ãã ã·ãªãŒãºã®ä»ã®ãã¹ãŠã®éšå:
ãšããã©ããã®ãªããã«ãŠã§ã¢ã®åéºãããŒã I ãšããã©ããã®ãªããã«ãŠã§ã¢ã®åéºãããŒã II: ç§å¯ã® VBA ã¹ã¯ãªãã ãšããã©ããã®ãªããã«ãŠã§ã¢ã®åéºãããŒã III: ç¬ããšå©çã®ããã®ãã€ãã VBA ã¹ã¯ãªãã - ãšããã©ããã®ãªããã«ãŠã§ã¢ã®åéºãããŒã IV: DDE ããã³ Word ããã¥ã¡ã³ã ãã£ãŒã«ã (ããã«ããŸã)
ãã®èšäºã§ã¯ãã·ã¹ãã ãžã®åºå®ã䌎ããããã«è€éãªå€æ®µéã®ãã¡ã€ã«ã¬ã¹æ»æã·ããªãªã«ã€ããŠè©³ãã説æããã€ããã§ããã ããããã®åŸãWord ã Excel ã®ãã¯ããå¿
èŠãšããªããéåžžã«ã·ã³ãã«ãªã³ãŒãäžèŠã®æ»æã«ééããŸããã ãããŠããã¯ããã®äžé£ã®èšäºã®æ ¹åºã«ããç§ã®åœåã®ä»®èª¬ãããå¹æçã«èšŒæããŠããŸããã€ãŸããçµç¹ã®å€åšãçªç Žããããšã¯ãŸã£ããé£ããããšã§ã¯ãããŸããã
ãããã説æããæåã®æ»æã¯ã次ã®ãã㪠Microsoft Word ã®è匱æ§ãæªçšããŸãã æ代é
ãã®
DDE ã«ããããã¯ã»ãã¥ã»ã¶ã»ãã¥ãŒãã£ãŒ
DDEãèŠããŠãã人ã¯ããŸããïŒ ããããå€ãã¯ãªãã§ãããã ããã¯æåã®ãã®ã®äžã€ã§ãã ã¢ããªã±ãŒã·ã§ã³ãšããã€ã¹ãããŒã¿ã転éã§ããããã«ããããã»ã¹ééä¿¡ãããã³ã«.
ç§èªèº«ãéä¿¡æ©åšã®æ€æ»ããã¹ããè¡ã£ãŠããããããã®ããšã«ã€ããŠã¯å°ã詳ããç¥ã£ãŠããŸãã åœæãDDE ã䜿çšãããšãããšãã°ãã³ãŒã«ã»ã³ã¿ãŒã®ãªãã¬ãŒã¿ãŒãçºä¿¡è ID ã CRM ã¢ããªã±ãŒã·ã§ã³ã«è»¢éããæçµçã«é¡§å®¢ã«ãŒããéãããšãã§ããŸããã ãããè¡ãã«ã¯ãæºåž¯é»è©±ãšã³ã³ãã¥ãŒã¿ã®éã« RS-232 ã±ãŒãã«ãæ¥ç¶ããå¿ èŠããããŸããã ãããªæ¥ã ã§ããïŒ
çµå±ã®ãšãããMicrosoft Word ã¯ãŸã
ã³ãŒããªãã§ãã®æ»æãå¹æçã«ãªãã®ã¯ãDDE ãããã³ã«ã«ã¢ã¯ã»ã¹ã§ããããã§ãã çŽæ¥ã« Word ææžã®èªåãã£ãŒã«ããã (SensePost ã®æ©èœã«è±åžœ)
ãã£ãŒã«ã ã³ãŒã ããã¯ãããã¥ã¡ã³ãã«ãã€ããã㯠ããã¹ããšå°ãã®ããã°ã©ãã³ã°ãè¿œå ã§ããããã XNUMX ã€ã®å€ã MS Word æ©èœã§ãã æãããããããäŸã¯ããŒãžçªå·ãã£ãŒã«ãã§ãå€ {PAGE *MERGEFORMAT} ã䜿çšããŠããã¿ãŒã«æ¿å ¥ã§ããŸãã ããã«ãããããŒãžçªå·ãèªåçã«çæã§ããŸãã
ãã³ã: [ãã£ãŒã«ã] ã¡ãã¥ãŒé
ç®ã¯ [æ¿å
¥] ã®äžã«ãããŸãã
Word ã®ãã®æ©èœãåããŠç¥ã£ããšããé©ããã®ãèŠããŠããŸãã ãããŠããããã«ãã£ãŠç¡å¹ã«ãªããŸã§ãWord ã¯åŒãç¶ã DDE ãã£ãŒã«ã ãªãã·ã§ã³ããµããŒãããŠããŸããã DDE ã䜿çšãããšãWord ãã¢ããªã±ãŒã·ã§ã³ãšçŽæ¥éä¿¡ã§ããããã«ãªããããã°ã©ã ã®åºåãææžã«æž¡ãããšãã§ãããšããèãããããŸããã ããã¯åœæéåžžã«æ°ãããã¯ãããžãŒã§ãããå€éšã¢ããªã±ãŒã·ã§ã³ãšã®ããŒã¿äº€æããµããŒãããŠããŸããã ããã¯åŸã« COM ãã¯ãããžãŒã«çºå±ããŸãããããã«ã€ããŠã以äžã§èª¬æããŸãã
æçµçã«ãããã«ãŒã¯ããã® DDE ã¢ããªã±ãŒã·ã§ã³ãã³ãã³ã ã·ã§ã«ã§ããå¯èœæ§ãããããšã«æ°ã¥ããåœç¶ PowerShell ãèµ·åãããããããããã«ãŒã¯ããããããšãäœã§ãã§ããããã«ãªããŸããã
以äžã®ã¹ã¯ãªãŒã³ã·ã§ããã¯ããã®ã¹ãã«ã¹ææ³ãã©ã®ããã«äœ¿çšãããã瀺ããŠããŸããDDE ãã£ãŒã«ãããã®å°ã㪠PowerShell ã¹ã¯ãªãã (以äžãPS) ãå¥ã® PS ã¹ã¯ãªãããããŒãããæ»æã®ç¬¬ XNUMX ãã§ãŒãºãéå§ããŸãã
çµã¿èŸŒã¿ã® DDEAUTO ãã£ãŒã«ããå¯ãã«ã·ã§ã«ãéå§ããããšããŠãããšãããããã¢ããèŠåã衚瀺ããŠããã Windows ã«æè¬ããŸã
ãã®è匱æ§ãæªçšããæšå¥šãããæ¹æ³ã¯ãã¹ã¯ãªãããèªåçã«å®è¡ãã DDEAUTO ãã£ãŒã«ããæã€ããªã¢ã³ãã䜿çšããããšã§ãã éããšã Word ææžã
ããã«ã€ããŠäœãã§ããããèããŠã¿ãŸãããã
åå¿è
ããã«ãŒã¯ãããšãã°ãé£éŠçšåå±ããæ¥ããµããããŠãã£ãã·ã³ã°ã¡ãŒã«ãéä¿¡ããæåã®æ®µé (æ¬è³ªçã«ã¯ãããããŒ) ã® PS ã¹ã¯ãªããã« DDEAUTO ãã£ãŒã«ããåã蟌ãããšãã§ããŸãã ãããŠãç§ããã£ãããã«ããã¯ããªã©ã®å®éã®ã³ãŒãã£ã³ã°ãè¡ãå¿
èŠãããããŸããã
被害è
ãææžãéããšãåã蟌ãŸããã¹ã¯ãªãããã¢ã¯ãã£ãã«ãªããããã«ãŒãã³ã³ãã¥ãŒã¿å
ã«äŸµå
¥ããŸãã ç§ã®å Žåããªã¢ãŒã PS ã¹ã¯ãªããã¯ã¡ãã»ãŒãžãåºåããã ãã§ããããªã¢ãŒã ã·ã§ã« ã¢ã¯ã»ã¹ãæäŸãã PS Empire ã¯ã©ã€ã¢ã³ããç°¡åã«èµ·åããããšãã§ããŸãã
ãããŠã被害è
ãäœããèšãåã«ãããã«ãŒã¯æã§æãè£çŠãªå代ã®è¥è
ã§ããããšãå€æããŸãã
ã·ã§ã«ã¯ã³ãŒãã£ã³ã°ããŸã£ããè¡ããã«èµ·åãããŸããã åäŸã§ãã§ããïŒ
DDE ãšãã£ãŒã«ã
Microsoft ã¯åŸã« Word 㧠DDE ãç¡å¹ã«ããŸããããå瀟ã¯ãã®æ©èœãåã«èª€çšãããã ãã§ãããšçºè¡šããŸããã 圌ããäœããå€ããããšãããããã®ã¯ç解ã§ããŸãã ç§ã®çµéšã§ã¯ãææžãéãããšãã®ãã£ãŒã«ãã®æŽæ°ãæå¹ã«ãªã£ãŠããã®ã«ãWord ãã¯ãã IT éšéã«ãã£ãŠç¡å¹ã«ãããŠãã (ãã ãéç¥ã¯è¡šç€ºãããŠãã) äŸãèŠãŠããŸããã ã¡ãªã¿ã«ã察å¿ããèšå®ã¯ Word ã®èšå®ã»ã¯ã·ã§ã³ã«ãããŸãã
ãã ãããã£ãŒã«ãã®æŽæ°ãæå¹ã«ãªã£ãŠããå Žåã§ããäžèšã® DDE ã®å Žåãšåæ§ã«ããã£ãŒã«ããåé€ãããããŒã¿ãžã®ã¢ã¯ã»ã¹ãèŠæ±ãããšãMicrosoft Word ã¯ããã«ãŠãŒã¶ãŒã«éç¥ããŸãã Microsoft ã¯æ¬æ°ã§èŠåããŠããŸãã
ããããããããããŠãŒã¶ãŒã¯ãã®èŠåãç¡èŠããWord ã§ãã£ãŒã«ãã®æŽæ°ãã¢ã¯ãã£ãã«ããã§ãããã ããã¯ãå±éºãª DDE æ©èœãç¡å¹ã«ããŠããã Microsoft ã«æè¬ããæ°å°ãªãæ©äŒã® XNUMX ã€ã§ãã
çŸåšãããããé©çšãããŠããªã Windows ã·ã¹ãã ãèŠã€ããã®ã¯ã©ãã»ã©é£ããã§ãããã?
ãã®ãã¹ãã§ã¯ãAWS Workspaces ã䜿çšããŠä»®æ³ãã¹ã¯ãããã«ã¢ã¯ã»ã¹ããŸããã ãã®ããã«ããŠãDDEAUTO ãã£ãŒã«ããæ¿å ¥ã§ããããããé©çšãããŠããªã MS Office ä»®æ³ãã·ã³ãååŸããŸããã åæ§ã®æ¹æ³ã§ãå¿ èŠãªã»ãã¥ãªã㣠ãããããŸã ã€ã³ã¹ããŒã«ããŠããªãä»ã®äŒæ¥ãèŠã€ããããšã¯ééããããŸããã
ç©äœã®è¬
ãã®ããããã€ã³ã¹ããŒã«ãããšããŠããMS Office ã«ã¯ä»ã®ã»ãã¥ãªã㣠ããŒã«ããããããã«ãŒã Word ã§è¡ã£ãããšãšéåžžã«ãã䌌ãè¡çºãè¡ãããšãã§ããŸãã 次ã®ã·ããªãªã§åŠã³ãŸã ã³ãŒããæžããã« Excel ããã£ãã·ã³ã°æ»æã®ããšããšããŠäœ¿çšããŸãã
ãã®ã·ããªãªãç解ããããã«ãMicrosoft ã³ã³ããŒãã³ã ãªããžã§ã¯ã ã¢ãã« (ç¥ç§°) ãæãåºããŠãã ããã COM (ã³ã³ããŒãã³ã ãªããžã§ã¯ã ã¢ãã«).
COM 㯠1990 幎代ããååšããŠãããRPC ãªã¢ãŒã ããã·ãŒãžã£ ã³ãŒã«ã«åºã¥ãããèšèªã«äŸåããªããªããžã§ã¯ãæåã³ã³ããŒãã³ã ã¢ãã«ããšããŠå®çŸ©ãããŠããŸãã COM çšèªã®äžè¬çãªç解ã«ã€ããŠã¯ã以äžããèªã¿ãã ããã
åºæ¬çã«ãCOM ã¢ããªã±ãŒã·ã§ã³ã¯ Excel ã Word ã®å®è¡å¯èœãã¡ã€ã«ããŸãã¯å®è¡ããããã®ä»ã®ãã€ã㪠ãã¡ã€ã«ãšèããããšãã§ããŸãã
COMã¢ããªã±ãŒã·ã§ã³ãå®è¡ã§ããããšãå€æ ã¹ã¯ãªãã â JavaScript ãŸã㯠VBScriptã æè¡çã«ã¯ããåŒã°ããŸã ã¹ã¯ãªããã¬ããã Windows ã®ãã¡ã€ã«ã® .sct æ¡åŒµåãèŠãããšããããããããŸãããããã¯ã¹ã¯ãªããã¬ããã®å ¬åŒæ¡åŒµåã§ãã åºæ¬çã«ãããã㯠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>
ããã«ãŒãšäŸµå ¥ãã¹ã¿ãŒã¯ãCOM ãªããžã§ã¯ããåãå ¥ããããã«å¿ããŠã¹ã¯ãªããã¬ãããåãå ¥ããå¥ã®ãŠãŒãã£ãªãã£ãšã¢ããªã±ãŒã·ã§ã³ã Windows ã«ååšããããšãçºèŠããŸããã
pubprn ãšããŠç¥ããã VBS ã§æžããã Windows ãŠãŒãã£ãªãã£ã«ã¹ã¯ãªããã¬ãããæž¡ãããšãã§ããŸãã ãã㯠C:Windowssystem32Printing_Admin_Scripts ã®å¥¥ã«ãããŸãã ã¡ãªã¿ã«ããªããžã§ã¯ãããã©ã¡ãŒã¿ãšããŠåãå ¥ãã Windows ãŠãŒãã£ãªãã£ã¯ä»ã«ããããŸãã ãŸããã®äŸãèŠãŠã¿ãŸãããã
åœç¶ã§ãããå°å·ã¹ã¯ãªãããããã·ã§ã«ãèµ·åã§ããŸãã ãã€ã¯ããœããã«è¡ããïŒ
ãã¹ããšããŠãã·ã§ã«ãèµ·åããŠãã¹ã¯ãªãããäœæãããŸãã!ããšããé¢çœãã¡ãã»ãŒãžãåºåããåçŽãªãªã¢ãŒã ã¹ã¯ãªããã¬ãããäœæããŸããã åºæ¬çã«ãpubprn ã¯ã¹ã¯ãªããã¬ãã ãªããžã§ã¯ããã€ã³ã¹ã¿ã³ã¹åããVBScript ã³ãŒããã©ãããŒãå®è¡ã§ããããã«ããŸãã ãã®æ¹æ³ã¯ãã·ã¹ãã ã«å¿ã³èŸŒãã§é ããããšããããã«ãŒã«ãšã£ãŠæãããªå©ç¹ãæäŸããŸãã
次åã®æçš¿ã§ã¯ãããã«ãŒã Excel ã¹ãã¬ããã·ãŒãã䜿çšã㊠COM ã¹ã¯ãªããã¬ãããæªçšããæ¹æ³ã«ã€ããŠèª¬æããŸãã
宿é¡ã®ããã«ãèŠãŠãã ãã
åºæïŒ habr.com