IDNã¹ããŒãã£ã³ã°ã¯ãéžæããããã¡ã€ã³åãšãé¡äŒŒããããã¡ã€ã³åã®çæã§ãããéåžžããŠãŒã¶ãŒã«æ»æè
ã®ãªãœãŒã¹ãžã®ãªã³ã¯ã匷å¶çã«è¿œè·¡ãããããã«äœ¿çšãããŸãã æ¬¡ã«ãããå
·äœçãªæ»æãªãã·ã§ã³ãæ€èšããŸãã
æ»æãããäŒç€Ÿãorganization.orgãã¡ã€ã³ãææããŠãããportal.organization.orgå
éšãªãœãŒã¹ããã®äŒç€Ÿå
ã§äœ¿çšãããŠãããšæ³åããŠãã ããã æ»æè
ã®ç®æšã¯ããŠãŒã¶ãŒã®è³æ Œæ
å ±ãååŸããããšã§ããããã®ããã«ãäŒç€Ÿã§äœ¿çšãããŠããé»åã¡ãŒã«ãŸãã¯ã¡ãã»ã³ãžã£ãŒãä»ããŠãªã³ã¯ãéä¿¡ããŸãã

ãã®ãããªã¡ãã»ãŒãžãé«ã確çã§åä¿¡ããããããªã³ã¯ãã©ããééã£ãå Žæã«ã€ãªããããšã«æ°ä»ããªãå ŽåããããŸãã ãªã³ã¯ãã¯ãªãã¯ãããšããŠãŒã¶ãŒåãšãã¹ã¯ãŒããèŠæ±ããã被害è
ã¯èªåãå
éšãªãœãŒã¹ã«ãããšèããŠãã¢ã«ãŠã³ãæ
å ±ãå
¥åããŸãã ç¹ã«åŸæ¥å¡ã®ã·ã¹ãã ã䟵害ããã·ã¹ãã 管çè
ã®ç¹æš©ãæ±ããŠæŠã£ãŠããå Žåãæ»æè
ãæ¢ã«å¢çã«äŸµå
¥ããŠããå Žåãæ»æè
ã®å¯èœæ§ã¯ç¹ã«é«ããªããŸãã
絶察çãªãæãè
ã«å¯Ÿããé²åŸ¡ããèãåºãããšã¯äžå¯èœã§ãããDNSãªã¯ãšã¹ããä»ããŠååã解決ããæ®µéã§ããã®æ»æã黿¢ããããšããããšãã§ããŸãã
ä¿è·ã®ããã«ãã€ã³ã¿ãŒã»ãããããDNSèŠæ±ã§æ€åºãããååãé çªã«èšæ¶ããå¿
èŠããããŸãã äŒç€Ÿã¯ç€Ÿå
ãªãœãŒã¹ã䜿çšããŠãããããportal.organization.orgãžã®ãªã¯ãšã¹ãã§ããã«ç¢ºèªã§ããŸãã 以åã«åºäŒã£ãååãšã䌌ããååã«åºäŒããšããã«ãæ»æè
ã®IPã¢ãã¬ã¹ã®ä»£ããã«ãšã©ãŒãè¿ãããšã§dnså¿çã眮ãæããããšãã§ããŸãã
ãé¡äŒŒæ§ããæ±ºå®ããããã®ã¢ã«ãŽãªãºã ã¯äœã§ããïŒ
- UTS39 Confusable DetectionïŒhttp://www.unicode.org/reports/tr39/#Confusable_DetectionïŒUnicodeã¯ã
貎éãªãã¡ãŒã·ã³ãã«ããŒãã«ã§ããã ãã§ãªããå€ãã®æšæºãšæšå¥šäºé
ã§ããããŸãã UTS39ã¯ããŠãã³ãŒãæååãæ£èŠåããã¢ã«ãŽãªãºã ãå®çŸ©ããŸãããã®ã¢ã«ãŽãªãºã ã§ã¯ããã¢ã°ãªããç°ãªãæååïŒããšãã°ããã·ã¢èªã®ãaããšã©ãã³èªã®ãaãïŒãåã圢åŒã«å€æãããŸã - å
éšæåã®é åã«ãã£ãŠç¹åŸŽä»ããããåèªã organization.orgãšorgainzation.orgãæ··åãããã
- 第1ã¬ãã«ãã¡ã€ã³ã®çœ®æã éåžžãååã®æåã®ã¬ãã«ã¯æå³ããªããªãããããçµç¹ããèŠãåŸã®äŒç€Ÿã®åŸæ¥å¡ã¯ãäŸå€ããããŸããã.orgãŸãã¯.netã®éããç¡èŠã§ããŸãã
ã»ãšãã©ã®å ŽåãäŒæ¥ãµãŒããŒã¯ãã€ã³ããããŸãããããã¯Webãã¹ããŸãã¯ãããã€ããŒã®æšæºã§ãããActive Directoryãåºã䜿çšãããŠãããããMicrosoft DNSãµãŒããŒã§ãã ãããŠãMicrosoft DNSãµãŒããŒã«ãã£ã«ã¿ãŒãæžã蟌ããšãã«æåã«ééããåé¡-DNSèŠæ±ããã£ã«ã¿ãŒåŠçããããã®APIãèŠã€ãããŸããã§ããã ãã®åé¡ã¯ããŸããŸãªæ¹æ³ã§è§£æ±ºã§ããŸãããœã±ããäœæ¥APIã§dllã€ã³ãžã§ã¯ã·ã§ã³ãšIATããã¯ãéžæããŸããã
æ¹æ³è«ãçè§£ããã«ã¯ãPE圢åŒã®ç¥èãå¿
èŠã«ãªããŸãã詳现ã«ã€ããŠã¯ãããšãã°
ãã¡ããã芧ãã ãã ã å®è¡å¯èœãã¡ã€ã«ã¯ãããããŒãã»ã¯ã·ã§ã³ã®ããŒãã«ãããã³ã»ã¯ã·ã§ã³èªäœã§æ§æãããŸãã ã»ã¯ã·ã§ã³èªäœã¯ãããŒããŒãçžå¯Ÿã¢ãã¬ã¹ïŒçžå¯Ÿä»®æ³ã¢ãã¬ã¹-RVAïŒã§ã¡ã¢ãªã«ãããããå¿
èŠãããããŒã¿ãããã¯ã§ããããã¹ãŠã®ãªãœãŒã¹ãã³ãŒãããã®ä»ã®ããŒã¿ã¯ã»ã¯ã·ã§ã³ã«å«ãŸããŠããŸãã ãŸããããããŒå
ã«ã¯ãã¢ããªã±ãŒã·ã§ã³ãæ©èœããããã«å¿
èŠãªå€æ°ã®ããŒãã«ãžã®ãªã³ã¯ïŒRVAïŒããããŸãããã®èšäºã®ãã¬ãŒã ã¯ãŒã¯ã§ã¯ãã€ã³ããŒãããŒãã«ãšãšã¯ã¹ããŒãããŒãã«ã®2ã€ãéèŠã§ãã ã€ã³ããŒãããŒãã«ã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã®åäœã«å¿
èŠãªé¢æ°ã®ãªã¹ããå«ãŸããŠããŸãããä»ã®ãã¡ã€ã«ã«ãããŸãã ãšã¯ã¹ããŒãããŒãã«ã¯ããã®ãã¡ã€ã«ãããšã¯ã¹ããŒãããã颿°ã®ãªã¹ããå«ãããªããŒã¹ãããŒãã«ã§ãããšã¯ã¹ããŒããã©ã¯ãŒãã£ã³ã°ã®å ŽåãäŸåé¢ä¿ã解決ããããã«ãã¡ã€ã«åãšé¢æ°åãæå®ãããŸãã
ãã¹ãŠã®éå±ãªCreateRemoteThreadãªãã§è¡ãã€ã³ãžã§ã¯ã·ã§ã³dllã PEãšã¯ã¹ããŒããã©ã¯ãŒãã£ã³ã°ã䜿çšããããšã«ããŸãã-ããã¯ãç®çã®ããã»ã¹ãèµ·åããããã«ãexeãã¡ã€ã«ã®ã€ã³ããŒãããŒãã«ããä»»æã®dllã®ååãšåãååã®exeãã¡ã€ã«ãå«ããã£ã¬ã¯ããªã«dllãäœæããããšãã«ããç¥ãããææ³ã§ãïŒäž»ãªãã®ã¯HKEY_LOCAL_MACHINE \ System \ã䜿çšããªãããšã§ãïŒ CurrentControlSet \ Control \ Session Manager \ KnownDLLsïŒã äœæãããdllã§ã¯ããšã¯ã¹ããŒãããŒãã«ã¯ã¿ãŒã²ããdllããã³ããŒãããŸããããšã¯ã¹ããŒãããã颿°ã®ã³ãŒããžã®ãã€ã³ã¿ãŒã®ä»£ããã«ãRVAããendpointïŒSendtoãã®åœ¢åŒã®è»¢éè¡ã«æžã蟌ãå¿
èŠããããŸãã Microsoft DNSãµãŒããŒèªäœã¯ãïŒ
systemrootïŒ
\ system32 \ dns.exeã«ãããµãŒãã¹HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ services \ DNSãšããŠå®è£
ãããŸãã
dnsãµãŒããŒã§ã®æçµçãªæ³šå
¥ã¢ã«ãŽãªãºã ã¯æ¬¡ã®ãšããã§ãã
- ïŒ
systemrootïŒ
\ system32 \ dnsfltãã£ã¬ã¯ããªãäœæããŸãïŒä»ã®ãã£ã¬ã¯ããªã䜿çšã§ããŸããsystem32ã§ãã£ã¬ã¯ããªãèŠã€ããããšã¯ãªãã·ã§ã³ã§ãïŒã
- ïŒ
systemrootïŒ
\ system32 \ dnsapi.dllãã³ããŒããŸã-ããã¯dns.exeãäœããã€ã³ããŒãããdllã§ããä»ã®ãdo n't notknowndllããéžæã§ããŸãã
- ã³ããŒããdllã®ååãendpoint.dllã«å€æŽããŸãããã®ååã転éè¡ã§äœ¿çšããŸãã
- æ¿å
¥ãããdllãååŸããé©åãªãšã¯ã¹ããŒãããŒãã«ã远å ããdllãïŒ
systemrootïŒ
\ system32 \ dnsfltã«ã³ããŒããŸã
- ã¬ãžã¹ããªã®ããŒHKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ services \ DNSã§ãImagePathã®æ°ãããã€ããªã¢ãã¬ã¹ïŒ
systemrootïŒ
\ system32 \ dnsflt \ dns.exeã倿ŽããŸãã
- ïŒ
systemrootïŒ
\ system32 \ dnsflt \ dns.exeããïŒ
systemrootïŒ
\ system32 \ dns.exeãžã®ã·ã³ããªãã¯ãªã³ã¯ãäœæããŸã
æåŸã®ã¹ãããã¯ãªãã§ããïŒ å®éã«ã¯ãWindowsã«ã¯çµã¿èŸŒã¿ã®ãã¡ã€ã¢ãŠã©ãŒã«ããããããã©ã«ãã§ã¯ãWindowsãµãŒããŒã«ã¯ïŒ
systemrootïŒ
\ system32 \ dns.exeã¢ããªã±ãŒã·ã§ã³ã®ã¿ãããŒã53ããªãã¹ã³ããæš©å©ãæã£ãŠããŸãã å¥ã®ãã£ã¬ã¯ããªããèµ·åããããšãããšããããã¯ãŒã¯ã«ã¢ã¯ã»ã¹ããæš©å©ããªããªããŸãã ãªãã³ããŒããã®ã§ããïŒ ã·ã¹ãã å
šäœãžã®åœ±é¿ãæå°éã«æããå
ã®dnsapi.dllã«è§Šããªãããã«ããããã ã¢ããªã±ãŒã·ã§ã³ã®ã·ã³ããªãã¯ãªã³ã¯ãäœæã§ããã°ããã®ãããã¯ãŒã¯æš©éãååŸã§ããããšãããããŸãã æ¢å®ã§ã¯ã管çè
ã®ã¿ãã·ã³ããªãã¯ãªã³ã¯ãäœæããæš©å©ãæã£ãŠããŸããããŠãŒã¶ãŒã«ã·ã³ããªãã¯ãªã³ã¯ãäœæããæš©å©ãäžãããšãçµã¿èŸŒã¿ã®ãã¡ã€ã¢ãŠã©ãŒã«ããã€ãã¹ã§ããããšã«æ°ä»ãã®ã¯äºæ³å€ã§ãã
DllMainããããã»ã¹ã«èªã¿èŸŒãã åŸãã¹ããªãŒã ãäœæããã€ã³ã¿ãŒã»ãããèšå®ã§ããŸãã æãåçŽãªå ŽåãdnsãµãŒãã¹ã¯ãws2_32.dllã®sendto颿°ãä»ããŠããŒã53ããUDPãã±ãããéä¿¡ããããšã«ãããååã®IPã¢ãã¬ã¹ãã¯ã©ã€ã¢ã³ãã«éç¥ããŸãã æšæºã§ã¯ãå¿çã倧ããããå Žåã«53åã®TCPããŒãã䜿çšã§ããå¯èœæ§ããããšæ³å®ãããŠããããã®å Žåã®sendtoã®ã€ã³ã¿ãŒã»ããã¯åœ¹ã«ç«ããªãããšã¯æããã§ãã ãã ããtcpã䜿çšããã±ãŒã¹ã®åŠçã¯ãããæéãããããŸãããåæ§ã®æ¹æ³ã§å®è¡ã§ããŸãã ä»ã®ãšãããUDPã®æãåçŽãªã±ãŒã¹ã説æããŸãã ãããã£ãŠãdns.exeã®ã³ãŒãã¯ws2_32.dllããsendto颿°ãã€ã³ããŒãããããã䜿çšããŠdnsãªã¯ãšã¹ãã«å¿çããããšãããããŸãã 颿°ãã€ã³ã¿ãŒã»ããããã«ã¯ããŸããŸãªæ¹æ³ããããŸããå€å
žçãªæ¹æ³ã¯ã¹ãã©ã€ã·ã³ã°ã§ããæåã®sendtoåœä»€ãç¬èªã®é¢æ°ã§jmpã«çœ®ãæãããããã®å®äºåŸã«ã以åã«éä¿¡ãããsendtoåœä»€ã«ç§»è¡ããŠããsendto颿°ã®å
éšã«ç§»è¡ããŸãã ã€ã³ããŒãããŒãã«ã§ã¯ãªãGetProcAddressã䜿çšããŠsendtoãåŒã³åºããŠãã¹ãã©ã€ã·ã³ã°ã¯æ©èœããŸãããã€ã³ããŒãããŒãã«ã䜿çšããå Žåã¯ãã¹ãã©ã€ã·ã³ã°ã®ä»£ããã«IATããã¯ã䜿çšããæ¹ãç°¡åã§ãã ãããè¡ãã«ã¯ãããŠã³ããŒãããdns.exeã€ã¡ãŒãžã§ã€ã³ããŒãããŒãã«ãèŠã€ããŸãã ããŒãã«èªäœã®æ§é ã¯ãããããã«ããããã詳现ã«ã€ããŠã¯PE圢åŒã®èª¬æãã芧ãã ããã

äž»ãªãã®ã¯ãã·ã¹ãã ããã€ã¡ãŒãžãããŒãããããã»ã¹ã§ãã€ã³ããŒãããŒãã«ã®sendto颿°ã®éå§ãžã®ãã€ã³ã¿ãŒãæžã蟌ãããšã§ãã ã€ãŸããsendtoåŒã³åºããã€ã³ã¿ãŒã»ããããã«ã¯ãå
ã®sendtoã®ã¢ãã¬ã¹ãã€ã³ããŒãããŒãã«ã®é¢æ°ã®ã¢ãã¬ã¹ã«çœ®ãæããã ãã§ãã
ããã§ãååãèšå®ããããŒã¿ã®åä¿¡ãéå§ããŸããã sendto颿°ã®ãããã¿ã€ãã¯æ¬¡ã®ããã«ãªããŸãã
int sendto( _In_ SOCKET s, _In_ const char *buf, _In_ int len, _In_ int flags, _In_ const struct sockaddr *to, _In_ int tolen );
sãããŒã53ã®ãœã±ããã®å Žåãlenãµã€ãºã®dnså¿çã¯bufãã€ã³ã¿ãŒã«é
眮ãããŸãã 圢åŒèªäœã¯
RFC1035ã§èª¬æãããŠããŸããç®çã®ããŒã¿ãååŸããããã«å¿
èŠãªããšãç°¡åã«èª¬æããŸãã
æšæºã®ã¡ãã»ãŒãžæ§é ã¯æ¬¡ã®ãšããã§ãã

å¿
èŠãªæ
å ±ã®ããããŒïŒã¡ãã»ãŒãžã¿ã€ãããšã©ãŒã³ãŒããããã³ã»ã¯ã·ã§ã³å
ã®èŠçŽ æ°ã ã¿ã€ãã«èªäœã¯æ¬¡ã®ããã«ãªããŸãã
struct DNS_HEADER { uint16_t id;
åçãåŸãã«ã¯ã質åã»ã¯ã·ã§ã³ãè§£æããå¿
èŠããããŸãã ã»ã¯ã·ã§ã³èªäœã¯ãããããŒïŒq_countïŒã«ç€ºãããŠããæ°ã®ãããã¯ã§æ§æãããŸãã åãããã¯ã¯ããªã¯ãšã¹ãã®ååãã¿ã€ããããã³ã¯ã©ã¹ã§æ§æãããŸãã ååã¯æååã®ã·ãŒã±ã³ã¹ãšããŠãšã³ã³ãŒããããåæååã¯æååã®é·ãã®ãã€ãã§å§ãŸããŸãã æåŸã¯é·ããŒãã®æååã§ãã ããšãã°ãhomedomain2008.ruãšããååã¯æ¬¡ã®ããã«ãªããŸãã

Answersã»ã¯ã·ã§ã³ã¯äŒŒãŠããŸãããããã¯ã¯ãååãã¿ã€ããã¯ã©ã¹ãTTLã远å ããŒã¿ã§æ§æãããŠããŸãã IPã¢ãã¬ã¹ã¯addã«å«ãŸããŸãã ããŒã¿ã ååã®è§£æã«ã¯å¥ã®å°é£ããããŸãã ã©ããããã©ãã«ã®é·ãã®ä»£ããã«ã¡ãã»ãŒãžã®ãµã€ãºãå°ããããããã«ãå¥ã®ããŒã¿é åãžã®ãªã³ã¯ãèŠã€ããããšãã§ããŸãã æ¬¡ã®ããã«ãšã³ã³ãŒããããŸããé·ãã®æäžäœ2ãããã11ã®å Žåãæ¬¡ã®ãã€ããšé·ãã®æäžäœãããã¯ãã¡ãã»ãŒãžã®å
é ãåºæºãšãããã€ãåäœã®ãªãã»ãããšããŠè§£éãããå¿
èŠããããŸãã ãã®ãªãã»ãããè¶
ããŠãååã®ãããªãåæãè¡ãå¿
èŠããããŸãã
ãããã£ãŠãå¿
èŠãªAPIãã€ã³ã¿ãŒã»ããããdnsã®åçãè§£æããŸãããæ¬¡ã«ããã®åçãããã«ã¹ãããããããšã©ãŒãè¿ããšããæ±ºå®ãäžãå¿
èŠããããŸãã ããŒã¿ããŒã¹ã«ãŸã ååšããªãååããšã«ãåçãããçãããããã©ããã確èªããå¿
èŠããããŸãã
Unicode Technical Standard tr39ã®ã¹ã±ã«ãã³é¢æ°ã®çµæãããŒã¿ããŒã¹å
ã®ä»»æã®ååã®çµæãšäžèŽããååããŸãã¯å
éšæåãäžŠã¹æ¿ããããšã«ããããŒã¿ããŒã¹ã«ååšããååãšç°ãªãååããçãããããšèŠãªããŸãã ãã§ãã¯ãå®è£
ããããã«ã2ã€ã®ããŒãã«ãä¿åããŸãã æåã®ãã®ã¯ããŒã¿ããŒã¹ããã®ãã¹ãŠã®ååã®ã¹ã±ã«ãã³çµæã§æ§æãããŸãã2çªç®ã®è¡šã§ã¯ãæåã®ã¬ãã«ãé€ãåã©ãã«ããæåãšæåŸã®æåãåé€ããåã©ãã«ã®æ®ãã®æåãäžŠã¹æ¿ããããšã«ãããããŒã¿ããŒã¹è¡ããååŸããè¡ãæžã蟌ã¿ãŸãã ããã§ãæ°ããååã2ã€ã®ããŒãã«ã®ããããã«å«ãŸããŠããå ŽåãçããããšèŠãªããŸãã
ã¹ã±ã«ãã³é¢æ°ã®æå³ã¯ã2è¡ã®é¡äŒŒæ§ãå€å¥ããããšã§ãããã®ãããæåã¯åè¡ã«å¯ŸããŠæ£èŠåãããŸãã ããšãã°ãXlÅã¯Xloeã«å€æãããããã颿°ã®çµæãæ¯èŒããŠãUnicodeæååã®é¡äŒŒæ§ã倿ã§ããŸããäžèšã®å®è£
äŸã¯
githubã«ãããŸãã
ã€ã³ã¿ãŒã»ããã«é¢ããå°ããªæè¡çãªåé¡ã«å ããŠããé¡äŒŒãããååã®æ€åºã«ã¯ããã«å€§ããªåé¡ããããããå®éã«æŠèª¬ããããœãªã¥ãŒã·ã§ã³ã§ã¯éåžžã®ä¿è·ãæäŸã§ããŸããã åŠçããã®ãããã§ãããïŒ
- é åãšãã¢ã°ãªãã®çµã¿åããã
- ã¹ã±ã«ãã³ã«ã«ãŠã³ããããªãæåã眮ãæãã\ã远å ããŸãã
- UTS tr39ã¯ã¹ã±ã«ãã³ã«éå®ãããã1ã€ã®ã©ãã«ã§æåã»ããã®æ··åãå¶éã§ããŸãã
- æ¥æ¬èªã®å
šè§ãã€ã³ãããã³ãã®ä»ã®ã©ãã«åºåãæåã
- rnicrosoft.comã®ãããªãã°ããããã®